haiway 0.21.3__tar.gz → 0.21.4__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.
- {haiway-0.21.3 → haiway-0.21.4}/PKG-INFO +1 -1
- {haiway-0.21.3 → haiway-0.21.4}/junit/test-results.xml +1 -1
- {haiway-0.21.3 → haiway-0.21.4}/pyproject.toml +1 -1
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/requirement.py +5 -5
- {haiway-0.21.3 → haiway-0.21.4}/uv.lock +1 -1
- {haiway-0.21.3 → haiway-0.21.4}/.github/workflows/ci.yml +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/.github/workflows/publish.yml +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/.gitignore +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/CLAUDE.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/LICENSE +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/Makefile +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/README.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/config/pre-push +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/.dockerignore +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/Dockerfile +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/Makefile +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/README.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/config/.env.example +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/config/unit.json +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/docker-compose.yml +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/pyproject.toml +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/__int__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/todos/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/todos/config.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/todos/state.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/todos/types.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/__main__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/postgres/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/postgres/execution.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/postgres/migration_0.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/migrations/postgres/types.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/__main__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/application.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/config.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/middlewares/context.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/routes/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/routes/technical.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/server/routes/todos.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/examples/fastAPI/uv.lock +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/guidelines/functionalities.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/guidelines/llms.txt +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/guidelines/packages.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/guidelines/state.md +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/access.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/disposables.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/identifier.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/observability.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/state.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/tasks.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/context/types.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/asynchrony.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/caching.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/concurrent.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/observability.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/retries.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/throttling.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/timeouted.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/helpers/tracing.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/opentelemetry/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/opentelemetry/observability.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/py.typed +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/attributes.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/path.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/structure.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/state/validation.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/types/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/types/default.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/types/missing.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/always.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/collections.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/env.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/formatting.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/freezing.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/logs.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/mimic.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/noop.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/queue.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/src/haiway/utils/stream.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/__init__.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_async_queue.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_async_stream.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_attribute_path.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_attribute_requirement.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_auto_retry.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_cache.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_context.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_process_concurrently.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_state.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_state_validation.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_streaming.py +0 -0
- {haiway-0.21.3 → haiway-0.21.4}/tests/test_timeout.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: haiway
|
3
|
-
Version: 0.21.
|
3
|
+
Version: 0.21.4
|
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="126" time="1.859" timestamp="2025-06-09T11:44:44.831701+00:00" hostname="pkrvmf6wy0o8zjz"><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_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.001" /><testcase classname="tests.test_state_validation" name="test_validator_basic_types" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_none_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_missing_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_literal_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_enum_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_sequence_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_set_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_mapping_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_tuple_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_union_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_callable_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_typed_dict" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_state_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_complex_types" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_recursive_state" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_generic_state" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validation_error_messages" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validation_any_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_with_defaults" time="0.000" /><testcase classname="tests.test_state_validation" name="test_attribute_validator_direct_usage" time="0.000" /><testcase classname="tests.test_state_validation" name="test_unsupported_type_annotation" 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="126" time="1.865" timestamp="2025-06-09T12:05:08.394673+00:00" hostname="pkrvmf6wy0o8zjz"><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_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.001" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.001" /><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.001" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.001" /><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.001" /><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.002" /><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_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_state_validation" name="test_validator_basic_types" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_none_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_missing_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_literal_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_enum_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_sequence_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_set_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_mapping_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_tuple_type" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_union_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_callable_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_typed_dict" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_state_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_complex_types" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validator_recursive_state" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_generic_state" time="0.001" /><testcase classname="tests.test_state_validation" name="test_validation_error_messages" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validation_any_type" time="0.000" /><testcase classname="tests.test_state_validation" name="test_validator_with_defaults" time="0.000" /><testcase classname="tests.test_state_validation" name="test_attribute_validator_direct_usage" time="0.000" /><testcase classname="tests.test_state_validation" name="test_unsupported_type_annotation" 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.
|
8
|
+
version = "0.21.4"
|
9
9
|
readme = "README.md"
|
10
10
|
maintainers = [
|
11
11
|
{ name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
|
@@ -99,7 +99,7 @@ class AttributeRequirement[Root]:
|
|
99
99
|
path, AttributePath
|
100
100
|
), "Prepare attribute path by using Self._.path.to.property or explicitly"
|
101
101
|
|
102
|
-
def
|
102
|
+
def check_text_match(root: Root) -> None:
|
103
103
|
checked: Any = cast(AttributePath[Root, str], path)(root)
|
104
104
|
if not isinstance(checked, str):
|
105
105
|
raise ValueError(
|
@@ -140,9 +140,9 @@ class AttributeRequirement[Root]:
|
|
140
140
|
|
141
141
|
return cls(
|
142
142
|
path,
|
143
|
-
"
|
143
|
+
"text_match",
|
144
144
|
value,
|
145
|
-
check=
|
145
|
+
check=check_text_match,
|
146
146
|
)
|
147
147
|
|
148
148
|
@classmethod
|
@@ -345,7 +345,7 @@ class AttributeRequirement[Root]:
|
|
345
345
|
lhs: Any,
|
346
346
|
operator: Literal[
|
347
347
|
"equal",
|
348
|
-
"
|
348
|
+
"text_match",
|
349
349
|
"not_equal",
|
350
350
|
"contains",
|
351
351
|
"contains_any",
|
@@ -378,7 +378,7 @@ class AttributeRequirement[Root]:
|
|
378
378
|
)
|
379
379
|
self.operator: Literal[
|
380
380
|
"equal",
|
381
|
-
"
|
381
|
+
"text_match",
|
382
382
|
"not_equal",
|
383
383
|
"contains",
|
384
384
|
"contains_any",
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|