-
-
Notifications
You must be signed in to change notification settings - Fork 227
Fix hyphens in path parameters #986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
dbanty
merged 7 commits into
openapi-generators:main
from
harabat:endpoint_path_python_names
Mar 6, 2024
Merged
Fix hyphens in path parameters #986
dbanty
merged 7 commits into
openapi-generators:main
from
harabat:endpoint_path_python_names
Mar 6, 2024
Conversation
This file contains 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
ebb9662
to
c58b601
Compare
c58b601
to
bd28cf7
Compare
dbanty
approved these changes
Mar 6, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, not just a fix for the bug, but 2 choices! Thanks a bunch
dbanty
added a commit
that referenced
this pull request
Mar 6, 2024
This PR was created by Knope. Merging it will create a new release ### Breaking Changes #### Update PDM metadata syntax Metadata generated for PDM will now use the new `distribution = true` syntax instead of `package-type = "library"`. New packages generated with `--meta pdm` will require PDM `2.12.0` or later to build. ### Features #### Add response content to `UnexpectedStatus` exception The error message for `UnexpectedStatus` exceptions will now include the UTF-8 decoded (ignoring errors) body of the response. PR #989 implements #840. Thanks @harabat! ### Fixes #### Allow hyphens in path parameters Before now, path parameters which were invalid Python identifiers were not allowed, and would fail generation with an "Incorrect path templating" error. In particular, this meant that path parameters with hyphens were not allowed. This has now been fixed! PR #986 fixed issue #976. Thanks @harabat! > [!WARNING] > This change may break custom templates, see [this diff](https://github.com/openapi-generators/openapi-python-client/pull/986/files#diff-0de8437b26075d8fe8454cf47d8d95d4835c7f827fa87328e03f690412be803e) > if you have trouble upgrading. Co-authored-by: GitHub <[email protected]>
Thanks @dbanty! |
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.
Fixes #976 and #578, and replaces #978.
@dbanty please choose your preferred approach between this and PR #987.
The original issue is that
openapi-python-client
throwsincorrect path templating
warnings when the path has a parameter with a hyphen and consequently fails to generate the endpoints.The first commit ensures that hyphens are recognised as allowed delimiters in parameter path names. This allows the endpoints to be generated.
However, this generates lines like these:
Since Python variable names cannot contain hyphens, the
user-id
parameter name here will trigger errors (starting withruff
).The second commit replaces parameter names with their
python_name
in__init__.py
and passes the modified path totemplates/endpoint_module.py.jinja
.This fixes the issue and allows endpoints to be generated correctly.
#987 is a different option for the second commit which instead creates a custom Jinja filter in
utils.py
and so that the parameter names inendpoint.path
can be converted to their python names directly intemplates/endpoint_module.py.jinja
.Both approaches are equivalent and have been tested with different parameter names (snake case, camel case, kebab case, mixed).