Skip to content

Commit 5cd06dc

Browse files
author
Raphael Krupinski
committed
πŸ§‘β€πŸ’» Reorganize type modules..
1 parent e21f7be commit 5cd06dc

File tree

8 files changed

+17
-58
lines changed

8 files changed

+17
-58
lines changed

β€Žsrc/lapidary/runtime/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
__all__ = (
2-
'APIKeyAuth',
32
'ClientBase',
4-
'CookieApiKey',
53
'ModelBase',
64
'NamedAuth',
75
'ParamStyle',
@@ -21,12 +19,11 @@
2119
'Query',
2220
)
2321

24-
from .auth import APIKeyAuth, NamedAuth, SecurityRequirements
2522
from .client_base import ClientBase
2623
from .model import ModelBase
27-
from .model.api_key import CookieApiKey
2824
from .model.encode_param import ParamStyle
2925
from .model.params import RequestBody
3026
from .model.response_map import Responses
3127
from .operation import delete, get, head, patch, post, put, trace
3228
from .param import Cookie, Header, Path, Query
29+
from .types_ import NamedAuth, SecurityRequirements

β€Žsrc/lapidary/runtime/_httpx.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33

44
UseClientDefault: typing.TypeAlias = httpx._client.UseClientDefault # pylint: disable=protected-access
55
PrimitiveData: typing.TypeAlias = httpx._types.PrimitiveData # pylint: disable=protected-access
6+
ParamValue: typing.TypeAlias = typing.Union[PrimitiveData, typing.Sequence[PrimitiveData]]
7+
AuthType: typing.TypeAlias = typing.Union[httpx.Auth, UseClientDefault, None]

β€Žsrc/lapidary/runtime/auth.py

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,9 @@
11
__all__ = [
2-
'APIKeyAuth',
3-
'AuthType',
4-
'MultiAuth',
5-
'NamedAuth',
6-
'SecurityRequirements',
2+
'CookieApiKey',
3+
'HeaderApiKey',
4+
'QueryApiKey',
75
]
86

9-
import abc
10-
import dataclasses as dc
7+
from httpx_auth import HeaderApiKey, QueryApiKey
118

12-
import httpx
13-
import httpx_auth
14-
import typing_extensions as typing
15-
16-
from . import _httpx
179
from .model.api_key import CookieApiKey
18-
19-
AuthType: typing.TypeAlias = typing.Union[httpx.Auth, _httpx.UseClientDefault, None]
20-
MultiAuth: typing.TypeAlias = httpx_auth._authentication._MultiAuth # pylint: disable=protected-access
21-
NamedAuth: typing.TypeAlias = tuple[str, httpx.Auth]
22-
SecurityRequirements: typing.TypeAlias = typing.Mapping[str, typing.Iterable[str]]
23-
24-
25-
@dc.dataclass
26-
class AuthFactory(abc.ABC):
27-
security_name: str
28-
29-
@abc.abstractmethod
30-
def __call__(self, body: object) -> NamedAuth:
31-
pass
32-
33-
34-
APIKeyAuthLocation: typing.TypeAlias = typing.Literal['cookie', 'header', 'query']
35-
36-
api_key_in: typing.Mapping[APIKeyAuthLocation, typing.Callable[[str, str], httpx.Auth]] = {
37-
'cookie': CookieApiKey,
38-
'header': httpx_auth.HeaderApiKey,
39-
'query': httpx_auth.QueryApiKey,
40-
}
41-
42-
43-
@dc.dataclass
44-
class APIKeyAuth(AuthFactory):
45-
in_: APIKeyAuthLocation
46-
name: str
47-
format: str
48-
49-
def __call__(self, body: object) -> NamedAuth:
50-
typ = api_key_in[self.in_]
51-
return self.security_name, typ(self.format.format(body=body), self.name) # type: ignore[misc]

β€Žsrc/lapidary/runtime/client_base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66

77
import httpx
88

9-
from .auth import AuthType, MultiAuth, NamedAuth, SecurityRequirements
9+
from ._httpx import AuthType
1010
from .model.op import OperationModel, get_operation_model
1111
from .model.request import RequestFactory
1212
from .request import build_request
13+
from .types_ import MultiAuth, NamedAuth, SecurityRequirements
1314

1415
logger = logging.getLogger(__name__)
1516

β€Žsrc/lapidary/runtime/model/params.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import pydantic
77
import typing_extensions as typing
88

9+
from .._httpx import ParamValue
910
from ..http_consts import CONTENT_TYPE, MIME_JSON
10-
from ..types_ import ParamValue
1111
from .encode_param import Encoder, ParamStyle, get_encode_fn
1212

1313
if typing.TYPE_CHECKING:

β€Žsrc/lapidary/runtime/operation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import typing_extensions as typing
66

7-
from . import SecurityRequirements
7+
from .types_ import SecurityRequirements
88

99
if typing.TYPE_CHECKING:
1010
from .client_base import ClientBase

β€Žsrc/lapidary/runtime/param.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
import typing_extensions as typing
55

6+
from ._httpx import ParamValue
67
from .model.encode_param import ParamStyle
78
from .model.params import Param
8-
from .types_ import ParamValue
99

1010
if typing.TYPE_CHECKING:
1111
from .model.request import RequestBuilder

β€Žsrc/lapidary/runtime/types_.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import httpx
2+
import httpx_auth
13
import typing_extensions as typing
24

3-
from . import _httpx
4-
5-
Serializer: typing.TypeAlias = typing.Callable[[typing.Any], typing.Union[str, bytes]]
6-
ParamValue: typing.TypeAlias = typing.Union[_httpx.PrimitiveData, typing.Sequence[_httpx.PrimitiveData]]
5+
MultiAuth: typing.TypeAlias = httpx_auth._authentication._MultiAuth # pylint: disable=protected-access
6+
NamedAuth: typing.TypeAlias = tuple[str, httpx.Auth]
7+
SecurityRequirements: typing.TypeAlias = typing.Mapping[str, typing.Iterable[str]]

0 commit comments

Comments
Β (0)