haiway 0.10.11__tar.gz → 0.10.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. {haiway-0.10.11 → haiway-0.10.13}/Makefile +1 -1
  2. {haiway-0.10.11 → haiway-0.10.13}/PKG-INFO +1 -1
  3. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/tracing.py +3 -2
  4. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/attributes.py +7 -1
  5. haiway-0.10.13/junit/test-results.xml +1 -0
  6. {haiway-0.10.11 → haiway-0.10.13}/pyproject.toml +3 -6
  7. {haiway-0.10.11 → haiway-0.10.13}/uv.lock +25 -25
  8. haiway-0.10.11/junit/test-results.xml +0 -1
  9. {haiway-0.10.11 → haiway-0.10.13}/.github/workflows/ci.yml +0 -0
  10. {haiway-0.10.11 → haiway-0.10.13}/.github/workflows/publish.yml +0 -0
  11. {haiway-0.10.11 → haiway-0.10.13}/.gitignore +0 -0
  12. {haiway-0.10.11 → haiway-0.10.13}/LICENSE +0 -0
  13. {haiway-0.10.11 → haiway-0.10.13}/README.md +0 -0
  14. {haiway-0.10.11 → haiway-0.10.13}/config/pre-push +0 -0
  15. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/.dockerignore +0 -0
  16. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/Dockerfile +0 -0
  17. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/Makefile +0 -0
  18. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/README.md +0 -0
  19. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/config/.env.example +0 -0
  20. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/config/unit.json +0 -0
  21. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/docker-compose.yml +0 -0
  22. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/pyproject.toml +0 -0
  23. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/__int__.py +0 -0
  24. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/__init__.py +0 -0
  25. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/calls.py +0 -0
  26. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/config.py +0 -0
  27. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/state.py +0 -0
  28. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/types.py +0 -0
  29. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/features/todos/user_tasks.py +0 -0
  30. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/__init__.py +0 -0
  31. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/postgres/__init__.py +0 -0
  32. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/postgres/client.py +0 -0
  33. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/postgres/config.py +0 -0
  34. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/postgres/state.py +0 -0
  35. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/integrations/postgres/types.py +0 -0
  36. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/__init__.py +0 -0
  37. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/__main__.py +0 -0
  38. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/application.py +0 -0
  39. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/config.py +0 -0
  40. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/middlewares/__init__.py +0 -0
  41. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/middlewares/context.py +0 -0
  42. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/routes/__init__.py +0 -0
  43. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/routes/technical.py +0 -0
  44. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/server/routes/todos.py +0 -0
  45. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/__init__.py +0 -0
  46. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/__init__.py +0 -0
  47. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/calls.py +0 -0
  48. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/config.py +0 -0
  49. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/postgres.py +0 -0
  50. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/state.py +0 -0
  51. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/src/solutions/user_tasks/types.py +0 -0
  52. {haiway-0.10.11 → haiway-0.10.13}/examples/fastAPI/uv.lock +0 -0
  53. {haiway-0.10.11 → haiway-0.10.13}/guidelines/functionalities.md +0 -0
  54. {haiway-0.10.11 → haiway-0.10.13}/guidelines/packages.md +0 -0
  55. {haiway-0.10.11/src → haiway-0.10.13}/haiway/__init__.py +0 -0
  56. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/__init__.py +0 -0
  57. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/access.py +0 -0
  58. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/disposables.py +0 -0
  59. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/identifier.py +0 -0
  60. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/logging.py +0 -0
  61. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/metrics.py +0 -0
  62. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/state.py +0 -0
  63. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/tasks.py +0 -0
  64. {haiway-0.10.11/src → haiway-0.10.13}/haiway/context/types.py +0 -0
  65. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/__init__.py +0 -0
  66. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/asynchrony.py +0 -0
  67. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/caching.py +0 -0
  68. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/metrics.py +0 -0
  69. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/retries.py +0 -0
  70. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/throttling.py +0 -0
  71. {haiway-0.10.11/src → haiway-0.10.13}/haiway/helpers/timeouted.py +0 -0
  72. {haiway-0.10.11/src → haiway-0.10.13}/haiway/py.typed +0 -0
  73. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/__init__.py +0 -0
  74. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/path.py +0 -0
  75. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/requirement.py +0 -0
  76. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/structure.py +0 -0
  77. {haiway-0.10.11/src → haiway-0.10.13}/haiway/state/validation.py +0 -0
  78. {haiway-0.10.11/src → haiway-0.10.13}/haiway/types/__init__.py +0 -0
  79. {haiway-0.10.11/src → haiway-0.10.13}/haiway/types/default.py +0 -0
  80. {haiway-0.10.11/src → haiway-0.10.13}/haiway/types/frozen.py +0 -0
  81. {haiway-0.10.11/src → haiway-0.10.13}/haiway/types/missing.py +0 -0
  82. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/__init__.py +0 -0
  83. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/always.py +0 -0
  84. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/collections.py +0 -0
  85. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/env.py +0 -0
  86. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/freezing.py +0 -0
  87. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/logs.py +0 -0
  88. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/mimic.py +0 -0
  89. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/noop.py +0 -0
  90. {haiway-0.10.11/src → haiway-0.10.13}/haiway/utils/queue.py +0 -0
  91. {haiway-0.10.11 → haiway-0.10.13}/hatch_version.py +0 -0
  92. {haiway-0.10.11 → haiway-0.10.13}/tests/__init__.py +0 -0
  93. {haiway-0.10.11 → haiway-0.10.13}/tests/test_async_queue.py +0 -0
  94. {haiway-0.10.11 → haiway-0.10.13}/tests/test_attribute_path.py +0 -0
  95. {haiway-0.10.11 → haiway-0.10.13}/tests/test_auto_retry.py +0 -0
  96. {haiway-0.10.11 → haiway-0.10.13}/tests/test_cache.py +0 -0
  97. {haiway-0.10.11 → haiway-0.10.13}/tests/test_context.py +0 -0
  98. {haiway-0.10.11 → haiway-0.10.13}/tests/test_state.py +0 -0
  99. {haiway-0.10.11 → haiway-0.10.13}/tests/test_streaming.py +0 -0
  100. {haiway-0.10.11 → haiway-0.10.13}/tests/test_timeout.py +0 -0
