haiway 0.21.0__tar.gz → 0.21.1__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.
Files changed (109) hide show
  1. {haiway-0.21.0 → haiway-0.21.1}/PKG-INFO +1 -1
  2. {haiway-0.21.0 → haiway-0.21.1}/junit/test-results.xml +1 -1
  3. {haiway-0.21.0 → haiway-0.21.1}/pyproject.toml +1 -1
  4. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/asynchrony.py +3 -3
  5. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/mimic.py +2 -2
  6. {haiway-0.21.0 → haiway-0.21.1}/uv.lock +194 -194
  7. {haiway-0.21.0 → haiway-0.21.1}/.github/workflows/ci.yml +0 -0
  8. {haiway-0.21.0 → haiway-0.21.1}/.github/workflows/publish.yml +0 -0
  9. {haiway-0.21.0 → haiway-0.21.1}/.gitignore +0 -0
  10. {haiway-0.21.0 → haiway-0.21.1}/LICENSE +0 -0
  11. {haiway-0.21.0 → haiway-0.21.1}/Makefile +0 -0
  12. {haiway-0.21.0 → haiway-0.21.1}/README.md +0 -0
  13. {haiway-0.21.0 → haiway-0.21.1}/config/pre-push +0 -0
  14. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/.dockerignore +0 -0
  15. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/Dockerfile +0 -0
  16. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/Makefile +0 -0
  17. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/README.md +0 -0
  18. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/config/.env.example +0 -0
  19. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/config/unit.json +0 -0
  20. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/docker-compose.yml +0 -0
  21. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/pyproject.toml +0 -0
  22. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/__int__.py +0 -0
  23. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/todos/__init__.py +0 -0
  24. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/todos/config.py +0 -0
  25. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/todos/state.py +0 -0
  26. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/todos/types.py +0 -0
  27. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
  28. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/__init__.py +0 -0
  29. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
  30. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
  31. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
  32. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
  33. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
  34. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/__init__.py +0 -0
  35. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/__main__.py +0 -0
  36. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/postgres/__init__.py +0 -0
  37. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/postgres/execution.py +0 -0
  38. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/postgres/migration_0.py +0 -0
  39. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/migrations/postgres/types.py +0 -0
  40. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/__init__.py +0 -0
  41. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/__main__.py +0 -0
  42. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/application.py +0 -0
  43. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/config.py +0 -0
  44. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
  45. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/middlewares/context.py +0 -0
  46. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/routes/__init__.py +0 -0
  47. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/routes/technical.py +0 -0
  48. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/server/routes/todos.py +0 -0
  49. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/__init__.py +0 -0
  50. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
  51. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
  52. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
  53. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
  54. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
  55. {haiway-0.21.0 → haiway-0.21.1}/examples/fastAPI/uv.lock +0 -0
  56. {haiway-0.21.0 → haiway-0.21.1}/guidelines/functionalities.md +0 -0
  57. {haiway-0.21.0 → haiway-0.21.1}/guidelines/llms.txt +0 -0
  58. {haiway-0.21.0 → haiway-0.21.1}/guidelines/packages.md +0 -0
  59. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/__init__.py +0 -0
  60. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/__init__.py +0 -0
  61. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/access.py +0 -0
  62. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/disposables.py +0 -0
  63. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/identifier.py +0 -0
  64. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/observability.py +0 -0
  65. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/state.py +0 -0
  66. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/tasks.py +0 -0
  67. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/context/types.py +0 -0
  68. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/__init__.py +0 -0
  69. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/caching.py +0 -0
  70. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/concurrent.py +0 -0
  71. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/observability.py +0 -0
  72. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/retries.py +0 -0
  73. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/throttling.py +0 -0
  74. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/timeouted.py +0 -0
  75. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/helpers/tracing.py +0 -0
  76. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/opentelemetry/__init__.py +0 -0
  77. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/opentelemetry/observability.py +0 -0
  78. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/py.typed +0 -0
  79. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/__init__.py +0 -0
  80. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/attributes.py +0 -0
  81. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/path.py +0 -0
  82. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/requirement.py +0 -0
  83. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/structure.py +0 -0
  84. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/state/validation.py +0 -0
  85. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/types/__init__.py +0 -0
  86. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/types/default.py +0 -0
  87. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/types/missing.py +0 -0
  88. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/__init__.py +0 -0
  89. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/always.py +0 -0
  90. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/collections.py +0 -0
  91. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/env.py +0 -0
  92. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/formatting.py +0 -0
  93. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/freezing.py +0 -0
  94. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/logs.py +0 -0
  95. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/noop.py +0 -0
  96. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/queue.py +0 -0
  97. {haiway-0.21.0 → haiway-0.21.1}/src/haiway/utils/stream.py +0 -0
  98. {haiway-0.21.0 → haiway-0.21.1}/tests/__init__.py +0 -0
  99. {haiway-0.21.0 → haiway-0.21.1}/tests/test_async_queue.py +0 -0
  100. {haiway-0.21.0 → haiway-0.21.1}/tests/test_async_stream.py +0 -0
  101. {haiway-0.21.0 → haiway-0.21.1}/tests/test_attribute_path.py +0 -0
  102. {haiway-0.21.0 → haiway-0.21.1}/tests/test_attribute_requirement.py +0 -0
  103. {haiway-0.21.0 → haiway-0.21.1}/tests/test_auto_retry.py +0 -0
  104. {haiway-0.21.0 → haiway-0.21.1}/tests/test_cache.py +0 -0
  105. {haiway-0.21.0 → haiway-0.21.1}/tests/test_context.py +0 -0
  106. {haiway-0.21.0 → haiway-0.21.1}/tests/test_process_concurrently.py +0 -0
  107. {haiway-0.21.0 → haiway-0.21.1}/tests/test_state.py +0 -0
  108. {haiway-0.21.0 → haiway-0.21.1}/tests/test_streaming.py +0 -0
  109. {haiway-0.21.0 → haiway-0.21.1}/tests/test_timeout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haiway
3
- Version: 0.21.0
3
+ Version: 0.21.1
4
4
  Summary: Framework for dependency injection and state management within structured concurrency model.
5
5
  Project-URL: Homepage, https://miquido.com
6
6
  Project-URL: Repository, https://github.com/miquido/haiway.git
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="105" time="1.809" timestamp="2025-05-22T14:18:16.430821+00:00" hostname="pkrvmf6wy0o8zjz"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.002" /><testcase classname="tests.test_async_queue" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_queue" name="test_buffers_values_when_not_reading" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_buffer_when_streaming_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_queue" name="test_fails_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_when_stream_fails" time="0.001" /><testcase classname="tests.test_async_stream" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_stream" name="test_finishes_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_failed" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_all_when_sending_async" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_id_path_points_to_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_id_path_set_updates_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_equal_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_not_equal_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contains_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contains_any_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contained_in_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_logical_and_or_requirements" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_filter" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_immutability" time="0.000" /><testcase classname="tests.test_auto_retry" name="test_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_when_cancelled" time="0.021" /><testcase classname="tests.test_auto_retry" name="test_async_uses_delay_with_errors" time="0.102" /><testcase classname="tests.test_auto_retry" name="test_async_uses_computed_delay_with_errors" time="0.107" /><testcase classname="tests.test_auto_retry" name="test_async_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_cache_value_with_same_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_different_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_limit_exceed" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_same_value_with_repeating_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_fails_with_error" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_expiration_time_exceed" time="0.020" /><testcase classname="tests.test_cache" name="test_async_returns_cache_value_with_same_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_different_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_limit_exceed" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_same_value_with_repeating_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_expiration_time_exceed" time="0.021" /><testcase classname="tests.test_cache" name="test_async_cancel_waiting_does_not_cancel_task" time="0.501" /><testcase classname="tests.test_cache" name="test_async_expiration_does_not_cancel_task" time="0.021" /><testcase classname="tests.test_cache" name="test_async_fails_with_error" time="0.001" /><testcase classname="tests.test_context" name="test_state_is_available_according_to_context" time="0.001" /><testcase classname="tests.test_context" name="test_state_update_updates_local_context" time="0.001" /><testcase classname="tests.test_context" name="test_exceptions_are_propagated" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_processes_all_elements" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_processes_elements_concurrently" time="0.302" /><testcase classname="tests.test_process_concurrently" name="test_handles_empty_source" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_propagates_handler_exceptions" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_ignores_handler_exceptions_when_configured" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_handles_source_exception" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_cancels_running_tasks_on_cancellation" time="0.101" /><testcase classname="tests.test_process_concurrently" name="test_respects_concurrency_limit" time="0.202" /><testcase classname="tests.test_process_concurrently" name="test_processes_elements_from_queue" time="0.052" /><testcase classname="tests.test_state" name="test_basic_initializes_with_arguments" time="0.002" /><testcase classname="tests.test_state" name="test_basic_initializes_with_defaults" time="0.001" /><testcase classname="tests.test_state" name="test_basic_equals_checks_properties" time="0.000" /><testcase classname="tests.test_state" name="test_basic_initializes_with_arguments_and_defaults" time="0.000" /><testcase classname="tests.test_state" name="test_parametrized_initializes_with_proper_parameters" time="0.001" /><testcase classname="tests.test_state" name="test_nested_initializes_with_proper_arguments" time="0.001" /><testcase classname="tests.test_state" name="test_dict_skips_missing_properties" time="0.000" /><testcase classname="tests.test_state" name="test_initialization_allows_missing_properties" time="0.000" /><testcase classname="tests.test_state" name="test_generic_subtypes_validation" time="0.002" /><testcase classname="tests.test_state" name="test_copying_leaves_same_object" time="0.000" /><testcase classname="tests.test_streaming" name="test_fails_when_generator_fails" time="0.001" /><testcase classname="tests.test_streaming" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_streaming" name="test_ends_when_generator_ends" time="0.001" /><testcase classname="tests.test_streaming" name="test_delivers_updates_when_generating" time="0.001" /><testcase classname="tests.test_streaming" name="test_streaming_context_variables_access_is_preserved" time="0.001" /><testcase classname="tests.test_streaming" name="test_nested_streaming_streams_correctly" time="0.001" /><testcase classname="tests.test_timeout" name="test_returns_result_when_returning_value" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_error" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_cancel" time="0.011" /><testcase classname="tests.test_timeout" name="test_raises_with_timeout" time="0.011" /></testsuite></testsuites>
1
+ <?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="105" time="1.822" timestamp="2025-05-22T14:52:29.443450+00:00" hostname="pkrvmf6wy0o8zjz"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.002" /><testcase classname="tests.test_async_queue" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_queue" name="test_buffers_values_when_not_reading" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_buffer_when_streaming_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_queue" name="test_fails_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_when_stream_fails" time="0.001" /><testcase classname="tests.test_async_stream" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_stream" name="test_finishes_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_failed" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_all_when_sending_async" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_id_path_points_to_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_id_path_set_updates_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_equal_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_not_equal_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contains_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contains_any_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_contained_in_requirement" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_logical_and_or_requirements" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_filter" time="0.000" /><testcase classname="tests.test_attribute_requirement" name="test_immutability" time="0.000" /><testcase classname="tests.test_auto_retry" name="test_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_when_cancelled" time="0.021" /><testcase classname="tests.test_auto_retry" name="test_async_uses_delay_with_errors" time="0.102" /><testcase classname="tests.test_auto_retry" name="test_async_uses_computed_delay_with_errors" time="0.107" /><testcase classname="tests.test_auto_retry" name="test_async_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_cache_value_with_same_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_different_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_limit_exceed" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_same_value_with_repeating_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_fails_with_error" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_expiration_time_exceed" time="0.021" /><testcase classname="tests.test_cache" name="test_async_returns_cache_value_with_same_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_different_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_limit_exceed" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_same_value_with_repeating_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_expiration_time_exceed" time="0.021" /><testcase classname="tests.test_cache" name="test_async_cancel_waiting_does_not_cancel_task" time="0.502" /><testcase classname="tests.test_cache" name="test_async_expiration_does_not_cancel_task" time="0.021" /><testcase classname="tests.test_cache" name="test_async_fails_with_error" time="0.001" /><testcase classname="tests.test_context" name="test_state_is_available_according_to_context" time="0.001" /><testcase classname="tests.test_context" name="test_state_update_updates_local_context" time="0.001" /><testcase classname="tests.test_context" name="test_exceptions_are_propagated" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_processes_all_elements" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_processes_elements_concurrently" time="0.302" /><testcase classname="tests.test_process_concurrently" name="test_handles_empty_source" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_propagates_handler_exceptions" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_ignores_handler_exceptions_when_configured" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_handles_source_exception" time="0.001" /><testcase classname="tests.test_process_concurrently" name="test_cancels_running_tasks_on_cancellation" time="0.101" /><testcase classname="tests.test_process_concurrently" name="test_respects_concurrency_limit" time="0.202" /><testcase classname="tests.test_process_concurrently" name="test_processes_elements_from_queue" time="0.052" /><testcase classname="tests.test_state" name="test_basic_initializes_with_arguments" time="0.002" /><testcase classname="tests.test_state" name="test_basic_initializes_with_defaults" time="0.001" /><testcase classname="tests.test_state" name="test_basic_equals_checks_properties" time="0.000" /><testcase classname="tests.test_state" name="test_basic_initializes_with_arguments_and_defaults" time="0.000" /><testcase classname="tests.test_state" name="test_parametrized_initializes_with_proper_parameters" time="0.001" /><testcase classname="tests.test_state" name="test_nested_initializes_with_proper_arguments" time="0.001" /><testcase classname="tests.test_state" name="test_dict_skips_missing_properties" time="0.000" /><testcase classname="tests.test_state" name="test_initialization_allows_missing_properties" time="0.000" /><testcase classname="tests.test_state" name="test_generic_subtypes_validation" time="0.002" /><testcase classname="tests.test_state" name="test_copying_leaves_same_object" time="0.000" /><testcase classname="tests.test_streaming" name="test_fails_when_generator_fails" time="0.001" /><testcase classname="tests.test_streaming" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_streaming" name="test_ends_when_generator_ends" time="0.001" /><testcase classname="tests.test_streaming" name="test_delivers_updates_when_generating" time="0.001" /><testcase classname="tests.test_streaming" name="test_streaming_context_variables_access_is_preserved" time="0.001" /><testcase classname="tests.test_streaming" name="test_nested_streaming_streams_correctly" time="0.001" /><testcase classname="tests.test_timeout" name="test_returns_result_when_returning_value" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_error" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_cancel" time="0.011" /><testcase classname="tests.test_timeout" name="test_raises_with_timeout" time="0.011" /></testsuite></testsuites>
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
  [project]
6
6
  name = "haiway"
7
7
  description = "Framework for dependency injection and state management within structured concurrency model."
8
- version = "0.21.0"
8
+ version = "0.21.1"
9
9
  readme = "README.md"
10
10
  maintainers = [
11
11
  { name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
@@ -137,7 +137,7 @@ def _mimic_async[**Args, Result](
137
137
  function,
138
138
  "__annotations__",
139
139
  )
140
- setattr( # noqa: B010
140
+ object.__setattr__(
141
141
  within,
142
142
  "__annotations__",
143
143
  {
@@ -160,7 +160,7 @@ def _mimic_async[**Args, Result](
160
160
  "__globals__",
161
161
  ):
162
162
  try:
163
- setattr(
163
+ object.__setattr__(
164
164
  within,
165
165
  attribute,
166
166
  getattr(
@@ -177,7 +177,7 @@ def _mimic_async[**Args, Result](
177
177
  except AttributeError:
178
178
  pass
179
179
 
180
- setattr( # noqa: B010 - mimic functools.wraps behavior for correct signature checks
180
+ object.__setattr__( # mimic functools.wraps behavior for correct signature checks
181
181
  within,
182
182
  "__wrapped__",
183
183
  function,
@@ -40,7 +40,7 @@ def mimic_function[**Args, Result](
40
40
  "__globals__",
41
41
  ):
42
42
  try:
43
- setattr(
43
+ object.__setattr__(
44
44
  target,
45
45
  attribute,
46
46
  getattr(
@@ -57,7 +57,7 @@ def mimic_function[**Args, Result](
57
57
  except AttributeError:
58
58
  pass
59
59
 
60
- setattr( # noqa: B010 - mimic functools.wraps behavior for correct signature checks
60
+ object.__setattr__( # mimic functools.wraps behavior for correct signature checks
61
61
  target,
62
62
  "__wrapped__",
63
63
  function,