u-toolkit 0.1.3__py3-none-any.whl → 0.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
u_toolkit/fastapi/cbv.py CHANGED
@@ -306,6 +306,13 @@ class CBV:
306
306
 
307
307
  update_parameters(collect_cls_dependencies, *parameters)
308
308
 
309
+ def new_fn(method_name, kwargs):
310
+ instance = self._build_cls(cls)
311
+ dependencies = kwargs.pop(collect_cls_dependencies.__name__)
312
+ for dep_name, dep_value in dependencies.items():
313
+ setattr(instance, dep_name, dep_value)
314
+ return getattr(instance, method_name)
315
+
309
316
  def decorator(method: Callable):
310
317
  method_name = method.__name__
311
318
 
@@ -321,13 +328,18 @@ class CBV:
321
328
 
322
329
  update_parameters(sign_cls_fn, *(parameters[1:]))
323
330
 
331
+ if inspect.iscoroutinefunction(method):
332
+
333
+ @wraps(sign_cls_fn)
334
+ async def awrapper(*args, **kwargs):
335
+ fn = new_fn(method_name, kwargs)
336
+ return await fn(*args, **kwargs)
337
+
338
+ return awrapper
339
+
324
340
  @wraps(sign_cls_fn)
325
341
  def wrapper(*args, **kwargs):
326
- instance = self._build_cls(cls)
327
- dependencies = kwargs.pop(collect_cls_dependencies.__name__)
328
- for dep_name, dep_value in dependencies.items():
329
- setattr(instance, dep_name, dep_value)
330
- fn = getattr(instance, method_name)
342
+ fn = new_fn(method_name, kwargs)
331
343
  return fn(*args, **kwargs)
332
344
 
333
345
  return wrapper
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: u-toolkit
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: pydantic>=2.11.3
@@ -11,7 +11,7 @@ u_toolkit/object.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  u_toolkit/path.py,sha256=IkyIHcU9hKBCOZfF30FrKf4CfL-MH91fjeYF9EY7eos,128
12
12
  u_toolkit/signature.py,sha256=wXyGFgb_E68xevYWx7gIy9P5lVZmHUebpf2EGI_fCnw,2167
13
13
  u_toolkit/fastapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- u_toolkit/fastapi/cbv.py,sha256=DDkScAD0ab3ws4rRamy-Fw_TXzbpsCTY99xzzlqfXy8,10225
14
+ u_toolkit/fastapi/cbv.py,sha256=WRp6jgwWFrdc_ujpUb9Pn6-BkkRfyEshVA_GsGFL8_s,10580
15
15
  u_toolkit/fastapi/config.py,sha256=kGpokR9XXr1KxMA1GVKYkCdKwqIQAIwOJ-v6sGbqzAQ,267
16
16
  u_toolkit/fastapi/exception.py,sha256=5E4wAJYwp0RJ4SEBVkchOgrgfwCgniQ8Mtg1O5sWUXE,3288
17
17
  u_toolkit/fastapi/helpers.py,sha256=BCMMLxa1c6BMA_rKq-hCi0iyEjrR3Z5rPMeTvgaVJB0,447
@@ -30,7 +30,7 @@ u_toolkit/sqlalchemy/type_vars.py,sha256=m2VeV41CBIK_1QX3w2kgz-n556sILAGZ-Kaz3TD
30
30
  u_toolkit/sqlalchemy/orm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  u_toolkit/sqlalchemy/orm/fields.py,sha256=3zoYil23I6YLtc_59aHDt9w5l1NBTkePT9AfXI3DMiY,593
32
32
  u_toolkit/sqlalchemy/orm/models.py,sha256=V8vf4ps3phAmwxyaFYK7pw8Igz7h097o4QBjKB0gwC8,705
33
- u_toolkit-0.1.3.dist-info/METADATA,sha256=4ibTb4RAFOVw_aJ4Ays4FxrhsjY9IZhpWFIPhkjFcuo,365
34
- u_toolkit-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
- u_toolkit-0.1.3.dist-info/entry_points.txt,sha256=hTfAYCd5vvRiqgnJk2eBsoRIiIVB9pK8WZm3Q3jjKFU,45
36
- u_toolkit-0.1.3.dist-info/RECORD,,
33
+ u_toolkit-0.1.4.dist-info/METADATA,sha256=v6ehDmn-iQaNDZSx4KZgQDlWqKHvzKStbaRqH1IcYrw,365
34
+ u_toolkit-0.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
35
+ u_toolkit-0.1.4.dist-info/entry_points.txt,sha256=hTfAYCd5vvRiqgnJk2eBsoRIiIVB9pK8WZm3Q3jjKFU,45
36
+ u_toolkit-0.1.4.dist-info/RECORD,,