exonware-xwsystem 0.0.1.407__py3-none-any.whl → 0.0.1.409__py3-none-any.whl

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 (244) hide show
  1. exonware/__init__.py +21 -12
  2. exonware/conf.py +89 -149
  3. exonware/xwsystem/__init__.py +18 -159
  4. exonware/xwsystem/caching/__init__.py +1 -1
  5. exonware/xwsystem/caching/base.py +1 -1
  6. exonware/xwsystem/caching/bloom_cache.py +1 -1
  7. exonware/xwsystem/caching/cache_manager.py +1 -1
  8. exonware/xwsystem/caching/conditional.py +1 -1
  9. exonware/xwsystem/caching/contracts.py +1 -1
  10. exonware/xwsystem/caching/decorators.py +1 -1
  11. exonware/xwsystem/caching/defs.py +1 -1
  12. exonware/xwsystem/caching/disk_cache.py +1 -1
  13. exonware/xwsystem/caching/distributed.py +1 -1
  14. exonware/xwsystem/caching/errors.py +1 -1
  15. exonware/xwsystem/caching/events.py +1 -1
  16. exonware/xwsystem/caching/eviction_strategies.py +1 -1
  17. exonware/xwsystem/caching/fluent.py +1 -1
  18. exonware/xwsystem/caching/integrity.py +1 -1
  19. exonware/xwsystem/caching/lfu_cache.py +1 -1
  20. exonware/xwsystem/caching/lfu_optimized.py +1 -1
  21. exonware/xwsystem/caching/lru_cache.py +1 -1
  22. exonware/xwsystem/caching/memory_bounded.py +1 -1
  23. exonware/xwsystem/caching/metrics_exporter.py +1 -1
  24. exonware/xwsystem/caching/observable_cache.py +1 -1
  25. exonware/xwsystem/caching/pluggable_cache.py +1 -1
  26. exonware/xwsystem/caching/rate_limiter.py +1 -1
  27. exonware/xwsystem/caching/read_through.py +1 -1
  28. exonware/xwsystem/caching/secure_cache.py +1 -1
  29. exonware/xwsystem/caching/serializable.py +1 -1
  30. exonware/xwsystem/caching/stats.py +1 -1
  31. exonware/xwsystem/caching/tagging.py +1 -1
  32. exonware/xwsystem/caching/ttl_cache.py +1 -1
  33. exonware/xwsystem/caching/two_tier_cache.py +1 -1
  34. exonware/xwsystem/caching/utils.py +1 -1
  35. exonware/xwsystem/caching/validation.py +1 -1
  36. exonware/xwsystem/caching/warming.py +1 -1
  37. exonware/xwsystem/caching/write_behind.py +1 -1
  38. exonware/xwsystem/cli/__init__.py +1 -1
  39. exonware/xwsystem/cli/args.py +1 -1
  40. exonware/xwsystem/cli/base.py +1 -1
  41. exonware/xwsystem/cli/colors.py +1 -1
  42. exonware/xwsystem/cli/console.py +1 -1
  43. exonware/xwsystem/cli/contracts.py +1 -1
  44. exonware/xwsystem/cli/defs.py +1 -1
  45. exonware/xwsystem/cli/errors.py +1 -1
  46. exonware/xwsystem/cli/progress.py +1 -1
  47. exonware/xwsystem/cli/prompts.py +1 -1
  48. exonware/xwsystem/cli/tables.py +1 -1
  49. exonware/xwsystem/conf.py +1 -21
  50. exonware/xwsystem/config/__init__.py +1 -1
  51. exonware/xwsystem/config/base.py +1 -1
  52. exonware/xwsystem/config/contracts.py +1 -1
  53. exonware/xwsystem/config/defaults.py +1 -1
  54. exonware/xwsystem/config/defs.py +1 -1
  55. exonware/xwsystem/config/errors.py +1 -1
  56. exonware/xwsystem/config/logging.py +1 -1
  57. exonware/xwsystem/config/logging_setup.py +1 -1
  58. exonware/xwsystem/config/performance.py +1 -1
  59. exonware/xwsystem/http/__init__.py +1 -1
  60. exonware/xwsystem/http/advanced_client.py +5 -1
  61. exonware/xwsystem/http/base.py +1 -1
  62. exonware/xwsystem/http/client.py +5 -1
  63. exonware/xwsystem/http/contracts.py +1 -1
  64. exonware/xwsystem/http/defs.py +1 -1
  65. exonware/xwsystem/http/errors.py +1 -1
  66. exonware/xwsystem/io/__init__.py +1 -1
  67. exonware/xwsystem/io/archive/__init__.py +1 -1
  68. exonware/xwsystem/io/archive/archive.py +1 -1
  69. exonware/xwsystem/io/archive/archive_files.py +1 -1
  70. exonware/xwsystem/io/archive/archivers.py +1 -1
  71. exonware/xwsystem/io/archive/base.py +1 -1
  72. exonware/xwsystem/io/archive/codec_integration.py +1 -1
  73. exonware/xwsystem/io/archive/compression.py +1 -1
  74. exonware/xwsystem/io/archive/formats/__init__.py +1 -1
  75. exonware/xwsystem/io/archive/formats/brotli_format.py +1 -1
  76. exonware/xwsystem/io/archive/formats/lz4_format.py +1 -1
  77. exonware/xwsystem/io/archive/formats/rar.py +1 -1
  78. exonware/xwsystem/io/archive/formats/sevenzip.py +1 -1
  79. exonware/xwsystem/io/archive/formats/squashfs_format.py +1 -1
  80. exonware/xwsystem/io/archive/formats/tar.py +1 -1
  81. exonware/xwsystem/io/archive/formats/wim_format.py +1 -1
  82. exonware/xwsystem/io/archive/formats/zip.py +1 -1
  83. exonware/xwsystem/io/archive/formats/zpaq_format.py +1 -1
  84. exonware/xwsystem/io/archive/formats/zstandard.py +1 -1
  85. exonware/xwsystem/io/base.py +1 -1
  86. exonware/xwsystem/io/codec/__init__.py +1 -1
  87. exonware/xwsystem/io/codec/base.py +1 -1
  88. exonware/xwsystem/io/codec/contracts.py +1 -1
  89. exonware/xwsystem/io/codec/registry.py +1 -1
  90. exonware/xwsystem/io/common/__init__.py +1 -1
  91. exonware/xwsystem/io/common/base.py +1 -1
  92. exonware/xwsystem/io/common/lock.py +1 -1
  93. exonware/xwsystem/io/common/watcher.py +1 -1
  94. exonware/xwsystem/io/contracts.py +1 -1
  95. exonware/xwsystem/io/defs.py +1 -1
  96. exonware/xwsystem/io/errors.py +1 -1
  97. exonware/xwsystem/io/facade.py +1 -1
  98. exonware/xwsystem/io/file/__init__.py +1 -1
  99. exonware/xwsystem/io/file/base.py +1 -1
  100. exonware/xwsystem/io/file/conversion.py +1 -1
  101. exonware/xwsystem/io/file/file.py +1 -1
  102. exonware/xwsystem/io/file/paged_source.py +1 -1
  103. exonware/xwsystem/io/file/paging/__init__.py +1 -1
  104. exonware/xwsystem/io/file/paging/byte_paging.py +1 -1
  105. exonware/xwsystem/io/file/paging/line_paging.py +1 -1
  106. exonware/xwsystem/io/file/paging/record_paging.py +1 -1
  107. exonware/xwsystem/io/file/paging/registry.py +1 -1
  108. exonware/xwsystem/io/file/source.py +1 -1
  109. exonware/xwsystem/io/filesystem/__init__.py +1 -1
  110. exonware/xwsystem/io/filesystem/base.py +1 -1
  111. exonware/xwsystem/io/filesystem/local.py +1 -1
  112. exonware/xwsystem/io/folder/__init__.py +1 -1
  113. exonware/xwsystem/io/folder/base.py +1 -1
  114. exonware/xwsystem/io/folder/folder.py +1 -1
  115. exonware/xwsystem/io/serialization/__init__.py +1 -1
  116. exonware/xwsystem/io/serialization/auto_serializer.py +1 -1
  117. exonware/xwsystem/io/serialization/base.py +2 -2
  118. exonware/xwsystem/io/serialization/contracts.py +1 -1
  119. exonware/xwsystem/io/serialization/defs.py +1 -1
  120. exonware/xwsystem/io/serialization/errors.py +1 -1
  121. exonware/xwsystem/io/serialization/flyweight.py +1 -1
  122. exonware/xwsystem/io/serialization/format_detector.py +1 -1
  123. exonware/xwsystem/io/serialization/formats/__init__.py +1 -1
  124. exonware/xwsystem/io/serialization/formats/binary/bson.py +1 -1
  125. exonware/xwsystem/io/serialization/formats/binary/cbor.py +1 -1
  126. exonware/xwsystem/io/serialization/formats/binary/marshal.py +1 -1
  127. exonware/xwsystem/io/serialization/formats/binary/msgpack.py +1 -1
  128. exonware/xwsystem/io/serialization/formats/binary/pickle.py +1 -1
  129. exonware/xwsystem/io/serialization/formats/binary/plistlib.py +1 -1
  130. exonware/xwsystem/io/serialization/formats/database/dbm.py +1 -1
  131. exonware/xwsystem/io/serialization/formats/database/shelve.py +1 -1
  132. exonware/xwsystem/io/serialization/formats/database/sqlite3.py +1 -1
  133. exonware/xwsystem/io/serialization/formats/text/configparser.py +1 -1
  134. exonware/xwsystem/io/serialization/formats/text/csv.py +1 -1
  135. exonware/xwsystem/io/serialization/formats/text/formdata.py +1 -1
  136. exonware/xwsystem/io/serialization/formats/text/json.py +1 -1
  137. exonware/xwsystem/io/serialization/formats/text/json5.py +1 -1
  138. exonware/xwsystem/io/serialization/formats/text/jsonlines.py +1 -1
  139. exonware/xwsystem/io/serialization/formats/text/multipart.py +1 -1
  140. exonware/xwsystem/io/serialization/formats/text/toml.py +1 -1
  141. exonware/xwsystem/io/serialization/formats/text/xml.py +1 -1
  142. exonware/xwsystem/io/serialization/formats/text/yaml.py +1 -1
  143. exonware/xwsystem/io/serialization/registry.py +1 -1
  144. exonware/xwsystem/io/serialization/serializer.py +1 -1
  145. exonware/xwsystem/io/serialization/utils/__init__.py +1 -1
  146. exonware/xwsystem/io/serialization/utils/path_ops.py +1 -1
  147. exonware/xwsystem/io/stream/__init__.py +1 -1
  148. exonware/xwsystem/io/stream/async_operations.py +1 -1
  149. exonware/xwsystem/io/stream/base.py +1 -1
  150. exonware/xwsystem/io/stream/codec_io.py +1 -1
  151. exonware/xwsystem/ipc/async_fabric.py +1 -1
  152. exonware/xwsystem/ipc/base.py +1 -1
  153. exonware/xwsystem/ipc/contracts.py +1 -1
  154. exonware/xwsystem/ipc/defs.py +1 -1
  155. exonware/xwsystem/ipc/errors.py +1 -1
  156. exonware/xwsystem/lazy_bootstrap.py +79 -0
  157. exonware/xwsystem/monitoring/base.py +1 -1
  158. exonware/xwsystem/monitoring/contracts.py +1 -1
  159. exonware/xwsystem/monitoring/defs.py +1 -1
  160. exonware/xwsystem/monitoring/errors.py +1 -1
  161. exonware/xwsystem/monitoring/performance_manager_generic.py +1 -1
  162. exonware/xwsystem/monitoring/system_monitor.py +1 -1
  163. exonware/xwsystem/monitoring/tracing.py +17 -15
  164. exonware/xwsystem/monitoring/tracker.py +1 -1
  165. exonware/xwsystem/operations/__init__.py +1 -1
  166. exonware/xwsystem/operations/base.py +1 -1
  167. exonware/xwsystem/operations/defs.py +1 -1
  168. exonware/xwsystem/operations/diff.py +1 -1
  169. exonware/xwsystem/operations/merge.py +1 -1
  170. exonware/xwsystem/operations/patch.py +1 -1
  171. exonware/xwsystem/patterns/base.py +1 -1
  172. exonware/xwsystem/patterns/contracts.py +1 -1
  173. exonware/xwsystem/patterns/defs.py +1 -1
  174. exonware/xwsystem/patterns/errors.py +1 -1
  175. exonware/xwsystem/patterns/registry.py +1 -1
  176. exonware/xwsystem/plugins/__init__.py +1 -1
  177. exonware/xwsystem/plugins/base.py +1 -1
  178. exonware/xwsystem/plugins/contracts.py +1 -1
  179. exonware/xwsystem/plugins/defs.py +1 -1
  180. exonware/xwsystem/plugins/errors.py +1 -1
  181. exonware/xwsystem/runtime/__init__.py +1 -1
  182. exonware/xwsystem/runtime/base.py +1 -1
  183. exonware/xwsystem/runtime/contracts.py +1 -1
  184. exonware/xwsystem/runtime/defs.py +1 -1
  185. exonware/xwsystem/runtime/env.py +1 -1
  186. exonware/xwsystem/runtime/errors.py +1 -1
  187. exonware/xwsystem/runtime/reflection.py +1 -1
  188. exonware/xwsystem/security/auth.py +1 -1
  189. exonware/xwsystem/security/base.py +1 -1
  190. exonware/xwsystem/security/contracts.py +1 -1
  191. exonware/xwsystem/security/crypto.py +1 -1
  192. exonware/xwsystem/security/defs.py +1 -1
  193. exonware/xwsystem/security/errors.py +1 -1
  194. exonware/xwsystem/security/hazmat.py +1 -1
  195. exonware/xwsystem/shared/__init__.py +1 -1
  196. exonware/xwsystem/shared/base.py +1 -1
  197. exonware/xwsystem/shared/contracts.py +1 -1
  198. exonware/xwsystem/shared/defs.py +1 -1
  199. exonware/xwsystem/shared/errors.py +1 -1
  200. exonware/xwsystem/structures/base.py +1 -1
  201. exonware/xwsystem/structures/contracts.py +1 -1
  202. exonware/xwsystem/structures/defs.py +1 -1
  203. exonware/xwsystem/structures/errors.py +1 -1
  204. exonware/xwsystem/threading/async_primitives.py +1 -1
  205. exonware/xwsystem/threading/base.py +1 -1
  206. exonware/xwsystem/threading/contracts.py +1 -1
  207. exonware/xwsystem/threading/defs.py +1 -1
  208. exonware/xwsystem/threading/errors.py +1 -1
  209. exonware/xwsystem/utils/base.py +1 -1
  210. exonware/xwsystem/utils/contracts.py +1 -1
  211. exonware/xwsystem/utils/dt/__init__.py +1 -1
  212. exonware/xwsystem/utils/dt/base.py +1 -1
  213. exonware/xwsystem/utils/dt/contracts.py +1 -1
  214. exonware/xwsystem/utils/dt/defs.py +1 -1
  215. exonware/xwsystem/utils/dt/errors.py +1 -1
  216. exonware/xwsystem/utils/dt/formatting.py +1 -1
  217. exonware/xwsystem/utils/dt/humanize.py +1 -1
  218. exonware/xwsystem/utils/dt/parsing.py +1 -1
  219. exonware/xwsystem/utils/dt/timezone_utils.py +1 -1
  220. exonware/xwsystem/utils/errors.py +1 -1
  221. exonware/xwsystem/utils/test_runner.py +1 -1
  222. exonware/xwsystem/utils/utils_contracts.py +1 -1
  223. exonware/xwsystem/validation/__init__.py +1 -1
  224. exonware/xwsystem/validation/base.py +1 -1
  225. exonware/xwsystem/validation/contracts.py +1 -1
  226. exonware/xwsystem/validation/declarative.py +1 -1
  227. exonware/xwsystem/validation/defs.py +1 -1
  228. exonware/xwsystem/validation/errors.py +1 -1
  229. exonware/xwsystem/validation/fluent_validator.py +1 -1
  230. exonware/xwsystem/version.py +2 -2
  231. {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/METADATA +3 -3
  232. exonware_xwsystem-0.0.1.409.dist-info/RECORD +274 -0
  233. exonware/xwsystem/_lazy_bootstrap.py +0 -77
  234. exonware/xwsystem/utils/lazy_package/ARCHITECTURE.md +0 -820
  235. exonware/xwsystem/utils/lazy_package/__init__.py +0 -268
  236. exonware/xwsystem/utils/lazy_package/config.py +0 -163
  237. exonware/xwsystem/utils/lazy_package/lazy_base.py +0 -465
  238. exonware/xwsystem/utils/lazy_package/lazy_contracts.py +0 -290
  239. exonware/xwsystem/utils/lazy_package/lazy_core.py +0 -2248
  240. exonware/xwsystem/utils/lazy_package/lazy_errors.py +0 -253
  241. exonware/xwsystem/utils/lazy_package/lazy_state.py +0 -86
  242. exonware_xwsystem-0.0.1.407.dist-info/RECORD +0 -282
  243. {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/WHEEL +0 -0
  244. {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.409.dist-info}/licenses/LICENSE +0 -0
@@ -1,253 +0,0 @@
1
- """
2
- #exonware/xwsystem/src/exonware/xwsystem/utils/lazy_package/lazy_errors.py
3
-
4
- Company: eXonware.com
5
- Author: Eng. Muhammad AlShehri
6
- Email: connect@exonware.com
7
- Version: 0.0.1.407
8
- Generation Date: 10-Oct-2025
9
-
10
- Errors for Lazy Loading System
11
-
12
- This module defines all exception classes for the lazy loading system
13
- following DEV_GUIDELINES.md structure.
14
- """
15
-
16
- from typing import Optional
17
-
18
-
19
- # =============================================================================
20
- # BASE EXCEPTION
21
- # =============================================================================
22
-
23
- class LazySystemError(Exception):
24
- """
25
- Base exception for all lazy system errors.
26
-
27
- All lazy system exceptions inherit from this for easy error handling.
28
- """
29
-
30
- def __init__(self, message: str, package_name: Optional[str] = None):
31
- """
32
- Initialize lazy system error.
33
-
34
- Args:
35
- message: Error message
36
- package_name: Optional package name for scoped errors
37
- """
38
- self.package_name = package_name
39
- if package_name:
40
- message = f"[{package_name}] {message}"
41
- super().__init__(message)
42
-
43
-
44
- # =============================================================================
45
- # SPECIFIC EXCEPTIONS
46
- # =============================================================================
47
-
48
- class LazyInstallError(LazySystemError):
49
- """
50
- Raised when package installation fails.
51
-
52
- Examples:
53
- - pip install command fails
54
- - Package not found in PyPI
55
- - Network error during installation
56
- """
57
- pass
58
-
59
-
60
- class LazyDiscoveryError(LazySystemError):
61
- """
62
- Raised when dependency discovery fails.
63
-
64
- Examples:
65
- - Cannot read pyproject.toml
66
- - Invalid TOML syntax
67
- - Missing dependency configuration
68
- """
69
- pass
70
-
71
-
72
- class LazyHookError(LazySystemError):
73
- """
74
- Raised when import hook operation fails.
75
-
76
- Examples:
77
- - Cannot install hook in sys.meta_path
78
- - Hook is already installed
79
- - Hook interception fails
80
- """
81
- pass
82
-
83
-
84
- class LazySecurityError(LazySystemError):
85
- """
86
- Raised when security policy is violated.
87
-
88
- Examples:
89
- - Package not in allow list
90
- - Package in deny list
91
- - Untrusted package source
92
- """
93
- pass
94
-
95
-
96
- class ExternallyManagedError(LazyInstallError):
97
- """
98
- Raised when environment is externally managed (PEP 668).
99
-
100
- This happens when the Python environment has an EXTERNALLY-MANAGED
101
- marker file, preventing pip installations. Common in system Python
102
- installations on Linux distributions.
103
-
104
- Solutions:
105
- 1. Use a virtual environment
106
- 2. Use pipx for isolated installations
107
- 3. Override with --break-system-packages (not recommended)
108
- """
109
-
110
- def __init__(self, package_name: str):
111
- """
112
- Initialize externally managed error.
113
-
114
- Args:
115
- package_name: Package that cannot be installed
116
- """
117
- message = (
118
- f"Cannot install '{package_name}': Environment is externally managed (PEP 668). "
119
- f"Please use a virtual environment or pipx."
120
- )
121
- super().__init__(message, package_name=None)
122
-
123
-
124
- class DeferredImportError(Exception):
125
- """
126
- Placeholder for a failed import that will be retried when accessed.
127
-
128
- This enables two-stage lazy loading:
129
- - Stage 1: Import fails → Return DeferredImportError placeholder
130
- - Stage 2: On first use → Install missing package and replace with real module
131
-
132
- Performance optimized:
133
- - Zero overhead until user actually accesses the deferred import
134
- - Only installs dependencies when truly needed
135
- - Caches successful imports to avoid repeated installs
136
-
137
- Note: This is both an error class and a proxy object. It stays in
138
- lazy_errors.py because it represents an error state, but acts as
139
- a proxy until resolved.
140
- """
141
-
142
- __slots__ = ('_import_name', '_original_error', '_installer_package', '_retry_attempted', '_real_module')
143
-
144
- def __init__(self, import_name: str, original_error: Exception, installer_package: str):
145
- """
146
- Initialize deferred import placeholder.
147
-
148
- Args:
149
- import_name: Name of the module that failed to import (e.g., 'fastavro')
150
- original_error: The original ImportError that was caught
151
- installer_package: Package name to use for lazy installation (e.g., 'xwsystem')
152
- """
153
- self._import_name = import_name
154
- self._original_error = original_error
155
- self._installer_package = installer_package
156
- self._retry_attempted = False
157
- self._real_module = None
158
- super().__init__(f"Deferred import: {import_name}")
159
-
160
- def _try_install_and_import(self):
161
- """
162
- Attempt to install missing package and import it.
163
-
164
- Returns:
165
- The real module if installation succeeds
166
-
167
- Raises:
168
- Original ImportError if installation fails or is disabled
169
- """
170
- # Import here to avoid circular imports
171
- from ..lazy_package.lazy_core import lazy_import_with_install, is_lazy_install_enabled
172
- from ...config.logging_setup import get_logger
173
-
174
- logger = get_logger("xwsystem.utils.lazy_package")
175
- logger.info(f"[STAGE 2] _try_install_and_import called for '{self._import_name}'")
176
-
177
- # Return cached module if already installed
178
- if self._real_module is not None:
179
- logger.info(f"[STAGE 2] Using cached module for '{self._import_name}'")
180
- return self._real_module
181
-
182
- # Only try once to avoid repeated failures
183
- if self._retry_attempted:
184
- logger.warning(f"[STAGE 2] Already attempted installation for '{self._import_name}', raising original error")
185
- raise self._original_error
186
-
187
- self._retry_attempted = True
188
-
189
- if not is_lazy_install_enabled(self._installer_package):
190
- logger.warning(f"[STAGE 2] Lazy install disabled for {self._installer_package}, cannot load {self._import_name}")
191
- raise self._original_error
192
-
193
- logger.info(f"⏳ [STAGE 2] Installing '{self._import_name}' on first use...")
194
-
195
- # Try to install and import
196
- module, success = lazy_import_with_install(
197
- self._import_name,
198
- installer_package=self._installer_package
199
- )
200
-
201
- if success and module:
202
- self._real_module = module
203
- logger.info(f"✅ [STAGE 2] Successfully installed and loaded '{self._import_name}'")
204
- return module
205
- else:
206
- logger.error(f"❌ [STAGE 2] Failed to install '{self._import_name}'")
207
- raise self._original_error
208
-
209
- def __call__(self, *args, **kwargs):
210
- """
211
- When user tries to instantiate, install dependency first.
212
-
213
- This enables: serializer = AvroSerializer() → installs fastavro → creates instance
214
- """
215
- module = self._try_install_and_import()
216
- # If module is callable (a class), instantiate it
217
- if callable(module):
218
- return module(*args, **kwargs)
219
- return module
220
-
221
- def __getattr__(self, name):
222
- """
223
- When user accesses attributes, install dependency first.
224
-
225
- This enables: from fastavro import reader → installs fastavro → returns reader
226
- """
227
- module = self._try_install_and_import()
228
- return getattr(module, name)
229
-
230
- def __repr__(self):
231
- """Show helpful message about deferred import."""
232
- if self._real_module is not None:
233
- return f"<DeferredImport: {self._import_name} (loaded)>"
234
- return f"<DeferredImport: {self._import_name} (will install on first use)>"
235
-
236
-
237
- # =============================================================================
238
- # EXPORT ALL
239
- # =============================================================================
240
-
241
- __all__ = [
242
- # Base exception
243
- 'LazySystemError',
244
- # Specific exceptions
245
- 'LazyInstallError',
246
- 'LazyDiscoveryError',
247
- 'LazyHookError',
248
- 'LazySecurityError',
249
- 'ExternallyManagedError',
250
- # Two-stage loading
251
- 'DeferredImportError',
252
- ]
253
-
@@ -1,86 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import json
4
- import os
5
- from pathlib import Path
6
- from typing import Dict, Optional
7
-
8
-
9
- def _get_base_config_dir() -> Path:
10
- """Determine a cross-platform directory for storing lazy configuration."""
11
- if os.name == "nt":
12
- appdata = os.getenv("APPDATA")
13
- if appdata:
14
- return Path(appdata) / "exonware" / "lazy"
15
- return Path.home() / "AppData" / "Roaming" / "exonware" / "lazy"
16
-
17
- # POSIX-style
18
- xdg_config = os.getenv("XDG_CONFIG_HOME")
19
- if xdg_config:
20
- return Path(xdg_config) / "exonware" / "lazy"
21
- return Path.home() / ".config" / "exonware" / "lazy"
22
-
23
-
24
- class LazyStateManager:
25
- """Persist and retrieve lazy installation state."""
26
-
27
- def __init__(self, package_name: str) -> None:
28
- self._package = package_name.lower()
29
- self._state_path = _get_base_config_dir() / "state.json"
30
- self._state: Dict[str, Dict[str, bool]] = self._load_state()
31
-
32
- # --------------------------------------------------------------------- #
33
- # Persistence helpers
34
- # --------------------------------------------------------------------- #
35
- def _load_state(self) -> Dict[str, Dict[str, bool]]:
36
- if not self._state_path.exists():
37
- return {}
38
- try:
39
- with self._state_path.open("r", encoding="utf-8") as fh:
40
- data = json.load(fh)
41
- if isinstance(data, dict):
42
- return data
43
- except Exception:
44
- pass
45
- return {}
46
-
47
- def _save_state(self) -> None:
48
- self._state_path.parent.mkdir(parents=True, exist_ok=True)
49
- with self._state_path.open("w", encoding="utf-8") as fh:
50
- json.dump(self._state, fh, indent=2, sort_keys=True)
51
-
52
- def _ensure_entry(self) -> Dict[str, bool]:
53
- return self._state.setdefault(self._package, {})
54
-
55
- # --------------------------------------------------------------------- #
56
- # Manual state management
57
- # --------------------------------------------------------------------- #
58
- def get_manual_state(self) -> Optional[bool]:
59
- entry = self._state.get(self._package, {})
60
- value = entry.get("manual")
61
- return bool(value) if isinstance(value, bool) else None
62
-
63
- def set_manual_state(self, value: Optional[bool]) -> None:
64
- entry = self._ensure_entry()
65
- if value is None:
66
- entry.pop("manual", None)
67
- else:
68
- entry["manual"] = bool(value)
69
- self._save_state()
70
-
71
- # --------------------------------------------------------------------- #
72
- # Auto detection cache
73
- # --------------------------------------------------------------------- #
74
- def get_cached_auto_state(self) -> Optional[bool]:
75
- entry = self._state.get(self._package, {})
76
- value = entry.get("auto")
77
- return bool(value) if isinstance(value, bool) else None
78
-
79
- def set_auto_state(self, value: Optional[bool]) -> None:
80
- entry = self._ensure_entry()
81
- if value is None:
82
- entry.pop("auto", None)
83
- else:
84
- entry["auto"] = bool(value)
85
- self._save_state()
86
-
@@ -1,282 +0,0 @@
1
- exonware/__init__.py,sha256=jvH1mEL1JWmKL8swSKz95hhs3ymkFERskcgM3vkbXlE,1136
2
- exonware/conf.py,sha256=7Mwy1ALirEFS1oT5qm4F-V9iGEBBSypvAEUq2dCvt3A,7547
3
- exonware/xwsystem/__init__.py,sha256=U1qtmeqcnectsWyNZkDqxUmZ7w3sT1nB8QJFDj0yP3c,31384
4
- exonware/xwsystem/_lazy_bootstrap.py,sha256=FLsxeT4mGlK82nbd6EiyaDjw2Q0P9_R1qs25AVPJxEs,2919
5
- exonware/xwsystem/conf.py,sha256=Eg9Zvx_ECFIW8yIvfpb2G8XTvx164CCyJVuwJSCx_1o,2334
6
- exonware/xwsystem/version.py,sha256=4H5EnwTpjtb00oKEHrIVTjXLS2GLJfaHFA063X3QRkU,2353
7
- exonware/xwsystem/caching/USAGE_GUIDE.md,sha256=DydUTnNxSRSDYokzgipYcvbtYhgbw4Tc_I3DQQhDCSs,16050
8
- exonware/xwsystem/caching/__init__.py,sha256=85kfNNZi17XwaPvBsqBfLqJhrFfnZUh0aSHKVo4C1_w,6714
9
- exonware/xwsystem/caching/base.py,sha256=hnNf4lTEVRk9rgDjGK8E_Mlh2qtE1bLwsd2f3Xz-o_c,7236
10
- exonware/xwsystem/caching/bloom_cache.py,sha256=e4XcWwbSkC740LPH3iFN3ZsNBxpUwL2tH8J4v4EvCN8,6604
11
- exonware/xwsystem/caching/cache_manager.py,sha256=WrhcQf5kzlGcNL0g88-Yf5xES7Fk_QO1TYDgecSjGbI,462
12
- exonware/xwsystem/caching/conditional.py,sha256=7QnK320pAibAOKm5H0DjkMt6Xc7pKhY2ztyF2pAYPMc,4751
13
- exonware/xwsystem/caching/contracts.py,sha256=fJXhzqvCsxxGXYSOQhxDajz5Ge3xJm_gYr61eporkdE,19354
14
- exonware/xwsystem/caching/decorators.py,sha256=g9qDpDy2iaDzqHKValOoSv5koa1Vj0Rw2uJAgLwX1Nk,8185
15
- exonware/xwsystem/caching/defs.py,sha256=RWgEQhn-uCPuVkBonuAKqYo-rtne2njXHSsPnGKh9PY,1337
16
- exonware/xwsystem/caching/disk_cache.py,sha256=MtRznmX67WUAdP5rcWCRxNeuvPfJx7sJYqMeK8U28U8,11364
17
- exonware/xwsystem/caching/distributed.py,sha256=CSvAmjw_5-Inc_wQb8KcAuPEMlIhFJZWuAk21-iyo68,1427
18
- exonware/xwsystem/caching/errors.py,sha256=73Bh5udexsVZGMb26WewgeMMeDZZs-h_Gzz1SrPxSuk,2050
19
- exonware/xwsystem/caching/events.py,sha256=bwqnpPed3RzbE2P4Z-S3zIoysHlwzbVUt5ejJZeGdCM,5984
20
- exonware/xwsystem/caching/eviction_strategies.py,sha256=io158xxeQNRLPMtUBTVUJ0EG9uKkAUSHbIe0HTwTC3I,8297
21
- exonware/xwsystem/caching/fluent.py,sha256=S5lbAjq_nZ-9zhZG8kxlgUJrHnlZrmaiTbsg0TrRpdA,3271
22
- exonware/xwsystem/caching/integrity.py,sha256=uOuYLt7CX04-R5V7YzYLpRRD5vxny5j8jMlcVVHbtl4,3134
23
- exonware/xwsystem/caching/lfu_cache.py,sha256=W5pFdg2d4yWHFXe7h5IDa2bXZiXpJh2csI_peex2Jq4,9080
24
- exonware/xwsystem/caching/lfu_optimized.py,sha256=jYAnPBqE4SjZb-B29iIqEBoXlMCs9WmZ-CD8pwjEVzQ,17975
25
- exonware/xwsystem/caching/lru_cache.py,sha256=MgXjnPMiXsUxDFGNCd0zxtQB9FvLEPI8HVODOQHphl4,19448
26
- exonware/xwsystem/caching/memory_bounded.py,sha256=vXgzltAdl2vZYabcNzfZJxzI3vZP4tIgeCPMCUYWgfY,9835
27
- exonware/xwsystem/caching/metrics_exporter.py,sha256=Ilnf6mxhmiiS9aVROcO7_9QjbzPzBu_RR-XQYfztFf4,6797
28
- exonware/xwsystem/caching/observable_cache.py,sha256=fMUuR6WMIISJouM_oze-8oR4DHKONkAACJGHo_f7AEA,4502
29
- exonware/xwsystem/caching/pluggable_cache.py,sha256=PlNPp9KUGJD7TfILp9aOC6v0P11GDoIASLVAgL9_ZyA,7481
30
- exonware/xwsystem/caching/rate_limiter.py,sha256=zWGTZ2BuB6Mg_9UV4A1T9J_6CYAlLikBcihHlq4QemA,7679
31
- exonware/xwsystem/caching/read_through.py,sha256=0GA2lNx_9PeXtoGojPhTcGyvjqnqEk_I00vjkjbEto0,7303
32
- exonware/xwsystem/caching/secure_cache.py,sha256=aC3ibE7-gMgZ2yM4gY0r7gXu62Mp1DyjGizdHb5z6_I,9542
33
- exonware/xwsystem/caching/serializable.py,sha256=OdzxHu2Q9tbK2UIK7lpVxGMDuN8goSfvVLZz65OQP94,5029
34
- exonware/xwsystem/caching/stats.py,sha256=2Ioop7j0VwAZIxtbM-LDCY8L-nvkYt8jB51S2yojaZo,5804
35
- exonware/xwsystem/caching/tagging.py,sha256=2MirNlvl5zOHxZCQLCPUYi7uq7wHAwYeiORBlnpSxMU,5663
36
- exonware/xwsystem/caching/ttl_cache.py,sha256=hvkqTeyOCWB23RF6kT2yF0VtVrhcbLXm_yX-ve76Ffk,17651
37
- exonware/xwsystem/caching/two_tier_cache.py,sha256=Alzxl0Kq7Tdh9dJxmBEgEgk1ZRJicCptU-L9EVpl66I,8692
38
- exonware/xwsystem/caching/utils.py,sha256=pWbFQ05PSJfhJsi8G-uRLossnYJ7G8MFdaX7fUse0dg,5845
39
- exonware/xwsystem/caching/validation.py,sha256=FUc1h2YMGE0VxUT-NDQLt6guJ-TU2n9B-OHJeW2c3sM,6929
40
- exonware/xwsystem/caching/warming.py,sha256=KS_q0-x9Sgxniy3t9d1VZVbU66dGlEI70GcjhTkpQvc,7063
41
- exonware/xwsystem/caching/write_behind.py,sha256=mrVRbeE2YU_TQwgxAPpWRkXK8fdBg8292rOgqKGK7yg,6581
42
- exonware/xwsystem/cli/__init__.py,sha256=jfPN13Z86_xCJnWy7E4JZEzTGU1ikLvTIDCGZaOeAn4,896
43
- exonware/xwsystem/cli/args.py,sha256=V2wckyVMCtp00-THhNZ1B3JlBUfezQgIqNi2zaIEmh8,12232
44
- exonware/xwsystem/cli/base.py,sha256=kp41Gh2RMnDpH01gN1ymz4P63N4NJAGTvhxvJ9YkPXY,8520
45
- exonware/xwsystem/cli/colors.py,sha256=oX7OZW0ps9phrqHC4kltmtXYfpQn8N4x1yymBQGoNBQ,9520
46
- exonware/xwsystem/cli/console.py,sha256=Guxvz9QAEjZjpYv2l5CcjpE95F-467MjMjZcbmo_VxQ,3623
47
- exonware/xwsystem/cli/contracts.py,sha256=ZBEnfFDcELrQu5yJwVXCDNey78XM9T9dnUbPbsIq42c,4326
48
- exonware/xwsystem/cli/defs.py,sha256=KD2AgVaP4g1MPQo4yQI3aHLA3Xv49mjVBvrV-Qsvlqo,2746
49
- exonware/xwsystem/cli/errors.py,sha256=7liHU4ScPukJpP9ifFdjC1NiSVMHU0i-wg62ruy8pyY,1372
50
- exonware/xwsystem/cli/progress.py,sha256=kKiKMaDMUDQoPDOiaa1ddyDiJdwffINt1Dzv1Iea3Us,14015
51
- exonware/xwsystem/cli/prompts.py,sha256=LAx-lbOMegwBvGujbRwMypeQgZdVN_C18lc5kUSsH9k,2861
52
- exonware/xwsystem/cli/tables.py,sha256=mWPzAFAIAcByuwt9eJkEr_mAvhwzMtG7Q6aChcTRDSo,8343
53
- exonware/xwsystem/config/__init__.py,sha256=OWKgVHbE6oO9MeN0NjSb0rsZoitIoFP1937fHxp6Ch0,2460
54
- exonware/xwsystem/config/base.py,sha256=_Eny0klC-g73-QGy_x7gnWOuM_nAw1DtwcAffktqQQw,7881
55
- exonware/xwsystem/config/contracts.py,sha256=EcLP0nk9I5Bx0mj4uihf6aGcL1kpFAwKLKMgRmXZa-k,20424
56
- exonware/xwsystem/config/defaults.py,sha256=YyB8oMCWwtbRpsLr_0byYSqAJEX283f93NF4ffs-eUU,6026
57
- exonware/xwsystem/config/defs.py,sha256=x6UKguipkSye3q-YvHHwBHB-bYLPGB5wRgdW6sSklYc,2067
58
- exonware/xwsystem/config/errors.py,sha256=Y2XB9z2-97dflBu-4gE1v27pKgtOLGhVV63qpZ65xFc,1738
59
- exonware/xwsystem/config/logging.py,sha256=JFsixEdsXCIiRlSoli2MIv_n7MUX7EpvkSxfiXZXSx0,2511
60
- exonware/xwsystem/config/logging_setup.py,sha256=oE5p2WuCc7JtIPfNwg3cwiKfIP5Mzl8ZPHCvuCcT0P0,3397
61
- exonware/xwsystem/config/performance.py,sha256=XaYmMVpVBc3U8p9Xutxu51VyHJwKx6UlKnQpNXu0bes,15865
62
- exonware/xwsystem/config/performance_modes.py,sha256=GifLINj81MXm58qPjLpJ_4R_GGXHPaXdghPf0UPty7E,39578
63
- exonware/xwsystem/config/version_manager.py,sha256=dpw2fGKQojRxNpDjdpSaG0eGp2EBAcx7A61-kysURr8,5304
64
- exonware/xwsystem/http/__init__.py,sha256=I2_qJQINMmq4Ma6f1GUtX7d2RwlESeIAfECyxbBIb4k,449
65
- exonware/xwsystem/http/advanced_client.py,sha256=NQrDemKL30zJ-JHYBvKxYdEmrUIHAeAw7Gpo6i7IGK8,17433
66
- exonware/xwsystem/http/base.py,sha256=IrTEesEiRMqQs9ttzaqMio5c1HzN6tlvk13OVaYu1wM,7505
67
- exonware/xwsystem/http/client.py,sha256=g13qctv_nLeTS5eICGOs3rMCAfMqX7qFz0zMCUsjuO8,18556
68
- exonware/xwsystem/http/contracts.py,sha256=_5pEouECJw6WGzO5emoE9pupnRA7VHMUU29_MqHGF60,3700
69
- exonware/xwsystem/http/defs.py,sha256=jHd7ftixdYfQRB-TOebUOnBg58EqjG7aEOfw0fYc4CQ,1417
70
- exonware/xwsystem/http/errors.py,sha256=Nkb6P7-qusGO_o8bXGCwX3zLf_JZOR_cAxPdWplLeF0,1932
71
- exonware/xwsystem/io/__init__.py,sha256=99Q1gn6wLWp98fLg7eu4xFU8MOZbzsnwdcrHJLSEK48,10790
72
- exonware/xwsystem/io/base.py,sha256=aN_8z3SrwqIlfvkiTdXguriFmTVSdqDEWsg5LRwBpGY,50326
73
- exonware/xwsystem/io/contracts.py,sha256=TYQQZYYMzg1aM-guu6QlXRcU9oYSJSKDl4UilOEqHVs,49979
74
- exonware/xwsystem/io/defs.py,sha256=tWoZIzgNJeQ0sRE9taodmo0O3NgVcHzYsv-9qm-3JMw,6267
75
- exonware/xwsystem/io/errors.py,sha256=umETYIMj_gkq-CsacHdJFS3Yy11pXfRVNCqBQVu0TwI,7992
76
- exonware/xwsystem/io/facade.py,sha256=YlYqBECvncVaVDLajzLHsZJ3NH8eFstpoW7EddHz-BI,35497
77
- exonware/xwsystem/io/archive/__init__.py,sha256=0ZmFMOVVdNpWBCPyj2phCZ8F6G5rd7qIttFbUrQECIU,2684
78
- exonware/xwsystem/io/archive/archive.py,sha256=57leEm3JOr6y4FRRssL6r_JV-JAX91l1zjry55QcutQ,3529
79
- exonware/xwsystem/io/archive/archive_files.py,sha256=_K36ddIyyj1If040D-9uOVKxJ2dQZwP7crlCkjmLgdA,7253
80
- exonware/xwsystem/io/archive/archivers.py,sha256=KXReEz-LM5bqrTJRnO5YPdXiJq9oaqRjYJMXER-Epe4,9513
81
- exonware/xwsystem/io/archive/base.py,sha256=P9jzKfz_IeLU3O6rFN9Q7l5agDc7ua8m9u449ZrgeZk,12210
82
- exonware/xwsystem/io/archive/codec_integration.py,sha256=Iou7_DjvJQICmDESR5TXbWYaV9DdJYkNrX_95aKg1aM,1735
83
- exonware/xwsystem/io/archive/compression.py,sha256=NXCtNpJP2qnUw9223l6mtaAJ1oBd5WrmgxKTcT2AHzM,5578
84
- exonware/xwsystem/io/archive/formats/__init__.py,sha256=Uj0y5nNrkSOp8UsgJ1K1ebX1fo_TA_b5-tOAJYvjcU4,5073
85
- exonware/xwsystem/io/archive/formats/brotli_format.py,sha256=zUqZQJMkyxWKX0_o0MGidbLdQgZsFrJsUp0TqCuDLDs,5050
86
- exonware/xwsystem/io/archive/formats/lz4_format.py,sha256=iYCOZl7BL4A60DIMx4Qq3Ri-QjxthfcuXSrZMhUimtU,4960
87
- exonware/xwsystem/io/archive/formats/rar.py,sha256=oOoxOJlfvnMyS1Rt_9uROsT4BJEYLIh0TtI_cTRNyZ8,3956
88
- exonware/xwsystem/io/archive/formats/sevenzip.py,sha256=DRJriLaNleUfdEAt6FM4nRfEa_7GSaDcdIJI5M-6GwE,4404
89
- exonware/xwsystem/io/archive/formats/squashfs_format.py,sha256=n1TGUFgQco3xFS2ynop5SzSaOYhbgWnD9Wrb4bF4Bxs,5494
90
- exonware/xwsystem/io/archive/formats/tar.py,sha256=AgfoAdOlh7NQpwfz0xnhDM0j2AQJuD1RVTh98kbonvc,3580
91
- exonware/xwsystem/io/archive/formats/wim_format.py,sha256=tMe_Qa8rSk8CsGs849ypLcGOGynuOQzn0UcBjFvdda4,4171
92
- exonware/xwsystem/io/archive/formats/zip.py,sha256=ekxgCYdFBthW_c3A6x6yeZ8ysnMzvBLVArzvlMyFJy4,3109
93
- exonware/xwsystem/io/archive/formats/zpaq_format.py,sha256=Cssrd48Brog0XbcRt1lBbgNwvv36eP6PUjJtdeHPklk,5210
94
- exonware/xwsystem/io/archive/formats/zstandard.py,sha256=fe9lm_plVBOdQ223a4H8sdk_gJKPYFP17izBWYUAo9g,5083
95
- exonware/xwsystem/io/codec/__init__.py,sha256=f86XrlMCnnpqyyAg2pC2IaKLFoskAqaT2KklodtW9Rs,4917
96
- exonware/xwsystem/io/codec/base.py,sha256=fKICu1PjLJKMl646-1tWY2H5ub8yO80lsBhJ7wEq824,20591
97
- exonware/xwsystem/io/codec/contracts.py,sha256=26FDyVBz7TEPvRTXwkEfJHbAtZdW7WDTl7lMK_Vfryk,6703
98
- exonware/xwsystem/io/codec/registry.py,sha256=G1mIyiiNh1cCLrEdrMOTiLauT_Mg1_AoE0WNK4tptfQ,28651
99
- exonware/xwsystem/io/common/__init__.py,sha256=iUNZX0Qd34ErfwaaL560nYHYbt79k1FlDnlVOrEvyWw,2215
100
- exonware/xwsystem/io/common/atomic.py,sha256=DPcm9zDNOHj_s2f0OEj6GmuEyfjqkNv-sbXnqBza0jg,15153
101
- exonware/xwsystem/io/common/base.py,sha256=J9BDELLzF5liXmzEj-xpEiDNhLri7juCserdXWPho5w,4363
102
- exonware/xwsystem/io/common/lock.py,sha256=tb6MIUyN4VCJviDBy9LJL5xpu1uEBo7hzwLTWVRam-4,3830
103
- exonware/xwsystem/io/common/path_manager.py,sha256=VEB-3VeRYYvE21FTsh8Gp7mABDK9MhJ522nlzPhciUo,11402
104
- exonware/xwsystem/io/common/watcher.py,sha256=ZF1pTP9h3yUlQlh_EJFPPfUjkLSjql4ZpYL6zb0RihE,5177
105
- exonware/xwsystem/io/file/__init__.py,sha256=5rLfQ16afTeeWreR8CryqoJZZXvEHJYEMUsC0biF5Gg,2305
106
- exonware/xwsystem/io/file/base.py,sha256=UlDz352q8GhU3Vu1QAfSp0Bns0vkvseT5_UB46hxbrM,4065
107
- exonware/xwsystem/io/file/conversion.py,sha256=LPyYXOCs-yksN68cSW5UgcmgwatPpAB2S-DPPIwVe-I,8276
108
- exonware/xwsystem/io/file/file.py,sha256=4W9oPNBnS363aROKJSg7cDG7QmjoDPIK07ct-N2pyW0,12362
109
- exonware/xwsystem/io/file/paged_source.py,sha256=r9seZxGNsix0BZS3-nxr6uzXj0EGl0KfjyxF3t0HYtw,5224
110
- exonware/xwsystem/io/file/source.py,sha256=m7NPlZ48YlykQ1Jmf9S6zG-M2-SXOYDud5U2cogNdes,6447
111
- exonware/xwsystem/io/file/paging/__init__.py,sha256=Cnc7p7onkqNChh4Nal0lHCVTWeXKCZSSXO4TlmB8YMc,1186
112
- exonware/xwsystem/io/file/paging/byte_paging.py,sha256=baybk71VwfTDtu1Nm6r93fVeB0WNgSzaIF7p0-Eexdw,1898
113
- exonware/xwsystem/io/file/paging/line_paging.py,sha256=EZJwC3mqBid7g-u4HtLPa41xviV9VDniEJSw5EIaytw,2259
114
- exonware/xwsystem/io/file/paging/record_paging.py,sha256=8corAxWYRLCMteFYv6mEldNWYaO_4Te0VnpaQGx0LBM,2837
115
- exonware/xwsystem/io/file/paging/registry.py,sha256=JzlOnrLobMv7GwowYF3tiLHAXaFpkKjpTVcIveiHx0Q,5377
116
- exonware/xwsystem/io/filesystem/__init__.py,sha256=bQtkBSwr-nHdkFpTUGA-pTDlBHoxY7pY-BFBUKScbXI,957
117
- exonware/xwsystem/io/filesystem/base.py,sha256=nGmfullHxCyqDl3iur9bPde5YWwSoTn-eAm2DsPvFek,562
118
- exonware/xwsystem/io/filesystem/local.py,sha256=WFXTeB8K-iToiPek_OaE-oNxzPhFfbJGhlOnI2B0US8,4874
119
- exonware/xwsystem/io/folder/__init__.py,sha256=bIHrIUF9M7xzh92JGxPi6lVq4Oy6JKO-4ZXRdQlEGWA,563
120
- exonware/xwsystem/io/folder/base.py,sha256=IOmh36C3YSK8XXJWOgKaXwweq1y0fz77GQJbNSWvH98,891
121
- exonware/xwsystem/io/folder/folder.py,sha256=hv_QJcEgzecjRpHw3LOVDjXmF_j9zS6bCWFvwv6dA-w,8730
122
- exonware/xwsystem/io/serialization/__init__.py,sha256=c4GVB3QL2Fg_SMT03LXnHZjQJ2StH503KOKIX5D9Knk,4982
123
- exonware/xwsystem/io/serialization/auto_serializer.py,sha256=KuKfJG_Z5NvfOxAFV_UvpDJlvaB02Y8LqyhJ-o0bR4M,14505
124
- exonware/xwsystem/io/serialization/base.py,sha256=eg3YhmgsJOQuNnk5wgkvDV2fuuhOcClHvQ9ZlUh825g,33375
125
- exonware/xwsystem/io/serialization/contracts.py,sha256=NDNVEZWkIph3fwY76cS3CgVKdCVh-9p0yvyBYuLNTJc,13189
126
- exonware/xwsystem/io/serialization/defs.py,sha256=dt3cYtO3McVbGotCvhSf6abzWhJlbZmltfklmgJZm6o,2248
127
- exonware/xwsystem/io/serialization/errors.py,sha256=PHGV-o4dwS-kWggOkSX7ileQc5fyWdf5_YjLrY3O0X0,3568
128
- exonware/xwsystem/io/serialization/flyweight.py,sha256=MYcVht7_OZ7g1RHTQoKbc27XQjzcJTAY0HKl3aReQro,14912
129
- exonware/xwsystem/io/serialization/format_detector.py,sha256=RzzQZKOfhZYmcfqCDbhLISUSWrhzFDh7nAZCBcrWKjY,13895
130
- exonware/xwsystem/io/serialization/registry.py,sha256=Ybmn1RkO38BS_6ZsTrWgIwQfdDNTCnAIuJloo6ruuwA,5503
131
- exonware/xwsystem/io/serialization/serializer.py,sha256=Lugu1JofJwWp4bJWO5U2bLPHjommCIoBOtWdD7svN2o,41609
132
- exonware/xwsystem/io/serialization/formats/__init__.py,sha256=RHI6MlSgXzVW9I67piYRW9usHDUK6SN8u8myAA_eTQs,247
133
- exonware/xwsystem/io/serialization/formats/binary/__init__.py,sha256=CzSOq5IBPBuAGNRcyoWupauDcwDO-bFlRWVYb_Z6sgw,714
134
- exonware/xwsystem/io/serialization/formats/binary/bson.py,sha256=vEI4k20ATFP0SMK4E0zvUQRQl4GwUYcn6naAp4OiRXs,4614
135
- exonware/xwsystem/io/serialization/formats/binary/cbor.py,sha256=lVmyaj7AySJTUd1yzRsxlPyH-yfYYPs1JsehtlUcreA,4635
136
- exonware/xwsystem/io/serialization/formats/binary/marshal.py,sha256=g_HX8AvwstddOJHvvNz3QkfwM53B1VNjozKFAsbOs2c,4464
137
- exonware/xwsystem/io/serialization/formats/binary/msgpack.py,sha256=cYQK2Hz0OcUCYamI_vanb_k_hYOvSBBb2YPeEuqjKvk,5486
138
- exonware/xwsystem/io/serialization/formats/binary/pickle.py,sha256=aOjp3VQR7hZSNeuMKjV01AGLpXvap36nzcQQcE42Q2Q,5096
139
- exonware/xwsystem/io/serialization/formats/binary/plistlib.py,sha256=NEVRl5czoBR91u8lrbd5-G8Shvyz-DLZcprdVUjAQ-E,4890
140
- exonware/xwsystem/io/serialization/formats/database/__init__.py,sha256=hlc8iUbNCWLYuCiZMVnDX6R0r-l_aWjq4FF7XzJCg7I,683
141
- exonware/xwsystem/io/serialization/formats/database/dbm.py,sha256=iPrPLnxHS6IZGh60i3WeTe2jDJE5cVmhqrRH963Dubc,1954
142
- exonware/xwsystem/io/serialization/formats/database/shelve.py,sha256=DoKKiUkzIJlmCWi8c1zqL_3etpKir6LvkeaE6pU_BwQ,2010
143
- exonware/xwsystem/io/serialization/formats/database/sqlite3.py,sha256=y7IncNQyVc46w4sLfRoSzqmlPg0KA2StzlqGBfOM_Eo,2065
144
- exonware/xwsystem/io/serialization/formats/text/__init__.py,sha256=qZ0ELLYiobG9PMHcfoG977xgfeRaZhpZioD4AIO30b0,696
145
- exonware/xwsystem/io/serialization/formats/text/configparser.py,sha256=QxE8GMdegTtMBHmc3kmjzkKbNKnJidvYgeXbyTItQdY,5711
146
- exonware/xwsystem/io/serialization/formats/text/csv.py,sha256=vmSMTLzklxZD3VV0giD53G3FpqGGC5ecXauO7O_WxHU,6435
147
- exonware/xwsystem/io/serialization/formats/text/formdata.py,sha256=6w6qqi_f2-CW0_X1h93K72pkG0ux1gxwXecHbxJM0TI,5226
148
- exonware/xwsystem/io/serialization/formats/text/json.py,sha256=7TEIh8MzJF2C31FQuhF_W1bojNTJzcBEg9h_5EQFdNk,13053
149
- exonware/xwsystem/io/serialization/formats/text/json5.py,sha256=ZsK0E1VeAmSJ3ja6gu3mxl2kX_vrlmYMpLPK3oa6GCI,3106
150
- exonware/xwsystem/io/serialization/formats/text/jsonlines.py,sha256=aTf8Xj_TUhwawojr61ekzbsaWYeGBH-FG91tWwaDRUY,3357
151
- exonware/xwsystem/io/serialization/formats/text/multipart.py,sha256=qAqwUrfWOLUmAJ3kzzD-h6TGwRxSJZx-ocrsh4GZipo,6814
152
- exonware/xwsystem/io/serialization/formats/text/toml.py,sha256=cg8cnbF0G3rF9wpPtzAe-CEsoYiay5tprW1cls4lyNc,5732
153
- exonware/xwsystem/io/serialization/formats/text/xml.py,sha256=lzO-9JJhH4W3qmXFkB534A3qdpIek5l_fs91INad7WU,6528
154
- exonware/xwsystem/io/serialization/formats/text/yaml.py,sha256=SELphxGtBPQGhEt0vDR_mxfSIO_VdUOcUVqWw6p7-is,5365
155
- exonware/xwsystem/io/serialization/utils/__init__.py,sha256=PwYYqe6dsYCaDUkWQDP-MSt8j8_CrGAF7AeanK-mbmI,669
156
- exonware/xwsystem/io/serialization/utils/path_ops.py,sha256=7T0iS4sawVOzJYuYmdSKqHSif5U9_BixpI_Cpf-XUI4,8918
157
- exonware/xwsystem/io/stream/__init__.py,sha256=Kf6TjcTOS-rRAp2IZVMkbmcpQtfj-RfXfyLxxmhDonQ,1285
158
- exonware/xwsystem/io/stream/async_operations.py,sha256=LF2MP_8SJpcb00nRXSivrccQJzPjTpDO7VIuORokjgE,16860
159
- exonware/xwsystem/io/stream/base.py,sha256=snw6-ppYrNHwTt9yR3O03NsS_Q4pilciM7I7wC0NGjY,1018
160
- exonware/xwsystem/io/stream/codec_io.py,sha256=pFHQBBGYi2MUfGPkbWHs8g8D4nQ08_-t3wP3ScY6Zfk,15647
161
- exonware/xwsystem/ipc/__init__.py,sha256=1oew_AhHdGS6lXUfWf84qB5AU9FtzwTd56RcJOsYJOM,977
162
- exonware/xwsystem/ipc/async_fabric.py,sha256=A73P_PKNNBK0DhLLelBXeTbeSGY0DZ9wDmYYIxqqYzI,13507
163
- exonware/xwsystem/ipc/base.py,sha256=yHfFdZ18YTasuOqpoVcEm9c_5Kb-Lt-BgKeNQC9hLGo,9432
164
- exonware/xwsystem/ipc/contracts.py,sha256=xfA6Z-5EeQlTNwynAjfbHE2CyMPUVS1jtSP62GkqjBM,4599
165
- exonware/xwsystem/ipc/defs.py,sha256=3EpxnK_CCx4bBv-SA1ic6aCCmd9P0jwBkn1aCeHy6-I,1415
166
- exonware/xwsystem/ipc/errors.py,sha256=8pDeQ6QlCd5IjKvfHiMJ71ZIxQne1pCGxmFYKQiE_hY,2336
167
- exonware/xwsystem/ipc/message_queue.py,sha256=CMVx1FBxCu9Mxn7yAygNDwxL03QkSf_lj3k6Xh_ZfzA,12577
168
- exonware/xwsystem/ipc/pipes.py,sha256=3dW0BG1uTcm8Dm3idnmhQQcNi1PIX1G7f7FJcl7RHio,17557
169
- exonware/xwsystem/ipc/process_manager.py,sha256=j0oXPIsmQKd-XCdGyw_EChrhY_63ncUiqR5Eev4dKdc,11469
170
- exonware/xwsystem/ipc/process_pool.py,sha256=ADr9Z-hS6HsOh0NWYx7Uxn_4iPz50eG5ovSaA-Y2ifQ,15440
171
- exonware/xwsystem/ipc/shared_memory.py,sha256=fhoadAGukaPQ7Pyk6FVfllkzqpZILjE0v8Y38oBHXNE,13877
172
- exonware/xwsystem/monitoring/__init__.py,sha256=hG0jA9ycvsyN4Onxt-Hc_JkaLkrq3054CjpEk5gwNlM,3799
173
- exonware/xwsystem/monitoring/base.py,sha256=4-D4YUqHBhEOMNQ_LDg7rVzsyOgWvuxbpt3pLAySQYg,9521
174
- exonware/xwsystem/monitoring/contracts.py,sha256=lTBCpfZ5NDmoc0QJgUVqXTM6M0KVnRUNoxEII7pFsBo,19322
175
- exonware/xwsystem/monitoring/defs.py,sha256=xtgx__UvBG9wLup9gX1tohgmC0yJP8iNf6cpf27JKI0,1588
176
- exonware/xwsystem/monitoring/error_recovery.py,sha256=zqU8uvdgYUYZgKE_n38F5zjK0v_TaC1FMxaCWWtj-k4,19955
177
- exonware/xwsystem/monitoring/errors.py,sha256=Mgnbg6XvlFigDcz19A-lg5A-9yN0bC78G44Y8SSjJzs,2684
178
- exonware/xwsystem/monitoring/memory_monitor.py,sha256=IWRy90YNs_wHtIP4swtkmCHx9bJh23vYCIZo755sXIY,14114
179
- exonware/xwsystem/monitoring/metrics.py,sha256=1HOqVHG4l1siC6ocBljHGprHt_qd31wNYE0jzWDrQ6I,12595
180
- exonware/xwsystem/monitoring/performance_manager_generic.py,sha256=7YztrozCk2StWYd6gaM36X7Q3mxKYk2eFjQz9rIwGe0,17753
181
- exonware/xwsystem/monitoring/performance_monitor.py,sha256=cybz3tZMpxp9URjw0Am7RskYE8_xUt75unBz-SBan0Q,12505
182
- exonware/xwsystem/monitoring/performance_validator.py,sha256=8zs5DHXO1XGZAzzdRoapTsqQ2vyEyrFOmRJzTGosVM8,19689
183
- exonware/xwsystem/monitoring/system_monitor.py,sha256=5dZ3xD7fvf8q3H8sBnSJnDT3s-4P9C3c5wDy72QogTE,21863
184
- exonware/xwsystem/monitoring/tracing.py,sha256=O8AZTh43YS9TXXqPLTOn9u2gIvtJla9aHyJ_7aoJ1bM,15075
185
- exonware/xwsystem/monitoring/tracker.py,sha256=vEF0n81jcmBOoFOSIYNaarfsSY38SIyM84nljPaRHHc,9595
186
- exonware/xwsystem/operations/__init__.py,sha256=6lsPgxN-Z8N5ND11Y-4yDHbeHLTv9xKRtBJKHjm9OSI,2423
187
- exonware/xwsystem/operations/base.py,sha256=neyTxZ0elW8nJZSxQynyF6WL6HdEVzS3Jklep7nssho,2002
188
- exonware/xwsystem/operations/contracts.py,sha256=GV3w1rTEZVhZQacNrEVh343R_NV8y1sY8H-x-bA45WY,1277
189
- exonware/xwsystem/operations/defs.py,sha256=ET21Y_GURn8APmJjUk0dY4z9Wm6XE7acU-ryCmncJZM,1583
190
- exonware/xwsystem/operations/diff.py,sha256=6UBv0nF5wmh4McQeMj_HIs4drFyk3nbkv-Fmf6Vb1GA,8721
191
- exonware/xwsystem/operations/errors.py,sha256=Ic0sgadqirwa_VCIitQRhm89djOsLg9EVRj07H0nku8,740
192
- exonware/xwsystem/operations/merge.py,sha256=1eepRd7O_pE1kFXksmLgS2kbE2hQ9BC7UaRut5ZsG0U,5603
193
- exonware/xwsystem/operations/patch.py,sha256=vQNYdxzfqIa98JEI8MCX-K9iWkuuUfm5JDqJvYreWgg,8530
194
- exonware/xwsystem/patterns/__init__.py,sha256=WeMM4i5mi74YmY2-vFD2SeMnHI6BeQpZHPBOqh0qsPw,1027
195
- exonware/xwsystem/patterns/base.py,sha256=z89Z8hhbqt2S24dFRuzFIIW_HDW8BgfS5Mkv6ao-DAA,3549
196
- exonware/xwsystem/patterns/context_manager.py,sha256=-RlcLAI1JgxMx2Y8nESUVN8TSBGiZVSrLqujHJPbZfM,10860
197
- exonware/xwsystem/patterns/contracts.py,sha256=p5gAHThxLelvV2cUQNONxtLMKakm0rYYNDqqhjTba5o,16417
198
- exonware/xwsystem/patterns/defs.py,sha256=mFPdaCy_sUtrryw-bILpjj3RaU86BJUjbkDUnABGA3s,5736
199
- exonware/xwsystem/patterns/dynamic_facade.py,sha256=cS5SENwUb0rd8RpuY3uE-29XK2Yg0p_HMX0y6eUlm6I,5246
200
- exonware/xwsystem/patterns/errors.py,sha256=_IV2uBIy_FqyaMCm9JglztpZJlK9uASxcWIG-mLkyAM,25076
201
- exonware/xwsystem/patterns/handler_factory.py,sha256=FTu8XNF_4DtigZxm7FWNMUvYB8X9gbDTOTgYrWpowCA,11247
202
- exonware/xwsystem/patterns/import_registry.py,sha256=0sw37rTOtgLEORc2jkQr8L6H8EnSd06qpEFT9qciamE,20583
203
- exonware/xwsystem/patterns/object_pool.py,sha256=6Zy5DMPzWBCyUFV9DGNMeiuy1saFmbytq38g-t4TyEU,7851
204
- exonware/xwsystem/patterns/registry.py,sha256=umsHG6tjJjN9qigUmLOAIf2sn3_rpnTdkIOz6exKgBg,14129
205
- exonware/xwsystem/plugins/__init__.py,sha256=_06uK5ZvX0FtoA4Roy8b3xf92fWHzbwY3KQWxKw5djM,636
206
- exonware/xwsystem/plugins/base.py,sha256=5Hn93JGDocwUmtPVaz1NeXUkENayUKnbpyA7eekc0wU,19866
207
- exonware/xwsystem/plugins/contracts.py,sha256=ib_LWUW7mV3pd-AH_qvFhrHQMhn7-SGoxmPT5MYt9Rw,22497
208
- exonware/xwsystem/plugins/defs.py,sha256=bO1PAMM59MNKE2iAtPGanm0jJHy4OwOyutYrxhxVvtU,1537
209
- exonware/xwsystem/plugins/errors.py,sha256=nEcv6pNsb2oYgHRpDNuci9sSYDWCgxTDLFlvGcJKW20,15893
210
- exonware/xwsystem/runtime/__init__.py,sha256=T10WX_fIfmrC7gMkinPDXBpzSlzkEW4OrOupNQhs-PU,2227
211
- exonware/xwsystem/runtime/base.py,sha256=X9ByaW08OQAaXnkHPT87APDYGVo68hpTRM21jafqiTU,13836
212
- exonware/xwsystem/runtime/contracts.py,sha256=pKnBYv8iEaz83YRKF5-ijxTw_9O9IachlPuU98g_Fr0,4371
213
- exonware/xwsystem/runtime/defs.py,sha256=SK__bjS2wGGXMCKFXIZ9uiCZujf-NlhRQog8oQe6Vx0,1145
214
- exonware/xwsystem/runtime/env.py,sha256=YCuoriAIM1ZO33xdfXrBb_ctwXR-ic1NKZkooayoM8w,13060
215
- exonware/xwsystem/runtime/errors.py,sha256=nvPvn0YCaUHogGsV5-K2Mg2GcgQ7uP9Hpe2VXWso-pI,2184
216
- exonware/xwsystem/runtime/reflection.py,sha256=_rUtS2WvpUKa6UmqA2BOb7hkZYPcJPKr4P8CofZmWiQ,13593
217
- exonware/xwsystem/security/__init__.py,sha256=ASG_9Iz6Iw1ptB4OrE1_8R8krW5oPsDEd3Nlypcme3s,1222
218
- exonware/xwsystem/security/auth.py,sha256=jTR5yf7krgvBun_hjiyui85EpisPAbCfm57iPWKwjAw,16734
219
- exonware/xwsystem/security/base.py,sha256=qcQTm1PtohRG4KRHGYbXzTnxLn6yPx6V0XZrlkDbfCc,11559
220
- exonware/xwsystem/security/contracts.py,sha256=EVuqV-JqG97mR1AvgHUU7lMUXrJtqu_i7noGNvjmpv0,21830
221
- exonware/xwsystem/security/crypto.py,sha256=ybOcR7ku-6tezhMNieIOfXKTrqs54v7mI0hKKxG4gds,24159
222
- exonware/xwsystem/security/defs.py,sha256=3zANNFV5NZVV1ne30LYWZBcwEfA22tG_DW6EXV98x80,1985
223
- exonware/xwsystem/security/errors.py,sha256=lIqRRrAmn5HRGQDQy3Uvi13_5qqHIKXBoIZPV9Gir3w,2880
224
- exonware/xwsystem/security/hazmat.py,sha256=JfIITHz4KaBeXF2Q8l1jF3Mf2wCN-CtKUZbeI4_nK6I,23506
225
- exonware/xwsystem/security/path_validator.py,sha256=RmIVDuLMnd5Vf7TCYwjgz2Gu5lzd6ZRvEDzPyLx0aLs,10038
226
- exonware/xwsystem/security/resource_limits.py,sha256=WazQav_y0xGgq55g8G5lojZjcuPZoeVuMziFMxFg8fs,3798
227
- exonware/xwsystem/shared/__init__.py,sha256=yHgJmFnYHO79G_ihXscC4KCmr7LBq7nTF0Eo4pXACys,1974
228
- exonware/xwsystem/shared/base.py,sha256=QTTxJdTMG4yj3nMUlvJP9fMcmaacq5XShUyew2eKFwA,7929
229
- exonware/xwsystem/shared/contracts.py,sha256=8DNZgIbllC0UWAljsbpMFil6w8NvuF7vUPK5xRpXLMc,14634
230
- exonware/xwsystem/shared/defs.py,sha256=LE5pd2Q_Zu7nx80xRZVWTVIfU2fq-XQSLNXlZIrMKIY,3810
231
- exonware/xwsystem/shared/errors.py,sha256=N5QJHWrlcC_3NSUePwpxFZfCmDnkBVa7B8vsx8xcHIE,1304
232
- exonware/xwsystem/structures/__init__.py,sha256=HvulE_xuGDWp_RbRVRmglKmXPgmkbHwiE7Un85t1F-A,533
233
- exonware/xwsystem/structures/base.py,sha256=ZmgrPu6iur0oV-RJbAKxF8iEmClnEyctK3QrV_wCLG8,12871
234
- exonware/xwsystem/structures/circular_detector.py,sha256=9jxqyxuNfenoD8t6lYM7FQNIRLKJ9LZDhlE-gTGF3-E,11738
235
- exonware/xwsystem/structures/contracts.py,sha256=EnuOFlY4Fn6ouafmR5wy9N66sEPXls1QMbXiG6d6EoM,4897
236
- exonware/xwsystem/structures/defs.py,sha256=b6I9ynkm6A0YO7w0g59pO_dBnCeYgGTM6N9tcxGb95c,1531
237
- exonware/xwsystem/structures/errors.py,sha256=RlF-LteDO512ZednNhhKELc-xD_IAR0WitcrILDdieI,2168
238
- exonware/xwsystem/structures/tree_walker.py,sha256=MakthZ1Dri4NmU59cYRfPL196cVvNg3hp0lVUkgBcuU,11459
239
- exonware/xwsystem/threading/__init__.py,sha256=_X1rVLliZk7xrYk50K31jwbnmANvFaaMaVDOPLXxRss,761
240
- exonware/xwsystem/threading/async_primitives.py,sha256=-9QGsoVlF3qVszGKZVctMXyb91pq6VWC57Xu9VTJgz8,18295
241
- exonware/xwsystem/threading/base.py,sha256=7hszCz9XSG6DWQlXBNJyzSdx0B9RjEl2LrfljmuS6Xs,10364
242
- exonware/xwsystem/threading/contracts.py,sha256=GvBCEMW042H09z3GSZkfasdeoG-aGKWD6z_MWP6wMDE,18740
243
- exonware/xwsystem/threading/defs.py,sha256=26Ia0qD7EeVT-hqv3_kZ2sdTlDBlubEoC8HG-U77YuY,1142
244
- exonware/xwsystem/threading/errors.py,sha256=I4r2w5YuZJgAkuVJ4r0Y_m-b_7dJLtzSMHvMUiz83Ag,2060
245
- exonware/xwsystem/threading/locks.py,sha256=IDnp9wCpld-h0D2OM7m4HehPiFOPYSDOxnCZ17pFU8k,4275
246
- exonware/xwsystem/threading/safe_factory.py,sha256=0HykoMNn8NJlUGIC_gAAsc7-X7VdzYIhTrPal9CFlv0,7254
247
- exonware/xwsystem/utils/base.py,sha256=eq3-2Qjir-XyuaU1om31zObHl-PaFqC2aQyHBTZfBYs,12736
248
- exonware/xwsystem/utils/contracts.py,sha256=djOBpzfyPIj3OMo1agoFgKD9sLSGARovs5uNBifoeyU,4545
249
- exonware/xwsystem/utils/errors.py,sha256=JBJ6DCIGAPLKcjlOp66qjIsh7oJzQzr00zIkIQpg5Uc,2673
250
- exonware/xwsystem/utils/paths.py,sha256=1AIX10hvyiLv19dnZsur7HI9EqWFBa9PuR_R0UdRhs0,4283
251
- exonware/xwsystem/utils/test_runner.py,sha256=8zP-4iyv-4YwKNdzU7mvHw7ik1EzDB89UF85_GRd6zE,18357
252
- exonware/xwsystem/utils/utils_contracts.py,sha256=3iEIxjnftp09p2vk6KzXixkCWz3RmJRa_1DE35oCtuE,1407
253
- exonware/xwsystem/utils/dt/__init__.py,sha256=kbGk5GO9kFLHHwb4-YRdYuQXmTaSogciYHdJfzQ_i8s,1411
254
- exonware/xwsystem/utils/dt/base.py,sha256=OwZwkSuPCFyPdWxm9N5dA2D5dWs2eFTutcqzs2DPRPs,7179
255
- exonware/xwsystem/utils/dt/contracts.py,sha256=mqCjOT0zuNIIraI43u_hqdQZfjfkZqWtXJFpQv231zI,2537
256
- exonware/xwsystem/utils/dt/defs.py,sha256=QpDvs8o6pqsJ_Btdo3vvMF4lHcqTvP2OEuwJ3XpP_1o,1350
257
- exonware/xwsystem/utils/dt/errors.py,sha256=unR7mygwwtRyQzlwhvjdLcvfW5ORPctlS7ZjrGGmCZE,1554
258
- exonware/xwsystem/utils/dt/formatting.py,sha256=x5t1w2qu2l0JiwGcyU5gFTfowbVi4sNhDpFbqCyCXAY,4802
259
- exonware/xwsystem/utils/dt/humanize.py,sha256=-AJ0KvEvOGEC3m9h3fdbc0qFQN4R5fpJDsk2S8egNtg,14420
260
- exonware/xwsystem/utils/dt/parsing.py,sha256=bew-qO8YrDji84tUzFvXlr12BvCMOOY22qaAQLp5-xs,6369
261
- exonware/xwsystem/utils/dt/timezone_utils.py,sha256=ccu6U3eyHSCj91KsValIBcnxe7MSXSFSx1wXMl_6A7E,3431
262
- exonware/xwsystem/utils/lazy_package/ARCHITECTURE.md,sha256=_6yXM-Woq9q4-tedtjXfpGG4SGr193M-qgn83-qVmQo,24217
263
- exonware/xwsystem/utils/lazy_package/__init__.py,sha256=WFtpbcQjLFIzHl2FrgjOrc3nQMkHTVZ-F6P-o_Q6OxE,6511
264
- exonware/xwsystem/utils/lazy_package/config.py,sha256=mwan7EWe7iGv8HOCymGx7y4QCUW_L2bZlt9O7-NwzxA,5358
265
- exonware/xwsystem/utils/lazy_package/lazy_base.py,sha256=ybFBLs2KUCRoDy70wHgGUCGjYSpZyODOzunNQV3rRbY,13920
266
- exonware/xwsystem/utils/lazy_package/lazy_contracts.py,sha256=l7HQP_sZR2_cqeKbjsSBCVaXEQWozKnT2TEj8duxwzU,7574
267
- exonware/xwsystem/utils/lazy_package/lazy_core.py,sha256=9RLZWhPNjn2Lep07msFThG-MjVhqgyYCqsQNmVb0wfg,87110
268
- exonware/xwsystem/utils/lazy_package/lazy_errors.py,sha256=ewMOWUH14O3SmUtCqWk8TAyBWT_D5s4_dhdadSuYDHY,8291
269
- exonware/xwsystem/utils/lazy_package/lazy_state.py,sha256=a_pOIDI6apbpu3xWvnofyM3vReV49CXiZmplkpWATmE,3118
270
- exonware/xwsystem/validation/__init__.py,sha256=1b_eNTrRaGvFM5N3UDlf4RIQECXLlS-BMXon6Hr61qQ,463
271
- exonware/xwsystem/validation/base.py,sha256=_h98KUf3OWDn1MHPDMchlioyHsxS9RWm5LiVFm9QRLU,10223
272
- exonware/xwsystem/validation/contracts.py,sha256=1jf_xHekyoNQPuVcw7tmdq7fSOzOzYiu2cBHKhi5Nbc,5901
273
- exonware/xwsystem/validation/data_validator.py,sha256=rt5Ei5TOircR2eNda2IivNOylAthz1T8v1A1cnmgVzs,8710
274
- exonware/xwsystem/validation/declarative.py,sha256=PNK113-ST2yF0sD1k_DeMhgjGHWP7DHRZ76V2H2kff8,25100
275
- exonware/xwsystem/validation/defs.py,sha256=CnfgN_g3IIqbedNxCjVLMrJ7mFs-UtP8upxq6bA5lAo,799
276
- exonware/xwsystem/validation/errors.py,sha256=16tRS3Irtpanag4ynfc7LigxvbhGf3P4Ejw2DaVHBH8,2454
277
- exonware/xwsystem/validation/fluent_validator.py,sha256=ortVsYGU2Cptx7vCsfY5F1BwyzCnzOkUbph8xOpiluQ,12216
278
- exonware/xwsystem/validation/type_safety.py,sha256=2MQTrCDVUO60s5d_T7ZR-AsGhhqqTvpYjOZs_FAN12k,3381
279
- exonware_xwsystem-0.0.1.407.dist-info/METADATA,sha256=1LT7XlFDPePA1-pu3FEXlJka0Hrh0apn8uyBaO9TV8w,35925
280
- exonware_xwsystem-0.0.1.407.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
281
- exonware_xwsystem-0.0.1.407.dist-info/licenses/LICENSE,sha256=w42ohoEUfhyT0NgiivAL4fWg2AMRLGnfXPMAR4EO-MU,1094
282
- exonware_xwsystem-0.0.1.407.dist-info/RECORD,,