domain-errors 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. {domain_errors-0.2.0 → domain_errors-0.2.1}/CHANGELOG.md +6 -0
  2. {domain_errors-0.2.0 → domain_errors-0.2.1}/PKG-INFO +3 -1
  3. {domain_errors-0.2.0 → domain_errors-0.2.1}/README.md +2 -0
  4. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/config/_version.py +1 -1
  5. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/wrap_errors/wrap_errors_client.py +2 -16
  6. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  7. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  8. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  9. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/ci.yml +0 -0
  10. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/cleanup-guard.yml +0 -0
  11. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/dto-strict.yml +0 -0
  12. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/no-ai-attribution.yml +0 -0
  13. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/publish.yml +0 -0
  14. {domain_errors-0.2.0 → domain_errors-0.2.1}/.github/workflows/ruff.yml +0 -0
  15. {domain_errors-0.2.0 → domain_errors-0.2.1}/.gitignore +0 -0
  16. {domain_errors-0.2.0 → domain_errors-0.2.1}/CODE_OF_CONDUCT.md +0 -0
  17. {domain_errors-0.2.0 → domain_errors-0.2.1}/CONTRIBUTING.md +0 -0
  18. {domain_errors-0.2.0 → domain_errors-0.2.1}/LICENSE +0 -0
  19. {domain_errors-0.2.0 → domain_errors-0.2.1}/SECURITY.md +0 -0
  20. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/chain.md +0 -0
  21. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/cloud.md +0 -0
  22. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/diagrams.md +0 -0
  23. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/domain_error.md +0 -0
  24. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/http.md +0 -0
  25. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/python.md +0 -0
  26. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/apps/wrap_errors.md +0 -0
  27. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/architecture/.gitkeep +0 -0
  28. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/.gitkeep +0 -0
  29. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-13-chain-security-audit.md +0 -0
  30. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-13-domain_error-security-audit.md +0 -0
  31. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-14-cloud-security-audit.md +0 -0
  32. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-14-http-security-audit.md +0 -0
  33. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-14-python-security-audit.md +0 -0
  34. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/audits/2026-06-14-wrap_errors-security-audit.md +0 -0
  35. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/.gitkeep +0 -0
  36. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-13-chain-review.md +0 -0
  37. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-13-domain_error-review.md +0 -0
  38. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-14-cloud-review.md +0 -0
  39. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-14-http-review.md +0 -0
  40. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-14-python-review.md +0 -0
  41. {domain_errors-0.2.0 → domain_errors-0.2.1}/docs/reviews/2026-06-14-wrap_errors-review.md +0 -0
  42. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/__init__.py +0 -0
  43. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/common/__init__.py +0 -0
  44. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/common/constants/__init__.py +0 -0
  45. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/common/constants/tests.py +0 -0
  46. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/common/tests/__init__.py +0 -0
  47. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/config/__init__.py +0 -0
  48. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/__init__.py +0 -0
  49. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/tests/__init__.py +0 -0
  50. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/tests/test_wrap_errors/__init__.py +0 -0
  51. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/tests/test_wrap_errors/conftest.py +0 -0
  52. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/tests/test_wrap_errors/test_wrap_errors_client.py +0 -0
  53. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/decorators/wrap_errors/__init__.py +0 -0
  54. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/__init__.py +0 -0
  55. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/cloud/__init__.py +0 -0
  56. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/cloud/cloud_client.py +0 -0
  57. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/constants/__init__.py +0 -0
  58. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/constants/cloud.py +0 -0
  59. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/constants/domain_error.py +0 -0
  60. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/constants/http.py +0 -0
  61. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/constants/python.py +0 -0
  62. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/domain_error/__init__.py +0 -0
  63. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/domain_error/domain_error.py +0 -0
  64. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/http/__init__.py +0 -0
  65. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/http/http_client.py +0 -0
  66. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/python/__init__.py +0 -0
  67. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/python/python_client.py +0 -0
  68. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/__init__.py +0 -0
  69. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_cloud/__init__.py +0 -0
  70. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_cloud/conftest.py +0 -0
  71. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_cloud/test_cloud_client.py +0 -0
  72. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_domain_error/__init__.py +0 -0
  73. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_domain_error/conftest.py +0 -0
  74. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_domain_error/test_domain_error.py +0 -0
  75. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_http/__init__.py +0 -0
  76. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_http/conftest.py +0 -0
  77. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_http/test_http_client.py +0 -0
  78. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_python/__init__.py +0 -0
  79. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_python/conftest.py +0 -0
  80. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/domains/tests/test_python/test_python_client.py +0 -0
  81. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/py.typed +0 -0
  82. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/__init__.py +0 -0
  83. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/chain/__init__.py +0 -0
  84. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/chain/chain_client.py +0 -0
  85. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/chain/chain_objects.py +0 -0
  86. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/constants/__init__.py +0 -0
  87. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/constants/chain.py +0 -0
  88. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/constants/services.py +0 -0
  89. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/tests/__init__.py +0 -0
  90. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/tests/test_chain/__init__.py +0 -0
  91. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/tests/test_chain/conftest.py +0 -0
  92. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/tests/test_chain/test_chain_client.py +0 -0
  93. {domain_errors-0.2.0 → domain_errors-0.2.1}/domain_errors/services/tests/test_chain/test_chain_objects.py +0 -0
  94. {domain_errors-0.2.0 → domain_errors-0.2.1}/pyproject.toml +0 -0
  95. {domain_errors-0.2.0 → domain_errors-0.2.1}/uv.lock +0 -0
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.1] - 2026-07-11
11
+
12
+ ### Changed
13
+
14
+ - Final pointer release: this package is consolidated into `domain-suite` (import roots unchanged there). This distribution remains installable but receives no further releases.
15
+
10
16
  ## [0.2.0] - 2026-07-06
