Skip to content

Add value setter to Gedcom structure - #13

Merged
DavidMStraub merged 1 commit into
mainfrom
set_value
Aug 14, 2026
Merged

Add value setter to Gedcom structure#13
DavidMStraub merged 1 commit into
mainfrom
set_value

Conversation

@DavidMStraub

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the authoring (serialization) ergonomics of the library by (1) making GedcomStructure easier to construct when building trees programmatically, and (2) adding a public set_value helper that writes correctly-formatted payload text from typed values using the structure’s resolved GEDCOM 7 type.

Changes:

  • Add default values for GedcomStructure.pointer, GedcomStructure.text, and GedcomStructure.xref so only tag is required for construction.
  • Introduce gedcom7.set_value(structure, value, type_id=None) to format and assign payload text based on the resolved structure type (or an explicitly provided type_id).
  • Add test coverage for constructor defaults and set_value behavior (type resolution, explicit override, extension passthrough, boolean Y|<NULL> semantics, and serializer round-trip).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
test/test_types.py Adds tests validating new GedcomStructure constructor defaults and non-shared child lists.
test/test_format.py Adds tests covering set_value resolution rules, error cases, and round-trip serialization.
gedcom7/types.py Makes GedcomStructure’s pointer/text/xref optional via defaults for easier programmatic construction.
gedcom7/format.py Adds set_value helper built on format_value and structure-type resolution.
gedcom7/init.py Re-exports set_value as part of the public package API.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@DavidMStraub
DavidMStraub merged commit a40cc44 into main Aug 14, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants