Skip to content

Commit 2ebab0f

Browse files
authored
Fix mypy errors with no_implicit_optional=True (#832)
* Try fixing mypy errors with no_implicit_optional=True * Update CHANGELOG.md
1 parent 954ee64 commit 2ebab0f

File tree

7 files changed

+39
-34
lines changed

7 files changed

+39
-34
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ The format is based on the [KeepAChangeLog] project.
1010
### Changed
1111
- [#827] Added support for python 3.11
1212
- [#830], [#831] Allow null and empty values in UserInfo responses, but filter them out.
13+
- [#832] Added support for mypy with --no_implicit_optional=True
1314

1415
### Fixed
1516
- [#826], [#829] Fixed RP-Initiated Logout To Accept id_token_hint
@@ -19,11 +20,12 @@ The format is based on the [KeepAChangeLog] project.
1920
- [#820] Removed Client.grant_from_state method.
2021

2122
[#820]: https://github.com/OpenIDC/pyoidc/pull/820
22-
[#827]: https://github.com/OpenIDC/pyoidc/issues/827
2323
[#826]: https://github.com/OpenIDC/pyoidc/issues/826
24+
[#827]: https://github.com/OpenIDC/pyoidc/issues/827
2425
[#829]: https://github.com/OpenIDC/pyoidc/pull/829
2526
[#830]: https://github.com/OpenIDC/pyoidc/issues/830
2627
[#831]: https://github.com/OpenIDC/pyoidc/pull/831
28+
[#832]: https://github.com/OpenIDC/pyoidc/pull/832
2729

2830
## 1.4.0 [2022-05-23]
2931

mypy.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[mypy]
22
check_untyped_defs = True
3-
no_implicit_optional = False
3+
no_implicit_optional = True
44

55
[mypy-jwkest.*]
66
ignore_missing_imports = True

src/oic/oauth2/__init__.py

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def __init__(
179179
client_cert=None,
180180
timeout=None,
181181
message_factory: Type[MessageFactory] = OauthMessageFactory,
182-
settings: PyoidcSettings = None,
182+
settings: Optional[PyoidcSettings] = None,
183183
):
184184
"""
185185
Initialize the instance.
@@ -414,7 +414,7 @@ def construct_Message(
414414

415415
def construct_AuthorizationRequest(
416416
self,
417-
request: Type[AuthorizationRequest] = None,
417+
request: Optional[Type[AuthorizationRequest]] = None,
418418
request_args=None,
419419
extra_args=None,
420420
**kwargs,
@@ -441,11 +441,13 @@ def construct_AuthorizationRequest(
441441

442442
def construct_AccessTokenRequest(
443443
self,
444-
request: Union[
445-
Type[AccessTokenRequest],
446-
Type[ROPCAccessTokenRequest],
447-
Type[CCAccessTokenRequest],
448-
Type[ExtensionTokenRequest],
444+
request: Optional[
445+
Union[
446+
Type[AccessTokenRequest],
447+
Type[ROPCAccessTokenRequest],
448+
Type[CCAccessTokenRequest],
449+
Type[ExtensionTokenRequest],
450+
]
449451
] = None,
450452
request_args=None,
451453
extra_args=None,
@@ -490,7 +492,7 @@ def construct_AccessTokenRequest(
490492

491493
def construct_RefreshAccessTokenRequest(
492494
self,
493-
request: Type[RefreshAccessTokenRequest] = None,
495+
request: Optional[Type[RefreshAccessTokenRequest]] = None,
494496
request_args=None,
495497
extra_args=None,
496498
**kwargs,
@@ -514,7 +516,7 @@ def construct_RefreshAccessTokenRequest(
514516

515517
def construct_ResourceRequest(
516518
self,
517-
request: Type[ResourceRequest] = None,
519+
request: Optional[Type[ResourceRequest]] = None,
518520
request_args=None,
519521
extra_args=None,
520522
**kwargs,
@@ -736,8 +738,8 @@ def init_authentication_method(
736738
def parse_request_response(
737739
self,
738740
reqresp: requests.Response,
739-
response: Type[Message] = None,
740-
body_type: ENCODINGS = None,
741+
response: Optional[Type[Message]] = None,
742+
body_type: Optional[ENCODINGS] = None,
741743
state="",
742744
**kwargs,
743745
) -> Union[Message, requests.Response]:
@@ -800,7 +802,7 @@ def parse_request_response(
800802
def request_and_return(
801803
self,
802804
url: str,
803-
response: Type[Message] = None,
805+
response: Optional[Type[Message]] = None,
804806
method="GET",
805807
body=None,
806808
body_type: ENCODINGS = "json",
@@ -1006,7 +1008,7 @@ def do_any(
10061008
request_args=None,
10071009
extra_args=None,
10081010
http_args=None,
1009-
response: Type[Message] = None,
1011+
response: Optional[Type[Message]] = None,
10101012
authn_method="",
10111013
) -> Message:
10121014

@@ -1186,12 +1188,12 @@ class Server(PBase):
11861188

11871189
def __init__(
11881190
self,
1189-
verify_ssl: bool = None,
1190-
keyjar: KeyJar = None,
1191-
client_cert: Union[str, Tuple[str, str]] = None,
1192-
timeout: float = None,
1191+
verify_ssl: Optional[bool] = None,
1192+
keyjar: Optional[KeyJar] = None,
1193+
client_cert: Optional[Union[str, Tuple[str, str]]] = None,
1194+
timeout: Optional[float] = None,
11931195
message_factory: Type[MessageFactory] = OauthMessageFactory,
1194-
settings: PyoidcSettings = None,
1196+
settings: Optional[PyoidcSettings] = None,
11951197
):
11961198
"""
11971199
Initialize the server.
@@ -1240,7 +1242,7 @@ def parse_url_request(request, url=None, query=None):
12401242
return req
12411243

12421244
def parse_authorization_request(
1243-
self, url: str = None, query: dict = None
1245+
self, url: Optional[str] = None, query: Optional[dict] = None
12441246
) -> AuthorizationRequest:
12451247
request = self.message_factory.get_request_type("authorization_endpoint")
12461248
return self.parse_url_request(request, url, query)
@@ -1249,7 +1251,7 @@ def parse_jwt_request(
12491251
self,
12501252
request: Type[Message] = AuthorizationRequest,
12511253
txt: str = "",
1252-
keyjar: KeyJar = None,
1254+
keyjar: Optional[KeyJar] = None,
12531255
verify: bool = True,
12541256
**kwargs,
12551257
) -> Message:
@@ -1263,18 +1265,18 @@ def parse_jwt_request(
12631265
return areq
12641266

12651267
def parse_body_request(
1266-
self, request: Type[Message] = AccessTokenRequest, body: str = None
1268+
self, request: Type[Message] = AccessTokenRequest, body: Optional[str] = None
12671269
):
12681270
req = request().deserialize(body, "urlencoded")
12691271
req.verify()
12701272
return req
12711273

1272-
def parse_token_request(self, body: str = None) -> AccessTokenRequest:
1274+
def parse_token_request(self, body: Optional[str] = None) -> AccessTokenRequest:
12731275
request = self.message_factory.get_request_type("token_endpoint")
12741276
return self.parse_body_request(request, body)
12751277

12761278
def parse_refresh_token_request(
1277-
self, body: str = None
1279+
self, body: Optional[str] = None
12781280
) -> RefreshAccessTokenRequest:
12791281
request = self.message_factory.get_request_type("refresh_endpoint")
12801282
return self.parse_body_request(request, body)

src/oic/oauth2/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from http import cookiejar as cookielib
55
from http.cookies import CookieError
66
from http.cookies import SimpleCookie
7+
from typing import Optional
78
from typing import cast
89

910
import requests
@@ -28,7 +29,7 @@ def __init__(
2829
keyjar=None,
2930
client_cert=None,
3031
timeout=None,
31-
settings: PyoidcSettings = None,
32+
settings: Optional[PyoidcSettings] = None,
3233
):
3334
"""
3435
Initialize the instance.

src/oic/oauth2/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def __init__(
204204
message_factory=OauthMessageFactory,
205205
capabilities=None,
206206
jwks_uri="",
207-
settings: PyoidcSettings = None,
207+
settings: Optional[PyoidcSettings] = None,
208208
):
209209
self.settings = settings or OauthProviderSettings()
210210
if verify_ssl is not None:

src/oic/oic/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ def __init__(
338338
client_cert=None,
339339
requests_dir="requests",
340340
message_factory: Type[MessageFactory] = OIDCMessageFactory,
341-
settings: PyoidcSettings = None,
341+
settings: Optional[PyoidcSettings] = None,
342342
):
343343
"""
344344
Initialize the instance.
@@ -1527,12 +1527,12 @@ class Server(oauth2.Server):
15271527

15281528
def __init__(
15291529
self,
1530-
verify_ssl: bool = None,
1531-
keyjar: KeyJar = None,
1532-
client_cert: Union[str, Tuple[str, str]] = None,
1533-
timeout: float = None,
1530+
verify_ssl: Optional[bool] = None,
1531+
keyjar: Optional[KeyJar] = None,
1532+
client_cert: Optional[Union[str, Tuple[str, str]]] = None,
1533+
timeout: Optional[float] = None,
15341534
message_factory: Type[MessageFactory] = OIDCMessageFactory,
1535-
settings: PyoidcSettings = None,
1535+
settings: Optional[PyoidcSettings] = None,
15361536
):
15371537
"""Initialize the server."""
15381538
self.settings = settings or OicServerSettings()

src/oic/oic/provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ def __init__(
253253
post_logout_page=None,
254254
self_signing_alg="RS256",
255255
logout_path="",
256-
settings: PyoidcSettings = None,
256+
settings: Optional[PyoidcSettings] = None,
257257
):
258258
self.settings = settings or OicProviderSettings()
259259
if verify_ssl is not None:

0 commit comments

Comments
 (0)