ez-a-sync 0.32.16__tar.gz → 0.32.18__tar.gz

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 (220) hide show
  1. ez_a_sync-0.32.18/.github/workflows/release.yaml +199 -0
  2. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/PKG-INFO +1 -1
  3. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/_smart.c +5 -5
  4. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_descriptor.c +9 -5
  5. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_helpers.c +4 -0
  6. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_meta.py +2 -2
  7. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/function.c +3947 -3465
  8. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/function.pxd +5 -1
  9. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/function.pyx +97 -81
  10. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/method.c +7609 -5310
  11. ez_a_sync-0.32.18/a_sync/a_sync/method.pxd +9 -0
  12. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/method.pyx +108 -84
  13. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/property.c +556 -476
  14. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/property.pyx +9 -7
  15. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/cached.c +5 -5
  16. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/proxy.c +1 -1
  17. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/functools.c +5 -5
  18. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/iter.c +16 -16
  19. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_loggable.c +8 -8
  20. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/prio_semaphore.c +11 -11
  21. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/task.py +1 -1
  22. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/PKG-INFO +1 -1
  23. ez_a_sync-0.32.18/tests/a_sync/test_property.py +101 -0
  24. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/task/test_task.py +207 -2
  25. ez_a_sync-0.32.16/.github/workflows/release.yaml +0 -99
  26. ez_a_sync-0.32.16/a_sync/a_sync/method.pxd +0 -2
  27. ez_a_sync-0.32.16/tests/a_sync/test_property.py +0 -60
  28. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.coverage +0 -0
  29. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.github/workflows/black.yaml +0 -0
  30. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.github/workflows/codeql.yaml +0 -0
  31. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.github/workflows/docs.yaml +0 -0
  32. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.github/workflows/mypy.yaml +0 -0
  33. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.github/workflows/pytest.yaml +0 -0
  34. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.gitignore +0 -0
  35. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/.sourcery.yaml +0 -0
  36. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/LICENSE.txt +0 -0
  37. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/MANIFEST.in +0 -0
  38. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/Makefile +0 -0
  39. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/README.md +0 -0
  40. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/TODO +0 -0
  41. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/ENVIRONMENT_VARIABLES.py +0 -0
  42. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/__init__.pxd +0 -0
  43. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/__init__.py +0 -0
  44. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/_smart.pxd +0 -0
  45. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/_smart.pyi +0 -0
  46. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/_smart.pyx +0 -0
  47. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/_typing.py +0 -0
  48. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/__init__.py +0 -0
  49. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_descriptor.pyi +0 -0
  50. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_descriptor.pyx +0 -0
  51. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_flags.c +0 -0
  52. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_flags.pxd +0 -0
  53. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_flags.pyx +0 -0
  54. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_helpers.pxd +0 -0
  55. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_helpers.pyi +0 -0
  56. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_helpers.pyx +0 -0
  57. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_kwargs.c +0 -0
  58. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_kwargs.pxd +0 -0
  59. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/_kwargs.pyx +0 -0
  60. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/abstract.c +0 -0
  61. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/abstract.pyi +0 -0
  62. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/abstract.pyx +0 -0
  63. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/base.c +0 -0
  64. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/base.pyi +0 -0
  65. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/base.pyx +0 -0
  66. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/config.py +0 -0
  67. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/decorator.py +0 -0
  68. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/flags.c +0 -0
  69. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/flags.pxd +0 -0
  70. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/flags.pyi +0 -0
  71. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/flags.pyx +0 -0
  72. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/function.pyi +0 -0
  73. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/method.pyi +0 -0
  74. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/__init__.pxd +0 -0
  75. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/__init__.py +0 -0
  76. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/cache/__init__.py +0 -0
  77. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/cache/memory.py +0 -0
  78. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/limiter.py +0 -0
  79. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/manager.c +0 -0
  80. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/manager.pxd +0 -0
  81. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/manager.pyi +0 -0
  82. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/manager.pyx +0 -0
  83. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/modifiers/semaphores.py +0 -0
  84. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/property.pyi +0 -0
  85. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/a_sync/singleton.py +0 -0
  86. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/aliases.py +0 -0
  87. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/__init__.pxd +0 -0
  88. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/__init__.py +0 -0
  89. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/cached.pxd +0 -0
  90. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/cached.pyi +0 -0
  91. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/cached.pyx +0 -0
  92. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/proxy.pxd +0 -0
  93. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/proxy.pyi +0 -0
  94. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/async_property/proxy.pyx +0 -0
  95. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/__init__.pxd +0 -0
  96. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/__init__.py +0 -0
  97. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/as_completed.c +0 -0
  98. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/as_completed.pxd +0 -0
  99. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/as_completed.pyi +0 -0
  100. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/as_completed.pyx +0 -0
  101. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/create_task.c +0 -0
  102. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/create_task.pxd +0 -0
  103. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/create_task.pyi +0 -0
  104. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/create_task.pyx +0 -0
  105. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/gather.c +0 -0
  106. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/gather.pyi +0 -0
  107. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/gather.pyx +0 -0
  108. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/igather.c +0 -0
  109. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/igather.pxd +0 -0
  110. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/igather.pyi +0 -0
  111. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/igather.pyx +0 -0
  112. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/sleep.c +0 -0
  113. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/sleep.pyi +0 -0
  114. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/asyncio/sleep.pyx +0 -0
  115. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/debugging.c +0 -0
  116. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/debugging.pyi +0 -0
  117. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/debugging.pyx +0 -0
  118. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/exceptions.c +0 -0
  119. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/exceptions.pyi +0 -0
  120. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/exceptions.pyx +0 -0
  121. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/executor.py +0 -0
  122. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/functools.pxd +0 -0
  123. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/functools.pyi +0 -0
  124. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/functools.pyx +0 -0
  125. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/future.py +0 -0
  126. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/iter.pxd +0 -0
  127. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/iter.pyi +0 -0
  128. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/iter.pyx +0 -0
  129. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/__init__.pxd +0 -0
  130. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/__init__.py +0 -0
  131. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_debug.c +4 -4
  132. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_debug.pxd +0 -0
  133. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_debug.pyi +0 -0
  134. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_debug.pyx +0 -0
  135. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_loggable.pxd +0 -0
  136. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_loggable.pyi +0 -0
  137. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/_loggable.pyx +0 -0
  138. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/__init__.pxd +0 -0
  139. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/__init__.py +0 -0
  140. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/counter.c +0 -0
  141. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/counter.pxd +0 -0
  142. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/counter.pyi +0 -0
  143. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/counter.pyx +0 -0
  144. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/event.c +0 -0
  145. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/event.pxd +0 -0
  146. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/event.pyi +0 -0
  147. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/event.pyx +0 -0
  148. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/prio_semaphore.pxd +0 -0
  149. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/prio_semaphore.pyi +0 -0
  150. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/prio_semaphore.pyx +0 -0
  151. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/semaphore.c +2 -2
  152. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/semaphore.pxd +0 -0
  153. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/semaphore.pyi +0 -0
  154. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/locks/semaphore.pyx +0 -0
  155. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/primitives/queue.py +0 -0
  156. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/py.typed +0 -0
  157. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/sphinx/__init__.py +0 -0
  158. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/sphinx/ext.py +0 -0
  159. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/utils/__init__.py +0 -0
  160. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/utils/iterators.py +0 -0
  161. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/utils/repr.c +0 -0
  162. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/utils/repr.pyi +0 -0
  163. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/a_sync/utils/repr.pyx +0 -0
  164. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/Makefile +0 -0
  165. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/alabaster.css +0 -0
  166. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/basic.css +0 -0
  167. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/custom.css +0 -0
  168. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/doctools.js +0 -0
  169. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/documentation_options.js +0 -0
  170. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/file.png +0 -0
  171. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/language_data.js +0 -0
  172. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/minus.png +0 -0
  173. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/plus.png +0 -0
  174. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/pygments.css +0 -0
  175. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/searchtools.js +0 -0
  176. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  177. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/conf.py +0 -0
  178. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/index.rst +0 -0
  179. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/docs/make.bat +0 -0
  180. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/SOURCES.txt +0 -0
  181. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/dependency_links.txt +0 -0
  182. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/not-zip-safe +0 -0
  183. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/requires.txt +0 -0
  184. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/ez_a_sync.egg-info/top_level.txt +0 -0
  185. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/include/pythoncapi_compat.h +0 -0
  186. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/pyproject.toml +0 -0
  187. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/requirements-dev.txt +0 -0
  188. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/requirements.txt +0 -0
  189. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/setup.cfg +0 -0
  190. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/setup.py +0 -0
  191. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/__init__.py +0 -0
  192. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/modifiers/test_apply_semaphore.py +0 -0
  193. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_abstract.py +0 -0
  194. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_base.py +0 -0
  195. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_cache.py +0 -0
  196. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_decorator.py +0 -0
  197. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_limiter.py +0 -0
  198. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_meta.py +0 -0
  199. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_modified.py +0 -0
  200. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/a_sync/test_singleton.py +0 -0
  201. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/asyncio/test_as_completed.py +0 -0
  202. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/asyncio/test_create_task.py +0 -0
  203. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/asyncio/test_gather.py +0 -0
  204. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/asyncio/test_igather.py +0 -0
  205. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/conftest.py +0 -0
  206. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/executor.py +0 -0
  207. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/fixtures.py +0 -0
  208. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/iter/test_asyncgenfunc.py +0 -0
  209. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/iter/test_iterables.py +0 -0
  210. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/primitives/test_counter.py +0 -0
  211. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/primitives/test_event.py +0 -0
  212. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/primitives/test_prio_semaphore.py +0 -0
  213. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/primitives/test_queue.py +0 -0
  214. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/primitives/test_semaphore.py +0 -0
  215. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/task/test_task_mapping_views.py +0 -0
  216. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/test_executor.py +0 -0
  217. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/test_future.py +0 -0
  218. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/test_helpers.py +0 -0
  219. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/test_smart.py +0 -0
  220. {ez_a_sync-0.32.16 → ez_a_sync-0.32.18}/tests/utils/test_repr.py +0 -0
@@ -0,0 +1,199 @@
1
+ name: Build and Publish Wheels
2
+
3
+ on:
4
+ release:
5
+ branches:
6
+ - master
7
+ types: [published]
8
+
9
+ jobs:
10
+ build_wheels:
11
+ name: Build wheels using cibuildwheel
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ include:
17
+ # ----------------------------------------------------
18
+ # manylinux 64-bit
19
+ # ----------------------------------------------------
20
+ - os: ubuntu-latest
21
+ build_type: manylinux-x64
22
+ cibw_build: "cp3?-*manylinux*"
23
+ cibw_archs_linux: x86_64
24
+ artifact_name: "wheels-ubuntu-latest-manylinux-x64"
25
+
26
+ # ----------------------------------------------------
27
+ # manylinux 32-bit
28
+ # ----------------------------------------------------
29
+ - os: ubuntu-latest
30
+ build_type: manylinux-x86
31
+ cibw_build: "cp3?-*manylinux*"
32
+ cibw_archs_linux: i686
33
+ artifact_name: "wheels-ubuntu-latest-manylinux-x86"
34
+
35
+ # ----------------------------------------------------
36
+ # musllinux 64-bit
37
+ # ----------------------------------------------------
38
+ - os: ubuntu-latest
39
+ build_type: musllinux-x64
40
+ cibw_build: "cp3?-*musllinux*"
41
+ cibw_archs_linux: x86_64
42
+ artifact_name: "wheels-ubuntu-latest-musllinux-x64"
43
+
44
+ # ----------------------------------------------------
45
+ # musllinux 32-bit
46
+ # ----------------------------------------------------
47
+ - os: ubuntu-latest
48
+ build_type: musllinux-x86
49
+ cibw_build: "cp3?-*musllinux*"
50
+ cibw_archs_linux: i686
51
+ artifact_name: "wheels-ubuntu-latest-musllinux-x86"
52
+
53
+ # ----------------------------------------------------
54
+ # macOS (64-bit only)
55
+ # ----------------------------------------------------
56
+ - os: macos-latest
57
+ build_type: macos
58
+ cibw_build: ""
59
+ cibw_archs_linux: ""
60
+ artifact_name: "wheels-macos-latest"
61
+
62
+ # ----------------------------------------------------
63
+ # Windows 64-bit
64
+ # ----------------------------------------------------
65
+ - os: windows-latest
66
+ build_type: winx64
67
+ cibw_build: ""
68
+ cibw_archs_windows: AMD64
69
+ artifact_name: "wheels-windows-latest-x64"
70
+
71
+ # ----------------------------------------------------
72
+ # Windows 32-bit
73
+ # ----------------------------------------------------
74
+ - os: windows-latest
75
+ build_type: winx86
76
+ cibw_build: ""
77
+ cibw_archs_windows: x86
78
+ artifact_name: "wheels-windows-latest-x86"
79
+
80
+ steps:
81
+ - name: Check out code
82
+ uses: actions/checkout@v3
83
+ with:
84
+ fetch-depth: 0
85
+
86
+ - name: Set up Python
87
+ uses: actions/setup-python@v4
88
+ with:
89
+ python-version: "3.11"
90
+
91
+ - name: Install cibuildwheel
92
+ run: |
93
+ python -m pip install --upgrade pip setuptools wheel cibuildwheel
94
+
95
+ - name: Build wheels
96
+ env:
97
+ # Skip PyPy
98
+ CIBW_SKIP: pp*
99
+ # On Linux: manylinux / musllinux arches
100
+ CIBW_ARCHS_LINUX: ${{ matrix.cibw_archs_linux || '' }}
101
+ # On Windows: AMD64 / x86
102
+ CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_archs_windows || '' }}
103
+ # Which wheels to build for Linux (manylinux vs. musllinux)
104
+ CIBW_BUILD: ${{ matrix.cibw_build || '' }}
105
+ run: |
106
+ python -m cibuildwheel --output-dir wheelhouse
107
+
108
+ - name: Upload wheels
109
+ uses: actions/upload-artifact@v4
110
+ with:
111
+ name: ${{ matrix.artifact_name }}
112
+ path: wheelhouse/*.whl
113
+
114
+ publish_sdist_and_wheels:
115
+ name: Publish wheels to PyPI
116
+ needs: build_wheels
117
+ runs-on: ubuntu-latest
118
+ steps:
119
+ - name: Check out code
120
+ uses: actions/checkout@v3
121
+ with:
122
+ fetch-depth: 0
123
+
124
+ - name: Set up Python
125
+ uses: actions/setup-python@v4
126
+ with:
127
+ python-version: "3.11"
128
+
129
+ - name: Install dependencies
130
+ run: |
131
+ python -m pip install --upgrade pip
132
+ pip install setuptools wheel twine cython
133
+
134
+ - name: Build sdist
135
+ run: |
136
+ python setup.py sdist
137
+
138
+ # ----------------------------------------------------
139
+ # Download wheels built on each runner
140
+ # ----------------------------------------------------
141
+ - name: Download manylinux 64-bit wheels
142
+ uses: actions/download-artifact@v4
143
+ with:
144
+ name: "wheels-ubuntu-latest-manylinux-x64"
145
+ path: wheelhouse/linux-many-x64
146
+
147
+ - name: Download manylinux 32-bit wheels
148
+ uses: actions/download-artifact@v4
149
+ with:
150
+ name: "wheels-ubuntu-latest-manylinux-x86"
151
+ path: wheelhouse/linux-many-x86
152
+
153
+ - name: Download musllinux 64-bit wheels
154
+ uses: actions/download-artifact@v4
155
+ with:
156
+ name: "wheels-ubuntu-latest-musllinux-x64"
157
+ path: wheelhouse/linux-musl-x64
158
+
159
+ - name: Download musllinux 32-bit wheels
160
+ uses: actions/download-artifact@v4
161
+ with:
162
+ name: "wheels-ubuntu-latest-musllinux-x86"
163
+ path: wheelhouse/linux-musl-x86
164
+
165
+ - name: Download macOS wheels
166
+ uses: actions/download-artifact@v4
167
+ with:
168
+ name: "wheels-macos-latest"
169
+ path: wheelhouse/macos
170
+
171
+ - name: Download Windows 64-bit wheels
172
+ uses: actions/download-artifact@v4
173
+ with:
174
+ name: "wheels-windows-latest-x64"
175
+ path: wheelhouse/windows-x64
176
+
177
+ - name: Download Windows 32-bit wheels
178
+ uses: actions/download-artifact@v4
179
+ with:
180
+ name: "wheels-windows-latest-x86"
181
+ path: wheelhouse/windows-x86
182
+
183
+ # ----------------------------------------------------
184
+ # Publish all built artifacts to PyPI
185
+ # ----------------------------------------------------
186
+ - name: Publish sdist and wheels to PyPI
187
+ env:
188
+ TWINE_USERNAME: __token__
189
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
190
+ run: |
191
+ twine upload \
192
+ dist/* \
193
+ wheelhouse/linux-many-x64/*.whl \
194
+ wheelhouse/linux-many-x86/*.whl \
195
+ wheelhouse/linux-musl-x64/*.whl \
196
+ wheelhouse/linux-musl-x86/*.whl \
197
+ wheelhouse/macos/*.whl \
198
+ wheelhouse/windows-x64/*.whl \
199
+ wheelhouse/windows-x86/*.whl
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ez_a_sync
3
- Version: 0.32.16
3
+ Version: 0.32.18
4
4
  Summary: A library that makes it easy to define objects that can be used for both sync and async use cases.
5
5
  Home-page: https://github.com/BobTheBuidler/a-sync
6
6
  Author: BobTheBuidler
@@ -12595,7 +12595,7 @@ __Pyx_RefNannySetupContext("PyInit__smart", 0);
12595
12595
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
12596
12596
  (void)__Pyx_modinit_function_import_code(__pyx_mstate);
12597
12597
  /*--- Execution code ---*/
12598
- __Pyx_TraceStartFunc("PyInit__smart", __pyx_f[0], 1, 0, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
12598
+ __Pyx_TraceStartFunc("PyInit__smart", __pyx_f[0], 1, 1, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
12599
12599
 
12600
12600
  /* "cfunc.to_py":65
12601
12601
  *
@@ -13261,7 +13261,7 @@ __Pyx_RefNannySetupContext("PyInit__smart", 0);
13261
13261
  * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
13262
13262
  * def __setstate_cython__(self, __pyx_state):
13263
13263
  */
13264
- __Pyx_TraceLine(1,1,0,__PYX_ERR(1, 1, __pyx_L1_error))
13264
+ __Pyx_TraceLine(1,0,0,__PYX_ERR(1, 1, __pyx_L1_error))
13265
13265
  __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_6_smart_7WeakSet_18__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WeakSet___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync__smart, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1, __pyx_L1_error)
13266
13266
  __Pyx_GOTREF(__pyx_t_5);
13267
13267
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_5) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
@@ -13772,12 +13772,12 @@ __Pyx_RefNannySetupContext("PyInit__smart", 0);
13772
13772
  * This module defines smart future and task utilities for the a_sync library.
13773
13773
  * These utilities provide enhanced functionality for managing asynchronous tasks and futures,
