Repository navigation
Register the object-level field-access operations of both languages - #42
Merged
Merged
Conversation
Three entries in governance/naming.toml, beside the other object-level entries: - "read a field by name": IDFObject.get and IdfObject.get, aligned. - "write one field by name": item assignment in Python and IdfObject.set in TypeScript, divergent under the operator-overloading rule. - "apply several fields to an object": IDFObject.update and IdfObject.update, divergent in the return value only. Registered ahead of the Python implementation, and distinguished from the excluded eppy dot-path IDFDocument.update. None of the three changes the result of either naming gate, which check exports and, in Python, IDFDocument members only. Both gates pass against this file with --register. idfkit-unification feature 015, FR-013.
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.
Summary
Adds three entries to
governance/naming.toml, beside the other object-level entries.IDFObject.getIdfObject.get"")IdfObject.setIDFObject.updateIdfObject.updateContext
These four public members (
IdfObject.get,set,update;IDFObject.get) are unregistered today. Neither naming gate notices, because the gates check only exports and, in Python,IDFDocumentmembers.The third entry is registered ahead of the Python implementation, as the register's header requires. It anticipates
IDFObject.update, requested in idfkit/idfkit#235. It also records the proposed shared contract: every entry is examined before any is applied; unknown names,name, legacy flat extensible names, and a non-list value for the wrapper key are refused; and every refused entry is reported. The notes distinguish it from the excluded eppyIDFDocument.update, which takes dot-path keys.Review requested from the TypeScript side
Two points need explicit acceptance from a TypeScript maintainer:
IdfObject.update. Today it applies entries up to the first unknown name and then throws. Under the contract, it would examine every entry before writing any, and throw listing every refused entry. The signature and thethisreturn are unchanged.updateoperation kind and apost-operation-epjsonassertion. The expected output is generated byConvertInputFormatfrom a committedafter.idf. That work comes in a separate pull request, but agreement on the contract is requested here first.Checks
python tools/validate_governance.py: passed (278 entries).python -m pytest tests -q: 322 passed.idfkit/scripts/check_naming_register.py --registerandidfkit-js/scripts/check-naming-register.mjs --register --buildagainst this file: both pass, with results unchanged from the pinned run.After merge, this is released as
governance-2026.30.