ez-a-sync 0.32.26__cp312-cp312-macosx_11_0_arm64.whl → 0.32.28__cp312-cp312-macosx_11_0_arm64.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 ez-a-sync might be problematic. Click here for more details.

Files changed (71) hide show
  1. a_sync/_smart.c +58 -38
  2. a_sync/_smart.cpython-312-darwin.so +0 -0
  3. a_sync/a_sync/_descriptor.c +80 -60
  4. a_sync/a_sync/_descriptor.cpython-312-darwin.so +0 -0
  5. a_sync/a_sync/_flags.c +13 -10
  6. a_sync/a_sync/_flags.cpython-312-darwin.so +0 -0
  7. a_sync/a_sync/_helpers.c +76 -56
  8. a_sync/a_sync/_helpers.cpython-312-darwin.so +0 -0
  9. a_sync/a_sync/_kwargs.c +45 -25
  10. a_sync/a_sync/_kwargs.cpython-312-darwin.so +0 -0
  11. a_sync/a_sync/abstract.c +54 -24
  12. a_sync/a_sync/abstract.cpython-312-darwin.so +0 -0
  13. a_sync/a_sync/abstract.pyi +2 -2
  14. a_sync/a_sync/base.c +186 -162
  15. a_sync/a_sync/base.cpython-312-darwin.so +0 -0
  16. a_sync/a_sync/flags.c +13 -10
  17. a_sync/a_sync/flags.cpython-312-darwin.so +0 -0
  18. a_sync/a_sync/function.c +98 -69
  19. a_sync/a_sync/function.cpython-312-darwin.so +0 -0
  20. a_sync/a_sync/method.c +157 -125
  21. a_sync/a_sync/method.cpython-312-darwin.so +0 -0
  22. a_sync/a_sync/method.pyi +2 -1
  23. a_sync/a_sync/modifiers/manager.c +60 -40
  24. a_sync/a_sync/modifiers/manager.cpython-312-darwin.so +0 -0
  25. a_sync/a_sync/property.c +104 -78
  26. a_sync/a_sync/property.cpython-312-darwin.so +0 -0
  27. a_sync/async_property/cached.c +66 -46
  28. a_sync/async_property/cached.cpython-312-darwin.so +0 -0
  29. a_sync/async_property/proxy.c +36 -16
  30. a_sync/async_property/proxy.cpython-312-darwin.so +0 -0
  31. a_sync/asyncio/as_completed.c +33 -13
  32. a_sync/asyncio/as_completed.cpython-312-darwin.so +0 -0
  33. a_sync/asyncio/create_task.c +59 -21
  34. a_sync/asyncio/create_task.cpython-312-darwin.so +0 -0
  35. a_sync/asyncio/gather.c +42 -22
  36. a_sync/asyncio/gather.cpython-312-darwin.so +0 -0
  37. a_sync/asyncio/igather.c +42 -18
  38. a_sync/asyncio/igather.cpython-312-darwin.so +0 -0
  39. a_sync/asyncio/sleep.c +24 -4
  40. a_sync/asyncio/sleep.cpython-312-darwin.so +0 -0
  41. a_sync/debugging.c +52 -32
  42. a_sync/debugging.cpython-312-darwin.so +0 -0
  43. a_sync/exceptions.c +36 -20
  44. a_sync/exceptions.cpython-312-darwin.so +0 -0
  45. a_sync/executor.py +44 -0
  46. a_sync/functools.c +36 -16
  47. a_sync/functools.cpython-312-darwin.so +0 -0
  48. a_sync/iter.c +165 -95
  49. a_sync/iter.cpython-312-darwin.so +0 -0
  50. a_sync/primitives/_debug.c +65 -45
  51. a_sync/primitives/_debug.cpython-312-darwin.so +0 -0
  52. a_sync/primitives/_loggable.c +46 -20
  53. a_sync/primitives/_loggable.cpython-312-darwin.so +0 -0
  54. a_sync/primitives/locks/counter.c +93 -63
  55. a_sync/primitives/locks/counter.cpython-312-darwin.so +0 -0
  56. a_sync/primitives/locks/event.c +75 -54
  57. a_sync/primitives/locks/event.cpython-312-darwin.so +0 -0
  58. a_sync/primitives/locks/prio_semaphore.c +123 -83
  59. a_sync/primitives/locks/prio_semaphore.cpython-312-darwin.so +0 -0
  60. a_sync/primitives/locks/prio_semaphore.pyi +2 -2
  61. a_sync/primitives/locks/semaphore.c +96 -69
  62. a_sync/primitives/locks/semaphore.cpython-312-darwin.so +0 -0
  63. a_sync/primitives/locks/semaphore.pyi +10 -9
  64. a_sync/primitives/queue.py +5 -1
  65. a_sync/utils/repr.c +55 -35
  66. a_sync/utils/repr.cpython-312-darwin.so +0 -0
  67. {ez_a_sync-0.32.26.dist-info → ez_a_sync-0.32.28.dist-info}/METADATA +1 -1
  68. {ez_a_sync-0.32.26.dist-info → ez_a_sync-0.32.28.dist-info}/RECORD +71 -71
  69. {ez_a_sync-0.32.26.dist-info → ez_a_sync-0.32.28.dist-info}/WHEEL +0 -0
  70. {ez_a_sync-0.32.26.dist-info → ez_a_sync-0.32.28.dist-info}/licenses/LICENSE.txt +0 -0
  71. {ez_a_sync-0.32.26.dist-info → ez_a_sync-0.32.28.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- /* Generated by Cython 3.1.2 */
1
+ /* Generated by Cython 3.1.4 */
2
2
 
3
3
  /* BEGIN: Cython Metadata
4
4
  {
@@ -30,8 +30,8 @@ END: Cython Metadata */
30
30
  #elif PY_VERSION_HEX < 0x03080000
31
31
  #error Cython requires Python 3.8+.
32
32
  #else
33
- #define __PYX_ABI_VERSION "3_1_2"
34
- #define CYTHON_HEX_VERSION 0x030102F0
33
+ #define __PYX_ABI_VERSION "3_1_4"
34
+ #define CYTHON_HEX_VERSION 0x030104F0
35
35
  #define CYTHON_FUTURE_DIVISION 1
36
36
  /* CModulePreamble */
37
37
  #include <stddef.h>
@@ -394,6 +394,9 @@ END: Cython Metadata */
394
394
  enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
395
395
  #endif
396
396
  #endif
397
+ #ifndef CYTHON_LOCK_AND_GIL_DEADLOCK_AVOIDANCE_TIME
398
+ #define CYTHON_LOCK_AND_GIL_DEADLOCK_AVOIDANCE_TIME 100
399
+ #endif
397
400
  #ifndef __has_attribute
398
401
  #define __has_attribute(x) 0
399
402
  #endif
@@ -2248,18 +2251,18 @@ static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);
2248
2251
  if (!__Pyx_PyThreadState_Current->tracing) {\
2249
2252
  if (likely(__pyx_frame_code)) Py_INCREF(__pyx_frame_code);\
2250
2253
  else __pyx_frame_code = (PyObject*) __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);\