13774
13774
  */
13775
- __Pyx_TraceLine(1,0,0,__PYX_ERR(0, 1, __pyx_L1_error))
13775
+ __Pyx_TraceLine(1,1,0,__PYX_ERR(0, 1, __pyx_L1_error))
13776
13776
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error)
13777
13777
  __Pyx_GOTREF(__pyx_t_3);
13778
13778
  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)
13779
13779
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
13780
- __Pyx_TraceReturnValue(Py_None, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
13780
+ __Pyx_TraceReturnValue(Py_None, 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
13781
13781
  __Pyx_PyMonitoring_ExitScope(0);
13782
13782
 
13783
13783
  /*--- Wrapped vars code ---*/
@@ -13791,7 +13791,7 @@ __Pyx_RefNannySetupContext("PyInit__smart", 0);
13791
13791
  __Pyx_XDECREF(__pyx_t_8);
13792
13792
  __Pyx_XDECREF(__pyx_t_9);
13793
13793
  __Pyx_TraceException(__pyx_lineno, 0, 0);
13794
- __Pyx_TraceExceptionUnwind(0, 0);
13794
+ __Pyx_TraceExceptionUnwind(1, 0);
13795
13795
  if (__pyx_m) {
13796
13796
  if (__pyx_mstate->__pyx_d && stringtab_initialized) {
13797
13797
  __Pyx_AddTraceback("init a_sync._smart", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -1719,6 +1719,10 @@ static struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ModifiedMixin *__pyx_v
1719
1719
 
1720
1720
  struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ASyncFunction {
1721
1721
  struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ModifiedMixin __pyx_base;
1722
+ PyObject *(*get_fn)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *);
1723
+ int (*is_async_def)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, int __pyx_skip_dispatch);
1724
+ int (*is_sync_default)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, int __pyx_skip_dispatch);
1725
+ int (*_run_sync)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, PyObject *);
1722
1726
  };
1723
1727
  static struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ASyncFunction *__pyx_vtabptr_6a_sync_6a_sync_8function__ASyncFunction;
1724
1728
 
@@ -10488,7 +10492,7 @@ __Pyx_RefNannySetupContext("PyInit__descriptor", 0);
10488
10492
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
10489
10493
  if (unlikely((__Pyx_modinit_function_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
10490
10494
  /*--- Execution code ---*/
10491
- __Pyx_TraceStartFunc("PyInit__descriptor", __pyx_f[0], 1, 1, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
10495
+ __Pyx_TraceStartFunc("PyInit__descriptor", __pyx_f[0], 1, 2, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
10492
10496
 
10493
10497
  /* "a_sync/a_sync/_descriptor.pyx":16
10494
10498
  * """
@@ -11102,7 +11106,7 @@ __Pyx_RefNannySetupContext("PyInit__descriptor", 0);
11102
11106
  * cdef tuple state
11103
11107
  * cdef object _dict
11104
11108
  */
11105
- __Pyx_TraceLine(1,2,0,__PYX_ERR(1, 1, __pyx_L1_error))
11109
+ __Pyx_TraceLine(1,1,0,__PYX_ERR(1, 1, __pyx_L1_error))
11106
11110
  __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_6a_sync_6a_sync_11_descriptor_16_ASyncDescriptor_34__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASyncDescriptor___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_a_sync_a_sync__descriptor, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1, __pyx_L1_error)
11107
11111
  __Pyx_GOTREF(__pyx_t_6);
11108
11112
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_6a_sync_6a_sync_11_descriptor__ASyncDescriptor, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_6) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
@@ -11375,12 +11379,12 @@ __Pyx_RefNannySetupContext("PyInit__descriptor", 0);
11375
11379
  * This module contains the :class:`ASyncDescriptor` class, which is used to create dual-function sync/async methods
11376
11380
  * and properties.
11377
11381
  */
11378
- __Pyx_TraceLine(1,1,0,__PYX_ERR(0, 1, __pyx_L1_error))
11382
+ __Pyx_TraceLine(1,2,0,__PYX_ERR(0, 1, __pyx_L1_error))
11379
11383
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error)
11380
11384
  __Pyx_GOTREF(__pyx_t_3);
11381
11385
  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)
11382
11386
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11383
- __Pyx_TraceReturnValue(Py_None, 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
11387
+ __Pyx_TraceReturnValue(Py_None, 2, 0, __PYX_ERR(0, 1, __pyx_L1_error));
11384
11388
  __Pyx_PyMonitoring_ExitScope(0);
11385
11389
 
11386
11390
  /*--- Wrapped vars code ---*/
@@ -11394,7 +11398,7 @@ __Pyx_RefNannySetupContext("PyInit__descriptor", 0);
11394
11398
  __Pyx_XDECREF(__pyx_t_8);
11395
11399
  __Pyx_XDECREF(__pyx_t_9);
11396
11400
  __Pyx_TraceException(__pyx_lineno, 0, 0);
11397
- __Pyx_TraceExceptionUnwind(1, 0);
11401
+ __Pyx_TraceExceptionUnwind(2, 0);
11398
11402
  if (__pyx_m) {
11399
11403
  if (__pyx_mstate->__pyx_d && stringtab_initialized) {
11400
11404
  __Pyx_AddTraceback("init a_sync.a_sync._descriptor", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -1697,6 +1697,10 @@ static struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ModifiedMixin *__pyx_v
1697
1697
 
1698
1698
  struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ASyncFunction {
1699
1699
  struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ModifiedMixin __pyx_base;
1700
+ PyObject *(*get_fn)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *);
1701
+ int (*is_async_def)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, int __pyx_skip_dispatch);
1702
+ int (*is_sync_default)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, int __pyx_skip_dispatch);
1703
+ int (*_run_sync)(struct __pyx_obj_6a_sync_6a_sync_8function__ASyncFunction *, PyObject *);
1700
1704
  };
1701
1705
  static struct __pyx_vtabstruct_6a_sync_6a_sync_8function__ASyncFunction *__pyx_vtabptr_6a_sync_6a_sync_8function__ASyncFunction;
1702
1706
  /* #### Code section: utility_code_proto ### */
@@ -6,7 +6,7 @@ from typing import Any, Dict, Tuple
6
6
 
7
7
  from a_sync import ENVIRONMENT_VARIABLES
8
8
  from a_sync.a_sync import modifiers
9
- from a_sync.a_sync.function import ASyncFunction, _ModifiedMixin
9
+ from a_sync.a_sync.function import _ASyncFunction, _ModifiedMixin
10
10
  from a_sync.a_sync.method import ASyncMethodDescriptor
11
11
  from a_sync.a_sync.property import (
12
12
  ASyncCachedPropertyDescriptor,
@@ -137,7 +137,7 @@ class ASyncMeta(ABCMeta):
137
137
  attr_value.hidden_method_name,
138
138
  attr_value.hidden_method_descriptor,
139
139
  )
140
- elif isinstance(attr_value, ASyncFunction):
140
+ elif isinstance(attr_value, _ASyncFunction):
141
141
  attrs[attr_name] = ASyncMethodDescriptor(attr_value, **fn_modifiers)
142
142
  else:
143
143
  raise NotImplementedError(attr_name, attr_value)