ez-a-sync 0.24.25__tar.gz → 0.24.26__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 (170) hide show
  1. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/PKG-INFO +1 -1
  2. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/_smart.py +7 -7
  3. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/create_task.c +223 -177
  4. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/create_task.pyx +6 -2
  5. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/event.c +84 -42
  6. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/event.pyx +5 -1
  7. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/prio_semaphore.c +366 -367
  8. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/prio_semaphore.pyx +12 -5
  9. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/semaphore.c +505 -482
  10. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/semaphore.pyx +11 -4
  11. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/queue.py +1 -0
  12. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/PKG-INFO +1 -1
  13. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.coverage +0 -0
  14. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/black.yaml +0 -0
  15. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/codeql.yaml +0 -0
  16. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/docs.yaml +0 -0
  17. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/mypy.yaml +0 -0
  18. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/pytest.yaml +0 -0
  19. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.github/workflows/release.yaml +0 -0
  20. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.gitignore +0 -0
  21. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/.sourcery.yaml +0 -0
  22. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/LICENSE.txt +0 -0
  23. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/MANIFEST.in +0 -0
  24. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/Makefile +0 -0
  25. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/README.md +0 -0
  26. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/TODO +0 -0
  27. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/ENVIRONMENT_VARIABLES.py +0 -0
  28. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/__init__.pxd +0 -0
  29. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/__init__.py +0 -0
  30. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/_typing.py +0 -0
  31. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/__init__.py +0 -0
  32. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_descriptor.py +0 -0
  33. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_flags.c +0 -0
  34. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_flags.pxd +0 -0
  35. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_flags.pyx +0 -0
  36. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_helpers.c +0 -0
  37. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_helpers.pxd +0 -0
  38. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_helpers.pyi +0 -0
  39. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_helpers.pyx +0 -0
  40. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_kwargs.c +0 -0
  41. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_kwargs.pxd +0 -0
  42. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_kwargs.pyx +0 -0
  43. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/_meta.py +0 -0
  44. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/abstract.c +0 -0
  45. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/abstract.pyi +0 -0
  46. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/abstract.pyx +0 -0
  47. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/base.c +0 -0
  48. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/base.pyi +0 -0
  49. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/base.pyx +0 -0
  50. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/config.py +0 -0
  51. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/decorator.py +0 -0
  52. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/flags.py +0 -0
  53. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/function.c +0 -0
  54. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/function.pyi +0 -0
  55. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/function.pyx +0 -0
  56. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/method.c +0 -0
  57. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/method.pxd +0 -0
  58. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/method.pyi +0 -0
  59. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/method.pyx +0 -0
  60. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/__init__.py +0 -0
  61. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/cache/__init__.py +0 -0
  62. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/cache/memory.py +0 -0
  63. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/limiter.py +0 -0
  64. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/manager.c +0 -0
  65. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/manager.pyi +0 -0
  66. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/manager.pyx +0 -0
  67. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/modifiers/semaphores.py +0 -0
  68. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/property.c +0 -0
  69. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/property.pyi +0 -0
  70. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/property.pyx +0 -0
  71. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/a_sync/singleton.py +0 -0
  72. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/aliases.py +0 -0
  73. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/__init__.py +0 -0
  74. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/as_completed.c +0 -0
  75. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/as_completed.pxd +0 -0
  76. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/as_completed.pyi +0 -0
  77. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/as_completed.pyx +0 -0
  78. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/create_task.pxd +0 -0
  79. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/create_task.pyi +0 -0
  80. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/gather.c +0 -0
  81. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/gather.pyi +0 -0
  82. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/asyncio/gather.pyx +0 -0
  83. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/exceptions.py +0 -0
  84. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/executor.py +0 -0
  85. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/future.py +0 -0
  86. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/iter.c +0 -0
  87. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/iter.pyi +0 -0
  88. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/iter.pyx +0 -0
  89. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/__init__.pxd +0 -0
  90. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/__init__.py +0 -0
  91. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_debug.c +0 -0
  92. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_debug.pxd +0 -0
  93. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_debug.pyi +0 -0
  94. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_debug.pyx +0 -0
  95. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_loggable.c +0 -0
  96. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_loggable.pxd +0 -0
  97. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_loggable.pyi +0 -0
  98. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/_loggable.pyx +0 -0
  99. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/__init__.pxd +0 -0
  100. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/__init__.py +0 -0
  101. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/counter.c +0 -0
  102. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/counter.pxd +0 -0
  103. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/counter.pyi +0 -0
  104. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/counter.pyx +0 -0
  105. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/event.pxd +0 -0
  106. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/event.pyi +0 -0
  107. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/prio_semaphore.pxd +0 -0
  108. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/prio_semaphore.pyi +0 -0
  109. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/semaphore.pxd +0 -0
  110. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/primitives/locks/semaphore.pyi +0 -0
  111. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/py.typed +0 -0
  112. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/sphinx/__init__.py +0 -0
  113. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/sphinx/ext.py +0 -0
  114. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/task.py +0 -0
  115. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/utils/__init__.py +0 -0
  116. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/a_sync/utils/iterators.py +0 -0
  117. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/Makefile +0 -0
  118. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/alabaster.css +0 -0
  119. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/basic.css +0 -0
  120. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/custom.css +0 -0
  121. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/doctools.js +0 -0
  122. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/documentation_options.js +0 -0
  123. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/file.png +0 -0
  124. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/language_data.js +0 -0
  125. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/minus.png +0 -0
  126. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/plus.png +0 -0
  127. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/pygments.css +0 -0
  128. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/searchtools.js +0 -0
  129. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  130. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/conf.py +0 -0
  131. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/index.rst +0 -0
  132. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/docs/make.bat +0 -0
  133. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/SOURCES.txt +0 -0
  134. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/dependency_links.txt +0 -0
  135. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/not-zip-safe +0 -0
  136. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/requires.txt +0 -0
  137. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/ez_a_sync.egg-info/top_level.txt +0 -0
  138. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/pyproject.toml +0 -0
  139. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/requirements-dev.txt +0 -0
  140. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/requirements.txt +0 -0
  141. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/setup.cfg +0 -0
  142. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/setup.py +0 -0
  143. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/__init__.py +0 -0
  144. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/modifiers/test_apply_semaphore.py +0 -0
  145. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_abstract.py +0 -0
  146. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_base.py +0 -0
  147. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_cache.py +0 -0
  148. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_decorator.py +0 -0
  149. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_limiter.py +0 -0
  150. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_meta.py +0 -0
  151. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_modified.py +0 -0
  152. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/a_sync/test_singleton.py +0 -0
  153. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/asyncio/test_as_completed.py +0 -0
  154. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/asyncio/test_create_task.py +0 -0
  155. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/asyncio/test_gather.py +0 -0
  156. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/conftest.py +0 -0
  157. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/executor.py +0 -0
  158. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/fixtures.py +0 -0
  159. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/primitives/test_counter.py +0 -0
  160. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/primitives/test_event.py +0 -0
  161. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/primitives/test_prio_semaphore.py +0 -0
  162. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/primitives/test_queue.py +0 -0
  163. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/primitives/test_semaphore.py +0 -0
  164. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/task/test_task.py +0 -0
  165. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/task/test_task_mapping_views.py +0 -0
  166. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/test_executor.py +0 -0
  167. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/test_future.py +0 -0
  168. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/test_helpers.py +0 -0
  169. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/tests/test_iter.py +0 -0
  170. {ez_a_sync-0.24.25 → ez_a_sync-0.24.26}/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.25
3
+ Version: 0.24.26
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
@@ -80,7 +80,7 @@ class _SmartFutureMixin(Generic[T]):
80
80
  result = await task
81
81
  ```
82
82
  """
83
- if self.done():
83
+ if self._state != "PENDING":
84
84
  return self.result() # May raise too.
85
85
 
86
86
  self._asyncio_future_blocking = True
@@ -92,7 +92,7 @@ class _SmartFutureMixin(Generic[T]):
92
92
 
93
93
  logger.debug("awaiting %s", self)
94
94
  yield self # This tells Task to wait for completion.
95
- if not self.done():
95
+ if self._state == "PENDING":
96
96
  raise RuntimeError("await wasn't used with future")
97
97
  return self.result() # May raise too.
98
98
 
@@ -113,9 +113,9 @@ class _SmartFutureMixin(Generic[T]):
113
113
  See Also:
114
114
  - :meth:`_waiter_done_cleanup_callback`
115
115
  """
116
- if self.done():
116
+ if self._state != "PENDING":
117
117
  return 0
118
- return sum(getattr(waiter, "num_waiters", 1) or 1 for waiter in self._waiters)
118
+ return sum(getattr(waiter, "num_waiters", 1) for waiter in self._waiters)
119
119
 
120
120
  def _waiter_done_cleanup_callback(
121
121
  self: Union["SmartFuture", "SmartTask"], waiter: "SmartTask"
@@ -131,7 +131,7 @@ class _SmartFutureMixin(Generic[T]):
131
131
  Example:
132
132
  Automatically called when a waiter task completes.
133
133
  """
134
- if not self.done():
134
+ if self._state == "PENDING":
135
135
  self._waiters.remove(waiter)
136
136
 
137
137
  def _self_done_cleanup_callback(self: Union["SmartFuture", "SmartTask"]) -> None:
@@ -405,7 +405,7 @@ def shield(
405
405
  stacklevel=2,
406
406
  )
407
407
  inner = asyncio.ensure_future(arg, loop=loop)
408
- if inner.done():
408
+ if inner._state != "PENDING":
409
409
  # Shortcut.
410
410
  return inner
411
411
  loop = asyncio.futures._get_loop(inner)
@@ -431,7 +431,7 @@ def shield(
431
431
  outer.set_result(inner.result())
432
432
 
433
433
  def _outer_done_callback(outer):
434
- if not inner.done():
434
+ if inner._state == "PENDING":
435
435
  inner.remove_done_callback(_inner_done_callback)
436
436
 
437
437
  inner.add_done_callback(_inner_done_callback)