Skip to content
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

feat: Add two generation config flags to raise exceptions #744

Conversation

robertschweizer
Copy link
Contributor

@robertschweizer robertschweizer commented Apr 1, 2023

raise_on_error_status raises a httpx.HTTPStatusError on all error
response codes without decoding. This can later be improved to add an exception that includes the decoded content, or to even raise different exception types for each response code (see #736 (comment)).

raise_on_unexpected_status is identical to the existing
Client.raise_on_unexpected_status runtime setting, but leads to better
return type annotations.

Closes #491

This is a rework of #736, with the main intention of reducing the generated sync and asyncio functions' return type annotations to documented successful responses.

Includes the commits from #742, which should be merged first.

We know the type of this: It's `None`, so we don't need to annotate it
as `Any`.
cast(None, None) made mypy fail after that last commit.
It makes sense to return the parsed JSON here instead of None.
This was introduced in "fix: Make empty response a `NoneProperty`",
but is easier to fix now since parsed_responses in
endpoint_module.py.jinja does not include `Any` response types anymore.
@robertschweizer robertschweizer force-pushed the add-generation-flags-to-raise-exceptions branch from 737869a to 41d739c Compare April 1, 2023 16:54
Also prevents double return type annotations like `Optional[None]`.
raise_on_error_status raises a `httpx.HTTPStatusError` on all error
response codes without decoding.

raise_on_unexpected_status is identical to the existing
`Client.raise_on_unexpected_status` runtime setting, but leads to better
return type annotations.
@robertschweizer robertschweizer force-pushed the add-generation-flags-to-raise-exceptions branch from 41d739c to 4e213e6 Compare April 1, 2023 17:04
@codecov
Copy link

codecov bot commented Apr 1, 2023

Codecov Report

Attention: Patch coverage is 91.30435% with 2 lines in your changes missing coverage. Please review.

Project coverage is 99.89%. Comparing base (4e0912f) to head (4e213e6).
Report is 230 commits behind head on main.

Files with missing lines Patch % Lines
openapi_python_client/parser/openapi.py 92.30% 1 Missing ⚠️
openapi_python_client/parser/responses.py 85.71% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##              main     #744      +/-   ##
===========================================
- Coverage   100.00%   99.89%   -0.11%     
===========================================
  Files           49       49              
  Lines         1978     1993      +15     
===========================================
+ Hits          1978     1991      +13     
- Misses           0        2       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@dbanty dbanty closed this Dec 24, 2024
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.

Option to raise exception on error codes
2 participants