2251
- if (unlikely(!__pyx_frame_code)) goto_error;\
2252
- ret = __Pyx__TraceStartFunc(__pyx_pymonitoring_state, __pyx_frame_code, offset, skip_event);\
2253
- }\
2254
+ if (unlikely(!__pyx_frame_code)) ret = -1;\
2255
+ else ret = __Pyx__TraceStartFunc(__pyx_pymonitoring_state, __pyx_frame_code, offset, skip_event);\
2256
+ } else __pyx_frame_code = NULL;\
2254
2257
  PyGILState_Release(state);\
2255
- }\
2258
+ } else __pyx_frame_code = NULL;\
2256
2259
  } else {\
2257
2260
  if (!__Pyx_PyThreadState_Current->tracing) {\
2258
2261
  if (likely(__pyx_frame_code)) Py_INCREF(__pyx_frame_code);\
2259
2262
  else __pyx_frame_code = (PyObject*) __Pyx_createFrameCodeObject(funcname, srcfile, firstlineno);\
2260
- if (unlikely(!__pyx_frame_code)) goto_error;\
2261
- ret = __Pyx__TraceStartFunc(__pyx_pymonitoring_state, __pyx_frame_code, offset, skip_event);\
2262
- }\
2263
+ if (unlikely(!__pyx_frame_code)) ret = -1;\
2264
+ else ret = __Pyx__TraceStartFunc(__pyx_pymonitoring_state, __pyx_frame_code, offset, skip_event);\
2265
+ } else __pyx_frame_code = NULL;\
2263
2266
  }\
2264
2267
  if (unlikely(ret == -1)) goto_error;\
2265
2268
  }
@@ -3290,22 +3293,22 @@ static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, trav
3290
3293
  static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear);
3291
3294
 
3292
3295
  /* TypeImport.proto */
3293
- #ifndef __PYX_HAVE_RT_ImportType_proto_3_1_2
3294
- #define __PYX_HAVE_RT_ImportType_proto_3_1_2
3296
+ #ifndef __PYX_HAVE_RT_ImportType_proto_3_1_4
3297
+ #define __PYX_HAVE_RT_ImportType_proto_3_1_4
3295
3298
  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
3296
3299
  #include <stdalign.h>
3297
3300
  #endif
3298
3301
  #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
3299
- #define __PYX_GET_STRUCT_ALIGNMENT_3_1_2(s) alignof(s)
3302
+ #define __PYX_GET_STRUCT_ALIGNMENT_3_1_4(s) alignof(s)
3300
3303
  #else
3301
- #define __PYX_GET_STRUCT_ALIGNMENT_3_1_2(s) sizeof(void*)
3304
+ #define __PYX_GET_STRUCT_ALIGNMENT_3_1_4(s) sizeof(void*)
3302
3305
  #endif
3303
- enum __Pyx_ImportType_CheckSize_3_1_2 {
3304
- __Pyx_ImportType_CheckSize_Error_3_1_2 = 0,
3305
- __Pyx_ImportType_CheckSize_Warn_3_1_2 = 1,
3306
- __Pyx_ImportType_CheckSize_Ignore_3_1_2 = 2
3306
+ enum __Pyx_ImportType_CheckSize_3_1_4 {
3307
+ __Pyx_ImportType_CheckSize_Error_3_1_4 = 0,
3308
+ __Pyx_ImportType_CheckSize_Warn_3_1_4 = 1,
3309
+ __Pyx_ImportType_CheckSize_Ignore_3_1_4 = 2
3307
3310
  };
3308
- static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_2 check_size);
3311
+ static PyTypeObject *__Pyx_ImportType_3_1_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_4 check_size);
3309
3312
  #endif
3310
3313
 
3311
3314
  /* GetVTable.proto */
@@ -3460,7 +3463,7 @@ static unsigned long __Pyx_get_runtime_version(void);
3460
3463
  static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
3461
3464
 
3462
3465
  /* FunctionImport.proto */
3463
- static int __Pyx_ImportFunction_3_1_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig);
3466
+ static int __Pyx_ImportFunction_3_1_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig);
3464
3467
 
3465
3468
  /* MultiPhaseInitModuleState.proto */
3466
3469
  #if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
@@ -3766,7 +3769,7 @@ static const char __pyx_k_ThreadsafeSemaphore___aenter[] = "ThreadsafeSemaphore.
3766
3769
  static const char __pyx_k_must_be_a_coroutine_function[] = " must be a coroutine function";
3767
3770
  static const char __pyx_k_s_has_s_waiters_for_any_of_s[] = "%s has %s waiters for any of: %s";
3768
3771
  static const char __pyx_k_Failed_to_allocate_memory_for[] = "Failed to allocate memory for __name.";
3769
- static const char __pyx_k_5_J_t_Z_A_4q_T_a_c_Ct_PSSZZ_Rt[] = "\320\004\032\230!\330\010\031\230\022\2305\240\004\240J\320.?\270t\300<\310{\320Z^\320^{\320{~\320~\360\000\000@\002A\002\330\010\013\2104\210q\330\014\025\220T\230\021\230$\230a\230\250c\260\021\260*\270C\270t\300=\320PS\320SZ\320Z[\330\014\035\230R\230t\240>\260\023\260O\3001\330\010\017\210q";
3772
+ static const char __pyx_k_5_J_t_Z_A_4q_T_a_c_Ct_PSSZZ_Rt[] = "\320\004\032\230!\330\010\031\230\022\2305\240\004\240J\320.?\270t\300<\310{\320Z^\320^{\320{~\320~\177\360\000\000@\002A\002\330\010\013\2104\210q\330\014\025\220T\230\021\230$\230a\230\177\250c\260\021\260*\270C\270t\300=\320PS\320SZ\320Z[\330\014\035\230R\230t\240>\260\023\260O\3001\330\010\017\210q";
3770
3773
  static const char __pyx_k_DummySemaphore___reduce_cython[] = "DummySemaphore.__reduce_cython__";
3771
3774
  static const char __pyx_k_33C9A_z_r_Q_6_Q_M_t1_4q_a_q_Q_k[] = "\320\004\036\320\0363\3203C\3009\310A\360\020\000\t\020\210z\230\021\230'\240\026\240r\250\024\250Q\330\010\021\220\031\230!\2306\240\027\250\005\250Q\340\010\014\210M\230\026\230t\2401\330\010\013\2104\210q\330\014\020\220\016\230a\330\014\020\220\t\230\036\240q\250\005\250Q\340\014\020\320\020>\270k\310\021\310!\330\014\020\220\t\230\021";
3772
3775
  static const char __pyx_k_Q_5_7_6_t7RSST_AQ_IWF_7_A_4wc_Q[] = "\320\004\035\320\035-\250Q\360\022\000\t$\2405\250\003\2507\260!\2606\270\036\300t\3107\320RS\320ST\330\010!\240\023\240A\240Q\360\006\000\t\r\210I\220W\230F\240!\2407\250\"\250A\330\010\t\340\010\013\2104\210w\220c\230\021\330\014\022\220+\230Q\230a\360\006\000\t\017\210a\210t\2208\2301";
@@ -5687,8 +5690,14 @@ static PyObject *__pyx_pf_6a_sync_10primitives_5locks_9semaphore_9Semaphore_8__r
5687
5690
  * representation = f"{representation[:-1]} decorates={detail}"
5688
5691
  */
5689
5692
  __Pyx_TraceLine(145,18,0,__PYX_ERR(0, 145, __pyx_L1_error))
5690
- __pyx_t_8 = (__pyx_v_self->_decorated != Py_None)&&(__Pyx_PySet_GET_SIZE(__pyx_v_self->_decorated) != 0);
5691
- if (unlikely(((!CYTHON_ASSUME_SAFE_MACROS) && __pyx_t_8 < 0))) __PYX_ERR(0, 145, __pyx_L1_error)
5693
+ if (__pyx_v_self->_decorated == Py_None) __pyx_t_8 = 0;
5694
+ else
5695
+ {
5696
+ Py_ssize_t __pyx_temp = __Pyx_PySet_GET_SIZE(__pyx_v_self->_decorated);
5697
+ if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 145, __pyx_L1_error)
5698
+ __pyx_t_8 = (__pyx_temp != 0);
5699
+ }
5700
+
5692
5701
  if (__pyx_t_8) {
5693
5702
 
5694
5703
  /* "a_sync/primitives/locks/semaphore.pyx":146
@@ -5701,8 +5710,8 @@ static PyObject *__pyx_pf_6a_sync_10primitives_5locks_9semaphore_9Semaphore_8__r
5701
5710
  __Pyx_TraceLine(146,30,0,__PYX_ERR(0, 146, __pyx_L1_error))
5702
5711
  __pyx_t_5 = __pyx_v_self->_decorated;
5703
5712
  __Pyx_INCREF(__pyx_t_5);
5704
- __pyx_v_decorated = ((PyObject*)__pyx_t_5);
5705
5713
  __Pyx_INCREF(__pyx_t_5);
5714
+ __pyx_v_decorated = ((PyObject*)__pyx_t_5);
5706
5715
  __pyx_t_2 = __pyx_t_5;
5707
5716
  __Pyx_INCREF(__pyx_t_2);
5708
5717
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -13244,6 +13253,7 @@ static struct PyMemberDef __pyx_tp_members_DummySemaphore[] = {
13244
13253
  {NULL, 0, 0, 0, NULL}
13245
13254
  };
13246
13255
  static PyType_Slot __pyx_type_6a_sync_10primitives_5locks_9semaphore_DummySemaphore_slots[] = {
13256
+ {Py_tp_dealloc, (void *)__pyx_tp_dealloc_6a_sync_10primitives_5locks_9semaphore_Semaphore},
13247
13257
  {Py_tp_repr, (void *)__pyx_pw_6a_sync_10primitives_5locks_9semaphore_14DummySemaphore_5__repr__},
13248
13258
  {Py_tp_doc, (void *)PyDoc_STR("DummySemaphore(str name: Optional[str] = None)\n\nA dummy semaphore that implements the standard :class:`asyncio.Semaphore` API but does nothing.\n\nThis class is useful for scenarios where a semaphore interface is required but no actual synchronization is needed.\n\nExample:\n dummy_semaphore = DummySemaphore()\n\n async def no_op():\n async with dummy_semaphore:\n return 1")},
13249
13259
  {Py_tp_traverse, (void *)__pyx_tp_traverse_6a_sync_10primitives_5locks_9semaphore_Semaphore},
@@ -15734,15 +15744,15 @@ static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
15734
15744
  /*--- Type init code ---*/
15735
15745
  __pyx_t_1 = PyImport_ImportModule("a_sync.primitives._debug"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
15736
15746
  __Pyx_GOTREF(__pyx_t_1);
15737
- __pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__DebugDaemonMixin = __Pyx_ImportType_3_1_2(__pyx_t_1, "a_sync.primitives._debug", "_DebugDaemonMixin",
15747
+ __pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__DebugDaemonMixin = __Pyx_ImportType_3_1_4(__pyx_t_1, "a_sync.primitives._debug", "_DebugDaemonMixin",
15738
15748
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
15739
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15749
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15740
15750
  #elif CYTHON_COMPILING_IN_LIMITED_API
15741
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15751
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15742
15752
  #else
15743
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15753
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__DebugDaemonMixin),
15744
15754
  #endif
15745
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__DebugDaemonMixin) __PYX_ERR(0, 1, __pyx_L1_error)
15755
+ __Pyx_ImportType_CheckSize_Warn_3_1_4); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__DebugDaemonMixin) __PYX_ERR(0, 1, __pyx_L1_error)
15746
15756
  __pyx_vtabptr_6a_sync_10primitives_6_debug__DebugDaemonMixin = (struct __pyx_vtabstruct_6a_sync_10primitives_6_debug__DebugDaemonMixin*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__DebugDaemonMixin); if (unlikely(!__pyx_vtabptr_6a_sync_10primitives_6_debug__DebugDaemonMixin)) __PYX_ERR(0, 1, __pyx_L1_error)
15747
15757
  __pyx_vtabptr_6a_sync_10primitives_5locks_9semaphore_Semaphore = &__pyx_vtable_6a_sync_10primitives_5locks_9semaphore_Semaphore;
15748
15758
  __pyx_vtable_6a_sync_10primitives_5locks_9semaphore_Semaphore.__pyx_base = *__pyx_vtabptr_6a_sync_10primitives_6_debug__DebugDaemonMixin;
@@ -16086,41 +16096,41 @@ static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
16086
16096
  /*--- Type import code ---*/
16087
16097
  __pyx_t_1 = PyImport_ImportModule("a_sync.primitives._loggable"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1, __pyx_L1_error)
16088
16098
  __Pyx_GOTREF(__pyx_t_1);
