django-bolt 0.2.6__cp310-abi3-win_amd64.whl → 0.2.7__cp310-abi3-win_amd64.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.

Potentially problematic release.


This version of django-bolt might be problematic. Click here for more details.

django_bolt/_core.pyd CHANGED
Binary file
@@ -366,25 +366,34 @@ class Command(BaseCommand):
366
366
 
367
367
  def import_api(self, dotted_path):
368
368
  """Import a BoltAPI instance from dotted path like 'myapp.api:api'"""
369
+ if ':' not in dotted_path:
370
+ return None
371
+
372
+ module_path, attr_name = dotted_path.split(':', 1)
373
+
369
374
  try:
370
- if ':' not in dotted_path:
371
- return None
372
-
373
- module_path, attr_name = dotted_path.split(':', 1)
374
375
  module = importlib.import_module(module_path)
375
-
376
- if not hasattr(module, attr_name):
376
+ except ModuleNotFoundError as e:
377
+ # Check if the error is for the target module itself (optional)
378
+ # or for a dependency within the module (fatal error)
379
+ if e.name == module_path or e.name == module_path.split('.')[0]:
380
+ # Target module doesn't exist - this is fine, api.py is optional
377
381
  return None
378
-
379
- api = getattr(module, attr_name)
380
-
381
- # Verify it's a BoltAPI instance
382
- if isinstance(api, BoltAPI):
383
- return api
384
-
385
- except (ImportError, AttributeError, ValueError):
386
- pass
387
-
382
+ else:
383
+ # Module exists but has a missing dependency - let the original error bubble up
384
+ # This preserves the full traceback for debugging
385
+ raise
386
+
387
+ # If attribute doesn't exist, return None (not an error, just doesn't have that attr)
388
+ if not hasattr(module, attr_name):
389
+ return None
390
+
391
+ api = getattr(module, attr_name)
392
+
393
+ # Verify it's a BoltAPI instance
394
+ if isinstance(api, BoltAPI):
395
+ return api
396
+
388
397
  return None
389
398
 
390
399
  def merge_apis(self, apis):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-bolt
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -25,7 +25,7 @@ Requires-Dist: click>=8.1
25
25
  Requires-Dist: msgspec>=0.18
26
26
  Requires-Dist: multipart>=1.3
27
27
  Requires-Dist: pyjwt>=2.10.1
28
- Requires-Dist: uvloop>=0.22.1
28
+ Requires-Dist: uvloop>=0.22.1 ; sys_platform != 'win32'
29
29
  Requires-Dist: pyyaml>=6.0 ; extra == 'yaml'
30
30
  Provides-Extra: yaml
31
31
  Summary: High-performance API framework for Django with Rust-powered endpoints delivering 60k+ RPS
@@ -1,8 +1,8 @@
1
- django_bolt-0.2.6.dist-info/METADATA,sha256=om36DJTHrh5A_iIIHnQjExX1UxfcVyIZ7G2GC_LBb88,22010
2
- django_bolt-0.2.6.dist-info/WHEEL,sha256=4EDp_7DiFfWl1yYv5M4wSosAn5L_xgD1dyrQxQxfCx8,95
3
- django_bolt-0.2.6.dist-info/entry_points.txt,sha256=cUEGAdiOY6BryNhsgOS_50AONPPHajI3yvhqr56ZiaU,51
1
+ django_bolt-0.2.7.dist-info/METADATA,sha256=_varQS5ZLBLJVCW7vUIZn-DQE9nK5HuAoVmDli3pEQQ,22036
2
+ django_bolt-0.2.7.dist-info/WHEEL,sha256=4EDp_7DiFfWl1yYv5M4wSosAn5L_xgD1dyrQxQxfCx8,95
3
+ django_bolt-0.2.7.dist-info/entry_points.txt,sha256=cUEGAdiOY6BryNhsgOS_50AONPPHajI3yvhqr56ZiaU,51
4
4
  django_bolt/__init__.py,sha256=BerkkdUuHfxTJUKTFoXxfjYr6OFCb3MH88NIBEjphm4,3183
5
- django_bolt/_core.pyd,sha256=Mo8Mc3_VtRBiEQF78luX5ziu4lig9Q9poEiW3sqlPwc,8912384
5
+ django_bolt/_core.pyd,sha256=7wP1RQ3TG4ecYpPqOP-cfaHmmuerHq3HVIvxDrR0Y-8,8912384
6
6
  django_bolt/_json.py,sha256=oGxi29DHB8UYvbqjtqtrP6gThk7Qonlw333c4_cTr6s,4917
7
7
  django_bolt/admin/__init__.py,sha256=BNN1afSvWvt-377rNzZLdNDEvKyMZXkmB_0MhTxAN8k,601
8
8
  django_bolt/admin/admin_detection.py,sha256=1yQkLx9rF5DLMjJqbx8n4c82UgS9JEAnUcPdRfFqAXk,5825
@@ -33,7 +33,7 @@ django_bolt/logging/config.py,sha256=SE_7yvYzPVdgvMUAK9yU3Dyn2HJY_EVkajm0aAhgcNw
33
33
  django_bolt/logging/middleware.py,sha256=_tkVN8cN8BloLv7Ebk-2RKBFkH4ooOTNs_dAxXSa0yU,10057
34
34
  django_bolt/management/__init__.py,sha256=f0hFqUIOIxXbeDzGL06KrZqWGSsIGVSVVh3EemtatMY,38
35
35
  django_bolt/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- django_bolt/management/commands/runbolt.py,sha256=sm7QcCuib4g9EOOi4_rz5ClwRBHJcSrE7BwZV6YEKVs,18567
36
+ django_bolt/management/commands/runbolt.py,sha256=sLTUuaOTZhYq7LB4FYTRmxuGf8RGhKlPiA6LAQtvjsI,19062
37
37
  django_bolt/middleware/__init__.py,sha256=C6e6vdSLqe4brMrKR4TueroD4f_OPsnoZZDlxkbyjbw,608
38
38
  django_bolt/middleware/compiler.py,sha256=Knxh3XouU70ymIskDB-JWn1TcHSMPQvUBXtTPHEJJRY,4766
39
39
  django_bolt/middleware/middleware.py,sha256=Qdr16OM15oOS1OYNnxFY3hJ0un9E8VaVwht-A8Qcuws,8113
@@ -89,4 +89,4 @@ django_bolt/testing/helpers.py,sha256=hq2HD1IEwHuW8tMgZO9ZW6BFdcE_JQXaV8sZc58LBD
89
89
  django_bolt/types.py,sha256=sk8huP2mArTr5A7FmTVmIke5z0oR-SW0OmzzRfrRlxQ,7982
90
90
  django_bolt/typing.py,sha256=sGlFUUXY8EJbYWCgARgNGLZPu7SaxxohZaSx1SRLYaE,8686
91
91
  django_bolt/views.py,sha256=KewSpL6g-zZxXnEkwun6hueX3S_Eji-d2dawzoqe-GM,41715
92
- django_bolt-0.2.6.dist-info/RECORD,,
92
+ django_bolt-0.2.7.dist-info/RECORD,,