Skip to content

Commit 20815e4

Browse files
committed
refactoring fixes
1 parent e6ac9c7 commit 20815e4

File tree

2 files changed

+75
-67
lines changed

2 files changed

+75
-67
lines changed

servicestack/clients.py

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import inspect
33
import json
44
import requests
5+
import typing
56
from requests.exceptions import HTTPError
67
from requests.models import Response
78

@@ -70,7 +71,8 @@ def append_querystring(url: str, args: dict[str, Any]):
7071
if args:
7172
for key in args:
7273
val = args[key]
73-
if val is None: continue
74+
if val is None:
75+
continue
7476
url += '&' if '?' in url else '?'
7577
url += key + '=' + qsvalue(val)
7678
return url
@@ -107,7 +109,7 @@ def _json_encoder(obj: Any):
107109
return clean_any(asdict(obj))
108110
if hasattr(obj, '__dict__'):
109111
return vars(obj)
110-
if isinstance(obj, (datetime.date, datetime)):
112+
if isinstance(obj, datetime):
111113
return obj.isoformat()
112114
if isinstance(obj, timedelta):
113115
return to_timespan(obj)
@@ -128,8 +130,8 @@ class TypeConverters:
128130
deserializers: dict[Type, Callable[[Any], Any]]
129131

130132
@staticmethod
131-
def register(type: Type, converter: Callable[[Any], Any]):
132-
TypeConverters.deserializers[type] = converter
133+
def register_deserializer(cls: Type, deserializer: Callable[[Any], Any]):
134+
TypeConverters.deserializers[cls] = deserializer
133135

134136

135137
TypeConverters.deserializers = {
@@ -160,9 +162,9 @@ def generic_args(cls: Type):
160162

161163
def _resolve_forwardref(cls: Type, orig: Type = None):
162164
type_name = cls.__forward_arg__
163-
if not orig is None and orig.__name__ == type_name:
165+
if orig is not None and orig.__name__ == type_name:
164166
return orig
165-
if not type_name in globals():
167+
if type_name not in globals():
166168
raise TypeError(f"Could not resolve ForwardRef('{type_name}')")
167169
return globals()[type_name]
168170

@@ -176,7 +178,8 @@ def unwrap(cls: Type):
176178

177179

178180
def dict_get(name: str, obj: dict, case: Callable[[str], str] = None):
179-
if name in obj: return obj[name]
181+
if name in obj:
182+
return obj[name]
180183
if case:
181184
name_case = case(name)
182185
if name_case in obj:
@@ -192,16 +195,19 @@ def dict_get(name: str, obj: dict, case: Callable[[str], str] = None):
192195
return None
193196

194197

195-
def _resolve_type(cls: Type, substitute_types: Dict[str, type]):
196-
if substitute_types is None: return cls
198+
def _resolve_type(cls: Type, substitute_types: Dict[Type, type]):
199+
if substitute_types is None:
200+
return cls
197201
return substitute_types[cls] if cls in substitute_types else cls
198202

199203

200-
def convert(into: Type, obj: Any, substitute_types: Dict[str, type] = None):
201-
if obj is None: return None
204+
def convert(into: Type, obj: Any, substitute_types: Dict[Type, type] = None):
205+
if obj is None:
206+
return None
202207
into = unwrap(into)
203208
into = _resolve_type(into, substitute_types)
204-
if Log.debug_enabled(): Log.debug(f"convert({into}, {obj})")
209+
if Log.debug_enabled():
210+
Log.debug(f"convert({into}, {obj})")
205211

206212
generic_def = get_origin(into)
207213
if generic_def is not None and is_dataclass(generic_def):
@@ -260,7 +266,8 @@ def convert(into: Type, obj: Any, substitute_types: Dict[str, type] = None):
260266

261267

262268
def from_json(into: Type, json_str: str):
263-
if json_str is None or json_str == "": return None
269+
if json_str is None or json_str == "":
270+
return None
264271
json_obj = json.loads(json_str)
265272
return convert(into, json_obj)
266273

@@ -332,25 +339,25 @@ def create_url_from_dto(self, method: str, request: Any):
332339
url = append_querystring(url, request.__dict__)
333340
return url
334341

335-
def get(self, request, args=None):
342+
def get(self, request: IReturn[T], args=None) -> T:
336343
return self.send(request, "GET", None, args)
337344

338-
def post(self, request, body=None, args=None):
345+
def post(self, request: IReturn[T], body=None, args=None) -> T:
339346
return self.send(request, "POST", body, args)
340347

341-
def put(self, request, body=None, args=None):
348+
def put(self, request: IReturn[T], body=None, args=None) -> T:
342349
return self.send(request, "PUT", body, args)
343350

344-
def patch(self, request, body=None, args=None):
351+
def patch(self, request: IReturn[T], body=None, args=None) -> T:
345352
return self.send(request, "PATCH", body, args)
346353

347-
def delete(self, request, args=None):
354+
def delete(self, request: IReturn[T], args=None) -> T:
348355
return self.send(request, "DELETE", None, args)
349356

350-
def options(self, request, args=None):
357+
def options(self, request: IReturn[T], args=None) -> T:
351358
return self.send(request, "OPTIONS", None, args)
352359

353-
def head(self, request, args=None):
360+
def head(self, request: IReturn[T], args=None) -> T:
354361
return self.send(request, "HEAD", None, args)
355362

356363
def to_absolute_url(self, path_or_url: str):
@@ -418,7 +425,8 @@ def assert_valid_batch_request(self, requests: list):
418425
if not isinstance(requests, list):
419426
raise TypeError(f"'{nameof(requests)}' is not a List")
420427

421-
if len(requests) == 0: return []
428+
if len(requests) == 0:
429+
return []
422430

423431
request = requests[0]
424432
if not isinstance(request, IReturn) and not isinstance(request, IReturnVoid):
@@ -482,7 +490,8 @@ def _create_response(self, response: Response, info: SendContext):
482490
return response.content
483491

484492
json_str = response.text
485-
if Log.debug_enabled: Log.debug(f"json_str: {json_str}")
493+
if Log.debug_enabled:
494+
Log.debug(f"json_str: {json_str}")
486495

487496
if into is None:
488497
return json.loads(json_str)

0 commit comments

Comments
 (0)