16089
- __pyx_mstate->__pyx_ptype_6a_sync_10primitives_9_loggable__LoggerMixin = __Pyx_ImportType_3_1_2(__pyx_t_1, "a_sync.primitives._loggable", "_LoggerMixin",
16099
+ __pyx_mstate->__pyx_ptype_6a_sync_10primitives_9_loggable__LoggerMixin = __Pyx_ImportType_3_1_4(__pyx_t_1, "a_sync.primitives._loggable", "_LoggerMixin",
16090
16100
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
16091
- sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16101
+ sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16092
16102
  #elif CYTHON_COMPILING_IN_LIMITED_API
16093
- sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16103
+ sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16094
16104
  #else
16095
- sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16105
+ sizeof(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_9_loggable__LoggerMixin),
16096
16106
  #endif
16097
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_9_loggable__LoggerMixin) __PYX_ERR(2, 1, __pyx_L1_error)
16107
+ __Pyx_ImportType_CheckSize_Warn_3_1_4); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_9_loggable__LoggerMixin) __PYX_ERR(2, 1, __pyx_L1_error)
16098
16108
  __pyx_vtabptr_6a_sync_10primitives_9_loggable__LoggerMixin = (struct __pyx_vtabstruct_6a_sync_10primitives_9_loggable__LoggerMixin*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_6a_sync_10primitives_9_loggable__LoggerMixin); if (unlikely(!__pyx_vtabptr_6a_sync_10primitives_9_loggable__LoggerMixin)) __PYX_ERR(2, 1, __pyx_L1_error)
16099
16109
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16100
16110
  __pyx_t_1 = PyImport_ImportModule("a_sync.primitives._debug"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3, __pyx_L1_error)
16101
16111
  __Pyx_GOTREF(__pyx_t_1);
16102
- __pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__LoopBoundMixin = __Pyx_ImportType_3_1_2(__pyx_t_1, "a_sync.primitives._debug", "_LoopBoundMixin",
16112
+ __pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__LoopBoundMixin = __Pyx_ImportType_3_1_4(__pyx_t_1, "a_sync.primitives._debug", "_LoopBoundMixin",
16103
16113
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
16104
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16114
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16105
16115
  #elif CYTHON_COMPILING_IN_LIMITED_API
16106
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16116
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16107
16117
  #else
16108
- sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16118
+ sizeof(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_10primitives_6_debug__LoopBoundMixin),
16109
16119
  #endif
16110
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__LoopBoundMixin) __PYX_ERR(3, 3, __pyx_L1_error)
16120
+ __Pyx_ImportType_CheckSize_Warn_3_1_4); if (!__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__LoopBoundMixin) __PYX_ERR(3, 3, __pyx_L1_error)
16111
16121
  __pyx_vtabptr_6a_sync_10primitives_6_debug__LoopBoundMixin = (struct __pyx_vtabstruct_6a_sync_10primitives_6_debug__LoopBoundMixin*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_6a_sync_10primitives_6_debug__LoopBoundMixin); if (unlikely(!__pyx_vtabptr_6a_sync_10primitives_6_debug__LoopBoundMixin)) __PYX_ERR(3, 3, __pyx_L1_error)
16112
16122
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16113
16123
  __pyx_t_1 = PyImport_ImportModule("a_sync.functools"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1, __pyx_L1_error)
16114
16124
  __Pyx_GOTREF(__pyx_t_1);
