fix(python): deduplicate additional_init_exports in __init__.py #11758
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.
Description
Fixes duplicate imports in
__init__.pywhen usingadditional_init_exports. When the same symbol was exported from both the regular types module and fromadditional_init_exports, the generator would produce duplicate imports causing F811 "Redefinition of unused" ruff errors, which caused generation to fail.Link to Devin run: https://app.devin.ai/sessions/fa9ba4d562ab4d6ab3ebae66bef5c0de
Requested by: @jsklan ([email protected])
Changes Made
_deduplicate_exportsmethod inmodule_manager.pythat filters exports to ensure each symbol is only imported onceadditional_init_exports, theadditional_init_exportsversion takes precedenceexamples:additional_init_exports_with_duplicatesdemonstrating the fixversions.ymlwith version 4.50.1 changelog entryTesting
pnpm run check)Human Review Checklist
additional_init_exports(relies on registration order - later entries win in theall_exportsdict)__init__.pyin the fixture showsActor,Actress,Movieimported only from.types.types(not duplicated from.types)