Skip to content

Fix #17754: Convert OpenAPI types to Python types in anyOf/oneOf#23006

Draft
pgoslatara wants to merge 1 commit intoOpenAPITools:masterfrom
pgoslatara:fix-issue-17754-python-anyof-string-array
Draft

Fix #17754: Convert OpenAPI types to Python types in anyOf/oneOf#23006
pgoslatara wants to merge 1 commit intoOpenAPITools:masterfrom
pgoslatara:fix-issue-17754-python-anyof-string-array

Conversation

@pgoslatara
Copy link

@pgoslatara pgoslatara commented Feb 18, 2026

  • Add toPythonType() helper method to convert OpenAPI types (string, array) to Python types (str, List)
  • Override postProcessModels() to convert anyOf/oneOf types in AbstractPythonCodegen and AbstractPythonPydanticV1Codegen
  • Add test case to verify anyOf with string and array types generates correct Python types

Before: anyOf schemas contained ['array[string]', 'string']
After: anyOf schemas contain ['List[str]', 'str']

Fixes #17754.

Python technical committee: @cbornet @tomplus @krjakbrjak @fa0311 @multani

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

Summary by cubic

Fixes #17754 by converting anyOf/oneOf OpenAPI types to proper Python types in generated Python clients. Schemas like array[string] now render as List[str], and string as str.

  • Bug Fixes
    • Added toPythonType helper to map OpenAPI types (string, array, map, etc.) to Python types (str, List, Dict, etc.).
    • Post-processed models in AbstractPythonCodegen and AbstractPythonPydanticV1Codegen to convert anyOf/oneOf entries.
    • Added a test and sample spec to verify anyOf contains ["List[str]", "str"] instead of ["array[string]", "string"].

Written for commit c357866. Summary will update on new commits.

…f/oneOf

- Add toPythonType() helper method to convert OpenAPI types (string, array) to Python types (str, List)
- Override postProcessModels() to convert anyOf/oneOf types in AbstractPythonCodegen and AbstractPythonPydanticV1Codegen
- Add test case to verify anyOf with string and array types generates correct Python types

Before: anyOf schemas contained ['array[string]', 'string']
After: anyOf schemas contain ['List[str]', 'str']
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.

[BUG][Python] anyOf for string/array of strings not rendered correctly

1 participant

Comments