haiway 0.11.0__tar.gz → 0.11.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.
- {haiway-0.11.0 → haiway-0.11.1}/PKG-INFO +1 -1
- haiway-0.11.1/junit/test-results.xml +1 -0
- {haiway-0.11.0 → haiway-0.11.1}/pyproject.toml +1 -1
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/tracing.py +43 -18
- {haiway-0.11.0 → haiway-0.11.1}/uv.lock +1 -1
- haiway-0.11.0/junit/test-results.xml +0 -1
- {haiway-0.11.0 → haiway-0.11.1}/.github/workflows/ci.yml +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/.github/workflows/publish.yml +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/.gitignore +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/LICENSE +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/Makefile +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/README.md +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/config/pre-push +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/.dockerignore +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/Dockerfile +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/Makefile +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/README.md +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/config/.env.example +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/config/unit.json +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/docker-compose.yml +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/pyproject.toml +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/__int__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/calls.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/config.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/state.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/types.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/__main__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/application.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/config.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/middlewares/context.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/routes/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/routes/technical.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/server/routes/todos.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/calls.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/examples/fastAPI/uv.lock +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/guidelines/functionalities.md +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/guidelines/packages.md +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/access.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/disposables.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/identifier.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/logging.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/metrics.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/state.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/tasks.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/context/types.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/asynchrony.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/caching.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/metrics.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/retries.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/throttling.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/helpers/timeouted.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/py.typed +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/attributes.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/path.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/requirement.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/structure.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/state/validation.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/types/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/types/default.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/types/frozen.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/types/missing.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/always.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/collections.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/env.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/freezing.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/logs.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/mimic.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/noop.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/src/haiway/utils/queue.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/__init__.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_async_queue.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_attribute_path.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_auto_retry.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_cache.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_context.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_state.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_streaming.py +0 -0
- {haiway-0.11.0 → haiway-0.11.1}/tests/test_timeout.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: haiway
|
3
|
-
Version: 0.11.
|
3
|
+
Version: 0.11.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
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="79" time="1.147" timestamp="2025-03-12T15:42:57.104519" hostname="fv-az1333-211"><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.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.001" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_limit_exceed" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_same_value_with_repeating_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_fails_with_error" time="0.001" /><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.000" /><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.11.
|
8
|
+
version = "0.11.1"
|
9
9
|
readme = "README.md"
|
10
10
|
maintainers = [
|
11
11
|
{ name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from asyncio import iscoroutinefunction
|
2
2
|
from collections.abc import Callable, Coroutine, Mapping, Sequence
|
3
|
-
from typing import Any, Self, cast
|
3
|
+
from typing import Any, Self, cast, overload
|
4
4
|
|
5
5
|
from haiway.context import ctx
|
6
6
|
from haiway.state import State
|
@@ -61,28 +61,53 @@ class ResultTrace(State):
|
|
61
61
|
result: Any | Missing
|
62
62
|
|
63
63
|
|
64
|
+
@overload
|
64
65
|
def traced[**Args, Result](
|
65
66
|
function: Callable[Args, Result],
|
66
67
|
/,
|
67
|
-
) -> Callable[Args, Result]:
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
),
|
76
|
-
)
|
68
|
+
) -> Callable[Args, Result]: ...
|
69
|
+
|
70
|
+
|
71
|
+
@overload
|
72
|
+
def traced[**Args, Result](
|
73
|
+
*,
|
74
|
+
label: str,
|
75
|
+
) -> Callable[[Callable[Args, Result]], Callable[Args, Result]]: ...
|
77
76
|
|
78
|
-
else:
|
79
|
-
return _traced_sync(
|
80
|
-
function,
|
81
|
-
label=function.__name__,
|
82
|
-
)
|
83
77
|
|
84
|
-
|
85
|
-
|
78
|
+
def traced[**Args, Result](
|
79
|
+
function: Callable[Args, Result] | None = None,
|
80
|
+
/,
|
81
|
+
*,
|
82
|
+
label: str | None = None,
|
83
|
+
) -> Callable[[Callable[Args, Result]], Callable[Args, Result]] | Callable[Args, Result]:
|
84
|
+
def wrap(
|
85
|
+
wrapped: Callable[Args, Result],
|
86
|
+
) -> Callable[Args, Result]:
|
87
|
+
if __debug__:
|
88
|
+
if iscoroutinefunction(wrapped):
|
89
|
+
return cast(
|
90
|
+
Callable[Args, Result],
|
91
|
+
_traced_async(
|
92
|
+
wrapped,
|
93
|
+
label=label or wrapped.__name__,
|
94
|
+
),
|
95
|
+
)
|
96
|
+
|
97
|
+
else:
|
98
|
+
return _traced_sync(
|
99
|
+
wrapped,
|
100
|
+
label=label or wrapped.__name__,
|
101
|
+
)
|
102
|
+
|
103
|
+
else: # do not trace on non debug runs
|
104
|
+
return wrapped
|
105
|
+
|
106
|
+
if function := function:
|
107
|
+
return wrap(wrapped=function)
|
108
|
+
|
109
|
+
else:
|
110
|
+
return wrap
|
86
111
|
|
87
112
|
|
88
113
|
def _traced_sync[**Args, Result](
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="79" time="1.147" timestamp="2025-03-11T11:25:35.484537" hostname="fv-az790-267"><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.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.102" /><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.000" /><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>
|
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
|