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

Commitda6bc2b

Browse files
author
Liora Milbaum
committed
feat: Bootstrapping the http_engines concept
1 parentef5feb4 commitda6bc2b

File tree

3 files changed

+32
-5
lines changed

3 files changed

+32
-5
lines changed

‎gitlab/client.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
importos
44
importre
55
importtime
6-
fromtypingimportAny,cast,Dict,List,Optional,Tuple,TYPE_CHECKING,Union
6+
fromtypingimportAny,cast,Dict,List,Optional,Tuple,Type,TYPE_CHECKING,Union
77
fromurllibimportparse
88

99
importrequests
@@ -14,7 +14,7 @@
1414
importgitlab.config
1515
importgitlab.const
1616
importgitlab.exceptions
17-
fromgitlabimportutils
17+
fromgitlabimporthttp_backends,utils
1818

1919
REDIRECT_MSG= (
2020
"python-gitlab detected a {status_code} ({reason!r}) redirection. You must update "
@@ -32,6 +32,7 @@
3232

3333

3434
classGitlab:
35+
3536
"""Represents a GitLab server connection.
3637
3738
Args:
@@ -53,6 +54,10 @@ class Gitlab:
5354
or 52x responses. Defaults to False.
5455
keep_base_url: keep user-provided base URL for pagination if it
5556
differs from response headers
57+
58+
Keyward Args:
59+
requests.Session session: Http Requests Session
60+
RequestsBackend http_backend: Backend that will be used to make http requests
5661
"""
5762

5863
def__init__(
@@ -66,15 +71,14 @@ def __init__(
6671
http_password:Optional[str]=None,
6772
timeout:Optional[float]=None,
6873
api_version:str="4",
69-
session:Optional[requests.Session]=None,
7074
per_page:Optional[int]=None,
7175
pagination:Optional[str]=None,
7276
order_by:Optional[str]=None,
7377
user_agent:str=gitlab.const.USER_AGENT,
7478
retry_transient_errors:bool=False,
7579
keep_base_url:bool=False,
80+
**kwargs:Any,
7681
)->None:
77-
7882
self._api_version=str(api_version)
7983
self._server_version:Optional[str]=None
8084
self._server_revision:Optional[str]=None
@@ -98,7 +102,11 @@ def __init__(
98102
self._set_auth_info()
99103

100104
#: Create a session object for requests
101-
self.session=sessionorrequests.Session()
105+
http_backend:Type[http_backends.DefaultBackend]=kwargs.pop(
106+
"http_backend",http_backends.DefaultBackend
107+
)
108+
self.http_backend=http_backend(**kwargs)
109+
self.session=self.http_backend.client
102110

103111
self.per_page=per_page
104112
self.pagination=pagination

‎gitlab/http_backends/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
"""
2+
Defines http backends for processing http requests
3+
"""
4+
5+
from .requests_backendimportRequestsBackend
6+
7+
DefaultBackend=RequestsBackend
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
fromtypingimportOptional
2+
3+
importrequests
4+
5+
6+
classRequestsBackend:
7+
def__init__(self,session:Optional[requests.Session]=None)->None:
8+
self._client:requests.Session=sessionorrequests.Session()
9+
10+
@property
11+
defclient(self)->requests.Session:
12+
returnself._client

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp