haiway 0.19.1__tar.gz → 0.19.3__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.19.1 → haiway-0.19.3}/PKG-INFO +1 -1
- haiway-0.19.3/junit/test-results.xml +1 -0
- {haiway-0.19.1 → haiway-0.19.3}/pyproject.toml +1 -1
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/observability.py +2 -2
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/caching.py +2 -2
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/observability.py +2 -2
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/formatting.py +2 -2
- {haiway-0.19.1 → haiway-0.19.3}/uv.lock +1 -1
- haiway-0.19.1/junit/test-results.xml +0 -1
- {haiway-0.19.1 → haiway-0.19.3}/.github/workflows/ci.yml +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/.github/workflows/publish.yml +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/.gitignore +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/LICENSE +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/Makefile +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/README.md +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/config/pre-push +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/.dockerignore +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/Dockerfile +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/Makefile +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/README.md +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/config/.env.example +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/config/unit.json +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/docker-compose.yml +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/pyproject.toml +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/__int__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/todos/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/todos/config.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/todos/state.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/todos/types.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/__main__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/postgres/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/postgres/execution.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/postgres/migration_0.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/migrations/postgres/types.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/__main__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/application.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/config.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/middlewares/context.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/routes/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/routes/technical.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/server/routes/todos.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/examples/fastAPI/uv.lock +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/guidelines/functionalities.md +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/guidelines/packages.md +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/access.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/disposables.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/identifier.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/state.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/tasks.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/context/types.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/asynchrony.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/retries.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/throttling.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/timeouted.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/helpers/tracing.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/opentelemetry/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/opentelemetry/observability.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/py.typed +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/attributes.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/path.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/requirement.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/structure.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/state/validation.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/types/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/types/default.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/types/frozen.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/types/missing.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/always.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/collections.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/env.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/freezing.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/logs.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/mimic.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/noop.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/queue.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/src/haiway/utils/stream.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/__init__.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_async_queue.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_async_stream.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_attribute_path.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_auto_retry.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_cache.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_context.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_state.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_streaming.py +0 -0
- {haiway-0.19.1 → haiway-0.19.3}/tests/test_timeout.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: haiway
|
3
|
-
Version: 0.19.
|
3
|
+
Version: 0.19.3
|
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="88" time="1.122" timestamp="2025-05-14T11:29:26.468674+00:00" hostname="fv-az1112-292"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.002" /><testcase classname="tests.test_async_queue" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_queue" name="test_buffers_values_when_not_reading" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_buffer_when_streaming_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_queue" name="test_fails_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_when_stream_fails" time="0.001" /><testcase classname="tests.test_async_stream" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_stream" name="test_finishes_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_fails_without_buffer" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_sending_to_failed" time="0.001" /><testcase classname="tests.test_async_stream" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_async_stream" name="test_delivers_all_when_sending_async" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_id_path_points_to_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_id_path_set_updates_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_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.107" /><testcase classname="tests.test_auto_retry" name="test_async_logs_issue_with_errors" time="0.002" /><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.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.501" /><testcase classname="tests.test_cache" name="test_async_expiration_does_not_cancel_task" time="0.021" /><testcase classname="tests.test_cache" name="test_async_fails_with_error" time="0.001" /><testcase classname="tests.test_context" name="test_state_is_available_according_to_context" time="0.001" /><testcase classname="tests.test_context" name="test_state_update_updates_local_context" time="0.001" /><testcase classname="tests.test_context" name="test_exceptions_are_propagated" time="0.001" /><testcase classname="tests.test_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.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>
|
@@ -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.19.
|
8
|
+
version = "0.19.3"
|
9
9
|
readme = "README.md"
|
10
10
|
maintainers = [
|
11
11
|
{ name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
|
@@ -244,14 +244,14 @@ def _logger_observability(
|
|
244
244
|
if attributes:
|
245
245
|
logger.log(
|
246
246
|
level,
|
247
|
-
f"{scope.unique_name} Recorded metric: {metric}={value}{unit or ''}"
|
247
|
+
f"{scope.unique_name} Recorded metric: {metric} = {value}{unit or ''}"
|
248
248
|
f"\n{format_str(attributes)}",
|
249
249
|
)
|
250
250
|
|
251
251
|
else:
|
252
252
|
logger.log(
|
253
253
|
level,
|
254
|
-
f"{scope.unique_name} Recorded metric: {metric}={value}{unit or ''}",
|
254
|
+
f"{scope.unique_name} Recorded metric: {metric} = {value}{unit or ''}",
|
255
255
|
)
|
256
256
|
|
257
257
|
def attributes_recording(
|
@@ -263,7 +263,7 @@ class _SyncCache[**Args, Result]:
|
|
263
263
|
owner: type | None = None,
|
264
264
|
/,
|
265
265
|
) -> Callable[Args, Result]:
|
266
|
-
assert
|
266
|
+
assert instance is None, "cache does not work for classes" # nosec: B101
|
267
267
|
return self
|
268
268
|
|
269
269
|
def __call__(
|
@@ -352,7 +352,7 @@ class _AsyncCache[**Args, Result]:
|
|
352
352
|
owner: type | None = None,
|
353
353
|
/,
|
354
354
|
) -> Callable[Args, Coroutine[Any, Any, Result]]:
|
355
|
-
assert
|
355
|
+
assert instance is None, "cache does not work for classes" # nosec: B101
|
356
356
|
return self
|
357
357
|
|
358
358
|
async def __call__(
|
@@ -129,10 +129,10 @@ def LoggerObservability( # noqa: C901, PLR0915
|
|
129
129
|
|
130
130
|
metric_str: str
|
131
131
|
if attributes:
|
132
|
-
metric_str = f"Metric: {metric}={value}{unit or ''}\n{format_str(attributes)}"
|
132
|
+
metric_str = f"Metric: {metric} = {value}{unit or ''}\n{format_str(attributes)}"
|
133
133
|
|
134
134
|
else:
|
135
|
-
metric_str = f"Metric: {metric}={value}{unit or ''}"
|
135
|
+
metric_str = f"Metric: {metric} = {value}{unit or ''}"
|
136
136
|
|
137
137
|
if debug_context: # store only for summary
|
138
138
|
scopes[scope.scope_id].store.append(metric_str)
|
@@ -119,7 +119,7 @@ def _mapping_str(
|
|
119
119
|
continue # skip empty items
|
120
120
|
|
121
121
|
if parts:
|
122
|
-
return "{\n
|
122
|
+
return "{\n" + "\n".join(parts) + "\n}"
|
123
123
|
|
124
124
|
else:
|
125
125
|
return "{}"
|
@@ -145,7 +145,7 @@ def _sequence_str(
|
|
145
145
|
continue # skip empty elements
|
146
146
|
|
147
147
|
if parts:
|
148
|
-
return "[\n
|
148
|
+
return "[\n" + "\n".join(parts) + "\n]"
|
149
149
|
|
150
150
|
else:
|
151
151
|
return "[]"
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="88" time="1.104" timestamp="2025-05-13T10:10:00.079778+00:00" hostname="pkrvmberfyhpb9w"><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_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.005" /><testcase classname="tests.test_auto_retry" name="test_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_when_cancelled" time="0.021" /><testcase classname="tests.test_auto_retry" name="test_async_uses_delay_with_errors" time="0.102" /><testcase classname="tests.test_auto_retry" name="test_async_uses_computed_delay_with_errors" time="0.107" /><testcase classname="tests.test_auto_retry" name="test_async_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_cache_value_with_same_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_different_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_limit_exceed" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_same_value_with_repeating_argument" time="0.000" /><testcase classname="tests.test_cache" name="test_fails_with_error" time="0.000" /><testcase classname="tests.test_cache" name="test_returns_fresh_value_with_expiration_time_exceed" time="0.020" /><testcase classname="tests.test_cache" name="test_async_returns_cache_value_with_same_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_different_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_limit_exceed" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_same_value_with_repeating_argument" time="0.001" /><testcase classname="tests.test_cache" name="test_async_returns_fresh_value_with_expiration_time_exceed" time="0.021" /><testcase classname="tests.test_cache" name="test_async_cancel_waiting_does_not_cancel_task" time="0.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_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.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>
|
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
|