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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

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

Merging #744 (4e213e6) into main (4e0912f) will decrease coverage by 0.11%.
The diff coverage is 91.30%.

@@             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     
Impacted Files Coverage Δ
openapi_python_client/parser/responses.py 97.87% <85.71%> (-2.13%) ⬇️
openapi_python_client/parser/openapi.py 99.64% <92.30%> (-0.36%) ⬇️
openapi_python_client/__init__.py 100.00% <100.00%> (ø)
openapi_python_client/config.py 100.00% <100.00%> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

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
1 participant