16115
- __pyx_mstate->__pyx_ptype_6a_sync_9functools_cached_property_unsafe = __Pyx_ImportType_3_1_2(__pyx_t_1, "a_sync.functools", "cached_property_unsafe",
16125
+ __pyx_mstate->__pyx_ptype_6a_sync_9functools_cached_property_unsafe = __Pyx_ImportType_3_1_4(__pyx_t_1, "a_sync.functools", "cached_property_unsafe",
16116
16126
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
16117
- sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16127
+ sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16118
16128
  #elif CYTHON_COMPILING_IN_LIMITED_API
16119
- sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16129
+ sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16120
16130
  #else
16121
- sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_2(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16131
+ sizeof(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe), __PYX_GET_STRUCT_ALIGNMENT_3_1_4(struct __pyx_obj_6a_sync_9functools_cached_property_unsafe),
16122
16132
  #endif
16123
- __Pyx_ImportType_CheckSize_Warn_3_1_2); if (!__pyx_mstate->__pyx_ptype_6a_sync_9functools_cached_property_unsafe) __PYX_ERR(4, 1, __pyx_L1_error)
16133
+ __Pyx_ImportType_CheckSize_Warn_3_1_4); if (!__pyx_mstate->__pyx_ptype_6a_sync_9functools_cached_property_unsafe) __PYX_ERR(4, 1, __pyx_L1_error)
16124
16134
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16125
16135
  __Pyx_RefNannyFinishContext();
16126
16136
  return 0;
@@ -16150,7 +16160,7 @@ static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
16150
16160
  /*--- Function import code ---*/
16151
16161
  __pyx_t_1 = PyImport_ImportModule("a_sync.functools"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
16152
16162
  __Pyx_GOTREF(__pyx_t_1);
16153
- if (__Pyx_ImportFunction_3_1_2(__pyx_t_1, "wraps", (void (**)(void))&__pyx_f_6a_sync_9functools_wraps, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
16163
+ if (__Pyx_ImportFunction_3_1_4(__pyx_t_1, "wraps", (void (**)(void))&__pyx_f_6a_sync_9functools_wraps, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
16154
16164
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16155
16165
  __Pyx_RefNannyFinishContext();
16156
16166
  return 0;
@@ -16443,7 +16453,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
16443
16453
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
16444
16454
  if (unlikely((__Pyx_modinit_function_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
16445
16455
  /*--- Execution code ---*/
16446
- __Pyx_TraceStartFunc("PyInit_semaphore", __pyx_f[0], 1, 1, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
16456
+ __Pyx_TraceStartFunc("PyInit_semaphore", __pyx_f[0], 1, 2, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
16447
16457
 
16448
16458
  /* "a_sync/primitives/locks/semaphore.pyx":6
16449
16459
  * """
@@ -16890,7 +16900,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
16890
16900
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
16891
16901
  * def __setstate_cython__(self, __pyx_state):
16892
16902
  */
16893
- __Pyx_TraceLine(1,0,0,__PYX_ERR(1, 1, __pyx_L1_error))
16903
+ __Pyx_TraceLine(1,3,0,__PYX_ERR(1, 1, __pyx_L1_error))
16894
16904
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_9Semaphore_35__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Semaphore___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
16895
16905
  __Pyx_GOTREF(__pyx_t_2);
16896
16906
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
@@ -16902,7 +16912,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
16902
16912
  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
16903
16913
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
16904
16914
  */
16905
- __Pyx_TraceLine(3,4,0,__PYX_ERR(1, 3, __pyx_L1_error))
16915
+ __Pyx_TraceLine(3,6,0,__PYX_ERR(1, 3, __pyx_L1_error))
16906
16916
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_9Semaphore_37__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Semaphore___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
16907
16917
  __Pyx_GOTREF(__pyx_t_2);
16908
16918
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
@@ -16991,7 +17001,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
16991
17001
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
16992
17002
  * def __setstate_cython__(self, __pyx_state):
16993
17003
  */
16994
- __Pyx_TraceLine(1,2,0,__PYX_ERR(1, 1, __pyx_L1_error))
17004
+ __Pyx_TraceLine(1,1,0,__PYX_ERR(1, 1, __pyx_L1_error))
16995
17005
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_14DummySemaphore_18__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DummySemaphore___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
16996
17006
  __Pyx_GOTREF(__pyx_t_3);
16997
17007
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
@@ -17003,7 +17013,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
17003
17013
  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
17004
17014
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
17005
17015
  */
17006
- __Pyx_TraceLine(3,5,0,__PYX_ERR(1, 3, __pyx_L1_error))
17016
+ __Pyx_TraceLine(3,4,0,__PYX_ERR(1, 3, __pyx_L1_error))
17007
17017
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_14DummySemaphore_20__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DummySemaphore___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error)
17008
17018
  __Pyx_GOTREF(__pyx_t_3);
17009
17019
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
@@ -17049,7 +17059,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
17049
17059
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
17050
17060
  * def __setstate_cython__(self, __pyx_state):
17051
17061
  */
17052
- __Pyx_TraceLine(1,3,0,__PYX_ERR(1, 1, __pyx_L1_error))
17062
+ __Pyx_TraceLine(1,0,0,__PYX_ERR(1, 1, __pyx_L1_error))
17053
17063
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_19ThreadsafeSemaphore_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ThreadsafeSemaphore___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
17054
17064
  __Pyx_GOTREF(__pyx_t_3);
17055
17065
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
@@ -17061,7 +17071,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
17061
17071
  * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
17062
17072
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
17063
17073
  */
17064
- __Pyx_TraceLine(3,6,0,__PYX_ERR(1, 3, __pyx_L1_error))
17074
+ __Pyx_TraceLine(3,5,0,__PYX_ERR(1, 3, __pyx_L1_error))
17065
17075
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_10primitives_5locks_9semaphore_19ThreadsafeSemaphore_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ThreadsafeSemaphore___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_primitives_locks_semaphor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error)
17066
17076
  __Pyx_GOTREF(__pyx_t_3);
17067
17077
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error)
@@ -17072,12 +17082,12 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
17072
17082
  * This module provides various semaphore implementations, including a debug-enabled semaphore,
17073
17083
  * a dummy semaphore that does nothing, and a threadsafe semaphore for use in multi-threaded applications.
17074
17084
  */
17075
- __Pyx_TraceLine(1,1,0,__PYX_ERR(0, 1, __pyx_L1_error))
17085
+ __Pyx_TraceLine(1,2,0,__PYX_ERR(0, 1, __pyx_L1_error))
17076
17086
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error)
17077
17087
  __Pyx_GOTREF(__pyx_t_3);
17078
17088
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
17079
17089
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
17080
- __Pyx_TraceReturnValue(Py_None, 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
17090
+ __Pyx_TraceReturnValue(Py_None, 2, 0, __PYX_ERR(0, 1, __pyx_L1_error));
17081
17091
  __Pyx_PyMonitoring_ExitScope(0);
17082
17092
 
17083
17093
  /*--- Wrapped vars code ---*/
@@ -17087,7 +17097,7 @@ __Pyx_RefNannySetupContext("PyInit_semaphore", 0);
17087
17097
  __Pyx_XDECREF(__pyx_t_2);
17088
17098
  __Pyx_XDECREF(__pyx_t_3);
17089
17099
  __Pyx_TraceException(__pyx_lineno, 0, 0);
17090
- __Pyx_TraceExceptionUnwind(1, 0);
17100
+ __Pyx_TraceExceptionUnwind(2, 0);
17091
17101
  if (__pyx_m) {
17092
17102
  if (__pyx_mstate->__pyx_d && stringtab_initialized) {
17093
17103
  __Pyx_AddTraceback("init a_sync.primitives.locks.semaphore", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -20233,6 +20243,7 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
20233
20243
  changed = 1;
20234
20244
  }
20235
20245
  #endif // CYTHON_METH_FASTCALL
20246
+ #if !CYTHON_COMPILING_IN_PYPY
20236
20247
  else if (strcmp(memb->name, "__module__") == 0) {
20237
20248
  PyObject *descr;
20238
20249
  assert(memb->type == T_OBJECT);
@@ -20247,11 +20258,13 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
20247
20258
  }
20248
20259
  changed = 1;
20249
20260
  }
20261
+ #endif // !CYTHON_COMPILING_IN_PYPY
20250
20262
  }
20251
20263
  memb++;
20252
20264
  }
20253
20265
  }
20254
20266
  #endif // !CYTHON_COMPILING_IN_LIMITED_API
20267
+ #if !CYTHON_COMPILING_IN_PYPY
20255
20268
  slot = spec->slots;
20256
20269
  while (slot && slot->slot && slot->slot != Py_tp_getset)
20257
20270
  slot++;
@@ -20283,6 +20296,7 @@ static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject
20283
20296
  ++getset;
20284
20297
  }
20285
20298
  }
20299
+ #endif // !CYTHON_COMPILING_IN_PYPY
20286
20300
  if (changed)
20287
20301
  PyType_Modified(type);
20288
20302
  #endif // PY_VERSION_HEX > 0x030900B1
@@ -20415,7 +20429,7 @@ bad:
20415
20429
  }
20416
20430
 
20417
20431
  /* CommonTypesMetaclass */
20418
- PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
20432
+ static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
20419
20433
  return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
20420
20434
  }
20421
20435
  static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
@@ -20444,6 +20458,7 @@ static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
20444
20458
  return -1;
20445
20459
  }
20446
20460
  mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
20461
+ Py_DECREF(bases);
20447
20462
  if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
20448
20463
  return -1;
20449
20464
  }
