ez-a-sync 0.23.3__tar.gz → 0.23.5__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 (118) hide show
  1. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/PKG-INFO +1 -1
  2. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_descriptor.py +6 -1
  3. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_flags.c +47 -30
  4. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_flags.pyx +3 -3
  5. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_kwargs.c +212 -161
  6. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_kwargs.pyx +11 -5
  7. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/abstract.c +2565 -1369
  8. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/abstract.pyx +42 -13
  9. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/base.py +1 -0
  10. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/function.py +26 -10
  11. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/method.py +22 -52
  12. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/manager.c +4284 -2399
  13. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/manager.pyi +1 -1
  14. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/manager.pyx +17 -13
  15. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/property.py +21 -19
  16. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/PKG-INFO +1 -1
  17. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/fixtures.py +3 -0
  18. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.coverage +0 -0
  19. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/black.yaml +0 -0
  20. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/codeql.yaml +0 -0
  21. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/docs.yaml +0 -0
  22. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/mypy.yaml +0 -0
  23. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/pytest.yaml +0 -0
  24. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.github/workflows/release.yaml +0 -0
  25. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.gitignore +0 -0
  26. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/.sourcery.yaml +0 -0
  27. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/LICENSE.txt +0 -0
  28. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/Makefile +0 -0
  29. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/README.md +0 -0
  30. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/TODO +0 -0
  31. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/ENVIRONMENT_VARIABLES.py +0 -0
  32. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/__init__.py +0 -0
  33. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/_smart.py +0 -0
  34. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/_typing.py +0 -0
  35. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/__init__.py +0 -0
  36. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_flags.pyi +0 -0
  37. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_helpers.py +0 -0
  38. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_kwargs.pyi +0 -0
  39. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/_meta.py +0 -0
  40. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/abstract.pyi +0 -0
  41. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/config.py +0 -0
  42. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/decorator.py +0 -0
  43. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/__init__.py +0 -0
  44. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/cache/__init__.py +0 -0
  45. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/cache/memory.py +0 -0
  46. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/limiter.py +0 -0
  47. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/modifiers/semaphores.py +0 -0
  48. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/a_sync/singleton.py +0 -0
  49. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/aliases.py +0 -0
  50. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/asyncio/__init__.py +0 -0
  51. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/asyncio/as_completed.py +0 -0
  52. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/asyncio/create_task.py +0 -0
  53. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/asyncio/gather.py +0 -0
  54. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/asyncio/utils.py +0 -0
  55. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/exceptions.py +0 -0
  56. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/executor.py +0 -0
  57. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/future.py +0 -0
  58. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/iter.py +0 -0
  59. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/__init__.py +0 -0
  60. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/_debug.py +0 -0
  61. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/_loggable.py +0 -0
  62. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/locks/__init__.py +0 -0
  63. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/locks/counter.py +0 -0
  64. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/locks/event.py +0 -0
  65. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/locks/prio_semaphore.py +0 -0
  66. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/locks/semaphore.py +0 -0
  67. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/primitives/queue.py +0 -0
  68. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/py.typed +0 -0
  69. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/sphinx/__init__.py +0 -0
  70. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/sphinx/ext.py +0 -0
  71. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/task.py +0 -0
  72. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/utils/__init__.py +0 -0
  73. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/a_sync/utils/iterators.py +0 -0
  74. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/Makefile +0 -0
  75. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/alabaster.css +0 -0
  76. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/basic.css +0 -0
  77. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/custom.css +0 -0
  78. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/doctools.js +0 -0
  79. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/documentation_options.js +0 -0
  80. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/file.png +0 -0
  81. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/language_data.js +0 -0
  82. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/minus.png +0 -0
  83. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/plus.png +0 -0
  84. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/pygments.css +0 -0
  85. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/searchtools.js +0 -0
  86. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  87. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/conf.py +0 -0
  88. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/index.rst +0 -0
  89. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/docs/make.bat +0 -0
  90. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/SOURCES.txt +0 -0
  91. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/dependency_links.txt +0 -0
  92. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/not-zip-safe +0 -0
  93. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/requires.txt +0 -0
  94. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/ez_a_sync.egg-info/top_level.txt +0 -0
  95. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/pyproject.yaml +0 -0
  96. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/requirements-dev.txt +0 -0
  97. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/requirements.txt +0 -0
  98. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/setup.cfg +0 -0
  99. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/setup.py +0 -0
  100. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/__init__.py +0 -0
  101. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/conftest.py +0 -0
  102. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/executor.py +0 -0
  103. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_abstract.py +0 -0
  104. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_as_completed.py +0 -0
  105. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_base.py +0 -0
  106. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_cache.py +0 -0
  107. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_decorator.py +0 -0
  108. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_executor.py +0 -0
  109. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_future.py +0 -0
  110. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_gather.py +0 -0
  111. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_helpers.py +0 -0
  112. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_iter.py +0 -0
  113. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_limiter.py +0 -0
  114. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_meta.py +0 -0
  115. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_modified.py +0 -0
  116. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_semaphore.py +0 -0
  117. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_singleton.py +0 -0
  118. {ez_a_sync-0.23.3 → ez_a_sync-0.23.5}/tests/test_task.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ez-a-sync
3
- Version: 0.23.3
3
+ Version: 0.23.5
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
@@ -17,7 +17,12 @@ import functools
17
17
 
18
18
  from a_sync._typing import *
19
19
  from a_sync.a_sync import decorator
20
- from a_sync.a_sync.function import ASyncFunction, ModifierManager, _ModifiedMixin, _validate_wrapped_fn
20
+ from a_sync.a_sync.function import (
21
+ ASyncFunction,
22
+ ModifierManager,
23
+ _ModifiedMixin,
24
+ _validate_wrapped_fn,
25
+ )
21
26
 
22
27
  if TYPE_CHECKING:
23
28
  from a_sync import TaskMapping
@@ -2319,7 +2319,7 @@ int __pyx_module_is_main_a_sync__a_sync___flags = 0;
2319
2319
  /* #### Code section: global_var ### */
2320
2320
  /* #### Code section: string_decls ### */
2321
2321
  static const char __pyx_k__3[] = ".";
2322
- static const char __pyx_k__5[] = "?";
2322
+ static const char __pyx_k__6[] = "?";
2323
2323
  static const char __pyx_k_Any[] = "Any";
2324
2324
  static const char __pyx_k_Set[] = "Set";
2325
2325
  static const char __pyx_k_str[] = "str";
@@ -2329,6 +2329,7 @@ static const char __pyx_k_main[] = "__main__";
2329
2329
  static const char __pyx_k_name[] = "__name__";
2330
2330
  static const char __pyx_k_sync[] = "sync";
2331
2331
  static const char __pyx_k_test[] = "__test__";
2332
+ static const char __pyx_k_value[] = "value";
2332
2333
  static const char __pyx_k_a_sync[] = "a_sync";
2333
2334
  static const char __pyx_k_import[] = "__import__";
2334
2335
  static const char __pyx_k_return[] = "return";
@@ -2395,7 +2396,7 @@ typedef struct {
2395
2396
  PyObject *__pyx_n_s_VIABLE_FLAGS;
2396
2397
  PyObject *__pyx_kp_u_Validate_that_the_flag_value_is;
2397
2398
  PyObject *__pyx_kp_u__3;
2398
- PyObject *__pyx_n_s__5;
2399
+ PyObject *__pyx_n_s__6;
2399
2400
  PyObject *__pyx_n_s_a_sync;
2400
2401
  PyObject *__pyx_n_s_a_sync_a_sync__flags;
2401
2402
  PyObject *__pyx_kp_s_a_sync_a_sync__flags_pyx;
@@ -2419,8 +2420,10 @@ typedef struct {
2419
2420
  PyObject *__pyx_n_s_typing;
2420
2421
  PyObject *__pyx_n_s_validate_flag_value;
2421
2422
  PyObject *__pyx_kp_u_validate_flag_value_line_113;
2423
+ PyObject *__pyx_n_s_value;
2422
2424
  PyObject *__pyx_codeobj_;
2423
2425
  PyObject *__pyx_tuple__4;
2426
+ PyObject *__pyx_tuple__5;
2424
2427
  PyObject *__pyx_codeobj__2;
2425
2428
  } __pyx_mstate;
2426
2429
 
@@ -2474,7 +2477,7 @@ static int __pyx_m_clear(PyObject *m) {
2474
2477
  Py_CLEAR(clear_module_state->__pyx_n_s_VIABLE_FLAGS);
2475
2478
  Py_CLEAR(clear_module_state->__pyx_kp_u_Validate_that_the_flag_value_is);
2476
2479
  Py_CLEAR(clear_module_state->__pyx_kp_u__3);
2477
- Py_CLEAR(clear_module_state->__pyx_n_s__5);
2480
+ Py_CLEAR(clear_module_state->__pyx_n_s__6);
2478
2481
  Py_CLEAR(clear_module_state->__pyx_n_s_a_sync);
2479
2482
  Py_CLEAR(clear_module_state->__pyx_n_s_a_sync_a_sync__flags);
2480
2483
  Py_CLEAR(clear_module_state->__pyx_kp_s_a_sync_a_sync__flags_pyx);
@@ -2498,8 +2501,10 @@ static int __pyx_m_clear(PyObject *m) {
2498
2501
  Py_CLEAR(clear_module_state->__pyx_n_s_typing);
2499
2502
  Py_CLEAR(clear_module_state->__pyx_n_s_validate_flag_value);
2500
2503
  Py_CLEAR(clear_module_state->__pyx_kp_u_validate_flag_value_line_113);
2504
+ Py_CLEAR(clear_module_state->__pyx_n_s_value);
2501
2505
  Py_CLEAR(clear_module_state->__pyx_codeobj_);
2502
2506
  Py_CLEAR(clear_module_state->__pyx_tuple__4);
2507
+ Py_CLEAR(clear_module_state->__pyx_tuple__5);
2503
2508
  Py_CLEAR(clear_module_state->__pyx_codeobj__2);
2504
2509
  return 0;
2505
2510
  }
@@ -2531,7 +2536,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2531
2536
  Py_VISIT(traverse_module_state->__pyx_n_s_VIABLE_FLAGS);
2532
2537
  Py_VISIT(traverse_module_state->__pyx_kp_u_Validate_that_the_flag_value_is);
2533
2538
  Py_VISIT(traverse_module_state->__pyx_kp_u__3);
2534
- Py_VISIT(traverse_module_state->__pyx_n_s__5);
2539
+ Py_VISIT(traverse_module_state->__pyx_n_s__6);
2535
2540
  Py_VISIT(traverse_module_state->__pyx_n_s_a_sync);
2536
2541
  Py_VISIT(traverse_module_state->__pyx_n_s_a_sync_a_sync__flags);
2537
2542
  Py_VISIT(traverse_module_state->__pyx_kp_s_a_sync_a_sync__flags_pyx);
@@ -2555,8 +2560,10 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2555
2560
  Py_VISIT(traverse_module_state->__pyx_n_s_typing);
2556
2561
  Py_VISIT(traverse_module_state->__pyx_n_s_validate_flag_value);
2557
2562
  Py_VISIT(traverse_module_state->__pyx_kp_u_validate_flag_value_line_113);
2563
+ Py_VISIT(traverse_module_state->__pyx_n_s_value);
2558
2564
  Py_VISIT(traverse_module_state->__pyx_codeobj_);
2559
2565
  Py_VISIT(traverse_module_state->__pyx_tuple__4);
2566
+ Py_VISIT(traverse_module_state->__pyx_tuple__5);
2560
2567
  Py_VISIT(traverse_module_state->__pyx_codeobj__2);
2561
2568
  return 0;
2562
2569
  }
@@ -2598,7 +2605,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2598
2605
  #define __pyx_n_s_VIABLE_FLAGS __pyx_mstate_global->__pyx_n_s_VIABLE_FLAGS
2599
2606
  #define __pyx_kp_u_Validate_that_the_flag_value_is __pyx_mstate_global->__pyx_kp_u_Validate_that_the_flag_value_is
2600
2607
  #define __pyx_kp_u__3 __pyx_mstate_global->__pyx_kp_u__3
2601
- #define __pyx_n_s__5 __pyx_mstate_global->__pyx_n_s__5
2608
+ #define __pyx_n_s__6 __pyx_mstate_global->__pyx_n_s__6
2602
2609
  #define __pyx_n_s_a_sync __pyx_mstate_global->__pyx_n_s_a_sync
2603
2610
  #define __pyx_n_s_a_sync_a_sync__flags __pyx_mstate_global->__pyx_n_s_a_sync_a_sync__flags
2604
2611
  #define __pyx_kp_s_a_sync_a_sync__flags_pyx __pyx_mstate_global->__pyx_kp_s_a_sync_a_sync__flags_pyx
@@ -2622,8 +2629,10 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
2622
2629
  #define __pyx_n_s_typing __pyx_mstate_global->__pyx_n_s_typing
2623
2630
  #define __pyx_n_s_validate_flag_value __pyx_mstate_global->__pyx_n_s_validate_flag_value
2624
2631
  #define __pyx_kp_u_validate_flag_value_line_113 __pyx_mstate_global->__pyx_kp_u_validate_flag_value_line_113
2632
+ #define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value
2625
2633
  #define __pyx_codeobj_ __pyx_mstate_global->__pyx_codeobj_
2626
2634
  #define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
2635
+ #define __pyx_tuple__5 __pyx_mstate_global->__pyx_tuple__5
2627
2636
  #define __pyx_codeobj__2 __pyx_mstate_global->__pyx_codeobj__2
2628
2637
  /* #### Code section: module_code ### */
2629
2638
 
@@ -2753,6 +2762,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
2753
2762
  }
2754
2763
 
2755
2764
  static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_flag, PyObject *__pyx_v_flag_value) {
2765
+ int __pyx_v_value;
2756
2766
  PyObject *__pyx_r = NULL;
2757
2767
  __Pyx_TraceDeclarations
2758
2768
  __Pyx_RefNannyDeclarations
@@ -2771,9 +2781,9 @@ static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNU
2771
2781
  /* "a_sync/a_sync/_flags.pyx":105
2772
2782
  * - :func:`validate_flag_value`: Validates that the flag value is a boolean.
2773
2783
  * """
2774
- * validate_flag_value(flag, flag_value) # <<<<<<<<<<<<<<
2784
+ * cdef bint value = validate_flag_value(flag, flag_value) # <<<<<<<<<<<<<<
2775
2785
  * if flag in AFFIRMATIVE_FLAGS:
2776
- * return flag_value
2786
+ * return value
2777
2787
  */
2778
2788
  __Pyx_TraceLine(105,0,__PYX_ERR(0, 105, __pyx_L1_error))
2779
2789
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_validate_flag_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
@@ -2800,13 +2810,15 @@ static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNU
2800
2810
  __Pyx_GOTREF(__pyx_t_1);
2801
2811
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2802
2812
  }
2813
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L1_error)
2803
2814
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2815
+ __pyx_v_value = __pyx_t_5;
2804
2816
 
2805
2817
  /* "a_sync/a_sync/_flags.pyx":106
2806
2818
  * """
2807
- * validate_flag_value(flag, flag_value)
2819
+ * cdef bint value = validate_flag_value(flag, flag_value)
2808
2820
  * if flag in AFFIRMATIVE_FLAGS: # <<<<<<<<<<<<<<
2809
- * return flag_value
2821
+ * return value
2810
2822
  * elif flag in NEGATIVE_FLAGS:
2811
2823
  */
2812
2824
  __Pyx_TraceLine(106,0,__PYX_ERR(0, 106, __pyx_L1_error))
@@ -2817,32 +2829,34 @@ static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNU
2817
2829
  if (__pyx_t_5) {
2818
2830
 
2819
2831
  /* "a_sync/a_sync/_flags.pyx":107
2820
- * validate_flag_value(flag, flag_value)
2832
+ * cdef bint value = validate_flag_value(flag, flag_value)
2821
2833
  * if flag in AFFIRMATIVE_FLAGS:
2822
- * return flag_value # <<<<<<<<<<<<<<
2834
+ * return value # <<<<<<<<<<<<<<
2823
2835
  * elif flag in NEGATIVE_FLAGS:
2824
- * return not flag_value
2836
+ * return not value
2825
2837
  */
2826
2838
  __Pyx_TraceLine(107,0,__PYX_ERR(0, 107, __pyx_L1_error))
2827
2839
  __Pyx_XDECREF(__pyx_r);
2828
- __Pyx_INCREF(__pyx_v_flag_value);
2829
- __pyx_r = __pyx_v_flag_value;
2840
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __pyx_L1_error)
2841
+ __Pyx_GOTREF(__pyx_t_1);
2842
+ __pyx_r = __pyx_t_1;
2843
+ __pyx_t_1 = 0;
2830
2844
  goto __pyx_L0;
2831
2845
 
2832
2846
  /* "a_sync/a_sync/_flags.pyx":106
2833
2847
  * """
2834
- * validate_flag_value(flag, flag_value)
2848
+ * cdef bint value = validate_flag_value(flag, flag_value)
2835
2849
  * if flag in AFFIRMATIVE_FLAGS: # <<<<<<<<<<<<<<
2836
- * return flag_value
2850
+ * return value
2837
2851
  * elif flag in NEGATIVE_FLAGS:
2838
2852
  */
2839
2853
  }
2840
2854
 
2841
2855
  /* "a_sync/a_sync/_flags.pyx":108
2842
2856
  * if flag in AFFIRMATIVE_FLAGS:
2843
- * return flag_value
2857
+ * return value
2844
2858
  * elif flag in NEGATIVE_FLAGS: # <<<<<<<<<<<<<<
2845
- * return not flag_value
2859
+ * return not value
2846
2860
  * raise exceptions.InvalidFlag(flag)
2847
2861
  */
2848
2862
  __Pyx_TraceLine(108,0,__PYX_ERR(0, 108, __pyx_L1_error))
@@ -2853,16 +2867,15 @@ static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNU
2853
2867
  if (__pyx_t_5) {
2854
2868
 
2855
2869
  /* "a_sync/a_sync/_flags.pyx":109
2856
- * return flag_value
2870
+ * return value
2857
2871
  * elif flag in NEGATIVE_FLAGS:
2858
- * return not flag_value # <<<<<<<<<<<<<<
2872
+ * return not value # <<<<<<<<<<<<<<
2859
2873
  * raise exceptions.InvalidFlag(flag)
2860
2874
  *
2861
2875
  */
2862
2876
  __Pyx_TraceLine(109,0,__PYX_ERR(0, 109, __pyx_L1_error))
2863
2877
  __Pyx_XDECREF(__pyx_r);
2864
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_flag_value); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 109, __pyx_L1_error)
2865
- __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
2878
+ __pyx_t_1 = __Pyx_PyBool_FromLong((!__pyx_v_value)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
2866
2879
  __Pyx_GOTREF(__pyx_t_1);
2867
2880
  __pyx_r = __pyx_t_1;
2868
2881
  __pyx_t_1 = 0;
@@ -2870,16 +2883,16 @@ static PyObject *__pyx_pf_6a_sync_6a_sync_6_flags_negate_if_necessary(CYTHON_UNU
2870
2883
 
2871
2884
  /* "a_sync/a_sync/_flags.pyx":108
2872
2885
  * if flag in AFFIRMATIVE_FLAGS:
2873
- * return flag_value
2886
+ * return value
2874
2887
  * elif flag in NEGATIVE_FLAGS: # <<<<<<<<<<<<<<
2875
- * return not flag_value
2888
+ * return not value
2876
2889
  * raise exceptions.InvalidFlag(flag)
2877
2890
  */
2878
2891
  }
2879
2892
 
2880
2893
  /* "a_sync/a_sync/_flags.pyx":110
2881
2894
  * elif flag in NEGATIVE_FLAGS:
2882
- * return not flag_value
2895
+ * return not value
2883
2896
  * raise exceptions.InvalidFlag(flag) # <<<<<<<<<<<<<<
2884
2897
  *
2885
2898
  *
@@ -3201,7 +3214,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
3201
3214
  {&__pyx_n_s_VIABLE_FLAGS, __pyx_k_VIABLE_FLAGS, sizeof(__pyx_k_VIABLE_FLAGS), 0, 0, 1, 1},
3202
3215
  {&__pyx_kp_u_Validate_that_the_flag_value_is, __pyx_k_Validate_that_the_flag_value_is, sizeof(__pyx_k_Validate_that_the_flag_value_is), 0, 1, 0, 0},
3203
3216
  {&__pyx_kp_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 0},
3204
- {&__pyx_n_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 1},
3217
+ {&__pyx_n_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 1},
3205
3218
  {&__pyx_n_s_a_sync, __pyx_k_a_sync, sizeof(__pyx_k_a_sync), 0, 0, 1, 1},
3206
3219
  {&__pyx_n_s_a_sync_a_sync__flags, __pyx_k_a_sync_a_sync__flags, sizeof(__pyx_k_a_sync_a_sync__flags), 0, 0, 1, 1},
3207
3220
  {&__pyx_kp_s_a_sync_a_sync__flags_pyx, __pyx_k_a_sync_a_sync__flags_pyx, sizeof(__pyx_k_a_sync_a_sync__flags_pyx), 0, 0, 1, 0},
@@ -3225,6 +3238,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
3225
3238
  {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
3226
3239
  {&__pyx_n_s_validate_flag_value, __pyx_k_validate_flag_value, sizeof(__pyx_k_validate_flag_value), 0, 0, 1, 1},
3227
3240
  {&__pyx_kp_u_validate_flag_value_line_113, __pyx_k_validate_flag_value_line_113, sizeof(__pyx_k_validate_flag_value_line_113), 0, 1, 0, 0},
3241
+ {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
3228
3242
  {0, 0, 0, 0, 0, 0, 0}
3229
3243
  };
3230
3244
  return __Pyx_InitStrings(__pyx_string_tab);
@@ -3246,10 +3260,10 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
3246
3260
  * """Negate the flag value if necessary based on the flag type.
3247
3261
  *
3248
3262
  */
3249
- __pyx_tuple__4 = PyTuple_Pack(2, __pyx_n_s_flag, __pyx_n_s_flag_value); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 79, __pyx_L1_error)
3263
+ __pyx_tuple__4 = PyTuple_Pack(3, __pyx_n_s_flag, __pyx_n_s_flag_value, __pyx_n_s_value); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 79, __pyx_L1_error)
3250
3264
  __Pyx_GOTREF(__pyx_tuple__4);
3251
3265
  __Pyx_GIVEREF(__pyx_tuple__4);
3252
- __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_a_sync__flags_pyx, __pyx_n_s_negate_if_necessary, 79, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 79, __pyx_L1_error)
3266
+ __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_a_sync__flags_pyx, __pyx_n_s_negate_if_necessary, 79, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 79, __pyx_L1_error)
3253
3267
 
3254
3268
  /* "a_sync/a_sync/_flags.pyx":113
3255
3269
  *
@@ -3258,7 +3272,10 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
3258
3272
  * """
3259
3273
  * Validate that the flag value is a boolean.
3260
3274
  */
3261
- __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_a_sync__flags_pyx, __pyx_n_s_validate_flag_value, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 113, __pyx_L1_error)
3275
+ __pyx_tuple__5 = PyTuple_Pack(2, __pyx_n_s_flag, __pyx_n_s_flag_value); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 113, __pyx_L1_error)
3276
+ __Pyx_GOTREF(__pyx_tuple__5);
3277
+ __Pyx_GIVEREF(__pyx_tuple__5);
3278
+ __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_a_sync_a_sync__flags_pyx, __pyx_n_s_validate_flag_value, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 113, __pyx_L1_error)
3262
3279
  __Pyx_RefNannyFinishContext();
3263
3280
  return 0;
3264
3281
  __pyx_L1_error:;
@@ -6707,7 +6724,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp)
6707
6724
  if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
6708
6725
  PyErr_Clear();
6709
6726
  Py_XDECREF(name);
6710
- name = __Pyx_NewRef(__pyx_n_s__5);
6727
+ name = __Pyx_NewRef(__pyx_n_s__6);
6711
6728
  }
6712
6729
  return name;
6713
6730
  }
@@ -102,11 +102,11 @@ def negate_if_necessary(flag: str, flag_value: bool) -> bool:
102
102
  See Also:
103
103
  - :func:`validate_flag_value`: Validates that the flag value is a boolean.
104
104
  """
105
- validate_flag_value(flag, flag_value)
105
+ cdef bint value = validate_flag_value(flag, flag_value)
106
106
  if flag in AFFIRMATIVE_FLAGS:
107
- return flag_value
107
+ return value
108
108
  elif flag in NEGATIVE_FLAGS:
109
- return not flag_value
109
+ return not value
110
110
  raise exceptions.InvalidFlag(flag)
111
111
 
112
112