ez-a-sync 0.24.43__tar.gz → 0.24.45__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 (171) hide show
  1. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/PKG-INFO +1 -1
  2. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/executor.py +6 -2
  3. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/counter.c +12 -36
  4. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/counter.pyx +1 -1
  5. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/semaphore.c +1427 -1402
  6. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/semaphore.pyx +29 -23
  7. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/PKG-INFO +1 -1
  8. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.coverage +0 -0
  9. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/black.yaml +0 -0
  10. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/codeql.yaml +0 -0
  11. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/docs.yaml +0 -0
  12. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/mypy.yaml +0 -0
  13. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/pytest.yaml +0 -0
  14. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.github/workflows/release.yaml +0 -0
  15. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.gitignore +0 -0
  16. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/.sourcery.yaml +0 -0
  17. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/LICENSE.txt +0 -0
  18. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/MANIFEST.in +0 -0
  19. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/Makefile +0 -0
  20. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/README.md +0 -0
  21. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/TODO +0 -0
  22. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/ENVIRONMENT_VARIABLES.py +0 -0
  23. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/__init__.pxd +0 -0
  24. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/__init__.py +0 -0
  25. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/_smart.c +0 -0
  26. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/_smart.pyx +0 -0
  27. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/_typing.py +0 -0
  28. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/__init__.py +0 -0
  29. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_descriptor.py +0 -0
  30. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_flags.c +0 -0
  31. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_flags.pxd +0 -0
  32. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_flags.pyx +0 -0
  33. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_helpers.c +0 -0
  34. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_helpers.pxd +0 -0
  35. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_helpers.pyi +0 -0
  36. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_helpers.pyx +0 -0
  37. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_kwargs.c +0 -0
  38. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_kwargs.pxd +0 -0
  39. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_kwargs.pyx +0 -0
  40. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/_meta.py +0 -0
  41. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/abstract.c +0 -0
  42. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/abstract.pyi +0 -0
  43. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/abstract.pyx +0 -0
  44. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/base.c +0 -0
  45. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/base.pyi +0 -0
  46. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/base.pyx +0 -0
  47. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/config.py +0 -0
  48. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/decorator.py +0 -0
  49. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/flags.py +0 -0
  50. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/function.c +0 -0
  51. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/function.pyi +0 -0
  52. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/function.pyx +0 -0
  53. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/method.c +0 -0
  54. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/method.pxd +0 -0
  55. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/method.pyi +0 -0
  56. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/method.pyx +0 -0
  57. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/__init__.py +0 -0
  58. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/cache/__init__.py +0 -0
  59. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/cache/memory.py +0 -0
  60. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/limiter.py +0 -0
  61. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/manager.c +0 -0
  62. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/manager.pyi +0 -0
  63. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/manager.pyx +0 -0
  64. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/modifiers/semaphores.py +0 -0
  65. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/property.c +0 -0
  66. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/property.pyi +0 -0
  67. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/property.pyx +0 -0
  68. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/a_sync/singleton.py +0 -0
  69. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/aliases.py +0 -0
  70. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/__init__.py +0 -0
  71. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/as_completed.c +0 -0
  72. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/as_completed.pxd +0 -0
  73. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/as_completed.pyi +0 -0
  74. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/as_completed.pyx +0 -0
  75. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/create_task.c +0 -0
  76. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/create_task.pxd +0 -0
  77. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/create_task.pyi +0 -0
  78. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/create_task.pyx +0 -0
  79. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/gather.c +0 -0
  80. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/gather.pyi +0 -0
  81. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/asyncio/gather.pyx +0 -0
  82. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/exceptions.py +0 -0
  83. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/future.py +0 -0
  84. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/iter.c +0 -0
  85. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/iter.pyi +0 -0
  86. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/iter.pyx +0 -0
  87. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/__init__.pxd +0 -0
  88. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/__init__.py +0 -0
  89. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_debug.c +0 -0
  90. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_debug.pxd +0 -0
  91. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_debug.pyi +0 -0
  92. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_debug.pyx +0 -0
  93. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_loggable.c +0 -0
  94. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_loggable.pxd +0 -0
  95. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_loggable.pyi +0 -0
  96. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/_loggable.pyx +0 -0
  97. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/__init__.pxd +0 -0
  98. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/__init__.py +0 -0
  99. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/counter.pxd +0 -0
  100. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/counter.pyi +0 -0
  101. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/event.c +0 -0
  102. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/event.pxd +0 -0
  103. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/event.pyi +0 -0
  104. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/event.pyx +0 -0
  105. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/prio_semaphore.c +0 -0
  106. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/prio_semaphore.pxd +0 -0
  107. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/prio_semaphore.pyi +0 -0
  108. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/prio_semaphore.pyx +0 -0
  109. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/semaphore.pxd +0 -0
  110. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/locks/semaphore.pyi +0 -0
  111. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/primitives/queue.py +0 -0
  112. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/py.typed +0 -0
  113. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/sphinx/__init__.py +0 -0
  114. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/sphinx/ext.py +0 -0
  115. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/task.py +0 -0
  116. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/utils/__init__.py +0 -0
  117. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/a_sync/utils/iterators.py +0 -0
  118. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/Makefile +0 -0
  119. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/alabaster.css +0 -0
  120. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/basic.css +0 -0
  121. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/custom.css +0 -0
  122. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/doctools.js +0 -0
  123. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/documentation_options.js +0 -0
  124. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/file.png +0 -0
  125. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/language_data.js +0 -0
  126. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/minus.png +0 -0
  127. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/plus.png +0 -0
  128. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/pygments.css +0 -0
  129. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/searchtools.js +0 -0
  130. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  131. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/conf.py +0 -0
  132. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/index.rst +0 -0
  133. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/docs/make.bat +0 -0
  134. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/SOURCES.txt +0 -0
  135. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/dependency_links.txt +0 -0
  136. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/not-zip-safe +0 -0
  137. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/requires.txt +0 -0
  138. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/ez_a_sync.egg-info/top_level.txt +0 -0
  139. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/pyproject.toml +0 -0
  140. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/requirements-dev.txt +0 -0
  141. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/requirements.txt +0 -0
  142. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/setup.cfg +0 -0
  143. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/setup.py +0 -0
  144. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/__init__.py +0 -0
  145. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/modifiers/test_apply_semaphore.py +0 -0
  146. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_abstract.py +0 -0
  147. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_base.py +0 -0
  148. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_cache.py +0 -0
  149. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_decorator.py +0 -0
  150. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_limiter.py +0 -0
  151. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_meta.py +0 -0
  152. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_modified.py +0 -0
  153. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/a_sync/test_singleton.py +0 -0
  154. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/asyncio/test_as_completed.py +0 -0
  155. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/asyncio/test_create_task.py +0 -0
  156. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/asyncio/test_gather.py +0 -0
  157. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/conftest.py +0 -0
  158. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/executor.py +0 -0
  159. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/fixtures.py +0 -0
  160. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/primitives/test_counter.py +0 -0
  161. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/primitives/test_event.py +0 -0
  162. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/primitives/test_prio_semaphore.py +0 -0
  163. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/primitives/test_queue.py +0 -0
  164. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/primitives/test_semaphore.py +0 -0
  165. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/task/test_task.py +0 -0
  166. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/task/test_task_mapping_views.py +0 -0
  167. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/test_executor.py +0 -0
  168. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/test_future.py +0 -0
  169. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/test_helpers.py +0 -0
  170. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/test_iter.py +0 -0
  171. {ez_a_sync-0.24.43 → ez_a_sync-0.24.45}/tests/test_smart.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ez-a-sync
3
- Version: 0.24.43
3
+ Version: 0.24.45
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
@@ -139,7 +139,9 @@ class _AsyncExecutorMixin(concurrent.futures.Executor, _DebugDaemonMixin):
139
139
  return fut
140
140
 
141
141
  def __repr__(self) -> str:
142
- return f"<{self.__class__.__name__} object at {hex(id(self))} [{self.worker_count_current}/{self._max_workers} {self._workers}]>"
142
+ worker_info = f"[{self.worker_count_current}/{self._max_workers} {self._workers}]"
143
+ identifier = getattr(self, "_thread_name_prefix", None) or hex(id(self))
144
+ return f"<{self.__class__.__name__} {identifier} {worker_info}>"
143
145
 
144
146
  def __len__(self) -> int:
145
147
  # NOTE: should this be queue length instead? probably
@@ -311,9 +313,11 @@ class AsyncThreadPoolExecutor(_AsyncExecutorMixin, concurrent.futures.ThreadPool
311
313
  self.__init_mixin__()
312
314
 
313
315
 
316
+ AsyncExecutor = Union[AsyncThreadPoolExecutor, AsyncProcessPoolExecutor]
317
+
314
318
  # For backward-compatibility
315
- ProcessPoolExecutor = AsyncProcessPoolExecutor
316
319
  ThreadPoolExecutor = AsyncThreadPoolExecutor
320
+ ProcessPoolExecutor = AsyncProcessPoolExecutor
317
321
 
318
322
  # Pruning thread pool
319
323
 
@@ -2913,7 +2913,6 @@ int __pyx_module_is_main_a_sync__primitives__locks__counter = 0;
2913
2913
  /* #### Code section: global_var ### */
2914
2914
  static PyObject *__pyx_builtin_MemoryError;
2915
2915
  static PyObject *__pyx_builtin_ValueError;
2916
- static PyObject *__pyx_builtin_round;
2917
2916
  static PyObject *__pyx_builtin_TypeError;
2918
2917
  /* #### Code section: string_decls ### */
2919
2918
  static const char __pyx_k_v[] = "v";
@@ -2943,7 +2942,6 @@ static const char __pyx_k_debug[] = "debug";
2943
2942
  static const char __pyx_k_event[] = "event";
2944
2943
  static const char __pyx_k_heapq[] = "heapq";
2945
2944
  static const char __pyx_k_locks[] = "locks";
2946
- static const char __pyx_k_round[] = "round";
2947
2945
  static const char __pyx_k_sleep[] = "sleep";
2948
2946
  static const char __pyx_k_slots[] = "__slots__";
2949
2947
  static const char __pyx_k_start[] = "start";
@@ -3002,9 +3000,9 @@ static const char __pyx_k_CounterLock_set_line_126[] = "CounterLock.set (line 12
3002
3000
  static const char __pyx_k_CounterLockCluster___init[] = "CounterLockCluster.__init__";
3003
3001
  static const char __pyx_k_CounterLock__debug_daemon[] = "CounterLock._debug_daemon";
3004
3002
  static const char __pyx_k_CounterLock_value_waiters[] = "<CounterLock value={} waiters={}>";
3005
- static const char __pyx_k_s_is_still_locked_after_sm[] = "%s is still locked after %sm";
3006
3003
  static const char __pyx_k_CounterLockCluster_wait_for[] = "CounterLockCluster.wait_for";
3007
3004
  static const char __pyx_k_CounterLock___reduce_cython[] = "CounterLock.__reduce_cython__";
3005
+ static const char __pyx_k_s_is_still_locked_after_2fm[] = "%s is still locked after %.2fm";
3008
3006
  static const char __pyx_k_CounterLock___init___line_40[] = "CounterLock.__init__ (line 40)";
3009
3007
  static const char __pyx_k_CounterLock___repr___line_74[] = "CounterLock.__repr__ (line 74)";
3010
3008
  static const char __pyx_k_CounterLock___setstate_cython[] = "CounterLock.__setstate_cython__";
@@ -3201,8 +3199,7 @@ typedef struct {
3201
3199
  PyObject *__pyx_n_s_reduce_cython;
3202
3200
  PyObject *__pyx_n_s_reduce_ex;
3203
3201
  PyObject *__pyx_n_s_return;
3204
- PyObject *__pyx_n_s_round;
3205
- PyObject *__pyx_kp_u_s_is_still_locked_after_sm;
3202
+ PyObject *__pyx_kp_u_s_is_still_locked_after_2fm;
3206
3203
  PyObject *__pyx_n_s_self;
3207
3204
  PyObject *__pyx_n_s_send;
3208
3205
  PyObject *__pyx_n_s_set;
@@ -3222,7 +3219,6 @@ typedef struct {
3222
3219
  PyObject *__pyx_n_s_value;
3223
3220
  PyObject *__pyx_n_s_wait_for;
3224
3221
  PyObject *__pyx_int_0;
3225
- PyObject *__pyx_int_2;
3226
3222
  PyObject *__pyx_int_300;
3227
3223
  PyObject *__pyx_k_;
3228
3224
  PyObject *__pyx_tuple__3;
@@ -3391,8 +3387,7 @@ static int __pyx_m_clear(PyObject *m) {
3391
3387
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
3392
3388
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
3393
3389
  Py_CLEAR(clear_module_state->__pyx_n_s_return);
3394
- Py_CLEAR(clear_module_state->__pyx_n_s_round);
3395
- Py_CLEAR(clear_module_state->__pyx_kp_u_s_is_still_locked_after_sm);
3390
+ Py_CLEAR(clear_module_state->__pyx_kp_u_s_is_still_locked_after_2fm);
3396
3391
  Py_CLEAR(clear_module_state->__pyx_n_s_self);
3397
3392
  Py_CLEAR(clear_module_state->__pyx_n_s_send);
3398
3393
  Py_CLEAR(clear_module_state->__pyx_n_s_set);
@@ -3412,7 +3407,6 @@ static int __pyx_m_clear(PyObject *m) {
3412
3407
  Py_CLEAR(clear_module_state->__pyx_n_s_value);
3413
3408
  Py_CLEAR(clear_module_state->__pyx_n_s_wait_for);
3414
3409
  Py_CLEAR(clear_module_state->__pyx_int_0);
3415
- Py_CLEAR(clear_module_state->__pyx_int_2);
3416
3410
  Py_CLEAR(clear_module_state->__pyx_int_300);
3417
3411
  Py_CLEAR(clear_module_state->__pyx_k_);
3418
3412
  Py_CLEAR(clear_module_state->__pyx_tuple__3);
@@ -3559,8 +3553,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3559
3553
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
3560
3554
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
3561
3555
  Py_VISIT(traverse_module_state->__pyx_n_s_return);
3562
- Py_VISIT(traverse_module_state->__pyx_n_s_round);
3563
- Py_VISIT(traverse_module_state->__pyx_kp_u_s_is_still_locked_after_sm);
3556
+ Py_VISIT(traverse_module_state->__pyx_kp_u_s_is_still_locked_after_2fm);
3564
3557
  Py_VISIT(traverse_module_state->__pyx_n_s_self);
3565
3558
  Py_VISIT(traverse_module_state->__pyx_n_s_send);
3566
3559
  Py_VISIT(traverse_module_state->__pyx_n_s_set);
@@ -3580,7 +3573,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3580
3573
  Py_VISIT(traverse_module_state->__pyx_n_s_value);
3581
3574
  Py_VISIT(traverse_module_state->__pyx_n_s_wait_for);
3582
3575
  Py_VISIT(traverse_module_state->__pyx_int_0);
3583
- Py_VISIT(traverse_module_state->__pyx_int_2);
3584
3576
  Py_VISIT(traverse_module_state->__pyx_int_300);
3585
3577
  Py_VISIT(traverse_module_state->__pyx_k_);
3586
3578
  Py_VISIT(traverse_module_state->__pyx_tuple__3);
@@ -3753,8 +3745,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3753
3745
  #define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
3754
3746
  #define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
3755
3747
  #define __pyx_n_s_return __pyx_mstate_global->__pyx_n_s_return
3756
- #define __pyx_n_s_round __pyx_mstate_global->__pyx_n_s_round
3757
- #define __pyx_kp_u_s_is_still_locked_after_sm __pyx_mstate_global->__pyx_kp_u_s_is_still_locked_after_sm
3748
+ #define __pyx_kp_u_s_is_still_locked_after_2fm __pyx_mstate_global->__pyx_kp_u_s_is_still_locked_after_2fm
3758
3749
  #define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self
3759
3750
  #define __pyx_n_s_send __pyx_mstate_global->__pyx_n_s_send
3760
3751
  #define __pyx_n_s_set __pyx_mstate_global->__pyx_n_s_set
@@ -3774,7 +3765,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
3774
3765
  #define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value
3775
3766
  #define __pyx_n_s_wait_for __pyx_mstate_global->__pyx_n_s_wait_for
3776
3767
  #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
3777
- #define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
3778
3768
  #define __pyx_int_300 __pyx_mstate_global->__pyx_int_300
3779
3769
  #define __pyx_k_ __pyx_mstate_global->__pyx_k_
3780
3770
  #define __pyx_tuple__3 __pyx_mstate_global->__pyx_tuple__3
@@ -6045,7 +6035,7 @@ static PyObject *__pyx_gb_6a_sync_10primitives_5locks_7counter_11CounterLock_17g
6045
6035
  * while self._events:
6046
6036
  * now = time(NULL) # <<<<<<<<<<<<<<
6047
6037
  * self.get_logger().debug(
6048
- * "%s is still locked after %sm", self, round(now - start / 60, 2)
6038
+ * "%s is still locked after %.2fm", self, (now - start) / 60
6049
6039
  */
6050
6040
  __Pyx_TraceLine(211,0,__PYX_ERR(0, 211, __pyx_L1_error))
6051
6041
  __pyx_cur_scope->__pyx_v_now = time(NULL);
@@ -6054,7 +6044,7 @@ static PyObject *__pyx_gb_6a_sync_10primitives_5locks_7counter_11CounterLock_17g
6054
6044
  * while self._events:
6055
6045
  * now = time(NULL)
6056
6046
  * self.get_logger().debug( # <<<<<<<<<<<<<<
6057
- * "%s is still locked after %sm", self, round(now - start / 60, 2)
6047
+ * "%s is still locked after %.2fm", self, (now - start) / 60
6058
6048
  * )
6059
6049
  */
6060
6050
  __Pyx_TraceLine(212,0,__PYX_ERR(0, 212, __pyx_L1_error))
@@ -6067,24 +6057,13 @@ static PyObject *__pyx_gb_6a_sync_10primitives_5locks_7counter_11CounterLock_17g
6067
6057
  /* "a_sync/primitives/locks/counter.pyx":213
6068
6058
  * now = time(NULL)
6069
6059
  * self.get_logger().debug(
6070
- * "%s is still locked after %sm", self, round(now - start / 60, 2) # <<<<<<<<<<<<<<
6060
+ * "%s is still locked after %.2fm", self, (now - start) / 60 # <<<<<<<<<<<<<<
6071
6061
  * )
6072
6062
  * await sleep(300)
6073
6063
  */
6074
6064
  __Pyx_TraceLine(213,0,__PYX_ERR(0, 213, __pyx_L1_error))
6075
- __pyx_t_3 = PyFloat_FromDouble((__pyx_cur_scope->__pyx_v_now - (((double)__pyx_cur_scope->__pyx_v_start) / 60.0))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error)
6065
+ __pyx_t_3 = PyFloat_FromDouble((((double)(__pyx_cur_scope->__pyx_v_now - __pyx_cur_scope->__pyx_v_start)) / 60.0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error)
6076
6066
  __Pyx_GOTREF(__pyx_t_3);
6077
- __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 213, __pyx_L1_error)
6078
- __Pyx_GOTREF(__pyx_t_5);
6079
- __Pyx_GIVEREF(__pyx_t_3);
6080
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error);
6081
- __Pyx_INCREF(__pyx_int_2);
6082
- __Pyx_GIVEREF(__pyx_int_2);
6083
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_2)) __PYX_ERR(0, 213, __pyx_L1_error);
6084
- __pyx_t_3 = 0;
6085
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_round, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error)
6086
- __Pyx_GOTREF(__pyx_t_3);
6087
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
6088
6067
  __pyx_t_5 = NULL;
6089
6068
  __pyx_t_6 = 0;
6090
6069
  #if CYTHON_UNPACK_METHODS
@@ -6100,7 +6079,7 @@ static PyObject *__pyx_gb_6a_sync_10primitives_5locks_7counter_11CounterLock_17g
6100
6079
  }
6101
6080
  #endif
6102
6081
  {
6103
- PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_kp_u_s_is_still_locked_after_sm, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_t_3};
6082
+ PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_kp_u_s_is_still_locked_after_2fm, ((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_t_3};
6104
6083
  __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
6105
6084
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
6106
6085
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -6111,7 +6090,7 @@ static PyObject *__pyx_gb_6a_sync_10primitives_5locks_7counter_11CounterLock_17g
6111
6090
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
6112
6091
 
6113
6092
  /* "a_sync/primitives/locks/counter.pyx":215
6114
- * "%s is still locked after %sm", self, round(now - start / 60, 2)
6093
+ * "%s is still locked after %.2fm", self, (now - start) / 60
6115
6094
  * )
6116
6095
  * await sleep(300) # <<<<<<<<<<<<<<
6117
6096
  *
@@ -7796,8 +7775,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
7796
7775
  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
7797
7776
  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
7798
7777
  {&__pyx_n_s_return, __pyx_k_return, sizeof(__pyx_k_return), 0, 0, 1, 1},
7799
- {&__pyx_n_s_round, __pyx_k_round, sizeof(__pyx_k_round), 0, 0, 1, 1},
7800
- {&__pyx_kp_u_s_is_still_locked_after_sm, __pyx_k_s_is_still_locked_after_sm, sizeof(__pyx_k_s_is_still_locked_after_sm), 0, 1, 0, 0},
7778
+ {&__pyx_kp_u_s_is_still_locked_after_2fm, __pyx_k_s_is_still_locked_after_2fm, sizeof(__pyx_k_s_is_still_locked_after_2fm), 0, 1, 0, 0},
7801
7779
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
7802
7780
  {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
7803
7781
  {&__pyx_n_s_set, __pyx_k_set, sizeof(__pyx_k_set), 0, 0, 1, 1},
@@ -7824,7 +7802,6 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
7824
7802
  static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
7825
7803
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 62, __pyx_L1_error)
7826
7804
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 196, __pyx_L1_error)
7827
- __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_n_s_round); if (!__pyx_builtin_round) __PYX_ERR(0, 213, __pyx_L1_error)
7828
7805
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error)
7829
7806
  return 0;
7830
7807
  __pyx_L1_error:;
@@ -7976,7 +7953,6 @@ static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
7976
7953
  __pyx_umethod_PyDict_Type_pop.method_name = &__pyx_n_s_pop;
7977
7954
  if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
7978
7955
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
7979
- __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
7980
7956
  __pyx_int_300 = PyInt_FromLong(300); if (unlikely(!__pyx_int_300)) __PYX_ERR(0, 1, __pyx_L1_error)
7981
7957
  return 0;
7982
7958
  __pyx_L1_error:;
@@ -210,7 +210,7 @@ cdef class CounterLock(_DebugDaemonMixin):
210
210
  while self._events:
211
211
  now = time(NULL)
212
212
  self.get_logger().debug(
213
- "%s is still locked after %sm", self, round(now - start / 60, 2)
213
+ "%s is still locked after %.2fm", self, (now - start) / 60
214
214
  )
215
215
  await sleep(300)
216
216