@@ -33,7 +33,7 @@ def __init__(self, sdl, name: str):
3333
3434 def versions (self ):
3535 try :
36- r = requests .get (self .sdl .url + f"/mr/package/{ self .name } /" )
36+ r = self . sdl . rs .get (self .sdl .url + f"/mr/package/{ self .name } /" )
3737 except RequestException as e :
3838 raise SnapshotDataLakeError (e )
3939 for v in r .json ().get ("result" , []):
@@ -55,7 +55,7 @@ def srcfiles(self) -> Generator["RemoteFile", None, None]:
5555 All files associated with the source package
5656 """
5757 try :
58- r = requests .get (
58+ r = self . sdl . rs .get (
5959 self .sdl .url + f"/mr/package/{ self .name } /{ self .version } " "/srcfiles?fileinfo=1"
6060 )
6161 if r .status_code == 404 :
@@ -78,7 +78,7 @@ def binpackages(self) -> Generator["BinaryPackage", None, None]:
7878 All binary packages created from this source package
7979 """
8080 try :
81- r = requests .get (
81+ r = self . sdl . rs .get (
8282 self .sdl .url + f"/mr/package/{ self .name } /{ self .version } " "/binpackages"
8383 )
8484 data = r .json ()
@@ -121,7 +121,7 @@ def files(self, arch: str = None) -> Generator["RemoteFile", None, None]:
121121 # resolve via binary only
122122 api = self .sdl .url + f"/mr/binary/{ self .binname } /{ self .binversion } /binfiles?fileinfo=1"
123123 try :
124- r = requests .get (api )
124+ r = self . sdl . rs .get (api )
125125 if r .status_code == 404 :
126126 raise NotFoundOnSnapshotError ()
127127 data = r .json ()
@@ -170,12 +170,16 @@ class SnapshotDataLake:
170170 Snapshot instance to query against
171171 """
172172
173- def __init__ (self , url = "https://snapshot.debian.org" ):
173+ def __init__ (
174+ self , url = "https://snapshot.debian.org" , session : requests .Session = requests .Session ()
175+ ):
174176 self .url = url
177+ # reuse the same connection for all requests
178+ self .rs = session
175179
176180 def packages (self ) -> Generator [Package , None , None ]:
177181 try :
178- r = requests .get (self .url + "/mr/package/" )
182+ r = self . rs .get (self .url + "/mr/package/" )
179183 data = r .json ()
180184 except RequestException as e :
181185 raise SnapshotDataLakeError (e )
@@ -184,7 +188,7 @@ def packages(self) -> Generator[Package, None, None]:
184188
185189 def fileinfo (self , hash ):
186190 try :
187- r = requests .get (self .url + f"/mr/file/{ hash } /info" )
191+ r = self . rs .get (self .url + f"/mr/file/{ hash } /info" )
188192 data = r .json ()
189193 except RequestException as e :
190194 raise SnapshotDataLakeError (e )
0 commit comments