-
-
Notifications
You must be signed in to change notification settings - Fork 405
Fix multi_string_property: None when absent, snapshot lists (refids, REQUEST-STATUS) — part of #1722 - #1765
Draft
nihirborkar17 wants to merge 5 commits into
Draft
Conversation
...ve#1722) AI: Claude Sonnet 5 used to explain the existing code and review my changes; code and tests written by me.
...onnet 5 used to explain the existing code and review my changes; code and tests written by me.
...operty-1722 # Conflicts: # src/icalendar/attr.py
nihirborkar17
requested review from
angatha,
niccokunzmann and
stevepiercy
as code owners
September 5, 2026 02:57
@github-actions
github-actions
Bot
added
the
ai-suspicion
This contribution is possibly created with lots of AI help without enough human understanding.
label
Sep 5, 2026
Contributor
This pull request did not pass quality checks and AI use is suspected. Please review Contribute and make any necessary amendments.
Contributor
Profile summary:
GitHub user: nihirborkar17
🟢 No concerns found with user's profile.
🟢 No concerns found with recent PR activity.
🟢 No concerns found with recent issue activity.
For a more detailed report, run `gh-profiler nihirborkar17`.
Full profile
GitHub user: nihirborkar17
🟢 No concerns found with user's profile.
🟢 Account age: 2 years
🟢 Profile information:
name: Nihir Borkar
location: india
bio: Exploring AI/ML and learning in public through open-source contributions.
linkedin: https://www.linkedin.com/in/nihir-borkar/
Empty fields: company, blog, email
🟢 No concerns found with recent PR activity.
2 PRs opened in the last 21 days.
0 opened against repos the user owns.
0 opened against repos in publicly associated orgs.
2 opened against external repos.
🟢 1 of 2 external PRs merged in the last 21 days.
🟢 0 of 2 external PRs closed without merging in the last 21 days.
🟢 No concerns found with recent issue activity.
🟢 No new issues opened in the last 21 days.
coverage: 97.569% (+0.007%) from 97.562% — nihirborkar17:fix-multi-string-property-1722 into collective:main
stevepiercy
marked this pull request as draft
September 6, 2026 12:25
stevepiercy
commented
Sep 6, 2026
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Description
This is the first PR in a planned series fixing the inconsistent
list-mutation behavior described in #1722. Full root-cause discussion
and the remaining checklist are in the issue thread.
Fixes
multi_string_property(used byrefidsandREQUEST-STATUS):fgetreturnsNonewhen the property is absent (previously[])fgetalways returns a disconnected copy — mutating the returnedlist no longer affects the component. Previously this only worked
when a single value was stored; with 2+ values, the getter returned
a live reference into the component's internal storage, so
.append()on the returned list silently mutated the component.fsetnormalizes storage to always be list-shaped internally, evenfor a single value, closing off the root cause (
Component.add()stores a bare scalar on first add, only becoming a list on the
second add)
str(not amix of
str/vTextdepending on how they were added)Noneor[]now deletes the propertyRemaining work, tracked as follow-up PRs against #1722:
RESOURCESproperty (see also #1696),
categories,attendees,rrules,related_to,links,concepts, and CATEGORIES multi-group/LANGUAGEsupport.
Checklist
Additional information
See #1696 (open, adds
RESOURCESvia the samemulti_string_property)— that PR will inherit this fix regardless of merge order.