exonware-xwsystem 0.0.1.407__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.407.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.407.dist-info/RECORD +0 -282
- {exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.408.dist-info}/WHEEL +0 -0
- {exonware_xwsystem-0.0.1.407.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.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,,
|
|
File without changes
|
{exonware_xwsystem-0.0.1.407.dist-info → exonware_xwsystem-0.0.1.408.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|