exonware-xwsystem 0.0.1.406__py3-none-any.whl → 0.0.1.408__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.
- exonware/__init__.py +21 -12
- exonware/conf.py +89 -149
- exonware/xwsystem/__init__.py +18 -159
- exonware/xwsystem/caching/__init__.py +1 -1
- exonware/xwsystem/caching/base.py +1 -1
- exonware/xwsystem/caching/bloom_cache.py +1 -1
- exonware/xwsystem/caching/cache_manager.py +1 -1
- exonware/xwsystem/caching/conditional.py +1 -1
- exonware/xwsystem/caching/contracts.py +1 -1
- exonware/xwsystem/caching/decorators.py +1 -1
- exonware/xwsystem/caching/defs.py +1 -1
- exonware/xwsystem/caching/disk_cache.py +1 -1
- exonware/xwsystem/caching/distributed.py +1 -1
- exonware/xwsystem/caching/errors.py +1 -1
- exonware/xwsystem/caching/events.py +1 -1
- exonware/xwsystem/caching/eviction_strategies.py +1 -1
- exonware/xwsystem/caching/fluent.py +1 -1
- exonware/xwsystem/caching/integrity.py +1 -1
- exonware/xwsystem/caching/lfu_cache.py +1 -1
- exonware/xwsystem/caching/lfu_optimized.py +1 -1
- exonware/xwsystem/caching/lru_cache.py +1 -1
- exonware/xwsystem/caching/memory_bounded.py +1 -1
- exonware/xwsystem/caching/metrics_exporter.py +1 -1
- exonware/xwsystem/caching/observable_cache.py +1 -1
- exonware/xwsystem/caching/pluggable_cache.py +1 -1
- exonware/xwsystem/caching/rate_limiter.py +1 -1
- exonware/xwsystem/caching/read_through.py +1 -1
- exonware/xwsystem/caching/secure_cache.py +1 -1
- exonware/xwsystem/caching/serializable.py +1 -1
- exonware/xwsystem/caching/stats.py +1 -1
- exonware/xwsystem/caching/tagging.py +1 -1
- exonware/xwsystem/caching/ttl_cache.py +1 -1
- exonware/xwsystem/caching/two_tier_cache.py +1 -1
- exonware/xwsystem/caching/utils.py +1 -1
- exonware/xwsystem/caching/validation.py +1 -1
- exonware/xwsystem/caching/warming.py +1 -1
- exonware/xwsystem/caching/write_behind.py +1 -1
- exonware/xwsystem/cli/__init__.py +1 -1
- exonware/xwsystem/cli/args.py +1 -1
- exonware/xwsystem/cli/base.py +1 -1
- exonware/xwsystem/cli/colors.py +1 -1
- exonware/xwsystem/cli/console.py +1 -1
- exonware/xwsystem/cli/contracts.py +1 -1
- exonware/xwsystem/cli/defs.py +1 -1
- exonware/xwsystem/cli/errors.py +1 -1
- exonware/xwsystem/cli/progress.py +1 -1
- exonware/xwsystem/cli/prompts.py +1 -1
- exonware/xwsystem/cli/tables.py +1 -1
- exonware/xwsystem/conf.py +1 -21
- exonware/xwsystem/config/__init__.py +1 -1
- exonware/xwsystem/config/base.py +1 -1
- exonware/xwsystem/config/contracts.py +1 -1
- exonware/xwsystem/config/defaults.py +1 -1
- exonware/xwsystem/config/defs.py +1 -1
- exonware/xwsystem/config/errors.py +1 -1
- exonware/xwsystem/config/logging.py +1 -1
- exonware/xwsystem/config/logging_setup.py +1 -1
- exonware/xwsystem/config/performance.py +1 -1
- exonware/xwsystem/http/__init__.py +1 -1
- exonware/xwsystem/http/advanced_client.py +5 -1
- exonware/xwsystem/http/base.py +1 -1
- exonware/xwsystem/http/client.py +5 -1
- exonware/xwsystem/http/contracts.py +1 -1
- exonware/xwsystem/http/defs.py +1 -1
- exonware/xwsystem/http/errors.py +1 -1
- exonware/xwsystem/io/__init__.py +1 -1
- exonware/xwsystem/io/archive/__init__.py +1 -1
- exonware/xwsystem/io/archive/archive.py +1 -1
- exonware/xwsystem/io/archive/archive_files.py +1 -1
- exonware/xwsystem/io/archive/archivers.py +1 -1
- exonware/xwsystem/io/archive/base.py +1 -1
- exonware/xwsystem/io/archive/codec_integration.py +1 -1
- exonware/xwsystem/io/archive/compression.py +1 -1
- exonware/xwsystem/io/archive/formats/__init__.py +1 -1
- exonware/xwsystem/io/archive/formats/brotli_format.py +1 -1
- exonware/xwsystem/io/archive/formats/lz4_format.py +1 -1
- exonware/xwsystem/io/archive/formats/rar.py +1 -1
- exonware/xwsystem/io/archive/formats/sevenzip.py +1 -1
- exonware/xwsystem/io/archive/formats/squashfs_format.py +1 -1
- exonware/xwsystem/io/archive/formats/tar.py +1 -1
- exonware/xwsystem/io/archive/formats/wim_format.py +1 -1
- exonware/xwsystem/io/archive/formats/zip.py +1 -1
- exonware/xwsystem/io/archive/formats/zpaq_format.py +1 -1
- exonware/xwsystem/io/archive/formats/zstandard.py +1 -1
- exonware/xwsystem/io/base.py +1 -1
- exonware/xwsystem/io/codec/__init__.py +1 -1
- exonware/xwsystem/io/codec/base.py +1 -1
- exonware/xwsystem/io/codec/contracts.py +1 -1
- exonware/xwsystem/io/codec/registry.py +1 -1
- exonware/xwsystem/io/common/__init__.py +1 -1
- exonware/xwsystem/io/common/base.py +1 -1
- exonware/xwsystem/io/common/lock.py +1 -1
- exonware/xwsystem/io/common/watcher.py +1 -1
- exonware/xwsystem/io/contracts.py +1 -1
- exonware/xwsystem/io/defs.py +1 -1
- exonware/xwsystem/io/errors.py +1 -1
- exonware/xwsystem/io/facade.py +1 -1
- exonware/xwsystem/io/file/__init__.py +1 -1
- exonware/xwsystem/io/file/base.py +1 -1
- exonware/xwsystem/io/file/conversion.py +1 -1
- exonware/xwsystem/io/file/file.py +1 -1
- exonware/xwsystem/io/file/paged_source.py +1 -1
- exonware/xwsystem/io/file/paging/__init__.py +1 -1
- exonware/xwsystem/io/file/paging/byte_paging.py +1 -1
- exonware/xwsystem/io/file/paging/line_paging.py +1 -1
- exonware/xwsystem/io/file/paging/record_paging.py +1 -1
- exonware/xwsystem/io/file/paging/registry.py +1 -1
- exonware/xwsystem/io/file/source.py +1 -1
- exonware/xwsystem/io/filesystem/__init__.py +1 -1
- exonware/xwsystem/io/filesystem/base.py +1 -1
- exonware/xwsystem/io/filesystem/local.py +1 -1
- exonware/xwsystem/io/folder/__init__.py +1 -1
- exonware/xwsystem/io/folder/base.py +1 -1
- exonware/xwsystem/io/folder/folder.py +1 -1
- exonware/xwsystem/io/serialization/__init__.py +1 -1
- exonware/xwsystem/io/serialization/auto_serializer.py +1 -1
- exonware/xwsystem/io/serialization/base.py +2 -2
- exonware/xwsystem/io/serialization/contracts.py +1 -1
- exonware/xwsystem/io/serialization/defs.py +1 -1
- exonware/xwsystem/io/serialization/errors.py +1 -1
- exonware/xwsystem/io/serialization/flyweight.py +1 -1
- exonware/xwsystem/io/serialization/format_detector.py +1 -1
- exonware/xwsystem/io/serialization/formats/__init__.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/bson.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/cbor.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/marshal.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/msgpack.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/pickle.py +1 -1
- exonware/xwsystem/io/serialization/formats/binary/plistlib.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/dbm.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/shelve.py +1 -1
- exonware/xwsystem/io/serialization/formats/database/sqlite3.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/configparser.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/csv.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/formdata.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/json.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/json5.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/jsonlines.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/multipart.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/toml.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/xml.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/yaml.py +1 -1
- exonware/xwsystem/io/serialization/registry.py +1 -1
- exonware/xwsystem/io/serialization/serializer.py +1 -1
- exonware/xwsystem/io/serialization/utils/__init__.py +1 -1
- exonware/xwsystem/io/serialization/utils/path_ops.py +1 -1
- exonware/xwsystem/io/stream/__init__.py +1 -1
- exonware/xwsystem/io/stream/async_operations.py +1 -1
- exonware/xwsystem/io/stream/base.py +1 -1
- exonware/xwsystem/io/stream/codec_io.py +1 -1
- exonware/xwsystem/ipc/async_fabric.py +1 -1
- exonware/xwsystem/ipc/base.py +1 -1
- exonware/xwsystem/ipc/contracts.py +1 -1
- exonware/xwsystem/ipc/defs.py +1 -1
- exonware/xwsystem/ipc/errors.py +1 -1
- exonware/xwsystem/lazy_bootstrap.py +79 -0
- exonware/xwsystem/monitoring/base.py +1 -1
- exonware/xwsystem/monitoring/contracts.py +1 -1
- exonware/xwsystem/monitoring/defs.py +1 -1
- exonware/xwsystem/monitoring/errors.py +1 -1
- exonware/xwsystem/monitoring/performance_manager_generic.py +1 -1
- exonware/xwsystem/monitoring/system_monitor.py +1 -1
- exonware/xwsystem/monitoring/tracing.py +17 -15
- exonware/xwsystem/monitoring/tracker.py +1 -1
- exonware/xwsystem/operations/__init__.py +1 -1
- exonware/xwsystem/operations/base.py +1 -1
- exonware/xwsystem/operations/defs.py +1 -1
- exonware/xwsystem/operations/diff.py +1 -1
- exonware/xwsystem/operations/merge.py +1 -1
- exonware/xwsystem/operations/patch.py +1 -1
- exonware/xwsystem/patterns/base.py +1 -1
- exonware/xwsystem/patterns/contracts.py +1 -1
- exonware/xwsystem/patterns/defs.py +1 -1
- exonware/xwsystem/patterns/errors.py +1 -1
- exonware/xwsystem/patterns/registry.py +1 -1
- exonware/xwsystem/plugins/__init__.py +1 -1
- exonware/xwsystem/plugins/base.py +1 -1
- exonware/xwsystem/plugins/contracts.py +1 -1
- exonware/xwsystem/plugins/defs.py +1 -1
- exonware/xwsystem/plugins/errors.py +1 -1
- exonware/xwsystem/runtime/__init__.py +1 -1
- exonware/xwsystem/runtime/base.py +1 -1
- exonware/xwsystem/runtime/contracts.py +1 -1
- exonware/xwsystem/runtime/defs.py +1 -1
- exonware/xwsystem/runtime/env.py +1 -1
- exonware/xwsystem/runtime/errors.py +1 -1
- exonware/xwsystem/runtime/reflection.py +1 -1
- exonware/xwsystem/security/auth.py +1 -1
- exonware/xwsystem/security/base.py +1 -1
- exonware/xwsystem/security/contracts.py +1 -1
- exonware/xwsystem/security/crypto.py +1 -1
- exonware/xwsystem/security/defs.py +1 -1
- exonware/xwsystem/security/errors.py +1 -1
- exonware/xwsystem/security/hazmat.py +1 -1
- exonware/xwsystem/shared/__init__.py +1 -1
- exonware/xwsystem/shared/base.py +1 -1
- exonware/xwsystem/shared/contracts.py +1 -1
- exonware/xwsystem/shared/defs.py +1 -1
- exonware/xwsystem/shared/errors.py +1 -1
- exonware/xwsystem/structures/base.py +1 -1
- exonware/xwsystem/structures/contracts.py +1 -1
- exonware/xwsystem/structures/defs.py +1 -1
- exonware/xwsystem/structures/errors.py +1 -1
- exonware/xwsystem/threading/async_primitives.py +1 -1
- exonware/xwsystem/threading/base.py +1 -1
- exonware/xwsystem/threading/contracts.py +1 -1
- exonware/xwsystem/threading/defs.py +1 -1
- exonware/xwsystem/threading/errors.py +1 -1
- exonware/xwsystem/utils/base.py +1 -1
- exonware/xwsystem/utils/contracts.py +1 -1
- exonware/xwsystem/utils/dt/__init__.py +1 -1
- exonware/xwsystem/utils/dt/base.py +1 -1
- exonware/xwsystem/utils/dt/contracts.py +1 -1
- exonware/xwsystem/utils/dt/defs.py +1 -1
- exonware/xwsystem/utils/dt/errors.py +1 -1
- exonware/xwsystem/utils/dt/formatting.py +1 -1
- exonware/xwsystem/utils/dt/humanize.py +1 -1
- exonware/xwsystem/utils/dt/parsing.py +1 -1
- exonware/xwsystem/utils/dt/timezone_utils.py +1 -1
- exonware/xwsystem/utils/errors.py +1 -1
- exonware/xwsystem/utils/test_runner.py +1 -1
- exonware/xwsystem/utils/utils_contracts.py +1 -1
- exonware/xwsystem/validation/__init__.py +1 -1
- exonware/xwsystem/validation/base.py +1 -1
- exonware/xwsystem/validation/contracts.py +1 -1
- exonware/xwsystem/validation/declarative.py +1 -1
- exonware/xwsystem/validation/defs.py +1 -1
- exonware/xwsystem/validation/errors.py +1 -1
- exonware/xwsystem/validation/fluent_validator.py +1 -1
- exonware/xwsystem/version.py +2 -2
- {exonware_xwsystem-0.0.1.406.dist-info → exonware_xwsystem-0.0.1.408.dist-info}/METADATA +3 -3
- exonware_xwsystem-0.0.1.408.dist-info/RECORD +274 -0
- exonware/xwsystem/_lazy_bootstrap.py +0 -77
- exonware/xwsystem/utils/lazy_package/ARCHITECTURE.md +0 -820
- exonware/xwsystem/utils/lazy_package/__init__.py +0 -268
- exonware/xwsystem/utils/lazy_package/config.py +0 -163
- exonware/xwsystem/utils/lazy_package/lazy_base.py +0 -465
- exonware/xwsystem/utils/lazy_package/lazy_contracts.py +0 -290
- exonware/xwsystem/utils/lazy_package/lazy_core.py +0 -2248
- exonware/xwsystem/utils/lazy_package/lazy_errors.py +0 -253
- exonware/xwsystem/utils/lazy_package/lazy_state.py +0 -86
- exonware_xwsystem-0.0.1.406.dist-info/RECORD +0 -282
- {exonware_xwsystem-0.0.1.406.dist-info → exonware_xwsystem-0.0.1.408.dist-info}/WHEEL +0 -0
- {exonware_xwsystem-0.0.1.406.dist-info → exonware_xwsystem-0.0.1.408.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.406
|
|
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=KCJaZ_VnoQOerwXWd_gzQbFjRrH1hU9UprJK2G_MR7g,1136
|
|
2
|
-
exonware/conf.py,sha256=pYDW-AmeFw6LIirtuUxqy41WT9pwJJz5kUHI8ed7NJ8,7547
|
|
3
|
-
exonware/xwsystem/__init__.py,sha256=d5VYn58zUt82BynQ0Qstn-KUIIFEvHNKHvTKxtCrsaE,31384
|
|
4
|
-
exonware/xwsystem/_lazy_bootstrap.py,sha256=6JcS79DtwmEZzeDS2X8curqWwYHluO6VBlp32BOMeWk,2919
|
|
5
|
-
exonware/xwsystem/conf.py,sha256=Eg9Zvx_ECFIW8yIvfpb2G8XTvx164CCyJVuwJSCx_1o,2334
|
|
6
|
-
exonware/xwsystem/version.py,sha256=xEuZEuac3kd4Z0P7cQFra_Y9es3320Ne_TxJcbQ9LUA,2353
|
|
7
|
-
exonware/xwsystem/caching/USAGE_GUIDE.md,sha256=DydUTnNxSRSDYokzgipYcvbtYhgbw4Tc_I3DQQhDCSs,16050
|
|
8
|
-
exonware/xwsystem/caching/__init__.py,sha256=cxpRvz3udvzh6WcyV4OqH-JcpUin-HG_U8skZ7gNKmQ,6714
|
|
9
|
-
exonware/xwsystem/caching/base.py,sha256=1KU5NAHyiapnaxq9jNCivgIyQMAjwKRdUNuOv62Lr8c,7236
|
|
10
|
-
exonware/xwsystem/caching/bloom_cache.py,sha256=iigNQ3XJ8MyB8grbCcv9b-aAj_4vcSL8i1uSTSQ1Sw4,6604
|
|
11
|
-
exonware/xwsystem/caching/cache_manager.py,sha256=ZUzshm9ARnFszAEahL0G4SEmZGRJTL1z66GZulfSEUo,462
|
|
12
|
-
exonware/xwsystem/caching/conditional.py,sha256=KOswFtr-tyyn63OWTWK9vztLgQ061mTMgHEXo04KE7Q,4751
|
|
13
|
-
exonware/xwsystem/caching/contracts.py,sha256=BU6d6FmwxdQfF0dHRIVrVRwC010HUvgSUjUFnqkacm0,19354
|
|
14
|
-
exonware/xwsystem/caching/decorators.py,sha256=deQL4rNGeiqjbu1cEZ4lyjYbcwPEQ4HwrjJeSu88lIw,8185
|
|
15
|
-
exonware/xwsystem/caching/defs.py,sha256=edNbp_3lt7Y4wneSqQJZXVoocZl8frLfaTONYTNsp9M,1337
|
|
16
|
-
exonware/xwsystem/caching/disk_cache.py,sha256=djGKoeaJQTB-k9DLbKUGx8Xok2iS8tbBdG2M7IHfWJo,11364
|
|
17
|
-
exonware/xwsystem/caching/distributed.py,sha256=NFnPwDAmu8jpsFkZy_rMD2v7VV0y5B8mKdapoDO6lys,1427
|
|
18
|
-
exonware/xwsystem/caching/errors.py,sha256=KH0pxY0rmhYbPKG8mzHcPBBsN-5UNM6h2kkmqxhihFI,2050
|
|
19
|
-
exonware/xwsystem/caching/events.py,sha256=8KGE0JVIumLgA9tdPHNZIyCBW5SenKfcFK9uT_m4BA8,5984
|
|
20
|
-
exonware/xwsystem/caching/eviction_strategies.py,sha256=DgIdZrgBv8mIWY9izldjNaVz7uYEm6HPjIFYH00eAtM,8297
|
|
21
|
-
exonware/xwsystem/caching/fluent.py,sha256=QIIhQA1dLtELxRIu2NJdFwRe80WzHS1QzKaQ0sKjIqs,3271
|
|
22
|
-
exonware/xwsystem/caching/integrity.py,sha256=kvNqJKxNBmFEj3HknLZUD8tjhPhso72nj_ZoKHspCKo,3134
|
|
23
|
-
exonware/xwsystem/caching/lfu_cache.py,sha256=mseQHi595gXz-2Gzull-rUDqSSA0Cjqm4bp2TnEGRt4,9080
|
|
24
|
-
exonware/xwsystem/caching/lfu_optimized.py,sha256=DTQ70m5TlVz_KKKQMK25n85DY1abtvEf4bJpmUJ2Vco,17975
|
|
25
|
-
exonware/xwsystem/caching/lru_cache.py,sha256=x32L80DzXL-V9yfN9Mqr6tIXN4O2D8ml3EyAfGO8wGM,19448
|
|
26
|
-
exonware/xwsystem/caching/memory_bounded.py,sha256=JYER87f4V7eypUE9rxpxdYzs3vY2dM8izJjcq3c1AqU,9835
|
|
27
|
-
exonware/xwsystem/caching/metrics_exporter.py,sha256=Q_pI0slc4yXAZ5mZiM0ZXiBwy8mSL-p9sQ3rediIRSg,6797
|
|
28
|
-
exonware/xwsystem/caching/observable_cache.py,sha256=ZWUAAhzHp5U9azFSeePeP4RyuE0iAvslKu93LRTNjuE,4502
|
|
29
|
-
exonware/xwsystem/caching/pluggable_cache.py,sha256=8gSVdlcx4cEmqCoDlEjCfIHL0zYP5NzO6I7TmNNetn8,7481
|
|
30
|
-
exonware/xwsystem/caching/rate_limiter.py,sha256=K-YH5JJ0RWyOGIBuJtqIQWBgppUmG9OwOApATVzwXC4,7679
|
|
31
|
-
exonware/xwsystem/caching/read_through.py,sha256=N3FywCfucTHun7FV0GTED2lYTwtiWaxIbYiX1vkhjQk,7303
|
|
32
|
-
exonware/xwsystem/caching/secure_cache.py,sha256=cbN1y0VToxdL4_SP4DClKGdHnyHUFFrkE57Hv-Ex46g,9542
|
|
33
|
-
exonware/xwsystem/caching/serializable.py,sha256=L3W4dyVFgxlMWpFy3PATiRDde1ad20ICIWDGNSfbPrk,5029
|
|
34
|
-
exonware/xwsystem/caching/stats.py,sha256=Hlt7ZlJvn4gx5jDZYu4CGuaRwzRtUBZ1uRLtnMWb8kc,5804
|
|
35
|
-
exonware/xwsystem/caching/tagging.py,sha256=6z-sjHD5osEL0giIlXopIJH8xduUbKg3ipVhY_Q7M6c,5663
|
|
36
|
-
exonware/xwsystem/caching/ttl_cache.py,sha256=XkgYwbLVEmNeuVP3I0zZNRfK2G7CTAkoPiY4kJR-0u0,17651
|
|
37
|
-
exonware/xwsystem/caching/two_tier_cache.py,sha256=J2wQ006wy-ptBUNVOPcW0KqijbgKJm5cfQAl9DAx_PY,8692
|
|
38
|
-
exonware/xwsystem/caching/utils.py,sha256=0UO0OzVSwgU-JmQUq_VrlOxkjnrvX-R0ONAqg2p50vY,5845
|
|
39
|
-
exonware/xwsystem/caching/validation.py,sha256=tMCufoHzSi7WJ8YkYXVVn0A7ToXxP4BEKQ2AgJzMguA,6929
|
|
40
|
-
exonware/xwsystem/caching/warming.py,sha256=48rfjYv48ZzSN0XZyXQiiNwmcCrywRZXruGICR0R7y8,7063
|
|
41
|
-
exonware/xwsystem/caching/write_behind.py,sha256=yf_EeIxKEJBjkCR-HUutEm7jK5xorsuQAvRwi_1AaNI,6581
|
|
42
|
-
exonware/xwsystem/cli/__init__.py,sha256=ziI0oucwF3dIFi5GWYrgR4rjcCmrEBSlNWqjL2EtixI,896
|
|
43
|
-
exonware/xwsystem/cli/args.py,sha256=uqSDzNdXnHrtyVdH3VSh9ll6iLSZp0UKnfHHU96frmk,12232
|
|
44
|
-
exonware/xwsystem/cli/base.py,sha256=o8lwVXY8PcIzcZPX0ED_BoU38NT4eleKhUUaqzsTn8M,8520
|
|
45
|
-
exonware/xwsystem/cli/colors.py,sha256=hGgv3O6nVAb64PTkaa3azXLksk8Uv-sUTvpabYzzZvQ,9520
|
|
46
|
-
exonware/xwsystem/cli/console.py,sha256=BlnFPgvGYkCb566KRUnsln1529TwlSriSuJ6zTuspwU,3623
|
|
47
|
-
exonware/xwsystem/cli/contracts.py,sha256=fi2cNvAeDVUYRQhzOW6VR1ReuN756gsxwCGKVnyfPyY,4326
|
|
48
|
-
exonware/xwsystem/cli/defs.py,sha256=6Oi0AQ8b5VzR9Ci7JCsLP-sgJfrZFC3-ZhDRv1NEuaE,2746
|
|
49
|
-
exonware/xwsystem/cli/errors.py,sha256=2PC9vcwRXvz5NcpCu6eV1YNgADENs74JhAUbUTht99Q,1372
|
|
50
|
-
exonware/xwsystem/cli/progress.py,sha256=O8AbGVaG3IxvCMBrT8tx7K4XLJp3BEhRRVzJxLOXnS0,14015
|
|
51
|
-
exonware/xwsystem/cli/prompts.py,sha256=jC26czl7RrTu6H5TqesUwcSoMkqbPyvNQXTaRA5MSM0,2861
|
|
52
|
-
exonware/xwsystem/cli/tables.py,sha256=1ANKxYN2Ile_mCzbwhDomBpPpfftSrXIrN4AYSm9ne0,8343
|
|
53
|
-
exonware/xwsystem/config/__init__.py,sha256=HchNge-R1UKkRweSzCZEyABEc-dvZn4ndFAeARm8zqk,2460
|
|
54
|
-
exonware/xwsystem/config/base.py,sha256=bH_gVpuTl_zUcr8e-NI6n-MXvwXqnwXlsWXOzc-_CFo,7881
|
|
55
|
-
exonware/xwsystem/config/contracts.py,sha256=wVwoHG8dOKwcXgJ9C_CqepsTCm3q9viZJf9afhTL2rA,20424
|
|
56
|
-
exonware/xwsystem/config/defaults.py,sha256=eyaNwdGvdBkvGZ5Ib78F4DNmxS2piB6ggvlEL6VvNeE,6026
|
|
57
|
-
exonware/xwsystem/config/defs.py,sha256=7l2HFNljVY4SWME16YBijC3veHM8XcTpM0DstQscDpw,2067
|
|
58
|
-
exonware/xwsystem/config/errors.py,sha256=ruypzJkbyUUB3m3KhSgfVKD_ihLnxP4olAV3MqSG4so,1738
|
|
59
|
-
exonware/xwsystem/config/logging.py,sha256=mo4c397Ke8trWzSJEmEVrxm8ONMjs-zOCLiQHmv4zts,2511
|
|
60
|
-
exonware/xwsystem/config/logging_setup.py,sha256=t0hNqK-Mtlvea1qGR_cTEMp4cFCjJt8_dEus6Iw9mRk,3397
|
|
61
|
-
exonware/xwsystem/config/performance.py,sha256=uAUG85xy-2L2O27IxYEcNk0N8LR1IvfS3MtGaxc3np8,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=Hzr0K_qLWuAQ4_qgNkmGTq5fCQ1kIkdD0SH-lsPhUc4,449
|
|
65
|
-
exonware/xwsystem/http/advanced_client.py,sha256=ks6lE2fgF0WbPnmw0PJEjc1QSbSN6aMrTuPx7qSdFfk,17433
|
|
66
|
-
exonware/xwsystem/http/base.py,sha256=KHMeCvcPBIdoXJpUY8WLM0Y6oq_v5YTW3mI9QNSo5TA,7505
|
|
67
|
-
exonware/xwsystem/http/client.py,sha256=neKiEPm3-eucN4yt_YJQKqzRMLL-t4vjmNy740tGWyQ,18556
|
|
68
|
-
exonware/xwsystem/http/contracts.py,sha256=P6u6mcXjPTsIrZJsnKpEJZWb6Rk1Sp-lvn-w4_pC8Pk,3700
|
|
69
|
-
exonware/xwsystem/http/defs.py,sha256=7mCjMeSPlDMMRzFUn1_bwJ9bhU__l2z-E-fuFFoKZzM,1417
|
|
70
|
-
exonware/xwsystem/http/errors.py,sha256=9vFutjRLazuDM31On75LKHEPrpq3xiT56u7VaajkBPo,1932
|
|
71
|
-
exonware/xwsystem/io/__init__.py,sha256=CeamSslE19IQ6wOFDrheXm2zNCEHANuaNk4oF_TolEA,10790
|
|
72
|
-
exonware/xwsystem/io/base.py,sha256=Ouf01dntI67-8WbC_y00z3HbEF9jeUPBifa3xn5XMDo,50326
|
|
73
|
-
exonware/xwsystem/io/contracts.py,sha256=R4gAX6zH8vg0E3xrPjLsmvX35OQHpU2f4x94Ih9JOt0,49979
|
|
74
|
-
exonware/xwsystem/io/defs.py,sha256=_V7lL1hJHOTFLct2cgXB6f3bHztDDY0IAMrlJDey3a0,6267
|
|
75
|
-
exonware/xwsystem/io/errors.py,sha256=qW7DYT3GaB5y1mesBJQjh8KPy-xqj48aOcWROoTe7eA,7992
|
|
76
|
-
exonware/xwsystem/io/facade.py,sha256=XZMyr7RCkkJpgl0LNyU6mggELUt53XKrCitMFBbunG4,35497
|
|
77
|
-
exonware/xwsystem/io/archive/__init__.py,sha256=bIYo6ot-bw919SXbdlsth2LIVx74eNEMIgqPkrbKwdc,2684
|
|
78
|
-
exonware/xwsystem/io/archive/archive.py,sha256=-mbSocRyNjqr1FAWzNp64k-SiNwGmqV2wIw0PLGOiXk,3529
|
|
79
|
-
exonware/xwsystem/io/archive/archive_files.py,sha256=oKBO13gS1jG5TMQHTnlMjaOT9d_Cw0aJkkThKHRX2IQ,7253
|
|
80
|
-
exonware/xwsystem/io/archive/archivers.py,sha256=YXXo5HtMMyPr9LJQa2PUJsuKNFFdB_ZAv3zsl1dgDsw,9513
|
|
81
|
-
exonware/xwsystem/io/archive/base.py,sha256=CKOU6Uq5iwdswf6lEigXUoD2N6ros-ZvNUUDMv6tAe4,12210
|
|
82
|
-
exonware/xwsystem/io/archive/codec_integration.py,sha256=vaLLBp08_MGUmvKHk_c4GMVtulIHs6MiHF-S14xxgdk,1735
|
|
83
|
-
exonware/xwsystem/io/archive/compression.py,sha256=1C8W62rm2QTElqd2-XqCxQvxBYr2foUJYK7dp2ER9Bk,5578
|
|
84
|
-
exonware/xwsystem/io/archive/formats/__init__.py,sha256=cJp64AfS60nfmgAAyvwSlPVaPTYesITSjNCdBdignrk,5073
|
|
85
|
-
exonware/xwsystem/io/archive/formats/brotli_format.py,sha256=oKJ1cIxsWyGrfyOjLq2bBnySdS2ttje7PtG6GpBknWk,5050
|
|
86
|
-
exonware/xwsystem/io/archive/formats/lz4_format.py,sha256=jp29CiQ3mVvbWPMMUJ6WeVVgB5E3ni8SCY_Nx7Jyjzs,4960
|
|
87
|
-
exonware/xwsystem/io/archive/formats/rar.py,sha256=41nnyK-LZ1jvEOP7Ac6Jt7c6grygDUB79aHFRRoZ4T0,3956
|
|
88
|
-
exonware/xwsystem/io/archive/formats/sevenzip.py,sha256=Si59yLe-L-uXOfKDuaIxfxyfyglwSYwXhq5K7Q66zKU,4404
|
|
89
|
-
exonware/xwsystem/io/archive/formats/squashfs_format.py,sha256=xJdp9RKITh7gNY-F8qmmzLDJ7QACnMkvk9ljB3___hs,5494
|
|
90
|
-
exonware/xwsystem/io/archive/formats/tar.py,sha256=9ip9lGkHrhxnSZjpGmjDn_zQu3itGisCelIaucUSjs0,3580
|
|
91
|
-
exonware/xwsystem/io/archive/formats/wim_format.py,sha256=GBSDjo0YszJdnfLbkwPinF-W63OtPYcRZpBKa053Etg,4171
|
|
92
|
-
exonware/xwsystem/io/archive/formats/zip.py,sha256=rd13yc1UbCTwIgUZmSpImdc7InWG1b23Mdt3kLz-kHo,3109
|
|
93
|
-
exonware/xwsystem/io/archive/formats/zpaq_format.py,sha256=TkxmKIGS5Qm9tvYrtHR7-yXPQ3ABXBJ2bF1gkFfL5YY,5210
|
|
94
|
-
exonware/xwsystem/io/archive/formats/zstandard.py,sha256=2-2e1fVOcckpwg6CdbcMiKxTu0wxpEBreBdY10wnkX4,5083
|
|
95
|
-
exonware/xwsystem/io/codec/__init__.py,sha256=B4QTfvgI_BCKt0U6-JyRxyFCe4jf-2inws96natNmkg,4917
|
|
96
|
-
exonware/xwsystem/io/codec/base.py,sha256=CP_4-KGR0MIXbeA7yotmo7lJjJVszigJ0zmL9Da1LGk,20591
|
|
97
|
-
exonware/xwsystem/io/codec/contracts.py,sha256=6XM01Xqe75rHWsFuwlDQfDdgTZ_NdwbLhStzmkU8cJs,6703
|
|
98
|
-
exonware/xwsystem/io/codec/registry.py,sha256=kKnYEY6IX9Ib-gxNBGCaTmReOv8Y5cjgTQkQvFOGUHI,28651
|
|
99
|
-
exonware/xwsystem/io/common/__init__.py,sha256=HBpT88EREQtjXl8mNfXkUJOy8Bh5daG2xFVbi09w42Y,2215
|
|
100
|
-
exonware/xwsystem/io/common/atomic.py,sha256=DPcm9zDNOHj_s2f0OEj6GmuEyfjqkNv-sbXnqBza0jg,15153
|
|
101
|
-
exonware/xwsystem/io/common/base.py,sha256=9nTQbtz5yj--a88b70lTTaiLbhvv54Cw2MmRm3X8as0,4363
|
|
102
|
-
exonware/xwsystem/io/common/lock.py,sha256=kF3lr_0fjVRX1iaCwRVuf6-t9-Sbk9l02O4QhtW0X0M,3830
|
|
103
|
-
exonware/xwsystem/io/common/path_manager.py,sha256=VEB-3VeRYYvE21FTsh8Gp7mABDK9MhJ522nlzPhciUo,11402
|
|
104
|
-
exonware/xwsystem/io/common/watcher.py,sha256=GTXhuuEOqXRohVeVxVK09NmXStEu8rlBuGnYXbG3ggk,5177
|
|
105
|
-
exonware/xwsystem/io/file/__init__.py,sha256=-IerQ-uiwY2A_Oj_HR2DhFXMuSy0hmLHgSvaqPKl8gk,2305
|
|
106
|
-
exonware/xwsystem/io/file/base.py,sha256=p8LiBW-dmY1Z7mRXuYT37ap0P8pQaX9A2f56V9nredE,4065
|
|
107
|
-
exonware/xwsystem/io/file/conversion.py,sha256=_sUyskeC9uu-4kYzFCuuBdV2wYZl7tIYAR7cx28QDts,8276
|
|
108
|
-
exonware/xwsystem/io/file/file.py,sha256=JeUq9IPYWtg57IiPMH_wm7ThwyfUi6bMQWtn0iJowb8,12362
|
|
109
|
-
exonware/xwsystem/io/file/paged_source.py,sha256=wa785eK0FWJuKa97rp07JsMQTOtAxeXz9h_k5G7_XdE,5224
|
|
110
|
-
exonware/xwsystem/io/file/source.py,sha256=gl9lI7PrrjLVc3FJRJ91DK7KqfN1Drc1TtwtLLiyNZk,6447
|
|
111
|
-
exonware/xwsystem/io/file/paging/__init__.py,sha256=97xadyezGW0bENJL1kdYdzEDOBTT2M5mKCXMJg5Rarc,1186
|
|
112
|
-
exonware/xwsystem/io/file/paging/byte_paging.py,sha256=HF2WxlYcqSqC7Pd-Kl_sFqfRv3_qdZal_ag2Jo5cuyY,1898
|
|
113
|
-
exonware/xwsystem/io/file/paging/line_paging.py,sha256=uMMAB4EdpG9eN52N5VsKEj_VKjGaSUEGptUhinbSisI,2259
|
|
114
|
-
exonware/xwsystem/io/file/paging/record_paging.py,sha256=Z3y3pvIqyXK0vvf085Jea3J2E3NwRiB8jpdMMe3VHdo,2837
|
|
115
|
-
exonware/xwsystem/io/file/paging/registry.py,sha256=Z0sdvcieQq-sPi7uYa356kp2-_gegDGzCpDTzSvQXto,5377
|
|
116
|
-
exonware/xwsystem/io/filesystem/__init__.py,sha256=zaeqXbSVytRfXp565lEXR5QtTpBcjtqkjEKoqqvrcy4,957
|
|
117
|
-
exonware/xwsystem/io/filesystem/base.py,sha256=xgl-99o4hZjLfVffbKsgBmZ_3KSF1Kl0KDHQvLsuatM,562
|
|
118
|
-
exonware/xwsystem/io/filesystem/local.py,sha256=qK1HkJWYq66J07sQuQ-Ms-m7hZRTipl-EN4J-5QPRUA,4874
|
|
119
|
-
exonware/xwsystem/io/folder/__init__.py,sha256=e5nEQYA5kVMIO5CvEFPsK3M940YgJN_FC83_xU8SGDI,563
|
|
120
|
-
exonware/xwsystem/io/folder/base.py,sha256=C2ua7PBOjvekkKgHBwTyuFPZ0G_UcYAAR-KY29lFtyY,891
|
|
121
|
-
exonware/xwsystem/io/folder/folder.py,sha256=dKOpWzq33raU5USxe_k4i_xVZhgx74wFvL3fjFEmido,8730
|
|
122
|
-
exonware/xwsystem/io/serialization/__init__.py,sha256=0IpR7s_7mIfvgTZzI2U9oPmrYXJNu5_BtmKmPc1ttfo,4982
|
|
123
|
-
exonware/xwsystem/io/serialization/auto_serializer.py,sha256=OEtedcK4_V6HSxJO8cdjc-C2UXF4Z2BUt8mwBaLAOI4,14505
|
|
124
|
-
exonware/xwsystem/io/serialization/base.py,sha256=M7ChViyekgLmeRHk7yPsUzEVQjE9CNvkLqR45Vvw0iY,33375
|
|
125
|
-
exonware/xwsystem/io/serialization/contracts.py,sha256=wRaynVYnpvQNuJetMeT_gf0da_WRKR1kkE8poWSfHy0,13189
|
|
126
|
-
exonware/xwsystem/io/serialization/defs.py,sha256=eEPYoWqNlgF3uwjgg4ni_C9bajvKVmQqKNX3CtS9v0E,2248
|
|
127
|
-
exonware/xwsystem/io/serialization/errors.py,sha256=_S5dnZLeLV7zzZESKDr0fzF2xrXxAM1f8pmBZAq4jCs,3568
|
|
128
|
-
exonware/xwsystem/io/serialization/flyweight.py,sha256=ZRSbBoPZVKFwrOXjCRnfN5_Y601eHH3TPtDDbGHox2A,14912
|
|
129
|
-
exonware/xwsystem/io/serialization/format_detector.py,sha256=g2o0PCRYSU-nDta-DY8OpSfXcuqjLk8lWMiJOkniUfM,13895
|
|
130
|
-
exonware/xwsystem/io/serialization/registry.py,sha256=T5kwRDlI2PMfppIGEG0TUwYiwnGTEaD7FES_XCVkQSY,5503
|
|
131
|
-
exonware/xwsystem/io/serialization/serializer.py,sha256=UK4WrokRUa3ZNRp4vZsoeUxg8or9LJct6Lxle9Xni5E,41609
|
|
132
|
-
exonware/xwsystem/io/serialization/formats/__init__.py,sha256=JmQemMxlcKSuPKprn7Q9iNxSAkhPdcbrxbdbVqU_upw,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=U0nIVARTDe7ZilMCaQ-kNbjCYyPww8CRvM_i2p8yNac,4614
|
|
135
|
-
exonware/xwsystem/io/serialization/formats/binary/cbor.py,sha256=CFsfDPpIAvCoVl-7sIbbE5Vi2TCGx9oRERXPxVjDlMs,4635
|
|
136
|
-
exonware/xwsystem/io/serialization/formats/binary/marshal.py,sha256=QW2x_AQAkfjkHi7_vbjZIuG3mLkV-cNeTsNh5a05Upk,4464
|
|
137
|
-
exonware/xwsystem/io/serialization/formats/binary/msgpack.py,sha256=ItKXu0WZVez54CFwZirTZ0-Xzt0VuO1HgCKnMX3hYt0,5486
|
|
138
|
-
exonware/xwsystem/io/serialization/formats/binary/pickle.py,sha256=eYDO4a5X_BizYt5L8Zvco-LCiGejoMuhQdtQSE5OsH4,5096
|
|
139
|
-
exonware/xwsystem/io/serialization/formats/binary/plistlib.py,sha256=WqvP_fBsYHyVLylQ4hXoc01qGxHVJOs0BLH3RD4-CmI,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=v8swaZCQMI5mGrHEqkyKrdtxzFfpJ4UEvyQTtFpNLE8,1954
|
|
142
|
-
exonware/xwsystem/io/serialization/formats/database/shelve.py,sha256=xoc-W0Uyp7r5GgfQ1oG0lURz2gs_TipHBlmi785_1mU,2010
|
|
143
|
-
exonware/xwsystem/io/serialization/formats/database/sqlite3.py,sha256=raRZiwXyQHyR5F_Qn072VOVDbVz8Ap7hL_Sg1nGSe3E,2065
|
|
144
|
-
exonware/xwsystem/io/serialization/formats/text/__init__.py,sha256=qZ0ELLYiobG9PMHcfoG977xgfeRaZhpZioD4AIO30b0,696
|
|
145
|
-
exonware/xwsystem/io/serialization/formats/text/configparser.py,sha256=5-WCnykgIrOzr8R1D8OgiMIoQooB1_LGIDM0v5iYgF4,5711
|
|
146
|
-
exonware/xwsystem/io/serialization/formats/text/csv.py,sha256=YuI98wzu6uuj9Rs4O51GD8BcvcWbf7pQktur3feM3MQ,6435
|
|
147
|
-
exonware/xwsystem/io/serialization/formats/text/formdata.py,sha256=HbN1n4b9W31VJD1FNNeSICPWFRH5JONSvi_fP9YeNak,5226
|
|
148
|
-
exonware/xwsystem/io/serialization/formats/text/json.py,sha256=WpgTzjdzK0i1DgJpNpVUIBqO2NlmErJsclRuU3Qm9H0,13053
|
|
149
|
-
exonware/xwsystem/io/serialization/formats/text/json5.py,sha256=8LIdjqibqa8vSU9NtuxmIw5afSL0Y081mUuzjzPRQwI,3106
|
|
150
|
-
exonware/xwsystem/io/serialization/formats/text/jsonlines.py,sha256=6Dwz2WXGDB9RTw442E_ize-34KGi42CztzbrZmxSy7s,3357
|
|
151
|
-
exonware/xwsystem/io/serialization/formats/text/multipart.py,sha256=gsix_ozURFmeoWt6ZfnKaKDxDCXEmhbi7v6qHu2V0Gg,6814
|
|
152
|
-
exonware/xwsystem/io/serialization/formats/text/toml.py,sha256=uI86_Tbw4t-WIZTKdGQEnXzWCY94b_ce-BrJ8IAhyAA,5732
|
|
153
|
-
exonware/xwsystem/io/serialization/formats/text/xml.py,sha256=PZzfl0miIZGJNR4_jDAK_dL3baaxvaXRijTwoauiDjo,6528
|
|
154
|
-
exonware/xwsystem/io/serialization/formats/text/yaml.py,sha256=Vqp8vlAPvcWNshJHQ20L-p4komlubO6Ov5fY8PuwRtQ,5365
|
|
155
|
-
exonware/xwsystem/io/serialization/utils/__init__.py,sha256=ECU7g4Rzm4Nbhy5ivX9Q2HrZVVfaxF8qcw4w9fc6QIA,669
|
|
156
|
-
exonware/xwsystem/io/serialization/utils/path_ops.py,sha256=cCdyWvd4HXT_AHOoee2wRmXyCdg1G_Di-7xSgJ4w-gk,8918
|
|
157
|
-
exonware/xwsystem/io/stream/__init__.py,sha256=QO9iAMymdu-8QxiV_K9VHFo_ZaMSQTscQVE8J4nlbPc,1285
|
|
158
|
-
exonware/xwsystem/io/stream/async_operations.py,sha256=8IWn7Z02DXz1cxmOntLLSNLj5vz3vnNP05c5x5Sm9Y4,16860
|
|
159
|
-
exonware/xwsystem/io/stream/base.py,sha256=RKA1p7lidvK95ih-SoS76tMC14ZxP0Osy9OXzYfU2pw,1018
|
|
160
|
-
exonware/xwsystem/io/stream/codec_io.py,sha256=4QHgV4wplFR6SY_b_soaqihwJwmfj_nGnUENGwT0ABE,15647
|
|
161
|
-
exonware/xwsystem/ipc/__init__.py,sha256=1oew_AhHdGS6lXUfWf84qB5AU9FtzwTd56RcJOsYJOM,977
|
|
162
|
-
exonware/xwsystem/ipc/async_fabric.py,sha256=1dSUsow9b3m_7H2EO-qVU3TtbreVy-000p7KRTwgNls,13507
|
|
163
|
-
exonware/xwsystem/ipc/base.py,sha256=nxi79tUf8JEpFtBXpqOsP1yqt9eIbkBkQgEFESGlmK8,9432
|
|
164
|
-
exonware/xwsystem/ipc/contracts.py,sha256=3xr5NtIu3z7kAuFvum1vhHL4Lw2h0XcybaX94dhDCCg,4599
|
|
165
|
-
exonware/xwsystem/ipc/defs.py,sha256=AVNvXCkP1RmItQQOAEG-1JH3IrO3dFO7b1Q2vOFrUh0,1415
|
|
166
|
-
exonware/xwsystem/ipc/errors.py,sha256=6JTiBXK6FYRypP5BHp80AnUOMwT1MEMkfHFkP_gSY8w,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=e2cl4VRXZoO4ARp9qtuKW4utFrn_Tmzwz03W7UYFkoA,9521
|
|
174
|
-
exonware/xwsystem/monitoring/contracts.py,sha256=dCmdwKFe4_qF9Phiv5Qz3shuWJ5gbKLYF32ChZ_YChM,19322
|
|
175
|
-
exonware/xwsystem/monitoring/defs.py,sha256=kr1f9YXNE9gs0fLuf8VeqMpkl6H6siiUZFFiAlQ2p5U,1588
|
|
176
|
-
exonware/xwsystem/monitoring/error_recovery.py,sha256=zqU8uvdgYUYZgKE_n38F5zjK0v_TaC1FMxaCWWtj-k4,19955
|
|
177
|
-
exonware/xwsystem/monitoring/errors.py,sha256=jcT9_KxMdaQlwZKad8aMhMRrhO9BQDDYwjtoXARsLMU,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=eFo31FQeEB0HcH0YLOwjroURDFoe2eMFRqrlI0MKOx8,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=riop6V4O-30Wey1puiymtbQPq9egGnsY6nv1-QROpH8,21863
|
|
184
|
-
exonware/xwsystem/monitoring/tracing.py,sha256=QXOG2XdbN-YGegMN4m7Pju3Mk5amDo4IGVX2HmVXN50,15075
|
|
185
|
-
exonware/xwsystem/monitoring/tracker.py,sha256=-RLWExjCVajCBjM1iQc0DeC4tYbknZTUcpuR-X5NLyY,9595
|
|
186
|
-
exonware/xwsystem/operations/__init__.py,sha256=zLXVl6MZ_NS239FDKHptEFzl8f4LDNc1p_0szEYEJ40,2423
|
|
187
|
-
exonware/xwsystem/operations/base.py,sha256=AiOkIrBDHdJ3rOQ3Enyf36quwsSlAgEcGou5fkvx-pE,2002
|
|
188
|
-
exonware/xwsystem/operations/contracts.py,sha256=GV3w1rTEZVhZQacNrEVh343R_NV8y1sY8H-x-bA45WY,1277
|
|
189
|
-
exonware/xwsystem/operations/defs.py,sha256=GWF2cmP47lkyAdgn3ekhc7wptSYCYn18oE7hAr9aufM,1583
|
|
190
|
-
exonware/xwsystem/operations/diff.py,sha256=2PiMP7_MRbxqbafUrmIPOHcTmPbtrkcWtKTfsv8JkaM,8721
|
|
191
|
-
exonware/xwsystem/operations/errors.py,sha256=Ic0sgadqirwa_VCIitQRhm89djOsLg9EVRj07H0nku8,740
|
|
192
|
-
exonware/xwsystem/operations/merge.py,sha256=JByi1wJYPO1FLyU6OYoPn33OCcGpArAZn4b_l6YjRqE,5603
|
|
193
|
-
exonware/xwsystem/operations/patch.py,sha256=B59uQU6zbZD16uurWcDrLSecg4OBBaCiNy4vcsaP3LA,8530
|
|
194
|
-
exonware/xwsystem/patterns/__init__.py,sha256=WeMM4i5mi74YmY2-vFD2SeMnHI6BeQpZHPBOqh0qsPw,1027
|
|
195
|
-
exonware/xwsystem/patterns/base.py,sha256=n71P9G2OGudXbFON5rwuHAJsdCC0HQj6LKMYjJ1LnXQ,3549
|
|
196
|
-
exonware/xwsystem/patterns/context_manager.py,sha256=-RlcLAI1JgxMx2Y8nESUVN8TSBGiZVSrLqujHJPbZfM,10860
|
|
197
|
-
exonware/xwsystem/patterns/contracts.py,sha256=IfpOT_l6ItXlwJ27WUdbbAR0-qZortaOOuwfhpxdwPk,16417
|
|
198
|
-
exonware/xwsystem/patterns/defs.py,sha256=tqJj8oYpyTZJih2MORJYfpkSeA1Bcu12plp6g8Nj9zc,5736
|
|
199
|
-
exonware/xwsystem/patterns/dynamic_facade.py,sha256=cS5SENwUb0rd8RpuY3uE-29XK2Yg0p_HMX0y6eUlm6I,5246
|
|
200
|
-
exonware/xwsystem/patterns/errors.py,sha256=OJ-G0MBlXgvURuvmHmomVNIcM3DS5QpONEO-LijH_zU,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=LsnM5vFO3u0YpzB_Luk6I6AObw-Uklju_-MFSAJEfR4,14129
|
|
205
|
-
exonware/xwsystem/plugins/__init__.py,sha256=NAOm44LduOVNKpu2QwPLqD-xKz6NQRNyRtqYF-aDocM,636
|
|
206
|
-
exonware/xwsystem/plugins/base.py,sha256=hF6ZHNm3747t6QAZL_66mmhNeDm0z253l1Iqrev3PF0,19866
|
|
207
|
-
exonware/xwsystem/plugins/contracts.py,sha256=tmRl5hQ3xK1t64CnpsbjtyMcABBchP-qgxZd7_8yeRc,22497
|
|
208
|
-
exonware/xwsystem/plugins/defs.py,sha256=zQo8q0t6zdJJrm6zSeI8aASpq7ilPgsDzB8ZcLX8Hf4,1537
|
|
209
|
-
exonware/xwsystem/plugins/errors.py,sha256=Rtfap0NyRGuxztZ-TJ0MIJGWw9Sdf2XkHbELOZ1gy54,15893
|
|
210
|
-
exonware/xwsystem/runtime/__init__.py,sha256=dyS_Da6rfeIgxFgwISXvvcShRvoF5zZH1rB0X5gmokA,2227
|
|
211
|
-
exonware/xwsystem/runtime/base.py,sha256=WNr9qhfEY5jalgCjfLKcDp7of3AnTbhBnxYbxOR_-oU,13836
|
|
212
|
-
exonware/xwsystem/runtime/contracts.py,sha256=4iw_ntIxsTCRw0ZqIiRiuYFAxtp9zckiHlXizRBOXm0,4371
|
|
213
|
-
exonware/xwsystem/runtime/defs.py,sha256=QHZMivnObEOScF7hxYp6SDCJns9khMh5bselesfA8lU,1145
|
|
214
|
-
exonware/xwsystem/runtime/env.py,sha256=R0LtrRkYd5C7thy5TGSk2QnvH9fydRlcM0BtGuDUmXY,13060
|
|
215
|
-
exonware/xwsystem/runtime/errors.py,sha256=_2OLb0GMEPZ8HueiZr8ItzYDegdxLGF7KA8Hrenj_04,2184
|
|
216
|
-
exonware/xwsystem/runtime/reflection.py,sha256=oNkegwOmUWuxI6x93RuKAnUh5RH4j2RQJHq67iHG4nA,13593
|
|
217
|
-
exonware/xwsystem/security/__init__.py,sha256=ASG_9Iz6Iw1ptB4OrE1_8R8krW5oPsDEd3Nlypcme3s,1222
|
|
218
|
-
exonware/xwsystem/security/auth.py,sha256=4N0-sKe8CwVMvN4zGrjUMW-eFZeVMkQIHgHHpamOMvM,16734
|
|
219
|
-
exonware/xwsystem/security/base.py,sha256=9CotvfnI0rO9hNhkfmvRy18XW_isLOwK-heesCYpAMg,11559
|
|
220
|
-
exonware/xwsystem/security/contracts.py,sha256=JGk1OlsHovk7iRTUPOKnzjHqCvKDW1a0tBWSSV6zoyM,21830
|
|
221
|
-
exonware/xwsystem/security/crypto.py,sha256=7TGJClsPGsj_7RNUl2f1kRNgTHm-G9LcOVc-WEEiVu0,24159
|
|
222
|
-
exonware/xwsystem/security/defs.py,sha256=tKINoZL-Bp1jm4ka2WHNwniLx5BU1EzavPbDQ114C8c,1985
|
|
223
|
-
exonware/xwsystem/security/errors.py,sha256=bEDia2wHZEJ8JYF-_yT3v20lt4EDYRswYjp7UoPTrSk,2880
|
|
224
|
-
exonware/xwsystem/security/hazmat.py,sha256=fQAtO9_AOQ1JKfKRjT9VK88q8aQL1W853VFJooet4x4,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=fiCX_wLyX8Ipupx-5WUw4ivotDyvzP6LIxOBk_ViNbg,1974
|
|
228
|
-
exonware/xwsystem/shared/base.py,sha256=Rb7C0Vf9cF8E0ycSUFpctTQhnsaH3e2qnaK7Rkr8NdA,7929
|
|
229
|
-
exonware/xwsystem/shared/contracts.py,sha256=YgkMDifliVOcQsqh-jOZq_PmSB6CKgfHPUvMcwGXSbA,14634
|
|
230
|
-
exonware/xwsystem/shared/defs.py,sha256=L2ldKiSlBeMrt5XC1sc6CedT0iHnR7ZEiJ4WTPZgOhc,3810
|
|
231
|
-
exonware/xwsystem/shared/errors.py,sha256=btgjYSk8w1LjoieRT7d8VhujZHYK-p8Y3kdphwBhzxU,1304
|
|
232
|
-
exonware/xwsystem/structures/__init__.py,sha256=HvulE_xuGDWp_RbRVRmglKmXPgmkbHwiE7Un85t1F-A,533
|
|
233
|
-
exonware/xwsystem/structures/base.py,sha256=sCFwyVLw-nMAjn1ZI2YOpNG2DqFAqsIOJPT799-ToV0,12871
|
|
234
|
-
exonware/xwsystem/structures/circular_detector.py,sha256=9jxqyxuNfenoD8t6lYM7FQNIRLKJ9LZDhlE-gTGF3-E,11738
|
|
235
|
-
exonware/xwsystem/structures/contracts.py,sha256=T26dYb_iCg0GpcnF34Tl0HimZ6pIVE41svvDxIgGYdE,4897
|
|
236
|
-
exonware/xwsystem/structures/defs.py,sha256=qU7xipxeDLg3MPfSzmfHjGpRYpn9rzM6ldEmak84I-s,1531
|
|
237
|
-
exonware/xwsystem/structures/errors.py,sha256=WxqME0jxWF3oBOKPAfVGEM8Ivjfzzy4610hvwDac_fg,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=6ePzLAvza8yVgQVtrxs9z9jLtiW8seOK5cPyrqtv-SQ,18295
|
|
241
|
-
exonware/xwsystem/threading/base.py,sha256=wI12nbeTW5dHxtOV7qkz1yGYhLVtVO3twotuqQfKcgQ,10364
|
|
242
|
-
exonware/xwsystem/threading/contracts.py,sha256=IYHoD8DIpvJbt_vwiYx38V06YKzMRU-cYDRITh0b168,18740
|
|
243
|
-
exonware/xwsystem/threading/defs.py,sha256=MzyCwskkDGX6eOjDg0KEFHYgy-4jOdWB4WkEY4RGY8Y,1142
|
|
244
|
-
exonware/xwsystem/threading/errors.py,sha256=hmRVrt4hz3ybXl_VUdUYYiwVOGiNwGJd50TuQCuGmAU,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=Znmomdl0Guoe0Izm_0h7VydO3dV-D9FbaWIfmDIapqo,12736
|
|
248
|
-
exonware/xwsystem/utils/contracts.py,sha256=DE2bM3aml8WZrNRjR8GhTXlCRJOGsY2WaIeSCUY81OQ,4545
|
|
249
|
-
exonware/xwsystem/utils/errors.py,sha256=MGK008vCxBh0Vzl6Y8-3BFyGw4R4yJZdzsOkVWEC248,2673
|
|
250
|
-
exonware/xwsystem/utils/paths.py,sha256=1AIX10hvyiLv19dnZsur7HI9EqWFBa9PuR_R0UdRhs0,4283
|
|
251
|
-
exonware/xwsystem/utils/test_runner.py,sha256=OOtK000_1vOa2UQjLRcbrklGoa0UHJSGiAnzoXbUBj8,18357
|
|
252
|
-
exonware/xwsystem/utils/utils_contracts.py,sha256=i60-VBtWkBY2Vuu2kBSHMhjgqZv-yH-GKEHYKcARkww,1407
|
|
253
|
-
exonware/xwsystem/utils/dt/__init__.py,sha256=CrCDk-e5j28DTNAE3I2y4gLluyrE-uNQE3cz84M1dns,1411
|
|
254
|
-
exonware/xwsystem/utils/dt/base.py,sha256=I78irMhrE9zNC3DQs5se2Jud2svXu2LoKqZwEpptbx8,7179
|
|
255
|
-
exonware/xwsystem/utils/dt/contracts.py,sha256=SKWE7xHVukheBgDCPXFwBJkiQvG8Qm0o-f7oLYUV3ZY,2537
|
|
256
|
-
exonware/xwsystem/utils/dt/defs.py,sha256=Ywc42ej8kVLgL7fCS1qFDki8oScIgMFnykxA0djaCDk,1350
|
|
257
|
-
exonware/xwsystem/utils/dt/errors.py,sha256=qIKBkVLG3d9xqnCm3BpHmulcs1ltykMS2JFT0MKpetk,1554
|
|
258
|
-
exonware/xwsystem/utils/dt/formatting.py,sha256=sf2a5VWe9NYsoJI6etbLK3j2bH3B6wp9Z_Lf4QNAD0Q,4802
|
|
259
|
-
exonware/xwsystem/utils/dt/humanize.py,sha256=VL9HSeVV1kNtgqUDsjbik89ZQ4YkDJuZoT9TfcgQQKM,14420
|
|
260
|
-
exonware/xwsystem/utils/dt/parsing.py,sha256=hqrXeSZUQTe-uHmMiD_z2Tlg4dznHOqf8oV1F06MSLk,6369
|
|
261
|
-
exonware/xwsystem/utils/dt/timezone_utils.py,sha256=9Z2ayyETPzibMx1BCVtqIKj7YhVrhbuoLmXau1Qv0Dw,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=vygiM-x-zPp3tYVT5vIySMjPxlcxWbNbu7Tiw_oFiCI,6511
|
|
264
|
-
exonware/xwsystem/utils/lazy_package/config.py,sha256=mwan7EWe7iGv8HOCymGx7y4QCUW_L2bZlt9O7-NwzxA,5358
|
|
265
|
-
exonware/xwsystem/utils/lazy_package/lazy_base.py,sha256=eTkwZ1RwFaiBnYNZQYFcbyuJzRQeIsTry6dxt0bX04M,13920
|
|
266
|
-
exonware/xwsystem/utils/lazy_package/lazy_contracts.py,sha256=FRQSedeW1qOjMZcp2222K7iwzmkq8MiMkdPIn0XkiTc,7574
|
|
267
|
-
exonware/xwsystem/utils/lazy_package/lazy_core.py,sha256=p3f5fsHg8HVX8tlkBYu-sQtnkZZRk3Xzh_Tdk3u5Ing,87110
|
|
268
|
-
exonware/xwsystem/utils/lazy_package/lazy_errors.py,sha256=IamFgeeY8d3ypW9niODQV-44hKGuWBpYTE9d263hOX8,8291
|
|
269
|
-
exonware/xwsystem/utils/lazy_package/lazy_state.py,sha256=a_pOIDI6apbpu3xWvnofyM3vReV49CXiZmplkpWATmE,3118
|
|
270
|
-
exonware/xwsystem/validation/__init__.py,sha256=p2EGCCzBIhb3XpmVKUDpiE_icGMNYb8PC69bAf97LMA,463
|
|
271
|
-
exonware/xwsystem/validation/base.py,sha256=wt-9fpnFVGsYPXIkWNeWmludQGuZ2iRwpi4QoLU7rWE,10223
|
|
272
|
-
exonware/xwsystem/validation/contracts.py,sha256=nlxanjYhZY2zIvJg8zOYh9EFQZmbhD3dLi4oHxqxkSY,5901
|
|
273
|
-
exonware/xwsystem/validation/data_validator.py,sha256=rt5Ei5TOircR2eNda2IivNOylAthz1T8v1A1cnmgVzs,8710
|
|
274
|
-
exonware/xwsystem/validation/declarative.py,sha256=Wuw_IU9WPRTSg8Ow5RXTpViQUlR3yrfgxXlH8z0zTCE,25100
|
|
275
|
-
exonware/xwsystem/validation/defs.py,sha256=IRIsDi16IGqF_MbBa8X9aUxE1PiwWUTK5PwUmkoC_kE,799
|
|
276
|
-
exonware/xwsystem/validation/errors.py,sha256=JXZuUVeXsk44IPSMFc-D9pQEXopm6mzHylTxSutFGL4,2454
|
|
277
|
-
exonware/xwsystem/validation/fluent_validator.py,sha256=OW4CpJEKyMAnEMRz4sPoAsHVn8TRqFIYDwwgiP0gNZ4,12216
|
|
278
|
-
exonware/xwsystem/validation/type_safety.py,sha256=2MQTrCDVUO60s5d_T7ZR-AsGhhqqTvpYjOZs_FAN12k,3381
|
|
279
|
-
exonware_xwsystem-0.0.1.406.dist-info/METADATA,sha256=atymPU9cIdh83x6ztDqEkbHv2xHUh6R8z1wXYVPmLAg,35925
|
|
280
|
-
exonware_xwsystem-0.0.1.406.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
281
|
-
exonware_xwsystem-0.0.1.406.dist-info/licenses/LICENSE,sha256=w42ohoEUfhyT0NgiivAL4fWg2AMRLGnfXPMAR4EO-MU,1094
|
|
282
|
-
exonware_xwsystem-0.0.1.406.dist-info/RECORD,,
|
|
File without changes
|
{exonware_xwsystem-0.0.1.406.dist-info → exonware_xwsystem-0.0.1.408.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|