@@ -10,7 +10,7 @@ TESTS_PATH := tests
10
10
  -include .env
11
11
 
12
12
  ifndef UV_VERSION
13
- UV_VERSION := 0.6.2
13
+ UV_VERSION := 0.6.4
14
14
  endif
15
15
 
16
16
  .PHONY: uv_check venv sync update format lint test release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haiway
3
- Version: 0.10.11
3
+ Version: 0.10.13
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
@@ -74,6 +74,7 @@ def traced[**Args, Result](
74
74
  label=function.__name__,
75
75
  ),
76
76
  )
77
+
77
78
  else:
78
79
  return _traced_sync(
79
80
  function,
@@ -101,7 +102,7 @@ def _traced_sync[**Args, Result](
101
102
  return result
102
103
 
103
104
  except BaseException as exc:
104
- ctx.record(ResultTrace.of(exc))
105
+ ctx.record(ResultTrace.of(f"{type(exc)}: {exc}"))
105
106
  raise exc
106
107
 
107
108
  return mimic_function(
@@ -127,7 +128,7 @@ def _traced_async[**Args, Result](
127
128
  return result
128
129
 
129
130
  except BaseException as exc:
130
- ctx.record(ResultTrace.of(exc))
131
+ ctx.record(ResultTrace.of(f"{type(exc)}: {exc}"))
131
132
  raise exc
132
133
 
133
134
  return mimic_function(
@@ -66,6 +66,9 @@ class AttributeAnnotation:
66
66
  return self
67
67
 
68
68
  def __str__(self) -> str:
69
+ if alias := self.extra.get("TYPE_ALIAS"):
70
+ return alias
71
+
69
72
  origin_str: str = getattr(self.origin, "__name__", str(self.origin))
70
73
  arguments_str: str
71
74
  if self.arguments:
@@ -337,7 +340,10 @@ def _resolve_type_alias(
337
340
 
338
341
  resolved_attribute.origin = resolved.origin
339
342
  resolved_attribute.arguments = resolved.arguments
340
- resolved_attribute.extra = resolved.extra
343
+ resolved_attribute.extra = {
344
+ **resolved.extra,
345
+ "TYPE_ALIAS": annotation.__name__,
346
+ }
341
347
  resolved_attribute.required = resolved.required
342
348
 
343
349
  return resolved_attribute
@@ -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.118" timestamp="2025-03-04T12:06:25.447170" hostname="fv-az1384-307"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_queue" name="test_buffers_values_when_not_reading" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_buffer_when_streaming_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_queue" name="test_fails_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_id_path_points_to_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_id_path_set_updates_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_set_updates_item" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_auto_retry" name="test_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_when_cancelled" time="0.021" /><testcase classname="tests.test_auto_retry" name="test_async_uses_delay_with_errors" time="0.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.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_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>
@@ -37,6 +37,9 @@ dev = [
37
37
  "pytest-asyncio~=0.23",
38
38
  ]
39
39
 
40
+ [tool.hatch.build]
41
+ sources = ["./src"]
42
+
40
43
  [tool.hatch.metadata.hooks.custom]
41
44
  path = "hatch_version.py"
42
45
 
@@ -67,9 +70,3 @@ useLibraryCodeForTypes = true
67
70
  [tool.pyright.analysis]
68
71
  diagnosticMode = "workspace"
69
72
  typeCheckingMode = "strict"
70
-
71
- [tool.setuptools]
72
- include-package-data = true
73
-
74
- [tool.setuptools.packages.find]
75
- where = ["src"]
@@ -170,15 +170,15 @@ wheels = [
170
170
 
171
171
  [[package]]
172
172
  name = "pyright"
173
- version = "1.1.394"
173
+ version = "1.1.396"
174
174
  source = { registry = "https://pypi.org/simple" }
175
175
  dependencies = [
176
176
  { name = "nodeenv" },
177
177
  { name = "typing-extensions" },
178
178
  ]
179
- sdist = { url = "https://files.pythonhosted.org/packages/b1/e4/79f4d8a342eed6790fdebdb500e95062f319ee3d7d75ae27304ff995ae8c/pyright-1.1.394.tar.gz", hash = "sha256:56f2a3ab88c5214a451eb71d8f2792b7700434f841ea219119ade7f42ca93608", size = 3809348 }
179
+ sdist = { url = "https://files.pythonhosted.org/packages/bd/73/f20cb1dea1bdc1774e7f860fb69dc0718c7d8dea854a345faec845eb086a/pyright-1.1.396.tar.gz", hash = "sha256:142901f5908f5a0895be3d3befcc18bedcdb8cc1798deecaec86ef7233a29b03", size = 3814400 }
180
180
  wheels = [
181
- { url = "https://files.pythonhosted.org/packages/d6/4c/50c74e3d589517a9712a61a26143b587dba6285434a17aebf2ce6b82d2c3/pyright-1.1.394-py3-none-any.whl", hash = "sha256:5f74cce0a795a295fb768759bbeeec62561215dea657edcaab48a932b031ddbb", size = 5679540 },
181
+ { url = "https://files.pythonhosted.org/packages/80/be/ecb7cfb42d242b7ee764b52e6ff4782beeec00e3b943a3ec832b281f9da6/pyright-1.1.396-py3-none-any.whl", hash = "sha256:c635e473095b9138c471abccca22b9fedbe63858e0b40d4fc4b67da041891844", size = 5689355 },
182
182
  ]
183
183
 
184
184
  [[package]]
@@ -262,36 +262,36 @@ wheels = [
262
262
 
263
263
  [[package]]
264
264
  name = "ruff"
265
- version = "0.9.7"
265
+ version = "0.9.9"
266
266
  source = { registry = "https://pypi.org/simple" }
267
- sdist = { url = "https://files.pythonhosted.org/packages/39/8b/a86c300359861b186f18359adf4437ac8e4c52e42daa9eedc731ef9d5b53/ruff-0.9.7.tar.gz", hash = "sha256:643757633417907510157b206e490c3aa11cab0c087c912f60e07fbafa87a4c6", size = 3669813 }
267
+ sdist = { url = "https://files.pythonhosted.org/packages/6f/c3/418441a8170e8d53d05c0b9dad69760dbc7b8a12c10dbe6db1e1205d2377/ruff-0.9.9.tar.gz", hash = "sha256:0062ed13f22173e85f8f7056f9a24016e692efeea8704d1a5e8011b8aa850933", size = 3717448 }
268
268
  wheels = [
269
- { url = "https://files.pythonhosted.org/packages/b1/f3/3a1d22973291226df4b4e2ff70196b926b6f910c488479adb0eeb42a0d7f/ruff-0.9.7-py3-none-linux_armv6l.whl", hash = "sha256:99d50def47305fe6f233eb8dabfd60047578ca87c9dcb235c9723ab1175180f4", size = 11774588 },
270
- { url = "https://files.pythonhosted.org/packages/8e/c9/b881f4157b9b884f2994fd08ee92ae3663fb24e34b0372ac3af999aa7fc6/ruff-0.9.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d59105ae9c44152c3d40a9c40d6331a7acd1cdf5ef404fbe31178a77b174ea66", size = 11746848 },
271
- { url = "https://files.pythonhosted.org/packages/14/89/2f546c133f73886ed50a3d449e6bf4af27d92d2f960a43a93d89353f0945/ruff-0.9.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:f313b5800483770bd540cddac7c90fc46f895f427b7820f18fe1822697f1fec9", size = 11177525 },
272
- { url = "https://files.pythonhosted.org/packages/d7/93/6b98f2c12bf28ab9def59c50c9c49508519c5b5cfecca6de871cf01237f6/ruff-0.9.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:042ae32b41343888f59c0a4148f103208bf6b21c90118d51dc93a68366f4e903", size = 11996580 },
273
- { url = "https://files.pythonhosted.org/packages/8e/3f/b3fcaf4f6d875e679ac2b71a72f6691a8128ea3cb7be07cbb249f477c061/ruff-0.9.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:87862589373b33cc484b10831004e5e5ec47dc10d2b41ba770e837d4f429d721", size = 11525674 },
274
- { url = "https://files.pythonhosted.org/packages/f0/48/33fbf18defb74d624535d5d22adcb09a64c9bbabfa755bc666189a6b2210/ruff-0.9.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a17e1e01bee0926d351a1ee9bc15c445beae888f90069a6192a07a84af544b6b", size = 12739151 },
275
- { url = "https://files.pythonhosted.org/packages/63/b5/7e161080c5e19fa69495cbab7c00975ef8a90f3679caa6164921d7f52f4a/ruff-0.9.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7c1f880ac5b2cbebd58b8ebde57069a374865c73f3bf41f05fe7a179c1c8ef22", size = 13416128 },
276
- { url = "https://files.pythonhosted.org/packages/4e/c8/b5e7d61fb1c1b26f271ac301ff6d9de5e4d9a9a63f67d732fa8f200f0c88/ruff-0.9.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e63fc20143c291cab2841dbb8260e96bafbe1ba13fd3d60d28be2c71e312da49", size = 12870858 },
277
- { url = "https://files.pythonhosted.org/packages/da/cb/2a1a8e4e291a54d28259f8fc6a674cd5b8833e93852c7ef5de436d6ed729/ruff-0.9.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91ff963baed3e9a6a4eba2a02f4ca8eaa6eba1cc0521aec0987da8d62f53cbef", size = 14786046 },
278
- { url = "https://files.pythonhosted.org/packages/ca/6c/c8f8a313be1943f333f376d79724260da5701426c0905762e3ddb389e3f4/ruff-0.9.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88362e3227c82f63eaebf0b2eff5b88990280fb1ecf7105523883ba8c3aaf6fb", size = 12550834 },
279
- { url = "https://files.pythonhosted.org/packages/9d/ad/f70cf5e8e7c52a25e166bdc84c082163c9c6f82a073f654c321b4dff9660/ruff-0.9.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0372c5a90349f00212270421fe91874b866fd3626eb3b397ede06cd385f6f7e0", size = 11961307 },
280
- { url = "https://files.pythonhosted.org/packages/52/d5/4f303ea94a5f4f454daf4d02671b1fbfe2a318b5fcd009f957466f936c50/ruff-0.9.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d76b8ab60e99e6424cd9d3d923274a1324aefce04f8ea537136b8398bbae0a62", size = 11612039 },
281
- { url = "https://files.pythonhosted.org/packages/eb/c8/bd12a23a75603c704ce86723be0648ba3d4ecc2af07eecd2e9fa112f7e19/ruff-0.9.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0c439bdfc8983e1336577f00e09a4e7a78944fe01e4ea7fe616d00c3ec69a3d0", size = 12168177 },
282
- { url = "https://files.pythonhosted.org/packages/cc/57/d648d4f73400fef047d62d464d1a14591f2e6b3d4a15e93e23a53c20705d/ruff-0.9.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:115d1f15e8fdd445a7b4dc9a30abae22de3f6bcabeb503964904471691ef7606", size = 12610122 },
283
- { url = "https://files.pythonhosted.org/packages/49/79/acbc1edd03ac0e2a04ae2593555dbc9990b34090a9729a0c4c0cf20fb595/ruff-0.9.7-py3-none-win32.whl", hash = "sha256:e9ece95b7de5923cbf38893f066ed2872be2f2f477ba94f826c8defdd6ec6b7d", size = 9988751 },
284
- { url = "https://files.pythonhosted.org/packages/6d/95/67153a838c6b6ba7a2401241fd8a00cd8c627a8e4a0491b8d853dedeffe0/ruff-0.9.7-py3-none-win_amd64.whl", hash = "sha256:3770fe52b9d691a15f0b87ada29c45324b2ace8f01200fb0c14845e499eb0c2c", size = 11002987 },
285
- { url = "https://files.pythonhosted.org/packages/63/6a/aca01554949f3a401991dc32fe22837baeaccb8a0d868256cbb26a029778/ruff-0.9.7-py3-none-win_arm64.whl", hash = "sha256:b075a700b2533feb7a01130ff656a4ec0d5f340bb540ad98759b8401c32c2037", size = 10177763 },
269
+ { url = "https://files.pythonhosted.org/packages/bc/c3/2c4afa9ba467555d074b146d9aed0633a56ccdb900839fb008295d037b89/ruff-0.9.9-py3-none-linux_armv6l.whl", hash = "sha256:628abb5ea10345e53dff55b167595a159d3e174d6720bf19761f5e467e68d367", size = 10027252 },
270
+ { url = "https://files.pythonhosted.org/packages/33/d1/439e58487cf9eac26378332e25e7d5ade4b800ce1eec7dc2cfc9b0d7ca96/ruff-0.9.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cd1428e834b35d7493354723543b28cc11dc14d1ce19b685f6e68e07c05ec7", size = 10840721 },
271
+ { url = "https://files.pythonhosted.org/packages/50/44/fead822c38281ba0122f1b76b460488a175a9bd48b130650a6fb6dbcbcf9/ruff-0.9.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5ee162652869120ad260670706f3cd36cd3f32b0c651f02b6da142652c54941d", size = 10161439 },
272
+ { url = "https://files.pythonhosted.org/packages/11/ae/d404a2ab8e61ddf6342e09cc6b7f7846cce6b243e45c2007dbe0ca928a5d/ruff-0.9.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3aa0f6b75082c9be1ec5a1db78c6d4b02e2375c3068438241dc19c7c306cc61a", size = 10336264 },
273
+ { url = "https://files.pythonhosted.org/packages/6a/4e/7c268aa7d84cd709fb6f046b8972313142cffb40dfff1d2515c5e6288d54/ruff-0.9.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:584cc66e89fb5f80f84b05133dd677a17cdd86901d6479712c96597a3f28e7fe", size = 9908774 },
274
+ { url = "https://files.pythonhosted.org/packages/cc/26/c618a878367ef1b76270fd027ca93692657d3f6122b84ba48911ef5f2edc/ruff-0.9.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf3369325761a35aba75cd5c55ba1b5eb17d772f12ab168fbfac54be85cf18c", size = 11428127 },
275
+ { url = "https://files.pythonhosted.org/packages/d7/9a/c5588a93d9bfed29f565baf193fe802fa676a0c837938137ea6cf0576d8c/ruff-0.9.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3403a53a32a90ce929aa2f758542aca9234befa133e29f4933dcef28a24317be", size = 12133187 },
276
+ { url = "https://files.pythonhosted.org/packages/3e/ff/e7980a7704a60905ed7e156a8d73f604c846d9bd87deda9cabfa6cba073a/ruff-0.9.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18454e7fa4e4d72cffe28a37cf6a73cb2594f81ec9f4eca31a0aaa9ccdfb1590", size = 11602937 },
277
+ { url = "https://files.pythonhosted.org/packages/24/78/3690444ad9e3cab5c11abe56554c35f005b51d1d118b429765249095269f/ruff-0.9.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fadfe2c88724c9617339f62319ed40dcdadadf2888d5afb88bf3adee7b35bfb", size = 13771698 },
278
+ { url = "https://files.pythonhosted.org/packages/6e/bf/e477c2faf86abe3988e0b5fd22a7f3520e820b2ee335131aca2e16120038/ruff-0.9.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6df104d08c442a1aabcfd254279b8cc1e2cbf41a605aa3e26610ba1ec4acf0b0", size = 11249026 },
279
+ { url = "https://files.pythonhosted.org/packages/f7/82/cdaffd59e5a8cb5b14c408c73d7a555a577cf6645faaf83e52fe99521715/ruff-0.9.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d7c62939daf5b2a15af48abbd23bea1efdd38c312d6e7c4cedf5a24e03207e17", size = 10220432 },
280
+ { url = "https://files.pythonhosted.org/packages/fe/a4/2507d0026225efa5d4412b6e294dfe54725a78652a5c7e29e6bd0fc492f3/ruff-0.9.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9494ba82a37a4b81b6a798076e4a3251c13243fc37967e998efe4cce58c8a8d1", size = 9874602 },
281
+ { url = "https://files.pythonhosted.org/packages/d5/be/f3aab1813846b476c4bcffe052d232244979c3cd99d751c17afb530ca8e4/ruff-0.9.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:4efd7a96ed6d36ef011ae798bf794c5501a514be369296c672dab7921087fa57", size = 10851212 },
282
+ { url = "https://files.pythonhosted.org/packages/8b/45/8e5fd559bea0d2f57c4e12bf197a2fade2fac465aa518284f157dfbca92b/ruff-0.9.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ab90a7944c5a1296f3ecb08d1cbf8c2da34c7e68114b1271a431a3ad30cb660e", size = 11327490 },
283
+ { url = "https://files.pythonhosted.org/packages/42/55/e6c90f13880aeef327746052907e7e930681f26a164fe130ddac28b08269/ruff-0.9.9-py3-none-win32.whl", hash = "sha256:6b4c376d929c25ecd6d87e182a230fa4377b8e5125a4ff52d506ee8c087153c1", size = 10227912 },
284
+ { url = "https://files.pythonhosted.org/packages/35/b2/da925693cb82a1208aa34966c0f36cb222baca94e729dd22a587bc22d0f3/ruff-0.9.9-py3-none-win_amd64.whl", hash = "sha256:837982ea24091d4c1700ddb2f63b7070e5baec508e43b01de013dc7eff974ff1", size = 11355632 },
285
+ { url = "https://files.pythonhosted.org/packages/31/d8/de873d1c1b020d668d8ec9855d390764cb90cf8f6486c0983da52be8b7b7/ruff-0.9.9-py3-none-win_arm64.whl", hash = "sha256:3ac78f127517209fe6d96ab00f3ba97cafe38718b23b1db3e96d8b2d39e37ddf", size = 10435860 },
286
286
  ]
287
287
 
288
288
  [[package]]
289
289
  name = "setuptools"
290
- version = "75.8.0"
290
+ version = "75.8.2"
291
291
  source = { registry = "https://pypi.org/simple" }
292
- sdist = { url = "https://files.pythonhosted.org/packages/92/ec/089608b791d210aec4e7f97488e67ab0d33add3efccb83a056cbafe3a2a6/setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6", size = 1343222 }
292
+ sdist = { url = "https://files.pythonhosted.org/packages/d1/53/43d99d7687e8cdef5ab5f9ec5eaf2c0423c2b35133a2b7e7bc276fc32b21/setuptools-75.8.2.tar.gz", hash = "sha256:4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2", size = 1344083 }
293
293
  wheels = [
294
- { url = "https://files.pythonhosted.org/packages/69/8a/b9dc7678803429e4a3bc9ba462fa3dd9066824d3c607490235c6a796be5a/setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3", size = 1228782 },
294
+ { url = "https://files.pythonhosted.org/packages/a9/38/7d7362e031bd6dc121e5081d8cb6aa6f6fedf2b67bf889962134c6da4705/setuptools-75.8.2-py3-none-any.whl", hash = "sha256:558e47c15f1811c1fa7adbd0096669bf76c1d3f433f58324df69f3f5ecac4e8f", size = 1229385 },
295
295
  ]
296
296
 
297
297
  [[package]]
@@ -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.154" timestamp="2025-02-24T10:21:16.952987" hostname="fv-az791-844"><testcase classname="tests.test_async_queue" name="test_fails_when_stream_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ends_when_stream_ends" time="0.001" /><testcase classname="tests.test_async_queue" name="test_buffers_values_when_not_reading" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_buffer_when_streaming_fails" time="0.001" /><testcase classname="tests.test_async_queue" name="test_delivers_updates_when_sending" time="0.001" /><testcase classname="tests.test_async_queue" name="test_fails_when_sending_to_finished" time="0.001" /><testcase classname="tests.test_async_queue" name="test_ignores_when_finishing_when_finished" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_id_path_points_to_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_points_to_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_path_points_to_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_points_to_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_id_path_set_updates_self" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_attribute_path_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_nested_attribute_path_set_updates_nested_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_recursive_attribute_set_updates_attribute" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_list_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_tuple_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_attribute_path" name="test_mixed_tuple_item_set_updates_item" time="0.001" /><testcase classname="tests.test_attribute_path" name="test_dict_item_path_set_updates_item" time="0.000" /><testcase classname="tests.test_auto_retry" name="test_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_logs_issue_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_retries_with_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_fails_with_not_selected_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_returns_value_without_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_retries_with_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_exceeding_errors" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_with_cancellation" time="0.001" /><testcase classname="tests.test_auto_retry" name="test_async_fails_when_cancelled" time="0.021" /><testcase classname="tests.test_auto_retry" name="test_async_uses_delay_with_errors" time="0.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.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.001" /><testcase classname="tests.test_state" name="test_generic_subtypes_validation" time="0.002" /><testcase classname="tests.test_state" name="test_copying_leaves_same_object" time="0.001" /><testcase classname="tests.test_streaming" name="test_fails_when_generator_fails" time="0.001" /><testcase classname="tests.test_streaming" name="test_cancels_when_iteration_cancels" time="0.001" /><testcase classname="tests.test_streaming" name="test_ends_when_generator_ends" time="0.001" /><testcase classname="tests.test_streaming" name="test_delivers_updates_when_generating" time="0.001" /><testcase classname="tests.test_streaming" name="test_streaming_context_variables_access_is_preserved" time="0.001" /><testcase classname="tests.test_streaming" name="test_nested_streaming_streams_correctly" time="0.001" /><testcase classname="tests.test_timeout" name="test_returns_result_when_returning_value" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_error" time="0.001" /><testcase classname="tests.test_timeout" name="test_raises_with_cancel" time="0.011" /><testcase classname="tests.test_timeout" name="test_raises_with_timeout" time="0.011" /></testsuite></testsuites>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes