1
1
import hmac
2
2
import hashlib
3
- from typing import Any , Dict , Tuple
3
+ from typing import Any , Dict , Optional , Tuple
4
4
import requests
5
5
6
6
@@ -22,24 +22,24 @@ def _compute_query(self, obj: Dict[str, Any]) -> str:
22
22
filtered = {k : str (v ) for k , v in obj .items () if v is not None }
23
23
return urlencode (filtered )
24
24
25
- def generate_url (self , path : str , params : Dict [str , Any ] | None = None ) -> str :
25
+ def generate_url (self , path : str , params : Optional [ Dict [str , Any ]] = None ) -> str :
26
26
params = params or {}
27
27
query = self ._compute_query ({** params , "access_key" : self .access_key })
28
28
return f"{ self .base_url } { path } ?{ query } "
29
29
30
- def generate_signed_url (self , path : str , params : Dict [str , Any ] | None = None ) -> str :
30
+ def generate_signed_url (self , path : str , params : Optional [ Dict [str , Any ]] = None ) -> str :
31
31
params = params or {}
32
32
query = self ._compute_query ({** params , "access_key" : self .access_key })
33
33
signature = self ._sign_request (query )
34
34
return f"{ self .base_url } { path } ?{ query } &signature={ signature } "
35
35
36
- def get (self , path : str , options : Dict [str , Any ] | None = None , signed : bool = False ,
36
+ def get (self , path : str , options : Optional [ Dict [str , Any ]] = None , signed : bool = False ,
37
37
** request_kwargs : Any ) -> Tuple [Any , Dict [str , Any ]]:
38
38
url = self .generate_signed_url (path , options ) if signed else self .generate_url (path , options )
39
39
response = requests .get (url , ** request_kwargs )
40
40
return response .content , dict (response .headers )
41
41
42
- def post (self , path : str , options : Dict [str , Any ] | None = None , ** request_kwargs : Any ) -> Tuple [Any , Dict [str , Any ]]:
42
+ def post (self , path : str , options : Optional [ Dict [str , Any ]] = None , ** request_kwargs : Any ) -> Tuple [Any , Dict [str , Any ]]:
43
43
url = f"{ self .base_url } { path } "
44
44
headers = {"X-Access-Key" : self .access_key , ** request_kwargs .pop ("headers" , {})}
45
45
response = requests .post (url , json = options or {}, headers = headers , ** request_kwargs )
@@ -51,7 +51,7 @@ def delete(self, path: str, **request_kwargs: Any) -> Any:
51
51
response = requests .delete (url , headers = headers , ** request_kwargs )
52
52
return response .json ()
53
53
54
- def patch (self , path : str , options : Dict [str , Any ] | None = None , ** request_kwargs : Any ) -> Any :
54
+ def patch (self , path : str , options : Optional [ Dict [str , Any ]] = None , ** request_kwargs : Any ) -> Any :
55
55
url = f"{ self .base_url } { path } "
56
56
headers = {"X-Access-Key" : self .access_key , ** request_kwargs .pop ("headers" , {})}
57
57
response = requests .patch (url , json = options or {}, headers = headers , ** request_kwargs )
0 commit comments