11
17
 
12
18
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: domain-errors
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Typed domain error hierarchy with wrapping and chaining for Python services
5
5
  Project-URL: Homepage, https://pypi.org/project/domain-errors/
6
6
  Project-URL: Repository, https://github.com/jekhator/domain-errors
@@ -20,6 +20,8 @@ Classifier: Typing :: Typed
20
20
  Requires-Python: >=3.11
21
21
  Description-Content-Type: text/markdown
22
22
 
23
+ > **This package is consolidated into [domain-suite](https://github.com/jekhator/domain-suite) (PyPI: `domain-suite`).** Import roots are unchanged there; this repository is frozen for new features and receives pointer releases only.
24
+
23
25
  # domain-errors
24
26
 
25
27
  [![PyPI](https://img.shields.io/pypi/v/domain-errors)](https://pypi.org/project/domain-errors/)
@@ -1,3 +1,5 @@
1
+ > **This package is consolidated into [domain-suite](https://github.com/jekhator/domain-suite) (PyPI: `domain-suite`).** Import roots are unchanged there; this repository is frozen for new features and receives pointer releases only.
2
+
1
3
  # domain-errors
2
4
 
3
5
  [![PyPI](https://img.shields.io/pypi/v/domain-errors)](https://pypi.org/project/domain-errors/)
@@ -1,3 +1,3 @@
1
1
  """Single-source package version."""
2
2
 
3
- __version__ = "0.2.0"
3
+ __version__ = "0.2.1"
@@ -39,13 +39,7 @@ class WrapErrorsClient:
39
39
  return cls(as_=as_, catch=catch, message=message, capture=capture)
40
40
 
41
41
  def __call__(self, target: Any) -> Any:
42
- """Wrap target (callable or class) so caught errors become a DomainError.
43
-
44
- On a callable: applies the decorator directly (sync + async support).
45
- On a class: fans out over public callables, preserving sync/async dispatch.
46
- DomainError instances pass through unchanged.
47
- Raises TypeError if target is neither class nor callable.
48
- """
42
+ """Wrap target (callable or class) into DomainError, fanning out over public methods on classes."""
49
43
  if inspect.isclass(target):
50
44
  return self._decorate_class(target)
51
45
  if callable(target):
@@ -88,15 +82,7 @@ class WrapErrorsClient:
88
82
  return wrapper
89
83
 
90
84
  def _decorate_class(self, cls: type[Any]) -> type[Any]:
91
- """Fan out @wrap_errors over all public callables in the class.
92
-
93
- Rules:
94
- - Only callables in cls.__dict__ (not inherited)
95
- - Skip: _-prefixed, dunders, properties, nested classes
96
- - Preserve: classmethod/staticmethod via unwrap/rewrap
97
- - Override: methods already marked with WRAP_ERRORS_MARKER are left untouched
98
- - Config: catch, as_, message, capture applied uniformly to each method
99
- """
85
+ """Fan out @wrap_errors over all public callables, skipping private/dunder/property/nested."""
100
86
  for name, method in list(cls.__dict__.items()):
101
87
  if name.startswith("_"):
102
88
  continue
File without changes
File without changes
File without changes
File without changes