Skip to content

Commit 43e0461

Browse files
patrick91dbanty
andauthored
Add aliases for Client (#1009)
https://www.attrs.org/en/stable/examples.html --------- Co-authored-by: Dylan Anthony <[email protected]> Co-authored-by: Dylan Anthony <[email protected]>
1 parent d190b5c commit 43e0461

File tree

5 files changed

+59
-50
lines changed

5 files changed

+59
-50
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
default: patch
3+
---
4+
5+
# Add aliases to `Client` for pyright
6+
7+
This should resolve incompatibilities between the generated `Client` class and the pyright type checker.
8+
9+
PR #1009 closes #909. Thanks @patrick91!

end_to_end_tests/golden-record/my_test_api_client/client.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ class Client:
3535
"""
3636

3737
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
38-
_base_url: str
39-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
40-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
41-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
42-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
43-
_follow_redirects: bool = field(default=False, kw_only=True)
44-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
38+
_base_url: str = field(alias="base_url")
39+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
40+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
41+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
42+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
43+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
44+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
4545
_client: Optional[httpx.Client] = field(default=None, init=False)
4646
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
4747

@@ -165,13 +165,13 @@ class AuthenticatedClient:
165165
"""
166166

167167
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
168-
_base_url: str
169-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
170-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
171-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
172-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
173-
_follow_redirects: bool = field(default=False, kw_only=True)
174-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
168+
_base_url: str = field(alias="base_url")
169+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
170+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
171+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
172+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
173+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
174+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
175175
_client: Optional[httpx.Client] = field(default=None, init=False)
176176
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
177177

end_to_end_tests/test-3-1-golden-record/test_3_1_features_client/client.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ class Client:
3535
"""
3636

3737
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
38-
_base_url: str
39-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
40-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
41-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
42-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
43-
_follow_redirects: bool = field(default=False, kw_only=True)
44-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
38+
_base_url: str = field(alias="base_url")
39+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
40+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
41+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
42+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
43+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
44+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
4545
_client: Optional[httpx.Client] = field(default=None, init=False)
4646
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
4747

@@ -165,13 +165,13 @@ class AuthenticatedClient:
165165
"""
166166

167167
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
168-
_base_url: str
169-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
170-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
171-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
172-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
173-
_follow_redirects: bool = field(default=False, kw_only=True)
174-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
168+
_base_url: str = field(alias="base_url")
169+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
170+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
171+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
172+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
173+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
174+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
175175
_client: Optional[httpx.Client] = field(default=None, init=False)
176176
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
177177

integration-tests/integration_tests/client.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ class Client:
3535
"""
3636

3737
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
38-
_base_url: str
39-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
40-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
41-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
42-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
43-
_follow_redirects: bool = field(default=False, kw_only=True)
44-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
38+
_base_url: str = field(alias="base_url")
39+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
40+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
41+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
42+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
43+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
44+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
4545
_client: Optional[httpx.Client] = field(default=None, init=False)
4646
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
4747

@@ -165,13 +165,13 @@ class AuthenticatedClient:
165165
"""
166166

167167
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
168-
_base_url: str
169-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
170-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
171-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
172-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
173-
_follow_redirects: bool = field(default=False, kw_only=True)
174-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
168+
_base_url: str = field(alias="base_url")
169+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
170+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
171+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
172+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
173+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
174+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
175175
_client: Optional[httpx.Client] = field(default=None, init=False)
176176
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
177177

openapi_python_client/templates/client.py.jinja

+8-8
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ class Client:
3737
"""
3838
{% macro attributes() %}
3939
raise_on_unexpected_status: bool = field(default=False, kw_only=True)
40-
_base_url: str
41-
_cookies: Dict[str, str] = field(factory=dict, kw_only=True)
42-
_headers: Dict[str, str] = field(factory=dict, kw_only=True)
43-
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True)
44-
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True)
45-
_follow_redirects: bool = field(default=False, kw_only=True)
46-
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True)
40+
_base_url: str = field(alias="base_url")
41+
_cookies: Dict[str, str] = field(factory=dict, kw_only=True, alias="cookies")
42+
_headers: Dict[str, str] = field(factory=dict, kw_only=True, alias="headers")
43+
_timeout: Optional[httpx.Timeout] = field(default=None, kw_only=True, alias="timeout")
44+
_verify_ssl: Union[str, bool, ssl.SSLContext] = field(default=True, kw_only=True, alias="verify_ssl")
45+
_follow_redirects: bool = field(default=False, kw_only=True, alias="follow_redirects")
46+
_httpx_args: Dict[str, Any] = field(factory=dict, kw_only=True, alias="httpx_args")
4747
_client: Optional[httpx.Client] = field(default=None, init=False)
4848
_async_client: Optional[httpx.AsyncClient] = field(default=None, init=False)
4949
{% endmacro %}{{ attributes() }}
@@ -163,4 +163,4 @@ class AuthenticatedClient:
163163
auth_header_name: str = "Authorization"
164164

165165
{{ builders("AuthenticatedClient") }}
166-
{{ httpx_stuff("AuthenticatedClient", "self._headers[self.auth_header_name] = f\"{self.prefix} {self.token}\" if self.prefix else self.token") }}
166+
{{ httpx_stuff("AuthenticatedClient", "self._headers[self.auth_header_name] = f\"{self.prefix} {self.token}\" if self.prefix else self.token") }}

0 commit comments

Comments
 (0)