Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit183d29d

Browse files
author
Liora Milbaum
committed
feat: Initial support for httpx
1 parenteec6c02 commit183d29d

File tree

7 files changed

+52
-6
lines changed

7 files changed

+52
-6
lines changed

‎.pre-commit-config.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ repos:
2323
rev:v2.15.4
2424
hooks:
2525
-id:pylint
26-
additional_dependencies:
26+
additional_dependencies:
2727
-argcomplete==2.0.0
2828
-pytest==7.1.3
29+
-httpx==0.23.0
2930
-requests==2.28.1
3031
-requests-toolbelt==0.9.1
3132
files:'gitlab/'
@@ -35,6 +36,7 @@ repos:
3536
-id:mypy
3637
args:[]
3738
additional_dependencies:
39+
-httpx==0.23.0
3840
-types-PyYAML==6.0.12
3941
-types-requests==2.28.11.2
4042
-types-setuptools==64.0.1

‎gitlab/client.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
importos
44
importre
5+
importsys
56
importtime
67
fromtypingimportAny,cast,Dict,List,Optional,Tuple,TYPE_CHECKING,Union
78
fromurllibimportparse
89

10+
importhttpx
911
importrequests
1012
importrequests.utils
1113
fromrequests_toolbelt.multipart.encoderimportMultipartEncoder# type: ignore
@@ -16,6 +18,14 @@
1618
importgitlab.exceptions
1719
fromgitlabimportutils
1820

21+
from .clients.httpx_clientimportHttpx_Client
22+
from .clients.requests_clientimportRequests_Client
23+
24+
ifsys.version_info>= (3,8):
25+
fromtypingimportLiteral
26+
else:
27+
fromtyping_extensionsimportLiteral
28+
1929
REDIRECT_MSG= (
2030
"python-gitlab detected a {status_code} ({reason!r}) redirection. You must update "
2131
"your GitLab URL to the correct URL to avoid issues. The redirection was from: "
@@ -66,7 +76,9 @@ def __init__(
6676
http_password:Optional[str]=None,
6777
timeout:Optional[float]=None,
6878
api_version:str="4",
79+
http:Optional[Literal["requests","httpx"]]="requests",
6980
session:Optional[requests.Session]=None,
81+
client:Optional[httpx.Client]=None,
7082
per_page:Optional[int]=None,
7183
pagination:Optional[str]=None,
7284
order_by:Optional[str]=None,
@@ -97,8 +109,11 @@ def __init__(
97109
self.job_token=job_token
98110
self._set_auth_info()
99111

100-
#: Create a session object for requests
101-
self.session=sessionorrequests.Session()
112+
ifhttp=="requests":
113+
self._requests_client=Requests_Client(session=session)
114+
self.session=self._requests_client.get_session
115+
elifhttp=="httpx":
116+
self._httpx_client=Httpx_Client(client=client)
102117

103118
self.per_page=per_page
104119
self.pagination=pagination

‎gitlab/clients/__init__.py

Whitespace-only changes.

‎gitlab/clients/httpx_client.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
fromtypingimportOptional
2+
3+
importhttpx
4+
5+
6+
classHttpx_Client:
7+
def__init__(
8+
self,
9+
client:Optional[httpx.Client]=None,
10+
)->None:
11+
self._client=clientorhttpx.Client()

‎gitlab/clients/requests_client.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
fromtypingimportOptional
2+
3+
importrequests
4+
5+
6+
classRequests_Client:
7+
def__init__(
8+
self,
9+
session:Optional[requests.Session]=None,
10+
)->None:
11+
self._session=sessionorrequests.Session()
12+
13+
@property
14+
defget_session(self)->requests.Session:
15+
returnself._session

‎requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
requests==2.28.1
1+
httpx==0.23.0
22
requests-toolbelt==0.10.0
3+
requests==2.28.1

‎tox.ini

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ commands =
4343
[testenv:mypy]
4444
basepython = python3
4545
envdir={toxworkdir}/lint
46-
deps = -r{toxinidir}/requirements-lint.txt
46+
deps = -r requirements.txt
47+
-r requirements-lint.txt
4748
commands =
4849
mypy {posargs}
4950

@@ -57,7 +58,8 @@ commands =
5758
[testenv:pylint]
5859
basepython = python3
5960
envdir={toxworkdir}/lint
60-
deps = -r{toxinidir}/requirements-lint.txt
61+
deps = -r requirements.txt
62+
-r requirements-lint.txt
6163
commands =
6264
pylint {posargs} gitlab/
6365

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp