haiway 0.12.0__tar.gz → 0.12.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 (98) hide show
  1. {haiway-0.12.0 → haiway-0.12.1}/PKG-INFO +1 -1
  2. {haiway-0.12.0 → haiway-0.12.1}/junit/test-results.xml +1 -1
  3. {haiway-0.12.0 → haiway-0.12.1}/pyproject.toml +1 -1
  4. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/collections.py +14 -14
  5. {haiway-0.12.0 → haiway-0.12.1}/uv.lock +1 -1
  6. {haiway-0.12.0 → haiway-0.12.1}/.github/workflows/ci.yml +0 -0
  7. {haiway-0.12.0 → haiway-0.12.1}/.github/workflows/publish.yml +0 -0
  8. {haiway-0.12.0 → haiway-0.12.1}/.gitignore +0 -0
  9. {haiway-0.12.0 → haiway-0.12.1}/LICENSE +0 -0
  10. {haiway-0.12.0 → haiway-0.12.1}/Makefile +0 -0
  11. {haiway-0.12.0 → haiway-0.12.1}/README.md +0 -0
  12. {haiway-0.12.0 → haiway-0.12.1}/config/pre-push +0 -0
  13. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/.dockerignore +0 -0
  14. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/Dockerfile +0 -0
  15. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/Makefile +0 -0
  16. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/README.md +0 -0
  17. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/config/.env.example +0 -0
  18. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/config/unit.json +0 -0
  19. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/docker-compose.yml +0 -0
  20. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/pyproject.toml +0 -0
  21. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/__int__.py +0 -0
  22. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/__init__.py +0 -0
  23. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/calls.py +0 -0
  24. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/config.py +0 -0
  25. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/state.py +0 -0
  26. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/types.py +0 -0
  27. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
  28. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/__init__.py +0 -0
  29. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
  30. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
  31. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
  32. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
  33. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
  34. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/__init__.py +0 -0
  35. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/__main__.py +0 -0
  36. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/application.py +0 -0
  37. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/config.py +0 -0
  38. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
  39. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/middlewares/context.py +0 -0
  40. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/routes/__init__.py +0 -0
  41. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/routes/technical.py +0 -0
  42. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/server/routes/todos.py +0 -0
  43. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/__init__.py +0 -0
  44. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
  45. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/calls.py +0 -0
  46. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
  47. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
  48. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
  49. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
  50. {haiway-0.12.0 → haiway-0.12.1}/examples/fastAPI/uv.lock +0 -0
  51. {haiway-0.12.0 → haiway-0.12.1}/guidelines/functionalities.md +0 -0
  52. {haiway-0.12.0 → haiway-0.12.1}/guidelines/packages.md +0 -0
  53. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/__init__.py +0 -0
  54. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/__init__.py +0 -0
  55. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/access.py +0 -0
  56. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/disposables.py +0 -0
  57. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/identifier.py +0 -0
  58. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/logging.py +0 -0
  59. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/metrics.py +0 -0
  60. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/state.py +0 -0
  61. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/tasks.py +0 -0
  62. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/context/types.py +0 -0
  63. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/__init__.py +0 -0
  64. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/asynchrony.py +0 -0
  65. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/caching.py +0 -0
  66. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/metrics.py +0 -0
  67. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/retries.py +0 -0
  68. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/throttling.py +0 -0
  69. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/timeouted.py +0 -0
  70. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/helpers/tracing.py +0 -0
  71. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/py.typed +0 -0
  72. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/__init__.py +0 -0
  73. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/attributes.py +0 -0
  74. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/path.py +0 -0
  75. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/requirement.py +0 -0
  76. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/structure.py +0 -0
  77. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/state/validation.py +0 -0
  78. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/types/__init__.py +0 -0
  79. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/types/default.py +0 -0
  80. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/types/frozen.py +0 -0
  81. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/types/missing.py +0 -0
  82. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/__init__.py +0 -0
  83. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/always.py +0 -0
  84. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/env.py +0 -0
  85. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/freezing.py +0 -0
  86. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/logs.py +0 -0
  87. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/mimic.py +0 -0
  88. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/noop.py +0 -0
  89. {haiway-0.12.0 → haiway-0.12.1}/src/haiway/utils/queue.py +0 -0
  90. {haiway-0.12.0 → haiway-0.12.1}/tests/__init__.py +0 -0
  91. {haiway-0.12.0 → haiway-0.12.1}/tests/test_async_queue.py +0 -0
  92. {haiway-0.12.0 → haiway-0.12.1}/tests/test_attribute_path.py +0 -0
  93. {haiway-0.12.0 → haiway-0.12.1}/tests/test_auto_retry.py +0 -0
  94. {haiway-0.12.0 → haiway-0.12.1}/tests/test_cache.py +0 -0
  95. {haiway-0.12.0 → haiway-0.12.1}/tests/test_context.py +0 -0
  96. {haiway-0.12.0 → haiway-0.12.1}/tests/test_state.py +0 -0
  97. {haiway-0.12.0 → haiway-0.12.1}/tests/test_streaming.py +0 -0
  98. {haiway-0.12.0 → haiway-0.12.1}/tests/test_timeout.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haiway
3
- Version: 0.12.0
3
+ Version: 0.12.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="79" time="1.181" timestamp="2025-03-13T15:38:47.656699" hostname="fv-az1695-274"><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_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.001" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" 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.101" /><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.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_expiration_creates_new_task" time="0.041" /><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_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.001" /><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="79" time="1.137" timestamp="2025-03-19T13:54:11.788096" hostname="fv-az1914-448"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.001" /><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_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.001" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" 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.101" /><testcase classname="tests.test_auto_retry" name="test_async_uses_computed_delay_with_errors" time="0.106" /><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_expiration_creates_new_task" time="0.041" /><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_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.001" /><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.001" /><testcase classname="tests.test_state" name="test_initialization_allows_missing_properties" time="0.001" /><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.001" /><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.12.0"
8
+ version = "0.12.1"
9
9
  readme = "README.md"
10
10
  maintainers = [
11
11
  { name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
@@ -1,4 +1,4 @@
1
- from collections.abc import Mapping, Sequence, Set
1
+ from collections.abc import Iterable, Mapping, Set
2
2
  from typing import overload
3
3
 
4
4
  __all__ = [
@@ -11,34 +11,34 @@ __all__ = [
11
11
 
12
12
  @overload
13
13
  def as_list[T](
14
- collection: Sequence[T],
14
+ collection: Iterable[T],
15
15
  /,
16
16
  ) -> list[T]: ...
17
17
 
18
18
 
19
19
  @overload
20
20
  def as_list[T](
21
- collection: Sequence[T] | None,
21
+ collection: Iterable[T] | None,
22
22
  /,
23
23
  ) -> list[T] | None: ...
24
24
 
25
25
 
26
26
  def as_list[T](
27
- collection: Sequence[T] | None,
27
+ collection: Iterable[T] | None,
28
28
  /,
29
29
  ) -> list[T] | None:
30
30
  """
31
- Converts any given Sequence into a list.
31
+ Converts any given Iterable into a list.
32
32
 
33
33
  Parameters
34
34
  ----------
35
- collection : Sequence[T] | None
36
- The input collection to be converted.
35
+ collection : Iterable[T] | None
36
+ The input to be converted.
37
37
 
38
38
  Returns
39
39
  -------
40
40
  list[T] | None
41
- A new list containing all elements of the input collection,\
41
+ A new list containing all elements of the input,\
42
42
  or the original list if it was already one.
43
43
  None if no value was provided.
44
44
  """
@@ -55,34 +55,34 @@ def as_list[T](
55
55
 
56
56
  @overload
57
57
  def as_tuple[T](
58
- collection: Sequence[T],
58
+ collection: Iterable[T],
59
59
  /,
60
60
  ) -> tuple[T, ...]: ...
61
61
 
62
62
 
63
63
  @overload
64
64
  def as_tuple[T](
65
- collection: Sequence[T] | None,
65
+ collection: Iterable[T] | None,
66
66
  /,
67
67
  ) -> tuple[T, ...] | None: ...
68
68
 
69
69
 
70
70
  def as_tuple[T](
71
- collection: Sequence[T] | None,
71
+ collection: Iterable[T] | None,
72
72
  /,
73
73
  ) -> tuple[T, ...] | None:
74
74
  """
75
- Converts any given Sequence into a tuple.
75
+ Converts any given Iterable into a tuple.
76
76
 
77
77
  Parameters
78
78
  ----------
79
79
  collection : Sequence[T] | None
80
- The input collection to be converted.
80
+ The input to be converted.
81
81
 
82
82
  Returns
83
83
  -------
84
84
  tuple[T] | None
85
- A new tuple containing all elements of the input collection,\
85
+ A new tuple containing all elements of the input,\
86
86
  or the original tuple if it was already one.
87
87
  None if no value was provided.
88
88
  """
@@ -67,7 +67,7 @@ wheels = [
67
67
 
68
68
  [[package]]
69
69
  name = "haiway"
70
- version = "0.12.0"
70
+ version = "0.12.1"
71
71
  source = { editable = "." }
72
72
 
73
73
  [package.optional-dependencies]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes