ez-a-sync 0.30.0__tar.gz → 0.30.2__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 (208) hide show
  1. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/PKG-INFO +1 -1
  2. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/debugging.py +25 -18
  3. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/executor.py +3 -5
  4. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/prio_semaphore.c +799 -532
  5. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/prio_semaphore.pyx +49 -11
  6. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/PKG-INFO +1 -1
  7. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.coverage +0 -0
  8. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/black.yaml +0 -0
  9. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/codeql.yaml +0 -0
  10. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/docs.yaml +0 -0
  11. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/mypy.yaml +0 -0
  12. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/pytest.yaml +0 -0
  13. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.github/workflows/release.yaml +0 -0
  14. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.gitignore +0 -0
  15. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/.sourcery.yaml +0 -0
  16. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/LICENSE.txt +0 -0
  17. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/MANIFEST.in +0 -0
  18. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/Makefile +0 -0
  19. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/README.md +0 -0
  20. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/TODO +0 -0
  21. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/ENVIRONMENT_VARIABLES.py +0 -0
  22. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/__init__.pxd +0 -0
  23. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/__init__.py +0 -0
  24. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/_smart.c +0 -0
  25. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/_smart.pxd +0 -0
  26. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/_smart.pyi +0 -0
  27. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/_smart.pyx +0 -0
  28. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/_typing.py +0 -0
  29. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/__init__.py +0 -0
  30. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_descriptor.c +0 -0
  31. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_descriptor.pyi +0 -0
  32. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_descriptor.pyx +0 -0
  33. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_flags.c +0 -0
  34. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_flags.pxd +0 -0
  35. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_flags.pyx +0 -0
  36. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_helpers.c +0 -0
  37. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_helpers.pxd +0 -0
  38. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_helpers.pyi +0 -0
  39. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_helpers.pyx +0 -0
  40. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_kwargs.c +0 -0
  41. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_kwargs.pxd +0 -0
  42. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_kwargs.pyx +0 -0
  43. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/_meta.py +0 -0
  44. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/abstract.c +0 -0
  45. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/abstract.pyi +0 -0
  46. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/abstract.pyx +0 -0
  47. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/base.c +0 -0
  48. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/base.pyi +0 -0
  49. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/base.pyx +0 -0
  50. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/config.py +0 -0
  51. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/decorator.py +0 -0
  52. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/flags.c +0 -0
  53. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/flags.pxd +0 -0
  54. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/flags.pyi +0 -0
  55. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/flags.pyx +0 -0
  56. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/function.c +0 -0
  57. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/function.pxd +0 -0
  58. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/function.pyi +0 -0
  59. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/function.pyx +0 -0
  60. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/method.c +0 -0
  61. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/method.pxd +0 -0
  62. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/method.pyi +0 -0
  63. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/method.pyx +0 -0
  64. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/__init__.pxd +0 -0
  65. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/__init__.py +0 -0
  66. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/cache/__init__.py +0 -0
  67. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/cache/memory.py +0 -0
  68. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/limiter.py +0 -0
  69. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/manager.c +0 -0
  70. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/manager.pxd +0 -0
  71. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/manager.pyi +0 -0
  72. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/manager.pyx +0 -0
  73. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/modifiers/semaphores.py +0 -0
  74. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/property.c +0 -0
  75. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/property.pyi +0 -0
  76. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/property.pyx +0 -0
  77. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/a_sync/singleton.py +0 -0
  78. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/aliases.py +0 -0
  79. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/__init__.pxd +0 -0
  80. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/__init__.py +0 -0
  81. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/cached.c +0 -0
  82. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/cached.pxd +0 -0
  83. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/cached.pyi +0 -0
  84. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/cached.pyx +0 -0
  85. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/proxy.c +0 -0
  86. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/proxy.pxd +0 -0
  87. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/proxy.pyi +0 -0
  88. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/async_property/proxy.pyx +0 -0
  89. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/__init__.pxd +0 -0
  90. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/__init__.py +0 -0
  91. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/as_completed.c +0 -0
  92. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/as_completed.pxd +0 -0
  93. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/as_completed.pyi +0 -0
  94. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/as_completed.pyx +0 -0
  95. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/create_task.c +0 -0
  96. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/create_task.pxd +0 -0
  97. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/create_task.pyi +0 -0
  98. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/create_task.pyx +0 -0
  99. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/gather.c +0 -0
  100. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/gather.pyi +0 -0
  101. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/gather.pyx +0 -0
  102. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/igather.c +0 -0
  103. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/igather.pxd +0 -0
  104. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/igather.pyi +0 -0
  105. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/igather.pyx +0 -0
  106. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/sleep.c +0 -0
  107. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/sleep.pyi +0 -0
  108. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/asyncio/sleep.pyx +0 -0
  109. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/exceptions.c +0 -0
  110. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/exceptions.pyi +0 -0
  111. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/exceptions.pyx +0 -0
  112. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/functools.c +0 -0
  113. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/functools.pxd +0 -0
  114. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/functools.pyi +0 -0
  115. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/functools.pyx +0 -0
  116. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/future.py +0 -0
  117. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/iter.c +0 -0
  118. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/iter.pyi +0 -0
  119. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/iter.pyx +0 -0
  120. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/__init__.pxd +0 -0
  121. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/__init__.py +0 -0
  122. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_debug.c +0 -0
  123. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_debug.pxd +0 -0
  124. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_debug.pyi +0 -0
  125. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_debug.pyx +0 -0
  126. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_loggable.c +0 -0
  127. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_loggable.pxd +0 -0
  128. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_loggable.pyi +0 -0
  129. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/_loggable.pyx +0 -0
  130. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/__init__.pxd +0 -0
  131. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/__init__.py +0 -0
  132. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/counter.c +0 -0
  133. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/counter.pxd +0 -0
  134. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/counter.pyi +0 -0
  135. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/counter.pyx +0 -0
  136. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/event.c +0 -0
  137. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/event.pxd +0 -0
  138. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/event.pyi +0 -0
  139. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/event.pyx +0 -0
  140. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/prio_semaphore.pxd +0 -0
  141. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/prio_semaphore.pyi +0 -0
  142. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/semaphore.c +0 -0
  143. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/semaphore.pxd +0 -0
  144. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/semaphore.pyi +0 -0
  145. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/locks/semaphore.pyx +0 -0
  146. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/primitives/queue.py +0 -0
  147. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/py.typed +0 -0
  148. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/sphinx/__init__.py +0 -0
  149. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/sphinx/ext.py +0 -0
  150. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/task.py +0 -0
  151. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/utils/__init__.py +0 -0
  152. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/utils/iterators.py +0 -0
  153. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/a_sync/utils/repr.py +0 -0
  154. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/Makefile +0 -0
  155. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/alabaster.css +0 -0
  156. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/basic.css +0 -0
  157. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/custom.css +0 -0
  158. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/doctools.js +0 -0
  159. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/documentation_options.js +0 -0
  160. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/file.png +0 -0
  161. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/language_data.js +0 -0
  162. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/minus.png +0 -0
  163. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/plus.png +0 -0
  164. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/pygments.css +0 -0
  165. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/searchtools.js +0 -0
  166. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  167. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/conf.py +0 -0
  168. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/index.rst +0 -0
  169. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/docs/make.bat +0 -0
  170. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/SOURCES.txt +0 -0
  171. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/dependency_links.txt +0 -0
  172. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/not-zip-safe +0 -0
  173. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/requires.txt +0 -0
  174. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/ez_a_sync.egg-info/top_level.txt +0 -0
  175. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/pyproject.toml +0 -0
  176. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/requirements-dev.txt +0 -0
  177. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/requirements.txt +0 -0
  178. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/setup.cfg +0 -0
  179. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/setup.py +0 -0
  180. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/__init__.py +0 -0
  181. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/modifiers/test_apply_semaphore.py +0 -0
  182. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_abstract.py +0 -0
  183. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_base.py +0 -0
  184. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_cache.py +0 -0
  185. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_decorator.py +0 -0
  186. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_limiter.py +0 -0
  187. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_meta.py +0 -0
  188. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_modified.py +0 -0
  189. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/a_sync/test_singleton.py +0 -0
  190. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/asyncio/test_as_completed.py +0 -0
  191. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/asyncio/test_create_task.py +0 -0
  192. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/asyncio/test_gather.py +0 -0
  193. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/conftest.py +0 -0
  194. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/executor.py +0 -0
  195. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/fixtures.py +0 -0
  196. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/primitives/test_counter.py +0 -0
  197. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/primitives/test_event.py +0 -0
  198. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/primitives/test_prio_semaphore.py +0 -0
  199. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/primitives/test_queue.py +0 -0
  200. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/primitives/test_semaphore.py +0 -0
  201. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/task/test_task.py +0 -0
  202. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/task/test_task_mapping_views.py +0 -0
  203. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/test_executor.py +0 -0
  204. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/test_future.py +0 -0
  205. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/test_helpers.py +0 -0
  206. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/test_iter.py +0 -0
  207. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/test_smart.py +0 -0
  208. {ez_a_sync-0.30.0 → ez_a_sync-0.30.2}/tests/utils/test_repr.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ez-a-sync