@@ -20572,7 +20587,7 @@ try_unpack:
20572
20587
  }
20573
20588
 
20574
20589
  /* PyObjectCallMethod1 */
20575
- #if !(CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C0000)
20590
+ #if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
20576
20591
  static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
20577
20592
  PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
20578
20593
  Py_DECREF(method);
@@ -20580,7 +20595,7 @@ static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
20580
20595
  }
20581
20596
  #endif
20582
20597
  static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
20583
- #if CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
20598
+ #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
20584
20599
  PyObject *args[2] = {obj, arg};
20585
20600
  (void) __Pyx_PyObject_GetMethod;
20586
20601
  (void) __Pyx_PyObject_CallOneArg;
@@ -23590,15 +23605,15 @@ static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
23590
23605
  }
23591
23606
 
23592
23607
  /* TypeImport */
23593
- #ifndef __PYX_HAVE_RT_ImportType_3_1_2
23594
- #define __PYX_HAVE_RT_ImportType_3_1_2
23595
- static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module_name, const char *class_name,
23596
- size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_2 check_size)
23608
+ #ifndef __PYX_HAVE_RT_ImportType_3_1_4
23609
+ #define __PYX_HAVE_RT_ImportType_3_1_4
23610
+ static PyTypeObject *__Pyx_ImportType_3_1_4(PyObject *module, const char *module_name, const char *class_name,
23611
+ size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_1_4 check_size)
23597
23612
  {
23598
23613
  PyObject *result = 0;
23599
23614
  Py_ssize_t basicsize;
23600
23615
  Py_ssize_t itemsize;
23601
- #if CYTHON_COMPILING_IN_LIMITED_API
23616
+ #ifdef Py_LIMITED_API
23602
23617
  PyObject *py_basicsize;
23603
23618
  PyObject *py_itemsize;
23604
23619
  #endif
@@ -23611,7 +23626,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
23611
23626
  module_name, class_name);
23612
23627
  goto bad;
23613
23628
  }
23614
- #if !CYTHON_COMPILING_IN_LIMITED_API
23629
+ #ifndef Py_LIMITED_API
23615
23630
  basicsize = ((PyTypeObject *)result)->tp_basicsize;
23616
23631
  itemsize = ((PyTypeObject *)result)->tp_itemsize;
23617
23632
  #else
@@ -23649,7 +23664,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
23649
23664
  module_name, class_name, size, basicsize+itemsize);
23650
23665
  goto bad;
23651
23666
  }