3
- Version: 0.30.0
3
+ Version: 0.30.2
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
@@ -1,6 +1,6 @@
1
1
  from asyncio import create_task, sleep
2
2
  from inspect import isasyncgenfunction
3
- from logging import DEBUG, getLogger
3
+ from logging import DEBUG, Logger, getLogger
4
4
  from functools import wraps
5
5
  from time import time
6
6
  from typing import AsyncIterator, Awaitable, Callable, NoReturn, TypeVar, overload
@@ -17,46 +17,52 @@ __T = TypeVar("__T")
17
17
  __B = TypeVar("__B", bound=ASyncGenericBase)
18
18
 
19
19
 
20
+ _FIVE_MINUTES = 300
21
+
20
22
  logger = getLogger("a_sync.debugging")
21
- __logger_is_enabled_for = logger.isEnabledFor
22
- __logger_log = logger._log
23
23
 
24
24
 
25
25
  @overload
26
26
  def stuck_coro_debugger(
27
27
  fn: Callable[Concatenate[__B, __P], AsyncIterator[__T]],
28
+ logger: Logger = logger,
29
+ interval: int = _FIVE_MINUTES,
28
30
  ) -> ASyncGeneratorFunction[__P, __T]: ...
29
31
 
30
32
 
31
33
  @overload
32
34
  def stuck_coro_debugger(
33
35
  fn: Callable[Concatenate[__B, __P], Awaitable[__T]],
36
+ logger: Logger = logger,
37
+ interval: int = _FIVE_MINUTES,
34
38
  ) -> ASyncBoundMethod[__B, __P, __T]: ...
35
39
 
36
40
 
37
41
  @overload
38
42
  def stuck_coro_debugger(
39
- fn: Callable[Concatenate[__B, __P], __T],
43
+ fn: Callable[Concatenate[__B, __P], __T], logger: Logger = logger, interval: int = _FIVE_MINUTES
40
44
  ) -> ASyncBoundMethod[__B, __P, __T]: ...
41
45
 
42
46
 
43
47
  @overload
44
48
  def stuck_coro_debugger(
45
- fn: Callable[__P, AsyncIterator[__T]],
49
+ fn: Callable[__P, AsyncIterator[__T]], logger: Logger = logger, interval: int = _FIVE_MINUTES
46
50
  ) -> Callable[__P, AsyncIterator[__T]]: ...
47
51
 
48
52
 
49
53
  @overload
50
- def stuck_coro_debugger(fn: Callable[__P, Awaitable[__T]]) -> Callable[__P, Awaitable[__T]]: ...
54
+ def stuck_coro_debugger(
55
+ fn: Callable[__P, Awaitable[__T]], logger: Logger = logger, interval: int = _FIVE_MINUTES
56
+ ) -> Callable[__P, Awaitable[__T]]: ...
57
+
51
58
 
59
+ def stuck_coro_debugger(fn, logger=logger, interval=_FIVE_MINUTES):
60
+ __logger_is_enabled_for = logger.isEnabledFor
52
61
 
53
- def stuck_coro_debugger(fn):
54
62
  if isasyncgenfunction(fn):
55
63
 
56
64
  @wraps(fn)
57
- async def stuck_async_gen_wrap(
58
- *args: __P.args, **kwargs: __P.kwargs
59
- ) -> AsyncIterator[__T]:
65
+ async def stuck_async_gen_wrap(*args: __P.args, **kwargs: __P.kwargs) -> AsyncIterator[__T]:
60
66
  aiterator = fn(*args, **kwargs)
61
67
 
62
68
  if not __logger_is_enabled_for(DEBUG):
@@ -65,7 +71,7 @@ def stuck_coro_debugger(fn):
65
71
  return
66
72
 
67
73
  task = create_task(
68
- coro=_stuck_debug_task(fn, args, kwargs),
74
+ coro=_stuck_debug_task(logger, interval, fn, args, kwargs),
69
75
  name="_stuck_debug_task",
70
76
  )
71
77
  try:
@@ -83,7 +89,7 @@ def stuck_coro_debugger(fn):
83
89
  return await fn(*args, **kwargs)
84
90
 
85
91
  task = create_task(
86
- coro=_stuck_debug_task(fn, args, kwargs),
92
+ coro=_stuck_debug_task(logger, interval, fn, args, kwargs),
87
93
  name="_stuck_debug_task",
88
94
  )
89
95
  try:
@@ -96,18 +102,19 @@ def stuck_coro_debugger(fn):
96
102
 
97
103
 
98
104
  async def _stuck_debug_task(
99
- fn: Callable[__P, __T], *args: __P.args, **kwargs: __P.kwargs
105
+ logger: Logger, interval: int, fn: Callable[__P, __T], *args: __P.args, **kwargs: __P.kwargs
100
106
  ) -> NoReturn:
101
107
  # sleep early so fast-running coros can exit early
102
- await sleep(300)
108
+ await sleep(interval)
103
109
 
104
- start = time() - 300
110
+ start = time() - interval
105
111
  module = fn.__module__
106
112
  name = fn.__name__
107
113
  formatted_args = tuple(map(str, args))
108
114
  formatted_kwargs = dict(zip(kwargs.keys(), map(str, kwargs.values())))
115
+ log = logger._log
109
116
  while True:
110
- __logger_log(
117
+ log(
111
118
  DEBUG,
112
119
  "%s.%s still executing after %sm with args %s kwargs %s",
113
120
  (
@@ -118,7 +125,7 @@ async def _stuck_debug_task(
118
125
  formatted_kwargs,
119
126
  ),
120
127
  )
121
- await sleep(300)
128
+ await sleep(interval)
122
129
 
123
130
 
124
- __all__ = ["stuck_coro_debugger"]
131
+ __all__ = ["stuck_coro_debugger"]
@@ -155,7 +155,8 @@ class _AsyncExecutorMixin(concurrent.futures.Executor, _DebugDaemonMixin):
155
155
  self.__super_submit(fn, *args, **kwargs)
156
156
  return None
157
157
 
158
- fut = self._create_future()
158
+ loop = self._get_loop()
159
+ fut = loop.create_future()
159
160
  if self.sync_mode:
160
161
  try:
161
162
  _set_fut_result(fut, fn(*args, **kwargs))
@@ -176,7 +177,7 @@ class _AsyncExecutorMixin(concurrent.futures.Executor, _DebugDaemonMixin):
176
177
  def _call_copy_future_state(cf_fut: "concurrent.futures.Future"):
177
178
  if _fut_is_cancelled(fut):
178
179
  return
179
- self._call_soon_threadsafe(
180
+ loop.call_soon_threadsafe(
180
181
  _copy_future_state,
181
182
  cf_fut,
182
183
  fut,
@@ -207,10 +208,7 @@ class _AsyncExecutorMixin(concurrent.futures.Executor, _DebugDaemonMixin):
207
208
 
208
209
  def __init_mixin__(self):
209
210
  self.sync_mode = self._max_workers == 0
210
- loop = self._get_loop()
211
- self._create_future = loop.create_future
212
211
  self.__super_submit = super().submit
213
- self._call_soon_threadsafe = loop.call_soon_threadsafe
214
212
 
215
213
  async def _debug_daemon(self, fut: asyncio.Future, fn, *args, **kwargs) -> None:
216
214
  """