23652
- if (check_size == __Pyx_ImportType_CheckSize_Error_3_1_2 &&
23667
+ if (check_size == __Pyx_ImportType_CheckSize_Error_3_1_4 &&
23653
23668
  ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
23654
23669
  PyErr_Format(PyExc_ValueError,
23655
23670
  "%.200s.%.200s size changed, may indicate binary incompatibility. "
@@ -23657,7 +23672,7 @@ static PyTypeObject *__Pyx_ImportType_3_1_2(PyObject *module, const char *module
23657
23672
  module_name, class_name, size, basicsize, basicsize+itemsize);
23658
23673
  goto bad;
23659
23674
  }
23660
- else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_1_2 && (size_t)basicsize > size) {
23675
+ else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_1_4 && (size_t)basicsize > size) {
23661
23676
  if (PyErr_WarnFormat(NULL, 0,
23662
23677
  "%.200s.%.200s size changed, may indicate binary incompatibility. "
23663
23678
  "Expected %zd from C header, got %zd from PyObject",
@@ -23694,6 +23709,13 @@ bad:
23694
23709
 
23695
23710
  /* PyObjectCallMethod0 */
23696
23711
  static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
23712
+ #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
23713
+ PyObject *args[1] = {obj};
23714
+ (void) __Pyx_PyObject_GetMethod;
23715
+ (void) __Pyx_PyObject_CallOneArg;
23716
+ (void) __Pyx_PyObject_CallNoArg;
23717
+ return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
23718
+ #else
23697
23719
  PyObject *method = NULL, *result = NULL;
23698
23720
  int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
23699
23721
  if (likely(is_method)) {
@@ -23706,6 +23728,7 @@ bad:
23706
23728
  Py_DECREF(method);
23707
23729
  bad:
23708
23730
  return result;
23731
+ #endif
23709
23732
  }
23710
23733
 
23711
23734
  /* ValidateBasesTuple */
@@ -25735,9 +25758,9 @@ static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObj
25735
25758
  }
25736
25759
 
25737
25760
  /* FunctionImport */
25738
- #ifndef __PYX_HAVE_RT_ImportFunction_3_1_2
25739
- #define __PYX_HAVE_RT_ImportFunction_3_1_2
25740
- static int __Pyx_ImportFunction_3_1_2(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
25761
+ #ifndef __PYX_HAVE_RT_ImportFunction_3_1_4
25762
+ #define __PYX_HAVE_RT_ImportFunction_3_1_4
25763
+ static int __Pyx_ImportFunction_3_1_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
25741
25764
  PyObject *d = 0;
25742
25765
  PyObject *cobj = 0;
25743
25766
  union {
@@ -25839,6 +25862,10 @@ bad:
25839
25862
  PyCode_NewWithPosOnlyArgs
25840
25863
  #endif
25841
25864
  (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
25865
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
25866
+ if (likely(result))
25867
+ result->_co_firsttraceable = 0;
25868
+ #endif
25842
25869
  return result;
25843
25870
  }
25844
25871
  #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
@@ -1,11 +1,12 @@
1
- from a_sync._typing import *
2
1
  import asyncio
3
2
  import functools
4
- from _typeshed import Incomplete
5
- from a_sync.primitives._debug import _DebugDaemonMixin
3
+ from logging import Logger
6
4
  from threading import Thread as Thread
5
+ from typing_extensions import Never
6
+ from a_sync._typing import *
7
+ from a_sync.primitives._debug import _DebugDaemonMixin
7
8
 
8
- logger: Incomplete
9
+ logger: Logger
9
10
 
10
11
  class Semaphore(asyncio.Semaphore, _DebugDaemonMixin):
11
12
  """
@@ -39,8 +40,8 @@ class Semaphore(asyncio.Semaphore, _DebugDaemonMixin):
39
40
  :class:`_DebugDaemonMixin` for more details on debugging capabilities.
40
41
  """
41
42
 
42
- name: Incomplete
43
- def __init__(self, value: int, name: Incomplete | None = None, **kwargs) -> None:
43
+ name: str
44
+ def __init__(self, value: int, name: str = "", **kwargs) -> None:
44
45
  """
45
46
  Initialize the semaphore with a given value and optional name for debugging.
46
47
 
@@ -116,7 +117,7 @@ class DummySemaphore(asyncio.Semaphore):
116
117
  return 1
117
118
  """
118
119
 
119
- name: Incomplete
120
+ name: str
120
121
  def __init__(self, name: Optional[str] = None) -> None:
121
122
  """
122
123
  Initialize the dummy semaphore with an optional name.
@@ -156,8 +157,8 @@ class ThreadsafeSemaphore(Semaphore):
156
157
  :class:`Semaphore` for the base class implementation.
157
158
  """
158
159
 
159
- semaphores: Incomplete
160
- dummy: Incomplete
160
+ semaphores: DefaultDict[Thread, Semaphore] | Dict[Never, Never]
161
+ dummy: DummySemaphore | None
161
162
  def __init__(self, value: Optional[int], name: Optional[str] = None) -> None:
162
163
  """
163
164
  Initialize the threadsafe semaphore with a given value and optional name.
@@ -858,7 +858,11 @@ class SmartProcessingQueue(_VariablePriorityQueueMixin[T], ProcessingQueue[Conca
858
858
  Example:
859
859
  >>> queue = SmartProcessingQueue(func=my_task_func, num_workers=3, name='smart_queue')
860
860
  """
861
- name = name or f"{func.__module__}.{func.__qualname__}"
861
+ if not name:
862
+ unwrapped = func
863
+ while callable(getattr(unwrapped, "__wrapped__", None)):
864
+ unwrapped = unwrapped.__wrapped__
865
+ name = f"{unwrapped.__module__}.{unwrapped.__qualname__}"
862
866
  ProcessingQueue.__init__(self, func, num_workers, return_data=True, name=name, loop=loop)
863
867
  self._futs = WeakValueDictionary()
864
868