exonware-xwsystem 0.1.0.1__py3-none-any.whl → 0.1.0.3__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 +2 -1
- exonware/conf.py +2 -2
- exonware/xwsystem/__init__.py +115 -43
- exonware/xwsystem/base.py +30 -0
- exonware/xwsystem/caching/__init__.py +39 -13
- exonware/xwsystem/caching/base.py +24 -6
- exonware/xwsystem/caching/bloom_cache.py +2 -2
- exonware/xwsystem/caching/cache_manager.py +2 -1
- exonware/xwsystem/caching/conditional.py +2 -2
- exonware/xwsystem/caching/contracts.py +85 -139
- exonware/xwsystem/caching/decorators.py +6 -19
- exonware/xwsystem/caching/defs.py +2 -1
- exonware/xwsystem/caching/disk_cache.py +2 -1
- exonware/xwsystem/caching/distributed.py +2 -1
- exonware/xwsystem/caching/errors.py +2 -1
- exonware/xwsystem/caching/events.py +110 -27
- exonware/xwsystem/caching/eviction_strategies.py +2 -2
- exonware/xwsystem/caching/external_caching_python.py +701 -0
- exonware/xwsystem/caching/facade.py +253 -0
- exonware/xwsystem/caching/factory.py +300 -0
- exonware/xwsystem/caching/fluent.py +14 -12
- exonware/xwsystem/caching/integrity.py +21 -6
- exonware/xwsystem/caching/lfu_cache.py +2 -1
- exonware/xwsystem/caching/lfu_optimized.py +18 -6
- exonware/xwsystem/caching/lru_cache.py +7 -4
- exonware/xwsystem/caching/memory_bounded.py +2 -2
- exonware/xwsystem/caching/metrics_exporter.py +2 -2
- exonware/xwsystem/caching/observable_cache.py +2 -2
- exonware/xwsystem/caching/pluggable_cache.py +2 -2
- exonware/xwsystem/caching/rate_limiter.py +2 -2
- exonware/xwsystem/caching/read_through.py +2 -2
- exonware/xwsystem/caching/secure_cache.py +81 -28
- exonware/xwsystem/caching/serializable.py +9 -7
- exonware/xwsystem/caching/stats.py +2 -2
- exonware/xwsystem/caching/tagging.py +2 -2
- exonware/xwsystem/caching/ttl_cache.py +4 -3
- exonware/xwsystem/caching/two_tier_cache.py +6 -3
- exonware/xwsystem/caching/utils.py +30 -12
- exonware/xwsystem/caching/validation.py +2 -2
- exonware/xwsystem/caching/warming.py +6 -3
- exonware/xwsystem/caching/write_behind.py +15 -6
- exonware/xwsystem/config/__init__.py +11 -17
- exonware/xwsystem/config/base.py +5 -5
- exonware/xwsystem/config/contracts.py +93 -153
- exonware/xwsystem/config/defaults.py +3 -2
- exonware/xwsystem/config/defs.py +3 -2
- exonware/xwsystem/config/errors.py +2 -5
- exonware/xwsystem/config/logging.py +12 -8
- exonware/xwsystem/config/logging_setup.py +3 -2
- exonware/xwsystem/config/performance.py +1 -46
- exonware/xwsystem/config/performance_modes.py +9 -8
- exonware/xwsystem/config/version_manager.py +1 -0
- exonware/xwsystem/config.py +27 -0
- exonware/xwsystem/console/__init__.py +53 -0
- exonware/xwsystem/console/base.py +133 -0
- exonware/xwsystem/console/cli/__init__.py +61 -0
- exonware/xwsystem/{cli → console/cli}/args.py +27 -24
- exonware/xwsystem/{cli → console/cli}/base.py +18 -87
- exonware/xwsystem/{cli → console/cli}/colors.py +15 -13
- exonware/xwsystem/console/cli/console.py +98 -0
- exonware/xwsystem/{cli → console/cli}/contracts.py +51 -69
- exonware/xwsystem/console/cli/defs.py +87 -0
- exonware/xwsystem/console/cli/encoding.py +69 -0
- exonware/xwsystem/{cli → console/cli}/errors.py +8 -3
- exonware/xwsystem/console/cli/event_logger.py +166 -0
- exonware/xwsystem/{cli → console/cli}/progress.py +25 -21
- exonware/xwsystem/{cli → console/cli}/prompts.py +3 -2
- exonware/xwsystem/{cli → console/cli}/tables.py +27 -24
- exonware/xwsystem/console/contracts.py +113 -0
- exonware/xwsystem/console/defs.py +154 -0
- exonware/xwsystem/console/errors.py +34 -0
- exonware/xwsystem/console/event_logger.py +385 -0
- exonware/xwsystem/console/writer.py +132 -0
- exonware/xwsystem/contracts.py +28 -0
- exonware/xwsystem/data_structures/__init__.py +23 -0
- exonware/xwsystem/data_structures/trie.py +34 -0
- exonware/xwsystem/data_structures/union_find.py +144 -0
- exonware/xwsystem/defs.py +17 -0
- exonware/xwsystem/errors.py +23 -0
- exonware/xwsystem/facade.py +62 -0
- exonware/xwsystem/http_client/__init__.py +22 -1
- exonware/xwsystem/http_client/advanced_client.py +8 -5
- exonware/xwsystem/http_client/base.py +3 -2
- exonware/xwsystem/http_client/client.py +7 -4
- exonware/xwsystem/http_client/contracts.py +42 -56
- exonware/xwsystem/http_client/defs.py +2 -1
- exonware/xwsystem/http_client/errors.py +2 -1
- exonware/xwsystem/http_client/facade.py +156 -0
- exonware/xwsystem/io/__init__.py +22 -3
- exonware/xwsystem/io/archive/__init__.py +8 -2
- exonware/xwsystem/io/archive/archive.py +1 -1
- exonware/xwsystem/io/archive/archive_files.py +4 -7
- exonware/xwsystem/io/archive/archivers.py +120 -10
- exonware/xwsystem/io/archive/base.py +4 -5
- exonware/xwsystem/io/archive/codec_integration.py +1 -2
- exonware/xwsystem/io/archive/compression.py +1 -2
- exonware/xwsystem/io/archive/facade.py +263 -0
- exonware/xwsystem/io/archive/formats/__init__.py +2 -3
- exonware/xwsystem/io/archive/formats/brotli_format.py +20 -7
- exonware/xwsystem/io/archive/formats/lz4_format.py +20 -7
- exonware/xwsystem/io/archive/formats/rar.py +11 -5
- exonware/xwsystem/io/archive/formats/sevenzip.py +12 -6
- exonware/xwsystem/io/archive/formats/squashfs_format.py +1 -2
- exonware/xwsystem/io/archive/formats/tar.py +52 -7
- exonware/xwsystem/io/archive/formats/wim_format.py +11 -5
- exonware/xwsystem/io/archive/formats/zip.py +1 -2
- exonware/xwsystem/io/archive/formats/zpaq_format.py +1 -2
- exonware/xwsystem/io/archive/formats/zstandard.py +20 -7
- exonware/xwsystem/io/base.py +119 -115
- exonware/xwsystem/io/codec/__init__.py +4 -2
- exonware/xwsystem/io/codec/base.py +19 -13
- exonware/xwsystem/io/codec/contracts.py +59 -2
- exonware/xwsystem/io/codec/registry.py +67 -21
- exonware/xwsystem/io/common/__init__.py +1 -1
- exonware/xwsystem/io/common/atomic.py +29 -16
- exonware/xwsystem/io/common/base.py +11 -10
- exonware/xwsystem/io/common/lock.py +6 -5
- exonware/xwsystem/io/common/path_manager.py +2 -1
- exonware/xwsystem/io/common/watcher.py +1 -2
- exonware/xwsystem/io/contracts.py +301 -433
- exonware/xwsystem/io/contracts_1.py +1180 -0
- exonware/xwsystem/io/data_operations.py +19 -20
- exonware/xwsystem/io/defs.py +4 -3
- exonware/xwsystem/io/errors.py +3 -2
- exonware/xwsystem/io/facade.py +87 -61
- exonware/xwsystem/io/file/__init__.py +1 -1
- exonware/xwsystem/io/file/base.py +8 -9
- exonware/xwsystem/io/file/conversion.py +2 -3
- exonware/xwsystem/io/file/file.py +61 -18
- exonware/xwsystem/io/file/paged_source.py +8 -8
- exonware/xwsystem/io/file/paging/__init__.py +1 -2
- exonware/xwsystem/io/file/paging/byte_paging.py +4 -5
- exonware/xwsystem/io/file/paging/line_paging.py +2 -3
- exonware/xwsystem/io/file/paging/record_paging.py +2 -3
- exonware/xwsystem/io/file/paging/registry.py +1 -2
- exonware/xwsystem/io/file/source.py +13 -17
- exonware/xwsystem/io/filesystem/__init__.py +1 -1
- exonware/xwsystem/io/filesystem/base.py +1 -2
- exonware/xwsystem/io/filesystem/local.py +3 -4
- exonware/xwsystem/io/folder/__init__.py +1 -1
- exonware/xwsystem/io/folder/base.py +1 -2
- exonware/xwsystem/io/folder/folder.py +16 -7
- exonware/xwsystem/io/indexing/__init__.py +14 -0
- exonware/xwsystem/io/indexing/facade.py +443 -0
- exonware/xwsystem/io/path_parser.py +98 -0
- exonware/xwsystem/io/serialization/__init__.py +21 -3
- exonware/xwsystem/io/serialization/auto_serializer.py +146 -20
- exonware/xwsystem/io/serialization/base.py +84 -34
- exonware/xwsystem/io/serialization/contracts.py +50 -73
- exonware/xwsystem/io/serialization/defs.py +2 -1
- exonware/xwsystem/io/serialization/errors.py +2 -1
- exonware/xwsystem/io/serialization/flyweight.py +154 -7
- exonware/xwsystem/io/serialization/format_detector.py +15 -14
- exonware/xwsystem/io/serialization/formats/__init__.py +8 -5
- exonware/xwsystem/io/serialization/formats/binary/bson.py +15 -6
- exonware/xwsystem/io/serialization/formats/binary/cbor.py +5 -5
- exonware/xwsystem/io/serialization/formats/binary/marshal.py +5 -5
- exonware/xwsystem/io/serialization/formats/binary/msgpack.py +5 -5
- exonware/xwsystem/io/serialization/formats/binary/pickle.py +5 -5
- exonware/xwsystem/io/serialization/formats/binary/plistlib.py +5 -5
- exonware/xwsystem/io/serialization/formats/database/dbm.py +7 -7
- exonware/xwsystem/io/serialization/formats/database/shelve.py +7 -7
- exonware/xwsystem/io/serialization/formats/database/sqlite3.py +7 -7
- exonware/xwsystem/io/serialization/formats/tabular/__init__.py +27 -0
- exonware/xwsystem/io/serialization/formats/tabular/base.py +89 -0
- exonware/xwsystem/io/serialization/formats/tabular/csv.py +319 -0
- exonware/xwsystem/io/serialization/formats/tabular/df.py +249 -0
- exonware/xwsystem/io/serialization/formats/tabular/excel.py +291 -0
- exonware/xwsystem/io/serialization/formats/tabular/googlesheets.py +374 -0
- exonware/xwsystem/io/serialization/formats/text/__init__.py +1 -1
- exonware/xwsystem/io/serialization/formats/text/append_only_log.py +5 -7
- exonware/xwsystem/io/serialization/formats/text/configparser.py +5 -5
- exonware/xwsystem/io/serialization/formats/text/csv.py +7 -5
- exonware/xwsystem/io/serialization/formats/text/formdata.py +5 -5
- exonware/xwsystem/io/serialization/formats/text/json.py +27 -18
- exonware/xwsystem/io/serialization/formats/text/json5.py +8 -4
- exonware/xwsystem/io/serialization/formats/text/jsonlines.py +18 -14
- exonware/xwsystem/io/serialization/formats/text/multipart.py +5 -5
- exonware/xwsystem/io/serialization/formats/text/toml.py +8 -6
- exonware/xwsystem/io/serialization/formats/text/xml.py +25 -20
- exonware/xwsystem/io/serialization/formats/text/yaml.py +8 -6
- exonware/xwsystem/io/serialization/parsers/__init__.py +3 -2
- exonware/xwsystem/io/serialization/parsers/base.py +6 -5
- exonware/xwsystem/io/serialization/parsers/hybrid_parser.py +7 -6
- exonware/xwsystem/io/serialization/parsers/msgspec_parser.py +10 -7
- exonware/xwsystem/io/serialization/parsers/orjson_direct_parser.py +7 -6
- exonware/xwsystem/io/serialization/parsers/orjson_parser.py +11 -8
- exonware/xwsystem/io/serialization/parsers/pysimdjson_parser.py +13 -9
- exonware/xwsystem/io/serialization/parsers/rapidjson_parser.py +10 -7
- exonware/xwsystem/io/serialization/parsers/registry.py +11 -10
- exonware/xwsystem/io/serialization/parsers/standard.py +7 -6
- exonware/xwsystem/io/serialization/parsers/ujson_parser.py +10 -7
- exonware/xwsystem/io/serialization/registry.py +4 -4
- exonware/xwsystem/io/serialization/serializer.py +168 -79
- exonware/xwsystem/io/serialization/universal_options.py +367 -0
- exonware/xwsystem/io/serialization/utils/__init__.py +1 -2
- exonware/xwsystem/io/serialization/utils/path_ops.py +5 -6
- exonware/xwsystem/io/source_reader.py +223 -0
- exonware/xwsystem/io/stream/__init__.py +1 -1
- exonware/xwsystem/io/stream/async_operations.py +61 -14
- exonware/xwsystem/io/stream/base.py +1 -2
- exonware/xwsystem/io/stream/codec_io.py +6 -7
- exonware/xwsystem/ipc/__init__.py +1 -0
- exonware/xwsystem/ipc/async_fabric.py +4 -4
- exonware/xwsystem/ipc/base.py +6 -5
- exonware/xwsystem/ipc/contracts.py +41 -66
- exonware/xwsystem/ipc/defs.py +2 -1
- exonware/xwsystem/ipc/errors.py +2 -1
- exonware/xwsystem/ipc/message_queue.py +5 -2
- exonware/xwsystem/ipc/pipes.py +70 -34
- exonware/xwsystem/ipc/process_manager.py +7 -5
- exonware/xwsystem/ipc/process_pool.py +6 -5
- exonware/xwsystem/ipc/shared_memory.py +64 -11
- exonware/xwsystem/monitoring/__init__.py +7 -0
- exonware/xwsystem/monitoring/base.py +11 -8
- exonware/xwsystem/monitoring/contracts.py +86 -144
- exonware/xwsystem/monitoring/defs.py +2 -1
- exonware/xwsystem/monitoring/error_recovery.py +16 -3
- exonware/xwsystem/monitoring/errors.py +2 -1
- exonware/xwsystem/monitoring/facade.py +183 -0
- exonware/xwsystem/monitoring/memory_monitor.py +1 -0
- exonware/xwsystem/monitoring/metrics.py +1 -0
- exonware/xwsystem/monitoring/performance_manager_generic.py +7 -7
- exonware/xwsystem/monitoring/performance_monitor.py +1 -0
- exonware/xwsystem/monitoring/performance_validator.py +1 -0
- exonware/xwsystem/monitoring/system_monitor.py +6 -5
- exonware/xwsystem/monitoring/tracing.py +18 -16
- exonware/xwsystem/monitoring/tracker.py +2 -1
- exonware/xwsystem/operations/__init__.py +5 -50
- exonware/xwsystem/operations/base.py +3 -44
- exonware/xwsystem/operations/contracts.py +25 -15
- exonware/xwsystem/operations/defs.py +1 -1
- exonware/xwsystem/operations/diff.py +5 -4
- exonware/xwsystem/operations/errors.py +1 -1
- exonware/xwsystem/operations/merge.py +6 -4
- exonware/xwsystem/operations/patch.py +5 -4
- exonware/xwsystem/patterns/__init__.py +1 -0
- exonware/xwsystem/patterns/base.py +2 -1
- exonware/xwsystem/patterns/context_manager.py +2 -1
- exonware/xwsystem/patterns/contracts.py +215 -256
- exonware/xwsystem/patterns/defs.py +2 -1
- exonware/xwsystem/patterns/dynamic_facade.py +1 -0
- exonware/xwsystem/patterns/errors.py +2 -4
- exonware/xwsystem/patterns/handler_factory.py +2 -3
- exonware/xwsystem/patterns/import_registry.py +1 -0
- exonware/xwsystem/patterns/object_pool.py +1 -0
- exonware/xwsystem/patterns/registry.py +4 -43
- exonware/xwsystem/plugins/__init__.py +2 -1
- exonware/xwsystem/plugins/base.py +6 -5
- exonware/xwsystem/plugins/contracts.py +94 -158
- exonware/xwsystem/plugins/defs.py +2 -1
- exonware/xwsystem/plugins/errors.py +2 -1
- exonware/xwsystem/py.typed +3 -0
- exonware/xwsystem/query/__init__.py +36 -0
- exonware/xwsystem/query/contracts.py +56 -0
- exonware/xwsystem/query/errors.py +22 -0
- exonware/xwsystem/query/registry.py +128 -0
- exonware/xwsystem/runtime/__init__.py +2 -1
- exonware/xwsystem/runtime/base.py +4 -3
- exonware/xwsystem/runtime/contracts.py +39 -60
- exonware/xwsystem/runtime/defs.py +2 -1
- exonware/xwsystem/runtime/env.py +11 -9
- exonware/xwsystem/runtime/errors.py +2 -1
- exonware/xwsystem/runtime/reflection.py +3 -2
- exonware/xwsystem/security/__init__.py +68 -11
- exonware/xwsystem/security/audit.py +167 -0
- exonware/xwsystem/security/base.py +121 -24
- exonware/xwsystem/security/contracts.py +91 -146
- exonware/xwsystem/security/crypto.py +17 -16
- exonware/xwsystem/security/defs.py +2 -1
- exonware/xwsystem/security/errors.py +2 -1
- exonware/xwsystem/security/facade.py +321 -0
- exonware/xwsystem/security/file_security.py +330 -0
- exonware/xwsystem/security/hazmat.py +11 -8
- exonware/xwsystem/security/monitor.py +372 -0
- exonware/xwsystem/security/path_validator.py +140 -18
- exonware/xwsystem/security/policy.py +357 -0
- exonware/xwsystem/security/resource_limits.py +1 -0
- exonware/xwsystem/security/validator.py +455 -0
- exonware/xwsystem/shared/__init__.py +14 -1
- exonware/xwsystem/shared/base.py +285 -2
- exonware/xwsystem/shared/contracts.py +415 -126
- exonware/xwsystem/shared/defs.py +2 -1
- exonware/xwsystem/shared/errors.py +2 -2
- exonware/xwsystem/shared/xwobject.py +316 -0
- exonware/xwsystem/structures/__init__.py +1 -0
- exonware/xwsystem/structures/base.py +3 -2
- exonware/xwsystem/structures/circular_detector.py +15 -14
- exonware/xwsystem/structures/contracts.py +53 -76
- exonware/xwsystem/structures/defs.py +2 -1
- exonware/xwsystem/structures/errors.py +2 -1
- exonware/xwsystem/structures/tree_walker.py +2 -1
- exonware/xwsystem/threading/__init__.py +21 -4
- exonware/xwsystem/threading/async_primitives.py +6 -5
- exonware/xwsystem/threading/base.py +3 -2
- exonware/xwsystem/threading/contracts.py +87 -143
- exonware/xwsystem/threading/defs.py +2 -1
- exonware/xwsystem/threading/errors.py +2 -1
- exonware/xwsystem/threading/facade.py +175 -0
- exonware/xwsystem/threading/locks.py +1 -0
- exonware/xwsystem/threading/safe_factory.py +1 -0
- exonware/xwsystem/utils/__init__.py +40 -0
- exonware/xwsystem/utils/base.py +22 -21
- exonware/xwsystem/utils/contracts.py +50 -73
- exonware/xwsystem/utils/dt/__init__.py +19 -3
- exonware/xwsystem/utils/dt/base.py +5 -4
- exonware/xwsystem/utils/dt/contracts.py +22 -29
- exonware/xwsystem/utils/dt/defs.py +2 -1
- exonware/xwsystem/utils/dt/errors.py +2 -5
- exonware/xwsystem/utils/dt/formatting.py +88 -2
- exonware/xwsystem/utils/dt/humanize.py +10 -9
- exonware/xwsystem/utils/dt/parsing.py +56 -5
- exonware/xwsystem/utils/dt/timezone_utils.py +2 -24
- exonware/xwsystem/utils/errors.py +2 -4
- exonware/xwsystem/utils/paths.py +1 -0
- exonware/xwsystem/utils/string.py +49 -0
- exonware/xwsystem/utils/test_runner.py +185 -0
- exonware/xwsystem/utils/utils_contracts.py +2 -1
- exonware/xwsystem/utils/web.py +110 -0
- exonware/xwsystem/validation/__init__.py +25 -1
- exonware/xwsystem/validation/base.py +6 -5
- exonware/xwsystem/validation/contracts.py +29 -41
- exonware/xwsystem/validation/data_validator.py +1 -0
- exonware/xwsystem/validation/declarative.py +11 -8
- exonware/xwsystem/validation/defs.py +2 -1
- exonware/xwsystem/validation/errors.py +2 -1
- exonware/xwsystem/validation/facade.py +198 -0
- exonware/xwsystem/validation/fluent_validator.py +22 -19
- exonware/xwsystem/validation/schema_discovery.py +210 -0
- exonware/xwsystem/validation/type_safety.py +2 -1
- exonware/xwsystem/version.py +2 -2
- {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/METADATA +71 -4
- exonware_xwsystem-0.1.0.3.dist-info/RECORD +337 -0
- exonware/xwsystem/cli/__init__.py +0 -43
- exonware/xwsystem/cli/console.py +0 -113
- exonware/xwsystem/cli/defs.py +0 -134
- exonware/xwsystem/conf.py +0 -44
- exonware/xwsystem/security/auth.py +0 -484
- exonware_xwsystem-0.1.0.1.dist-info/RECORD +0 -284
- {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/WHEEL +0 -0
- {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: exonware-xwsystem
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.3
|
|
4
4
|
Summary: Enterprise-grade Python framework with AI-powered performance optimization, 24 serialization formats, military-grade security, automatic memory leak prevention, circuit breakers, and production monitoring - replaces 50+ dependencies
|
|
5
5
|
Project-URL: Homepage, https://exonware.com
|
|
6
6
|
Project-URL: Repository, https://github.com/exonware/xwsystem
|
|
@@ -47,6 +47,7 @@ Requires-Dist: msgspec>=0.11.0; extra == 'full'
|
|
|
47
47
|
Requires-Dist: opentelemetry-api>=1.20.0; extra == 'full'
|
|
48
48
|
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == 'full'
|
|
49
49
|
Requires-Dist: orjson>=3.8.0; extra == 'full'
|
|
50
|
+
Requires-Dist: pandas>=1.3.0; extra == 'full'
|
|
50
51
|
Requires-Dist: protobuf>=3.19.0; extra == 'full'
|
|
51
52
|
Requires-Dist: psutil>=5.8.0; extra == 'full'
|
|
52
53
|
Requires-Dist: pyarrow>=8.0.0; extra == 'full'
|
|
@@ -65,6 +66,10 @@ Requires-Dist: tomli>=2.0.0; extra == 'full'
|
|
|
65
66
|
Requires-Dist: xmlschema>=2.0.0; extra == 'full'
|
|
66
67
|
Requires-Dist: xmltodict>=0.13.0; extra == 'full'
|
|
67
68
|
Requires-Dist: xxhash>=3.2.0; extra == 'full'
|
|
69
|
+
Provides-Extra: lazy
|
|
70
|
+
Requires-Dist: exonware-xwlazy>=1.0.1; extra == 'lazy'
|
|
71
|
+
Provides-Extra: windows
|
|
72
|
+
Requires-Dist: pywin32>=300; extra == 'windows'
|
|
68
73
|
Description-Content-Type: text/markdown
|
|
69
74
|
|
|
70
75
|
# 🚀 **XWSystem: The Revolutionary Python Framework That Changes Everything**
|
|
@@ -76,8 +81,8 @@ Description-Content-Type: text/markdown
|
|
|
76
81
|
**Company:** eXonware.com
|
|
77
82
|
**Author:** Eng. Muhammad AlShehri
|
|
78
83
|
**Email:** connect@exonware.com
|
|
79
|
-
**Version:** 0.1.0.
|
|
80
|
-
**Updated:**
|
|
84
|
+
**Version:** 0.1.0.3
|
|
85
|
+
**Updated:** 06-Feb-2026
|
|
81
86
|
|
|
82
87
|
## 🎯 **The Python Revolution Starts Here**
|
|
83
88
|
|
|
@@ -556,7 +561,7 @@ pip install exonware-xwsystem[full]
|
|
|
556
561
|
✅ **Atomic File Operations** - All-or-nothing writes
|
|
557
562
|
✅ **Automatic Backups** - Safety nets for critical files
|
|
558
563
|
✅ **Path Management** - Safe directory operations
|
|
559
|
-
✅ **Cross-Platform** - Windows/Linux/macOS compatibility
|
|
564
|
+
✅ **Cross-Platform** - Windows/Linux/macOS compatibility (see [Platform Compatibility](#-platform-compatibility) section)
|
|
560
565
|
✅ **Permission Handling** - Maintain file security
|
|
561
566
|
|
|
562
567
|
### 🔍 **Runtime Intelligence**
|
|
@@ -675,10 +680,13 @@ parquet_data = pqs.dumps(data) # Columnar format for analytics
|
|
|
675
680
|
## 📚 Documentation
|
|
676
681
|
|
|
677
682
|
- **[📖 Complete Documentation](docs/INDEX.md)** - Comprehensive documentation index
|
|
683
|
+
- **[🚀 Production Deployment Guide](docs/PRODUCTION_GUIDE.md)** - Production deployment best practices
|
|
684
|
+
- **[💼 Real-World Examples](docs/REAL_WORLD_EXAMPLES.md)** - Complete real-world usage scenarios
|
|
678
685
|
- **[🧠 Lazy Install System](docs/LAZY_INSTALL_SYSTEM.md)** - Revolutionary auto-installation guide
|
|
679
686
|
- **[⚡ Serialization Guide](docs/SERIALIZATION.md)** - 24+ serialization formats
|
|
680
687
|
- **[🔧 Development Guidelines](docs/DEV_GUIDELINES.md)** - Complete development standards
|
|
681
688
|
- **[Examples](examples/)** - Practical usage examples
|
|
689
|
+
- **[Production Examples](examples/production_deployment/)** - Production-ready examples
|
|
682
690
|
- **[Tests](tests/)** - Test suites and usage patterns
|
|
683
691
|
|
|
684
692
|
## 🔧 Development
|
|
@@ -834,6 +842,65 @@ cv2 = xwimport("cv2") # Watch the magic happen!
|
|
|
834
842
|
|
|
835
843
|
---
|
|
836
844
|
|
|
845
|
+
## 🌐 **Platform Compatibility**
|
|
846
|
+
|
|
847
|
+
XWSystem is **fully cross-platform** and works seamlessly on **Windows, Linux, and macOS**.
|
|
848
|
+
|
|
849
|
+
### **Supported Platforms**
|
|
850
|
+
|
|
851
|
+
✅ **Windows 10/11** - Fully supported
|
|
852
|
+
✅ **Linux** (Ubuntu, Debian, CentOS, etc.) - Fully supported
|
|
853
|
+
✅ **macOS** (10.14+) - Fully supported
|
|
854
|
+
|
|
855
|
+
### **Platform-Specific Features**
|
|
856
|
+
|
|
857
|
+
#### **Windows Optimizations**
|
|
858
|
+
- **Optional:** Install `pywin32` for optimized Windows named pipes:
|
|
859
|
+
```bash
|
|
860
|
+
pip install exonware-xwsystem[windows]
|
|
861
|
+
```
|
|
862
|
+
- Windows reserved filenames (CON, PRN, AUX, COM1-9, LPT1-9) are automatically blocked
|
|
863
|
+
- ProcessPoolExecutor automatically respects Windows 61-worker limit
|
|
864
|
+
- UTF-8 console encoding configured automatically
|
|
865
|
+
|
|
866
|
+
#### **Unix/Linux/macOS**
|
|
867
|
+
- POSIX-compliant file operations
|
|
868
|
+
- Unix domain sockets for IPC
|
|
869
|
+
- No worker limits for ProcessPoolExecutor
|
|
870
|
+
- Standard Unix path handling
|
|
871
|
+
|
|
872
|
+
### **Known Limitations**
|
|
873
|
+
|
|
874
|
+
⚠️ **Async Pipes on Windows:** `AsyncPipe.connect()` is not fully implemented on Windows. Use synchronous `Pipe` class or multiprocessing pipes instead.
|
|
875
|
+
|
|
876
|
+
⚠️ **WIM Format:** Requires external `wimlib` package on non-Windows systems:
|
|
877
|
+
```bash
|
|
878
|
+
# Ubuntu/Debian
|
|
879
|
+
sudo apt-get install wimtools
|
|
880
|
+
|
|
881
|
+
# macOS
|
|
882
|
+
brew install wimlib
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
### **Platform-Aware Defaults**
|
|
886
|
+
|
|
887
|
+
XWSystem automatically adapts to your platform:
|
|
888
|
+
- **Path length limits:** Windows (260), Linux (4096), macOS (1024)
|
|
889
|
+
- **Temporary directories:** Uses platform-appropriate temp directory
|
|
890
|
+
- **File locking:** Platform-optimized locking mechanisms
|
|
891
|
+
- **Process management:** Platform-specific signal handling
|
|
892
|
+
|
|
893
|
+
### **Testing**
|
|
894
|
+
|
|
895
|
+
XWSystem is tested on:
|
|
896
|
+
- ✅ Windows 10/11 (Primary development platform)
|
|
897
|
+
- ✅ Ubuntu 20.04/22.04 LTS
|
|
898
|
+
- ✅ macOS 12+ (Monterey, Ventura, Sonoma)
|
|
899
|
+
|
|
900
|
+
For detailed compatibility information, see [CROSS_PLATFORM_COMPATIBILITY_REPORT.md](CROSS_PLATFORM_COMPATIBILITY_REPORT.md).
|
|
901
|
+
|
|
902
|
+
---
|
|
903
|
+
|
|
837
904
|
**🏆 XWSystem: The Python Framework That Changes Everything**
|
|
838
905
|
|
|
839
906
|
**🧠 AI-Powered • 🛡️ Military-Grade Security • ⚡ 24+ Formats • 💾 Zero Memory Leaks • 🚀 Lazy Install**
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
exonware/__init__.py,sha256=POAlAs6tvwR79Qg7Q14vsu4I68zTTSWF07ier34r7PA,1207
|
|
2
|
+
exonware/conf.py,sha256=cI-6lw2dqcMXQA4l8v5MoOw5PJmHeIhDQJ8MK7SLQww,4382
|
|
3
|
+
exonware/xwsystem/__init__.py,sha256=AMkOOx3AtV2ninU0ttkCJj4o8wXYpFbExF9dBlKG_Fg,29783
|
|
4
|
+
exonware/xwsystem/base.py,sha256=yc5m0pWxe_RoULSYHU-6KCHqnwi0_PuKS3pO3V6RLfc,536
|
|
5
|
+
exonware/xwsystem/config.py,sha256=IwdG251IAERZBm3mo--nMYj5X0cElwEKj88GTe1JIsQ,601
|
|
6
|
+
exonware/xwsystem/contracts.py,sha256=Q9HF2nLJmBU1OGzohjVXmrmQFkHhIS81VfbcSGMwkLc,541
|
|
7
|
+
exonware/xwsystem/defs.py,sha256=MtwBOO58y9Th5cciU4X_0ywv48ugTlOn4QFgyeq5Fgo,317
|
|
8
|
+
exonware/xwsystem/errors.py,sha256=hE1oIB1rWToRgTNm9o8-tx5zvMSGw9SvxX60tJTxfec,383
|
|
9
|
+
exonware/xwsystem/facade.py,sha256=dWm1aS0DLOTCh4BpyKuoE6Y1CBo5OUGYt9O-C6cZ5go,1519
|
|
10
|
+
exonware/xwsystem/py.typed,sha256=ucCOQWK4hlbAR8Wrksq-DbbjidOCMkCR4nh7hGackEY,85
|
|
11
|
+
exonware/xwsystem/version.py,sha256=zK-PwmDBx9v8KiJHHLReagKqj7HbGsCmRABIL6kuULs,2349
|
|
12
|
+
exonware/xwsystem/caching/__init__.py,sha256=lcWIMMQjm_85mNRK3xbAHhhujjv0_Xg3GUiFS-k6VQ4,7196
|
|
13
|
+
exonware/xwsystem/caching/base.py,sha256=nq9cRCdRJd1RyR_Glt3y4-vs0UwfzO7eTmYFRw_Ie2Y,8125
|
|
14
|
+
exonware/xwsystem/caching/bloom_cache.py,sha256=xO0jwganzL3jA8yqifTCsMjxOK7jnaf1dxFU4zviUqk,6654
|
|
15
|
+
exonware/xwsystem/caching/cache_manager.py,sha256=DYv5fY4NlyYDG3FkK4e8CGeYdpSV5HLEb1CWhvb6As0,520
|
|
16
|
+
exonware/xwsystem/caching/conditional.py,sha256=chOTOIzHoegXZ9Lw62Mpzx8gT8C3w5jeipciUAPBdqA,4807
|
|
17
|
+
exonware/xwsystem/caching/contracts.py,sha256=cAhyhN_2gu4nCr6JfA5N_fIps-kXmIdT6pzCqWbmhcg,18280
|
|
18
|
+
exonware/xwsystem/caching/decorators.py,sha256=ON7cZqTetMbMHuFy7KMCm6RP_UEYLkydcupQNhuDU54,8046
|
|
19
|
+
exonware/xwsystem/caching/defs.py,sha256=IiCdyICmtmXtULNtKIiuHG-baAL5T2pnyCb_lT2CloE,1392
|
|
20
|
+
exonware/xwsystem/caching/disk_cache.py,sha256=S0b28FY4QOSFTtKeyu2uvx0o-cnDa0c15UEhwwgYYXo,11414
|
|
21
|
+
exonware/xwsystem/caching/distributed.py,sha256=ics8Ms36DWExyGkDPos6R_vjN71R_-moA8irI2rcQHU,1489
|
|
22
|
+
exonware/xwsystem/caching/errors.py,sha256=8c8nHDYYdGjkmQBqpkfc_KKqB4UgUdSzE2dTrPs8jo4,2107
|
|
23
|
+
exonware/xwsystem/caching/events.py,sha256=2HjePQ5sgHgRsxSr0pOaeqUqxXCCEUvCjp2ubAdRVK8,9050
|
|
24
|
+
exonware/xwsystem/caching/eviction_strategies.py,sha256=K5l4IHfE1VFqv0pQXy0jaaPtQmfMt3FVMlmW98v8pGA,8353
|
|
25
|
+
exonware/xwsystem/caching/external_caching_python.py,sha256=MOGUzAKdqB5OUikoM8VMIi5ruyvvRF2SzMGEg9QGhEg,21848
|
|
26
|
+
exonware/xwsystem/caching/facade.py,sha256=AsLwOnbCwtbf63AWQNpcMxAIXjJ-XtNiUC4qweN1fUU,7892
|
|
27
|
+
exonware/xwsystem/caching/factory.py,sha256=kVFe69fKEHklR-nCGODh0OE1MV6Ygjdez81Sx_mWvfM,10659
|
|
28
|
+
exonware/xwsystem/caching/fluent.py,sha256=_pPfqYllfJGAW0CZS9mloz0j9Col3l0h5AkGaB4rAwM,3338
|
|
29
|
+
exonware/xwsystem/caching/integrity.py,sha256=Y8ul-nqu54FD-ZE2RyIluIn-eXp1iWAohzAgPBsN6mU,4113
|
|
30
|
+
exonware/xwsystem/caching/lfu_cache.py,sha256=41pmRDMV-YaL4om3GL5nCQKZhUcjdqHYoHUxvGT1aSc,9617
|
|
31
|
+
exonware/xwsystem/caching/lfu_optimized.py,sha256=wXZUuZ7OWbfgX6IXexP-tEFcbWXlLSPiI1qG0byvJh4,18610
|
|
32
|
+
exonware/xwsystem/caching/lru_cache.py,sha256=a2P9Tb81CCrNeok8z2DMaQmIQhLUa-iJORJo7gLgT1c,19882
|
|
33
|
+
exonware/xwsystem/caching/memory_bounded.py,sha256=BOdFlI13WSKxE6Es0K4TSz2c0F_WlHGUtrmKauyOfu8,9894
|
|
34
|
+
exonware/xwsystem/caching/metrics_exporter.py,sha256=-ONHWabI3uD1qRd5cAdGW-mItjlCxHpubeV5osjboRs,6868
|
|
35
|
+
exonware/xwsystem/caching/observable_cache.py,sha256=5d3trZAeCwoFt5TTQh67CJ9vf8aTGBzt0X05dm7468s,4568
|
|
36
|
+
exonware/xwsystem/caching/pluggable_cache.py,sha256=3nQMrHURHTk_xqAH2ZRivF5Fzld46vcwmiToCxjL8-g,7528
|
|
37
|
+
exonware/xwsystem/caching/rate_limiter.py,sha256=WIXRqnzhFyQxCxsFn3q6hoOBDarNx8hZypsmXYVpHYk,7741
|
|
38
|
+
exonware/xwsystem/caching/read_through.py,sha256=f8uAYcseR0jDHqyADrjf6E7c3EC3eV4tXFGS4y5uplY,7360
|
|
39
|
+
exonware/xwsystem/caching/secure_cache.py,sha256=sSVrRkiVf7Irip6cBAjfa9gmRC2YwhoiiO6SY32lKyc,12264
|
|
40
|
+
exonware/xwsystem/caching/serializable.py,sha256=Ucexbsirm3W7k79ZAF8carlAYp-hPCTEjiuGQ66gpPM,5089
|
|
41
|
+
exonware/xwsystem/caching/stats.py,sha256=6_Hy9Cda8lhb_RmWqZozNliZaM5bM4ofKaew5po5eD8,5853
|
|
42
|
+
exonware/xwsystem/caching/tagging.py,sha256=Vs0OLnnAfMIxWQs7LeEBN-BQw11jGGzhINoV-D6Sty8,5704
|
|
43
|
+
exonware/xwsystem/caching/ttl_cache.py,sha256=DYoyZQytYWht_J4U61dAlCQKPZ5-9MZ65_QckZB0SA0,18242
|
|
44
|
+
exonware/xwsystem/caching/two_tier_cache.py,sha256=NdhM_U7yPGZ9a1zwC215t0tAcAim9Sq8i72P3nBdzsw,8925
|
|
45
|
+
exonware/xwsystem/caching/utils.py,sha256=CkIK0blVL_uJYHHrRd1ppQl39_0LtlyvPC4liB8zgTA,7093
|
|
46
|
+
exonware/xwsystem/caching/validation.py,sha256=K1SCqTKtZ1CZO1Fj50C0EexXxLmH4X2IO83wcwRbZ0M,6989
|
|
47
|
+
exonware/xwsystem/caching/warming.py,sha256=FZeZiL1koXPoOf52GAMBQShhTlf-4TxlXNGKQ8BrAtA,7255
|
|
48
|
+
exonware/xwsystem/caching/write_behind.py,sha256=2nmCpRXBNT_4pZ3jPZtjmB5JBJECc_4mKbG8TN4Lkzw,7199
|
|
49
|
+
exonware/xwsystem/config/__init__.py,sha256=WPkdGSqJbuMPdan_0c9oDrlBD1gVWKZJ23iTrfrZVw8,2364
|
|
50
|
+
exonware/xwsystem/config/base.py,sha256=399eMbOI8gXH71vaRMRNoo9Wzy34t2IDyZqix7dilKE,7831
|
|
51
|
+
exonware/xwsystem/config/contracts.py,sha256=fuK6Ez4lsn5lMezyy6mRGIRFRaflfq7vLUvSWLkU1Lk,19155
|
|
52
|
+
exonware/xwsystem/config/defaults.py,sha256=7-gZBLVAkC7y3JXIUJEDWmh0b_l64hnauQt6vNjhhQc,6072
|
|
53
|
+
exonware/xwsystem/config/defs.py,sha256=tejXMpOiux8dWMJj3uYGt0_G1K-zcZxIc09YzBzgM8I,2103
|
|
54
|
+
exonware/xwsystem/config/errors.py,sha256=rQobOqVE1Ui5InIpi06YxyJRyVL0D2Flf6lmA7to-hg,1682
|
|
55
|
+
exonware/xwsystem/config/logging.py,sha256=bdW03cNaokVT98nCsomkPu38UbDlvWXeDMVU53eNwCw,2759
|
|
56
|
+
exonware/xwsystem/config/logging_setup.py,sha256=L1SkQVwMOm1JtelxsrhP61ZhekkpUBOTTKAU2FtUPcE,3434
|
|
57
|
+
exonware/xwsystem/config/performance.py,sha256=EHvQHRNkfi2WRauyMh9FYWVX3I9JT9J9Sxh1PWT-i6g,3185
|
|
58
|
+
exonware/xwsystem/config/performance_modes.py,sha256=_vTl12IGx18fpkUtcZX4ib2i0GNm4eB0flBganVwFXc,39555
|
|
59
|
+
exonware/xwsystem/config/version_manager.py,sha256=gZv3oOmdyOe91bTIAghl9KTbIb_qlId52kTifpX0ew8,5358
|
|
60
|
+
exonware/xwsystem/console/__init__.py,sha256=iAQdBmtcvhCmCyxvbSjS1ONKXL3LpwF0Ykvjs6ittDU,1066
|
|
61
|
+
exonware/xwsystem/console/base.py,sha256=GuTEJHAjXQBAq63LaOd5RNFeZVkbUjBGYbzYYqg5d3s,3152
|
|
62
|
+
exonware/xwsystem/console/contracts.py,sha256=tjdEbUrhlDwh9pnPbaQdtxyBCJaqVIEEx5SBJVgdDD0,2702
|
|
63
|
+
exonware/xwsystem/console/defs.py,sha256=KJR3HQlPLFMf-XBJdBl0KxkueCF51cHMlMc_jKRf9Jc,3967
|
|
64
|
+
exonware/xwsystem/console/errors.py,sha256=V8xUKKhGS8PjnVC7Y0cDTtBmwFFj8cxj1sGjX7iA5hU,702
|
|
65
|
+
exonware/xwsystem/console/event_logger.py,sha256=M36kLaeMsAeRkwM2VczWOdd_RBnU-87nKCGL5HPuRNs,11928
|
|
66
|
+
exonware/xwsystem/console/writer.py,sha256=s-2tHrq-T0rYsaQiW4jfJNaSeH6mmbmtjQBnhCfi6hM,4088
|
|
67
|
+
exonware/xwsystem/console/cli/__init__.py,sha256=p9aVeO0dbgCZ27F4s4oR9k03i05y_UdUnbmmOH7wHxg,1503
|
|
68
|
+
exonware/xwsystem/console/cli/args.py,sha256=PFo_VdTMwzSEscV66tqdzqnjC0t9znL_Sb36TOZ1H74,12365
|
|
69
|
+
exonware/xwsystem/console/cli/base.py,sha256=83Ln38rQpNlS_3qVkpmQMIY3dWPrBoHc19dLdyTrD0Y,6819
|
|
70
|
+
exonware/xwsystem/console/cli/colors.py,sha256=hW3bOE7yA8lK9XtOSaIXRyglbHPzXHtR--3_3Pzn8aA,9591
|
|
71
|
+
exonware/xwsystem/console/cli/console.py,sha256=9rPtIrR6eKWaoX2AF1IMOqYmzUF1d1faYSrCJpC0U_s,3084
|
|
72
|
+
exonware/xwsystem/console/cli/contracts.py,sha256=KTTQt6tOdYXyWycflfZFGxUfE6SRyutyWXivkuYrx8E,4120
|
|
73
|
+
exonware/xwsystem/console/cli/defs.py,sha256=zqkAer4JwyjhwpwQQPZQQxuvPyGRGiwgXSt-z-f8KaQ,1854
|
|
74
|
+
exonware/xwsystem/console/cli/encoding.py,sha256=YARv4v8uo9dZ0RmT57ZAGqDWAQeQrEj7gDQiHO87qnQ,1868
|
|
75
|
+
exonware/xwsystem/console/cli/errors.py,sha256=V9_sN6G7BVKg0L4b2jEJwX6OgBNb7F2NRkOqKSzyDns,1630
|
|
76
|
+
exonware/xwsystem/console/cli/event_logger.py,sha256=A1ZAmI1L2HowTN5FjQBv955534esGi04S35YhKa9wTQ,5566
|
|
77
|
+
exonware/xwsystem/console/cli/progress.py,sha256=-hTbSt5z04YTY2WqIMgeeG9GvHeh3qHqHh5JBjluXVU,14154
|
|
78
|
+
exonware/xwsystem/console/cli/prompts.py,sha256=z1PuUmldkNgGB0DNd9IZ3PcIJLGfGU68KE9esXFqIjE,2926
|
|
79
|
+
exonware/xwsystem/console/cli/tables.py,sha256=ESlJt3ZwpzSqBGEaD45ac3mr4wrMD3pG6tbMHM1j0ws,8451
|
|
80
|
+
exonware/xwsystem/data_structures/__init__.py,sha256=TBq7L6rJ09QXv_ovj0-WsVsO8Lzm7d8zTeG2f6AQklM,522
|
|
81
|
+
exonware/xwsystem/data_structures/trie.py,sha256=4EFcJdlq1GTMAChyuGU6K9eogSH9BwBZnR0yPzavw0M,837
|
|
82
|
+
exonware/xwsystem/data_structures/union_find.py,sha256=4pTlw9Y-LrjI9Qjo4wo9yfc3NJbZFRyXanBmqtOgJ24,3582
|
|
83
|
+
exonware/xwsystem/http_client/__init__.py,sha256=cpxqZFOPlB7pNYOV1eYM6vY6DcERwm9KItABJUhqmEA,902
|
|
84
|
+
exonware/xwsystem/http_client/advanced_client.py,sha256=S2Yfpep5w-ZkKQkNhtkKRb1iEuAXJc0x__IC2FeSXMg,17664
|
|
85
|
+
exonware/xwsystem/http_client/base.py,sha256=XG_PlHYpTi-SdYguQ6mVeBHEdzw84I28BYtHpJwwcwc,7546
|
|
86
|
+
exonware/xwsystem/http_client/client.py,sha256=zT46I5eqadgTHTEQf4fF2EHd43XqdrKMA34T67qQMO0,18764
|
|
87
|
+
exonware/xwsystem/http_client/contracts.py,sha256=37er2WG__asFwhjDOt1399_AzQ4S_tK9wypQgY9xPl4,3442
|
|
88
|
+
exonware/xwsystem/http_client/defs.py,sha256=08Fli-QFaSG6wqfOIgOQoZckXCvr3WF8N8c8QaYXkFs,1482
|
|
89
|
+
exonware/xwsystem/http_client/errors.py,sha256=IM9G19TN34ChRtnZ5dZ8A6GXB_YVeGijWdeB0ajHgGE,1994
|
|
90
|
+
exonware/xwsystem/http_client/facade.py,sha256=fuzD4GFqPJpJjXYFcmtoZOLGYw7jmRA38fp5ScAIl44,4771
|
|
91
|
+
exonware/xwsystem/io/__init__.py,sha256=85hOpZURxblvkl_hOnW9HtEWrcFD4cLh5dAoHLne9WM,11599
|
|
92
|
+
exonware/xwsystem/io/base.py,sha256=_ekP9jS4NwtKzaT86y2kkJ5jUgV9E51T0k8wDWQuTJA,49695
|
|
93
|
+
exonware/xwsystem/io/contracts.py,sha256=VnXJnJ7DBP_rvQZh20NM_Ieexp04uI_S18i1UccC_xk,46306
|
|
94
|
+
exonware/xwsystem/io/contracts_1.py,sha256=zCoECK2JW12LcsULhZxnFKKdMlQ-wfzKF5S_eAOewTw,32753
|
|
95
|
+
exonware/xwsystem/io/data_operations.py,sha256=4B0tzvKocvtxiJwGG5FPG-GTimiq9wEwtjpmhaP7jjs,27031
|
|
96
|
+
exonware/xwsystem/io/defs.py,sha256=trqYnu2fj8rr29kcQhiD6v27PsHEUute3n6lCVuIs8k,6309
|
|
97
|
+
exonware/xwsystem/io/errors.py,sha256=m8TMpl9HY3MQ8z8ia2x1vhP4nb_uCibv-Zll-wKdvSc,9077
|
|
98
|
+
exonware/xwsystem/io/facade.py,sha256=m00CKurm0Lr4bGHrZx2FmHsAsSDO9l0WV0nsEm1WyEw,36234
|
|
99
|
+
exonware/xwsystem/io/path_parser.py,sha256=ireKHQ24cQKjK9fdws-LPXlUEhoUXW3BXqgKOb0ev8I,2824
|
|
100
|
+
exonware/xwsystem/io/source_reader.py,sha256=y9T3anRRMKoPOhtIlz1d9ctsuW4rXpYV-FYntR0qrH8,8069
|
|
101
|
+
exonware/xwsystem/io/archive/__init__.py,sha256=gP2e5lL8Jz1Cg63oO5rsoOBt8Y33MColI6Y2c-KXs2s,2780
|
|
102
|
+
exonware/xwsystem/io/archive/archive.py,sha256=ecyL-YaRqEz14QavUVScnsbch1-cEPxdeSMAsUWlpvU,3521
|
|
103
|
+
exonware/xwsystem/io/archive/archive_files.py,sha256=KhyFjUUB_cANlIJR77ayJfELZH9_yCkGKl9MKQA4dM0,7217
|
|
104
|
+
exonware/xwsystem/io/archive/archivers.py,sha256=IutcsUYuOpnpjG5LMWZ9GkxDKeqxyLQzgpDZL-lOwtM,14778
|
|
105
|
+
exonware/xwsystem/io/archive/base.py,sha256=vWGh9dZqDyNuj-ygeNwnAdhcTEW3htz910Mt4ghl5m4,12170
|
|
106
|
+
exonware/xwsystem/io/archive/codec_integration.py,sha256=o0GcQ3Gvvhu7JvCanNmx-4bKDYrom_YkrtNGWE7CHvs,1732
|
|
107
|
+
exonware/xwsystem/io/archive/compression.py,sha256=WAqUexJZNF1u87MPbOIqAaCncAwfeZy7DhWxeD4D5Ug,5575
|
|
108
|
+
exonware/xwsystem/io/archive/facade.py,sha256=RhfFi1pIFGmg9Nx4IAzH2HHqmyCnsIIYKgjW_SIMNb4,9261
|
|
109
|
+
exonware/xwsystem/io/archive/formats/__init__.py,sha256=_lpMAJ2_fizNKnwTBcrYzk52wEkUVNyxgMyZ-u1xl-8,5060
|
|
110
|
+
exonware/xwsystem/io/archive/formats/brotli_format.py,sha256=p0ZBom36sH0AH1kogXBiqpV1_jFxax5eOklcuRkZBDw,5780
|
|
111
|
+
exonware/xwsystem/io/archive/formats/lz4_format.py,sha256=8qPoaYVYfK6_WPjvZ9ytmK7Tf01B9sMGwVL6J4m5jts,5672
|
|
112
|
+
exonware/xwsystem/io/archive/formats/rar.py,sha256=WOGcRjxLJNX_6ksjNUNMf3V9b19lr4lg9O9tpNSvTzg,4315
|
|
113
|
+
exonware/xwsystem/io/archive/formats/sevenzip.py,sha256=UHdQS4mcIQejA_hg7Q6t9dpu7QpzeYk1cONOArgzIWs,4749
|
|
114
|
+
exonware/xwsystem/io/archive/formats/squashfs_format.py,sha256=ATNk6U1uLJOVz7uuF9ou8SQL0FGdLpHtAI1MoY7Op_c,5485
|
|
115
|
+
exonware/xwsystem/io/archive/formats/tar.py,sha256=4DAqDcyz5sDduCYKNpMY_1BLi7E9mMZL49xi2EmhoZU,5767
|
|
116
|
+
exonware/xwsystem/io/archive/formats/wim_format.py,sha256=ipfSp0_J7XP98accKB0qZHTZ5k7M1_DrRl3JNVKUa98,4524
|
|
117
|
+
exonware/xwsystem/io/archive/formats/zip.py,sha256=itPa_URWFAo-gEqnDFq8TFhlbazc5peEQyrXVw64T5w,3100
|
|
118
|
+
exonware/xwsystem/io/archive/formats/zpaq_format.py,sha256=K4RvULwcL1qGerS6PLFr66Q9iVbBonyP7p5eMBFf7eU,5201
|
|
119
|
+
exonware/xwsystem/io/archive/formats/zstandard.py,sha256=Uskxs__YWpZ-4QVvIpGRO_WnwZNvKbB0zNFB7Qnifmk,5879
|
|
120
|
+
exonware/xwsystem/io/codec/__init__.py,sha256=jd27ENOIwnnOVcvkRHayma1Ch5sb0KtZMWGKYgtZl7g,5034
|
|
121
|
+
exonware/xwsystem/io/codec/base.py,sha256=sDOS5mHJKxrMr0gzEJYLuSc_r0znN2nAqU0HdKkACNg,32488
|
|
122
|
+
exonware/xwsystem/io/codec/contracts.py,sha256=lqYci-B63_WayyGnlTTDqm-c25celThahoSO3TAlvLI,8287
|
|
123
|
+
exonware/xwsystem/io/codec/registry.py,sha256=BOSjvqK_rAsfspDaQd3EQs2dGKNX6Bk51E-IeJy723Q,30644
|
|
124
|
+
exonware/xwsystem/io/common/__init__.py,sha256=cEjvVPIERyo-CxBPz28WxIr3Tjn4UDWOWPYj3mj63Ck,2213
|
|
125
|
+
exonware/xwsystem/io/common/atomic.py,sha256=pIU3aZcmmaJQLrXC4YdrWKy1QoeMInzCQtGxKZAhAgE,15622
|
|
126
|
+
exonware/xwsystem/io/common/base.py,sha256=SvZsv_aMsxcH16xhUl92wTUasgsVtQDAu0V0cIIBWdg,4355
|
|
127
|
+
exonware/xwsystem/io/common/lock.py,sha256=4usNpyO5ECPQv3I4HArZ-sQHFPY1OZEcob2g3aSbrtc,3848
|
|
128
|
+
exonware/xwsystem/io/common/path_manager.py,sha256=G_mZgMirtRRMKEbElZRuqSsxYonbMnyE4pTnCtyhUwA,11456
|
|
129
|
+
exonware/xwsystem/io/common/watcher.py,sha256=FT4Ux_FTHlc9SG6OgHh5aDMf7APFefHl5rHZtr5gwtA,5168
|
|
130
|
+
exonware/xwsystem/io/file/__init__.py,sha256=QOgTcZhKPrkJYD_NwlelIi9AaiN2QSwB8pTG9Cgr-QI,2303
|
|
131
|
+
exonware/xwsystem/io/file/base.py,sha256=jw2f5uanViHTBzuCFdoZdWPUmzTF8E4PtQofCbhSR60,4013
|
|
132
|
+
exonware/xwsystem/io/file/conversion.py,sha256=bfPINZ49MI9yGh1JTa7FGW-ryXc5gvHr_3sNYXZKcnQ,8266
|
|
133
|
+
exonware/xwsystem/io/file/file.py,sha256=DW5FNfimKM4J6uGFOaahzQKCkKdhXiLbgAyqhM-R9V4,14388
|
|
134
|
+
exonware/xwsystem/io/file/paged_source.py,sha256=PcUU7tb9xDpRNfSQvIqX81oxBvQyTr26YDMhbZJEj88,5446
|
|
135
|
+
exonware/xwsystem/io/file/source.py,sha256=N1vZ63imsZpijoauy0PHftO8N4JUPc00lwhvEgwiKFY,6940
|
|
136
|
+
exonware/xwsystem/io/file/paging/__init__.py,sha256=gdK6Ef-66_5yUlNtY0iHjULJfPPqOr_2gwrK7nlQupM,1183
|
|
137
|
+
exonware/xwsystem/io/file/paging/byte_paging.py,sha256=ogpt9HVC2gqj-82QvLnkNaFZpo-Rffsuqh8Zmg9FlEU,1876
|
|
138
|
+
exonware/xwsystem/io/file/paging/line_paging.py,sha256=Kbxwjak-9VfkKmp8zWX155qZ28Mz6AlULM2w4D5I7p8,2249
|
|
139
|
+
exonware/xwsystem/io/file/paging/record_paging.py,sha256=QJaSeGyP3sBSc6dU02iSt_yS27lG0XK5DrcpezHbj9g,2827
|
|
140
|
+
exonware/xwsystem/io/file/paging/registry.py,sha256=_lkKDjUfXwB5UWuB4VKqWVUh6dy2txaZaWoDC110tT4,5362
|
|
141
|
+
exonware/xwsystem/io/filesystem/__init__.py,sha256=77jPM_nWs75XVf7K-lDHq6jtsZMBh4KjxJxzJmRg4L8,955
|
|
142
|
+
exonware/xwsystem/io/filesystem/base.py,sha256=XCMza8oDySBGNZgLJ4VTNFbSo4K_4b368QNarzikLxk,559
|
|
143
|
+
exonware/xwsystem/io/filesystem/local.py,sha256=QsdRPc550Ple2H2NwlqrYX3t6rI1Cgp32DBrTO78C0k,5110
|
|
144
|
+
exonware/xwsystem/io/folder/__init__.py,sha256=FKUzmkz2R-K6SETEZw4KjDguHNY81OLgjuBElGLk0Ko,561
|
|
145
|
+
exonware/xwsystem/io/folder/base.py,sha256=prr2F335fIjPfgGRHpSw4Z5Zeq7gmeIMxmt9ZL4yTcY,882
|
|
146
|
+
exonware/xwsystem/io/folder/folder.py,sha256=xcpPuHUEFeCrtpnQI7QuHH0umDbi0AuEnrctNRt5kRU,9295
|
|
147
|
+
exonware/xwsystem/io/indexing/__init__.py,sha256=WImCXi-_3dqTQWwL2QGITfFKXT1Tqsr2BrnUdANaqAs,321
|
|
148
|
+
exonware/xwsystem/io/indexing/facade.py,sha256=h6V0AOKFTYUqgFMeiq2oYrM2_NZ5_UXTpDPm9ix_Vq8,13586
|
|
149
|
+
exonware/xwsystem/io/serialization/__init__.py,sha256=DTpSmq0Tdoe0r3U5TfeayR6Y-6oQWubFBCTKjUtkSbE,5491
|
|
150
|
+
exonware/xwsystem/io/serialization/auto_serializer.py,sha256=Gvc6YfWxUTf9VqVEMbwJN-n-zA4Lv5tvdiYY_SuzZA8,22743
|
|
151
|
+
exonware/xwsystem/io/serialization/base.py,sha256=gkTn5I5i8ha6DZhwIFgLiwxj6hthenkNQfwBaKHKqlw,43881
|
|
152
|
+
exonware/xwsystem/io/serialization/contracts.py,sha256=mnwpuzg4TurV7oua6iy1Z8MaYZFsnBP_KhSCJM7TDug,15791
|
|
153
|
+
exonware/xwsystem/io/serialization/defs.py,sha256=S05fkuwDNoRXaMlZ4pxaIiJa5Gfp0tTMWLvGbPchnzA,2312
|
|
154
|
+
exonware/xwsystem/io/serialization/errors.py,sha256=hj9ZkETE_XJwAHNcC4W9h--9ZA0MBnF5B_DXVTThd4k,3634
|
|
155
|
+
exonware/xwsystem/io/serialization/flyweight.py,sha256=v2f4fHebjaOXEL5NEqA9171xyIiMyqkEN0m14dJ8mxc,21309
|
|
156
|
+
exonware/xwsystem/io/serialization/format_detector.py,sha256=q4bGsG7htH6glcQImAMt5I4E6TasGjpVh8lqsehS-tc,14087
|
|
157
|
+
exonware/xwsystem/io/serialization/registry.py,sha256=hJ76UH-WU4M5HqHBy8CsHYrH5pvXwVtIMufN_3aZpcg,5551
|
|
158
|
+
exonware/xwsystem/io/serialization/serializer.py,sha256=2I2QUpgmeWtcNUMJTjISVz4Ku4teFWYRSZlYu3J9N34,50963
|
|
159
|
+
exonware/xwsystem/io/serialization/universal_options.py,sha256=S_WqEkpdQK_VHqUDoSgCl6iooz9b6Xu5Sr0wt8y12Hk,12316
|
|
160
|
+
exonware/xwsystem/io/serialization/formats/__init__.py,sha256=h5ENisHFjJOGZOV-DHleHQzJTlYjXoQ4YVJa2y-R99o,513
|
|
161
|
+
exonware/xwsystem/io/serialization/formats/binary/__init__.py,sha256=CzSOq5IBPBuAGNRcyoWupauDcwDO-bFlRWVYb_Z6sgw,714
|
|
162
|
+
exonware/xwsystem/io/serialization/formats/binary/bson.py,sha256=81GP2Qhc_ndmKwYbcEgE_z0ZSUE1N5Jq8FvgDrcTkX0,5203
|
|
163
|
+
exonware/xwsystem/io/serialization/formats/binary/cbor.py,sha256=83mn_j_-gMJu51rgfzoz_b_ODuGn6HXljvykVDOOYY0,4694
|
|
164
|
+
exonware/xwsystem/io/serialization/formats/binary/marshal.py,sha256=wTRbs-m4t34i7bWv7d9_YSzXauwsXaUKf0CS--iTU8w,4526
|
|
165
|
+
exonware/xwsystem/io/serialization/formats/binary/msgpack.py,sha256=g6ypIp3-HFP44vj0pzQ44cx4VkJYoydJ-GtbBytvicI,5548
|
|
166
|
+
exonware/xwsystem/io/serialization/formats/binary/pickle.py,sha256=L9PrGeKjX5PVKMfDDtKZaUCH8m_wIRaVgm0KPL4dPu8,5157
|
|
167
|
+
exonware/xwsystem/io/serialization/formats/binary/plistlib.py,sha256=0N2_3LVXUzGla9LKS5y9XekYkT6w2PXIpHtFng81qbo,4953
|
|
168
|
+
exonware/xwsystem/io/serialization/formats/database/__init__.py,sha256=hlc8iUbNCWLYuCiZMVnDX6R0r-l_aWjq4FF7XzJCg7I,683
|
|
169
|
+
exonware/xwsystem/io/serialization/formats/database/dbm.py,sha256=JmKtPyFUNytuxK3NRTihLLXMMbyd6SYkS8-M0__z9PI,3902
|
|
170
|
+
exonware/xwsystem/io/serialization/formats/database/shelve.py,sha256=w43t9XIbntltODGJutOxy3PqoB6o4fyclFbbGHNqiwE,3810
|
|
171
|
+
exonware/xwsystem/io/serialization/formats/database/sqlite3.py,sha256=NOYKl2pa_mdQw5zKSy7LaeU17RzzTsOmrgsjH6dI1fQ,5470
|
|
172
|
+
exonware/xwsystem/io/serialization/formats/tabular/__init__.py,sha256=yHiv9TVy4T3kx9QjntXOPe6LQv__6ceReY2Kn9BjB3s,754
|
|
173
|
+
exonware/xwsystem/io/serialization/formats/tabular/base.py,sha256=ez1SqNwqWYuVbUEhDlevEP86GfymptTAIRQx_vYOqh8,2707
|
|
174
|
+
exonware/xwsystem/io/serialization/formats/tabular/csv.py,sha256=h9dVnx3zd-8wxeNid7ft_IFLQ6FKETssBoYc6z-BUIg,10103
|
|
175
|
+
exonware/xwsystem/io/serialization/formats/tabular/df.py,sha256=yGUgfD9jNxHSA79SKtLubhtjiuxHy3sZpzhxMGlsl5o,7697
|
|
176
|
+
exonware/xwsystem/io/serialization/formats/tabular/excel.py,sha256=_5qRC7hb7FddCilylhzYKF0MffbxU6ZwT2REPYtTQ1k,10117
|
|
177
|
+
exonware/xwsystem/io/serialization/formats/tabular/googlesheets.py,sha256=hjalixR792SS1hZTbKFNQFFCuWPR2ekeQfIubulW5d0,13897
|
|
178
|
+
exonware/xwsystem/io/serialization/formats/text/__init__.py,sha256=i6SCDLmbTfVOnL_0QfUmfwqSs3q2obzHsFIaEJUQCnw,778
|
|
179
|
+
exonware/xwsystem/io/serialization/formats/text/append_only_log.py,sha256=cTD6fzazrFa8ZNOe75SL6NwpDlQKQZVib4LroG-oXJU,7190
|
|
180
|
+
exonware/xwsystem/io/serialization/formats/text/configparser.py,sha256=ngxPffRNaDnkEYHhNtaVufZHOjuhje8dmv5Ge86hC8o,5770
|
|
181
|
+
exonware/xwsystem/io/serialization/formats/text/csv.py,sha256=DsFoR62IlL9f2e-XxOp6RgGUi-n90YxCTLGIxZ-nJgo,6580
|
|
182
|
+
exonware/xwsystem/io/serialization/formats/text/formdata.py,sha256=rlGAc4R7UtfPj-8YYR0ybe91MaxcsEI6_-FzYRIGkb4,5281
|
|
183
|
+
exonware/xwsystem/io/serialization/formats/text/json.py,sha256=KkntkWwXFi42eWDx4stxWZUn7mX9epnLvmPPZYrFSK0,15785
|
|
184
|
+
exonware/xwsystem/io/serialization/formats/text/json5.py,sha256=5hq-GK1PaJQdl18chOxKzAnA-oB0JiEXsP2e1ogmFVI,7573
|
|
185
|
+
exonware/xwsystem/io/serialization/formats/text/jsonlines.py,sha256=w9vk8TeSLyFtX8wdXrMrfs86PfVbK685dAezay73sFw,14936
|
|
186
|
+
exonware/xwsystem/io/serialization/formats/text/multipart.py,sha256=RVCm-d-R2_j0NQEaHazHOi00HaVQA1Kg6EvxFUm_qs8,6870
|
|
187
|
+
exonware/xwsystem/io/serialization/formats/text/toml.py,sha256=0KyJc0hGqT21lIzc4rEG2AnueBzA_EIwJacePO0znl0,8932
|
|
188
|
+
exonware/xwsystem/io/serialization/formats/text/xml.py,sha256=DaLgpuG4qhLrUr8erVCWJvdBoFkRVvf6LKjzkIX30Ys,24363
|
|
189
|
+
exonware/xwsystem/io/serialization/formats/text/yaml.py,sha256=H7tKmBXac1NzKI8gMrIJXz52Ltmy6cCYcLcuZ6DM5HE,7312
|
|
190
|
+
exonware/xwsystem/io/serialization/parsers/__init__.py,sha256=SwD3Zwh53bvv1daaMehIupwad2m3pJtkPtOuW8OWFRQ,529
|
|
191
|
+
exonware/xwsystem/io/serialization/parsers/base.py,sha256=2HWQYk0xMH830DxxhndAy0Fb3mCgZyhzUDxmsSQ14Mk,1502
|
|
192
|
+
exonware/xwsystem/io/serialization/parsers/hybrid_parser.py,sha256=orvd4dS5OgkJmUsWsnfOov7K-7KeIYYCRrhury9MrOY,1984
|
|
193
|
+
exonware/xwsystem/io/serialization/parsers/msgspec_parser.py,sha256=QfiflNFGGkmw_jqJOEiTE3IFUNjvl9zD726VTEEGko4,1376
|
|
194
|
+
exonware/xwsystem/io/serialization/parsers/orjson_direct_parser.py,sha256=sQT5Pi7YkcBl7vPztGLHBPBeO49Ze3-Ji1BUDNA-Ppk,1668
|
|
195
|
+
exonware/xwsystem/io/serialization/parsers/orjson_parser.py,sha256=B1adNgagZAGuNglDkDfTwLmx6_KDqN4Gr7zG3hhK0Ns,1749
|
|
196
|
+
exonware/xwsystem/io/serialization/parsers/pysimdjson_parser.py,sha256=hBWgaSRf_uc-O2M13Ljfc-rSH6Bf43hCBprr0HpGpoI,1782
|
|
197
|
+
exonware/xwsystem/io/serialization/parsers/rapidjson_parser.py,sha256=fOFqvq7Wqtw3x2KieveUKw5zNe7WpZyHy1_hCEVv1Qc,1546
|
|
198
|
+
exonware/xwsystem/io/serialization/parsers/registry.py,sha256=Hac2gMrsClHCIQte_T_YWRDWFk7txpj8N6QDeyT3hSI,2692
|
|
199
|
+
exonware/xwsystem/io/serialization/parsers/standard.py,sha256=XfR6oQaDsXRodUAEXNoP2dz_TMf9pR_KZQJ4kY_cAFs,1265
|
|
200
|
+
exonware/xwsystem/io/serialization/parsers/ujson_parser.py,sha256=ix4MdGuO6T87X-zYYfksSEFid96UHsCs0DCjGa790LE,1456
|
|
201
|
+
exonware/xwsystem/io/serialization/utils/__init__.py,sha256=cq8H13Vuv7spz42q9z1zfdh5ja_BJT-fJMW4BqCqCbM,666
|
|
202
|
+
exonware/xwsystem/io/serialization/utils/path_ops.py,sha256=ZtKt67HkEq8jf7H_hUeeCgIkEZ7PSmSObgQAtp-l6wI,8882
|
|
203
|
+
exonware/xwsystem/io/stream/__init__.py,sha256=gPtc0YJZVXXWxnuKgbRmkLPPlZMqnH2YpfLNcrijvT0,1283
|
|
204
|
+
exonware/xwsystem/io/stream/async_operations.py,sha256=QmNsc8S_9GfvT1CrEL-Z7MY4o40xWqEwJRXG32k4JoM,18708
|
|
205
|
+
exonware/xwsystem/io/stream/base.py,sha256=z1T-U0HFSzyflvdfGmK3GgRoJP4Z9moho1KDdvdmQuw,926
|
|
206
|
+
exonware/xwsystem/io/stream/codec_io.py,sha256=7snPtxHjUZL716QbIprri0iKoV-r90BHiByj7gMsyhY,15503
|
|
207
|
+
exonware/xwsystem/ipc/__init__.py,sha256=aGIsdIZK4r8Lv6aD2AfJqSAK_3Gtujp2tC2OFbfh8Ec,1034
|
|
208
|
+
exonware/xwsystem/ipc/async_fabric.py,sha256=foidzjJpscRPArUVW09VedH3G_VqmoRWVY0PpQDb_7A,13543
|
|
209
|
+
exonware/xwsystem/ipc/base.py,sha256=tWIBxb0rh3p6koAmoEJUOFZjw5S1D7g7_3_A5QKKld0,9426
|
|
210
|
+
exonware/xwsystem/ipc/contracts.py,sha256=14KGa5xKn2FdS1DUkd_SFC4YUtT234FVOwCSebLd0vE,4103
|
|
211
|
+
exonware/xwsystem/ipc/defs.py,sha256=7ljWck4CYmbM5jg_vi8yYeW1_0PDCe2aG_7Khv0kCLQ,1466
|
|
212
|
+
exonware/xwsystem/ipc/errors.py,sha256=4PPY6-ut_peUhkc0ajurata-_Z6tHvfzXgspB3s_j0o,2390
|
|
213
|
+
exonware/xwsystem/ipc/message_queue.py,sha256=Lp3Ka8s7cgS0RqcPwUQJ4EdTOU0VnoBj0D5Fk8ebpwk,12696
|
|
214
|
+
exonware/xwsystem/ipc/pipes.py,sha256=hMtv9iC8MHMSIj6kDzhLFlFWckQ1VVNRGG2NWJ4N3GY,19747
|
|
215
|
+
exonware/xwsystem/ipc/process_manager.py,sha256=zEkHBLLMNU-u-V6agJsn5FNctp8wBeMlIvv9_PnbMd4,11545
|
|
216
|
+
exonware/xwsystem/ipc/process_pool.py,sha256=IMejLrPOyjOM-y4dEkWSDreRqJ58atkEVkrv5hdodb0,15388
|
|
217
|
+
exonware/xwsystem/ipc/shared_memory.py,sha256=6a-jfcz-aVdmWPAYA5gKXj5JpGNteNcOikMzaj1N8Vw,16315
|
|
218
|
+
exonware/xwsystem/monitoring/__init__.py,sha256=1g-vSb3jA3J7DjV4zqwBxhFyOu2ac08Ade_8FpQVkz4,3961
|
|
219
|
+
exonware/xwsystem/monitoring/base.py,sha256=zyJprbsBOH5xejpom6gw1HMBePJ4Z4MYw4NcwCILpo8,9585
|
|
220
|
+
exonware/xwsystem/monitoring/contracts.py,sha256=hCcsOuClnek4mRbyTmyFqjG2XAr6H_Gbaag5KJRrmJA,18166
|
|
221
|
+
exonware/xwsystem/monitoring/defs.py,sha256=aK8piZuFbFnQNghOGGaVpjrswnCVH3EomEDLWCKLIsA,1646
|
|
222
|
+
exonware/xwsystem/monitoring/error_recovery.py,sha256=4A8DZry-6jNs_9yO9LyiSRiI1Kpu7KKLHFCUmmlpuQc,20526
|
|
223
|
+
exonware/xwsystem/monitoring/errors.py,sha256=HoVL3oyV4gHJ7jVzpl6Jo60tFlkP_clcpRWioCY5rY4,2745
|
|
224
|
+
exonware/xwsystem/monitoring/facade.py,sha256=FGFSECv7wzH6Wj8E9Ba9QwxddsPtbeixZKs-X2z9DvE,4952
|
|
225
|
+
exonware/xwsystem/monitoring/memory_monitor.py,sha256=MsjkFoXeicUjsSAavJBJVkImjfeKIktO2tkMOcp7eQ4,14168
|
|
226
|
+
exonware/xwsystem/monitoring/metrics.py,sha256=1ouKXTQuxGBVxtPi-fTS922ozgqMG2R4dGeNAdwOwi4,12646
|
|
227
|
+
exonware/xwsystem/monitoring/performance_manager_generic.py,sha256=qlzh6KeBRYqy-KC4VDNXMZZ6g3LYB-QPTTAJgsPdkuk,17755
|
|
228
|
+
exonware/xwsystem/monitoring/performance_monitor.py,sha256=qxOK-0Odg6r5by6qyFvU6n0FnXvJrp_rM5ZZKJBn4v0,12568
|
|
229
|
+
exonware/xwsystem/monitoring/performance_validator.py,sha256=_1S0c-YEXGcqjWrlZn2yY1YtEM7Mx1T0U0ixrGZha0U,19755
|
|
230
|
+
exonware/xwsystem/monitoring/system_monitor.py,sha256=Sg6XmQA4uGAOUv66F-_nXwk0vq8h4hySxUZTXgBR4Po,21892
|
|
231
|
+
exonware/xwsystem/monitoring/tracing.py,sha256=nsCMeI9QLZ5Yb5O-PtD9VyqIkGOwlravYtylkLMpJLI,15640
|
|
232
|
+
exonware/xwsystem/monitoring/tracker.py,sha256=Em-AXzuteIxW9h37aPipAf0E6g3ldlGt6uFUMtIVwQk,9644
|
|
233
|
+
exonware/xwsystem/operations/__init__.py,sha256=8d7Vcug1lryRNYBif1Rp-qWkTpqcRxlAe08yn_iuiyo,1300
|
|
234
|
+
exonware/xwsystem/operations/base.py,sha256=KDn60RD0O5HlQ-pVtrkFzolerDll5ZPDBqP_aeYE-0U,870
|
|
235
|
+
exonware/xwsystem/operations/contracts.py,sha256=NXyAThwGLx6EjajLgVtzJx9mvG_JWHBEDSeLFHEuKC0,1605
|
|
236
|
+
exonware/xwsystem/operations/defs.py,sha256=fNqR_bLngbl7B_FQA4T6r86ENENGfsTbfYx2c3TY4ms,1569
|
|
237
|
+
exonware/xwsystem/operations/diff.py,sha256=6wneQwDo1YIFbsqHo7ZV6zgS6R9M5zY3C4zIUwbTVo4,8706
|
|
238
|
+
exonware/xwsystem/operations/errors.py,sha256=ObcMnZsprwzjvCStoidYwdjyZLXnp_aiBM3RTNcuCHk,801
|
|
239
|
+
exonware/xwsystem/operations/merge.py,sha256=rH7waqmPl9uurgVfRdSORrBTUphk_K98tcSzM8XjF4Y,5643
|
|
240
|
+
exonware/xwsystem/operations/patch.py,sha256=Zxi_VZHx1mJ9iIHjIWJhzTZQMFSYoFxZ-RBrGKpuRog,8514
|
|
241
|
+
exonware/xwsystem/patterns/__init__.py,sha256=W-YwdoOwwhPysWfs-v10oOavqDYTJOyo695y8R7e4nU,1089
|
|
242
|
+
exonware/xwsystem/patterns/base.py,sha256=b-LOTKRodkc2dTIHwubkyqd8z4oNDt-i_PLzl2NFe88,3600
|
|
243
|
+
exonware/xwsystem/patterns/context_manager.py,sha256=FqK8MNHc6EwU6VK_KbAE5mvF5UCrX1O68GVf2lnB4LU,10904
|
|
244
|
+
exonware/xwsystem/patterns/contracts.py,sha256=o_ISyY9IQeVvoNJdOP_I_oG2A9aQlJcRDzEvl7XsGio,15886
|
|
245
|
+
exonware/xwsystem/patterns/defs.py,sha256=pWQXAbtrJ9vfcty3wvHn3S0H53BjHFcf08S7p5_yyYc,5792
|
|
246
|
+
exonware/xwsystem/patterns/dynamic_facade.py,sha256=NlHugq5VxnSa55Ill9F_dmeDm6sob5sVHzFT79W36Vc,5296
|
|
247
|
+
exonware/xwsystem/patterns/errors.py,sha256=Kf_eNBPAGidl9PFrreC1GaRA48K8-3Wu0UHt_39afDk,25052
|
|
248
|
+
exonware/xwsystem/patterns/handler_factory.py,sha256=htpqgY6d2g2nY229KJRY4k3lriHTT4gIccy8prbNs1s,11455
|
|
249
|
+
exonware/xwsystem/patterns/import_registry.py,sha256=zdUJrVukdFP3DH1o6uk13R9Umn1492nhzuWxhggRq90,20633
|
|
250
|
+
exonware/xwsystem/patterns/object_pool.py,sha256=h6Y26kzkV7sdAO1rtKGiNmboFR8deM9DabPma4K4Ae8,8077
|
|
251
|
+
exonware/xwsystem/patterns/registry.py,sha256=_Me9qG8hz1XJRZsF9-BDOlIQXMutmiNlAL4HBLBhJbo,13868
|
|
252
|
+
exonware/xwsystem/plugins/__init__.py,sha256=ABxdrZQAvyLEk1zAQuWWBWGB5jpdUFmOkWm6M9XjtTk,695
|
|
253
|
+
exonware/xwsystem/plugins/base.py,sha256=IKsFn9f7IjmPT7BeCayUHBbs-6l78el-zK79kvXmARw,19855
|
|
254
|
+
exonware/xwsystem/plugins/contracts.py,sha256=GydJdiFY_0zxKMEF_IEubwxNPBaQz58MG7HBUf-LRYs,21201
|
|
255
|
+
exonware/xwsystem/plugins/defs.py,sha256=bJU_nSLXAOWNxT6FXG8uSfSQX1PO9EhEDL2rFiO7EfA,1592
|
|
256
|
+
exonware/xwsystem/plugins/errors.py,sha256=hy61NLcrteeHGpHsEXUEGBBUaUIFpFNfPwkrOcJ81nw,15933
|
|
257
|
+
exonware/xwsystem/query/__init__.py,sha256=MxggRyFYCsVUuYzEuJclNMqm34xRHYLhEd1vlUTGMY0,1006
|
|
258
|
+
exonware/xwsystem/query/contracts.py,sha256=ipzTLkz_YyZCvSYrYUP7Q5yZeqs2oBwf_w68BMLn7MM,1439
|
|
259
|
+
exonware/xwsystem/query/errors.py,sha256=_50e113klit0tqC1WdWaeIfKZYe3zmutJi5RxwDagFY,505
|
|
260
|
+
exonware/xwsystem/query/registry.py,sha256=y1uZQUjUBgdFyVXAz6Dh26LGs42JGQjyud-SC426dBM,4084
|
|
261
|
+
exonware/xwsystem/runtime/__init__.py,sha256=hy-USG1coeM0yenJx5M6drNnprjaObyPMUS0NNQdpqQ,2286
|
|
262
|
+
exonware/xwsystem/runtime/base.py,sha256=enq-a4d2LrDSzLIbrJsQb5ji5RfDNdSTVuEC_gOcll4,13839
|
|
263
|
+
exonware/xwsystem/runtime/contracts.py,sha256=KkXMNFFotcv4AdHf-jLzXsHFWJ5BhSJ3kpO7QRdregQ,3973
|
|
264
|
+
exonware/xwsystem/runtime/defs.py,sha256=xKFYVd5z-o5UiO3Xte-mfpfikn53WweNdCzYrIOT-3U,1200
|
|
265
|
+
exonware/xwsystem/runtime/env.py,sha256=U2pnuOuwIYj2T2yyx3dUcP3lpQUXIUn68zGRVzb4Zlk,13178
|
|
266
|
+
exonware/xwsystem/runtime/errors.py,sha256=0_oevOx0epDBHOYtQRo8JoPCx6gCFQxOMm_4rbhj23Y,2241
|
|
267
|
+
exonware/xwsystem/runtime/reflection.py,sha256=go7bPMMKzCMEieH5oQsXTBvj3QBMFBBt-z8Y-g3TL_s,13630
|
|
268
|
+
exonware/xwsystem/security/__init__.py,sha256=gyXXrATRmwvQBADPw9gp9nXfcLsiYh5-RL05TsCuQPk,2939
|
|
269
|
+
exonware/xwsystem/security/audit.py,sha256=3-YOLl4A0wOjlShY9ynBJRoB7rt3A-6OYINGHLu8Y1M,5611
|
|
270
|
+
exonware/xwsystem/security/base.py,sha256=hJurjowePY7URd8Wv02DB5mtzGK8GhAonmv84KCBNUo,14048
|
|
271
|
+
exonware/xwsystem/security/contracts.py,sha256=Se1emsYD4W3wR7jGvSJM9I6zbsE8L7kcARzFeJcMe-Q,20637
|
|
272
|
+
exonware/xwsystem/security/crypto.py,sha256=nXUea_YUIqIfc0VHABorLO-CzZMBSKAZLx82RcodOhY,24103
|
|
273
|
+
exonware/xwsystem/security/defs.py,sha256=E2fV3X3d1nuzyr1J05DQOdCt-EV3JpsFoJfPi-oBJhI,2041
|
|
274
|
+
exonware/xwsystem/security/errors.py,sha256=-QvRzcvInSVv1xP06VwTH3bFAsF_-zPyR9AWAP-MxZE,2939
|
|
275
|
+
exonware/xwsystem/security/facade.py,sha256=5qZM7I8YS_zUq53qQTmkWsUTddVMwemOy-8JQgGI_s4,10536
|
|
276
|
+
exonware/xwsystem/security/file_security.py,sha256=w55WVLVCixvp01pEH9S22P-MCvk8D4BDzXNy3r7jSrw,10371
|
|
277
|
+
exonware/xwsystem/security/hazmat.py,sha256=QFHhC8FiD0fUgtDdtrVUlwVMHQ3BY831fBdS6xNQoJ0,23551
|
|
278
|
+
exonware/xwsystem/security/monitor.py,sha256=890WupcB3gCDfUwudpqjse7zmdWRH33E9Xv2YwIcmg8,12346
|
|
279
|
+
exonware/xwsystem/security/path_validator.py,sha256=wCIsMte8yirNulX9MVBfHO5XbXR6L7JmvuK8nT2niJQ,15343
|
|
280
|
+
exonware/xwsystem/security/policy.py,sha256=mDPiUqrWXz6n3x0aeIulGhluTqteEY_Q4i2yfdx5fp0,12843
|
|
281
|
+
exonware/xwsystem/security/resource_limits.py,sha256=Hx9jToZiWG3Xyh-Pd400TH260wI_hRm8BMfYv3xRNOs,3867
|
|
282
|
+
exonware/xwsystem/security/validator.py,sha256=xJCMNXEWM7ssbwjTiIpGue1gaTPl4T5-fIDfXhlojDw,15170
|
|
283
|
+
exonware/xwsystem/shared/__init__.py,sha256=whshe44PIndb9OwPyuL6X0cSa1QoKaLzmATzqR3DVlA,2327
|
|
284
|
+
exonware/xwsystem/shared/base.py,sha256=vdfoXq79jYZWuQqWQ5-rfb5FCeFdUrHNww7Xybf0ivE,17332
|
|
285
|
+
exonware/xwsystem/shared/contracts.py,sha256=zJer8ptx3TN67TJzJ8PQ5BhfMsRvma7Lh8H-88rnzAY,23677
|
|
286
|
+
exonware/xwsystem/shared/defs.py,sha256=M_uz_soPf9LIMyzu0rpV2zfbWbmfCN79EFDNO6TxdYQ,3864
|
|
287
|
+
exonware/xwsystem/shared/errors.py,sha256=ug2ugVay3iiV2ps8PYhAuNluHWdSjABrFd36YmAgKSk,1359
|
|
288
|
+
exonware/xwsystem/shared/xwobject.py,sha256=qoCwlaiulEYfFGmrmtz1J2vianD5YSDrXxz_oY7os_Y,12033
|
|
289
|
+
exonware/xwsystem/structures/__init__.py,sha256=BFgtmL-ZG9FR6u3YlW5fOeAuLkoGc7KnNSUlEY88tD8,598
|
|
290
|
+
exonware/xwsystem/structures/base.py,sha256=xB_VX2b1hikQSX0ViurWcMnLtxYHb2BK6FyWpYehAv0,12904
|
|
291
|
+
exonware/xwsystem/structures/circular_detector.py,sha256=jNOnOeJeut8OnR4XwCtQDZ5gdG3avXXaX70nJ2hXdAs,11687
|
|
292
|
+
exonware/xwsystem/structures/contracts.py,sha256=KfOR6LDV6PBTMKU881br6vJAVFMFwgYUjJNdxfm_X-E,4444
|
|
293
|
+
exonware/xwsystem/structures/defs.py,sha256=_M6H60I2zyatH9MCBg8uPLCfU53mt-adcE9_d-6NMYo,1589
|
|
294
|
+
exonware/xwsystem/structures/errors.py,sha256=ULfnjj3-Ql4eDEG7L7VDIH7TK9DK_V2Ez5YdugwnUkg,2229
|
|
295
|
+
exonware/xwsystem/structures/tree_walker.py,sha256=LCTUbqrgKLh9oeFwTp-jEDbTQIaMZLvJS6QWm82FZFc,11502
|
|
296
|
+
exonware/xwsystem/threading/__init__.py,sha256=RLNYu4W9fu5wLsQxfK3kEqsUNFCAw8i4jl57ER4SZE4,1311
|
|
297
|
+
exonware/xwsystem/threading/async_primitives.py,sha256=anm0XdU_sAvzh8QBPRnMyAqBG82w-5QJw-I8_27OGEk,18329
|
|
298
|
+
exonware/xwsystem/threading/base.py,sha256=n8NzA6zg5pMzIQSYJNyBZhdkXKCEmdEeGlPPBBVv9hA,10403
|
|
299
|
+
exonware/xwsystem/threading/contracts.py,sha256=aJIaF_IFgwlqwOv_cc3iCKoHOg0TOwQ29vXEfyQ_KhQ,17625
|
|
300
|
+
exonware/xwsystem/threading/defs.py,sha256=sT3sCTXuQbgEkzk7eVRxjjIbtWwagqbI_poCg2lK80w,1199
|
|
301
|
+
exonware/xwsystem/threading/errors.py,sha256=HHQ0M5T_LW5BEOTHLAPZK3U6IOPJzPPNB3To3A6nEp0,2120
|
|
302
|
+
exonware/xwsystem/threading/facade.py,sha256=AafXRTpy8GjAETeMDCeMJevfw9Dt_doM3xkvSF0Zldc,5783
|
|
303
|
+
exonware/xwsystem/threading/locks.py,sha256=8VqH0iWttk3nY0N-RPoGMahRDZ4COujy160fD8saT7M,4335
|
|
304
|
+
exonware/xwsystem/threading/safe_factory.py,sha256=di-D_0D43UlyQvEHARKuaQDt-fr3ZGB9lpq83de84_U,7460
|
|
305
|
+
exonware/xwsystem/utils/__init__.py,sha256=2HfvgxNAP9DSOAm9vCxctuD0oqFHO5ro-OFUOHRkC68,885
|
|
306
|
+
exonware/xwsystem/utils/base.py,sha256=ObZw_vE2EznZCE4ziX0QMD8Gj5_mKUlNWi6VjXQmLT4,12763
|
|
307
|
+
exonware/xwsystem/utils/contracts.py,sha256=YZkvtjPLbggDHKetvJZmtG6a57cyTo1ZJFSOcmoXwBM,4172
|
|
308
|
+
exonware/xwsystem/utils/errors.py,sha256=UcAus5yomIU1E_Q34C86CDCIcnDoBfMageyVolGmefc,2665
|
|
309
|
+
exonware/xwsystem/utils/paths.py,sha256=wnERoT4yPWwNrrJkICaBxDcKtQQpE61SOZqVDAjiQdI,4339
|
|
310
|
+
exonware/xwsystem/utils/string.py,sha256=tYy38O1-1QbUpRIWdoem0Mlq-BVMuQm_Bxwv6P08zgw,1093
|
|
311
|
+
exonware/xwsystem/utils/test_runner.py,sha256=mkvUPQhqt6dm1losyiAX3x9jE7QbDbnwGmq_oE1_YHQ,5489
|
|
312
|
+
exonware/xwsystem/utils/utils_contracts.py,sha256=736mOWnGN_7MOucTtqEDLqwVqIeyIemln8fQMyaLw7U,1471
|
|
313
|
+
exonware/xwsystem/utils/web.py,sha256=M9lBjQ4_aMn9upX3QCYC_1k7-3vC_5SbYDIq3DXzLgE,3182
|
|
314
|
+
exonware/xwsystem/utils/dt/__init__.py,sha256=u5wgtVcMB1LUiod1WvIsi-6t7SBQSM2JshDhz7-9Ruw,1923
|
|
315
|
+
exonware/xwsystem/utils/dt/base.py,sha256=sA-E4sK7Hb595--tMUFV_LMXMFOmZOvHnMOb_d5u63A,7205
|
|
316
|
+
exonware/xwsystem/utils/dt/contracts.py,sha256=Ys6Dd6uMJXOZSu5_j7fy94c3n3ItX3Z7RkLOLQFQojg,2437
|
|
317
|
+
exonware/xwsystem/utils/dt/defs.py,sha256=dPjuXOflLLi7qeG0oXV97bvr51bK7dMuQ4PuVYqgYO8,1406
|
|
318
|
+
exonware/xwsystem/utils/dt/errors.py,sha256=cAkx8LNJI-BOntBAeyYhYTvBzLGU9rRTtLaN3zjcuT8,1510
|
|
319
|
+
exonware/xwsystem/utils/dt/formatting.py,sha256=d1Zsy8dHdAikzAstiVgrpuf3s9g30pevzes2Mz0gF-w,6870
|
|
320
|
+
exonware/xwsystem/utils/dt/humanize.py,sha256=42bccr5bcW1S2eJsDJChSz5Ksa3mTlsiH03ePvdUX9w,14432
|
|
321
|
+
exonware/xwsystem/utils/dt/parsing.py,sha256=NiywNpWldbFpjglcj1CB0Ll-yV_JVXAJLsW1PcxGYfc,7845
|
|
322
|
+
exonware/xwsystem/utils/dt/timezone_utils.py,sha256=dH30mxIltQouy7_Ao8ZQVJtcv9EqItVQ7YK72o_wnDs,2755
|
|
323
|
+
exonware/xwsystem/validation/__init__.py,sha256=ap87JerkCZusiPdawwqxn7XzJP0wmGdEPuI0d8MzZq8,1209
|
|
324
|
+
exonware/xwsystem/validation/base.py,sha256=9VokVZd1v6tFmpgokFnP4DeeMMsk5by6l3SiiXAEfCg,10355
|
|
325
|
+
exonware/xwsystem/validation/contracts.py,sha256=D0Kdx8Y-eWkhKjDVMIGRj3RN5uSPwm71JFFYfKtvLHQ,5789
|
|
326
|
+
exonware/xwsystem/validation/data_validator.py,sha256=nCZZC3FPCGL8or4C7vxyCGvAUH5DVK35cOvxmyhSD-0,9103
|
|
327
|
+
exonware/xwsystem/validation/declarative.py,sha256=gfsazLaLGDH39rKzQMCq7s402sTjranjfK53giz8SEo,25150
|
|
328
|
+
exonware/xwsystem/validation/defs.py,sha256=uVUnlDDjMbWAiL5avinq5Y-j1J_T_ZBmVXzutikj0EE,857
|
|
329
|
+
exonware/xwsystem/validation/errors.py,sha256=nUdzc8o_L8j166lV5p9Fsv4xqwRhOaiZPtC65co-29w,2515
|
|
330
|
+
exonware/xwsystem/validation/facade.py,sha256=4B2D3FzIAr44si-eSbRwHrcu0mt1zfAPMInBLsdqvgk,6329
|
|
331
|
+
exonware/xwsystem/validation/fluent_validator.py,sha256=FAiUIbFLX3zYZVsYiCNo44hpbVdq9qJvfFEQkwnsMD0,12237
|
|
332
|
+
exonware/xwsystem/validation/schema_discovery.py,sha256=LkyKHZjQyRt_OT6eJ9PZA_gbd-8u5LDgdXeum1TsQJI,6677
|
|
333
|
+
exonware/xwsystem/validation/type_safety.py,sha256=SREEa7Ioidzue9csXetAc6ATcIq8fXWIwNkfW-2vJnE,3441
|
|
334
|
+
exonware_xwsystem-0.1.0.3.dist-info/METADATA,sha256=A6N4cLQkyyxs3OWY_LODUU3ctTP8NdDLI0j9PGeIvo0,38266
|
|
335
|
+
exonware_xwsystem-0.1.0.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
336
|
+
exonware_xwsystem-0.1.0.3.dist-info/licenses/LICENSE,sha256=w42ohoEUfhyT0NgiivAL4fWg2AMRLGnfXPMAR4EO-MU,1094
|
|
337
|
+
exonware_xwsystem-0.1.0.3.dist-info/RECORD,,
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Command Line Interface (CLI) Utilities
|
|
3
|
-
======================================
|
|
4
|
-
|
|
5
|
-
Production-grade CLI utilities for XSystem.
|
|
6
|
-
|
|
7
|
-
Company: eXonware.com
|
|
8
|
-
Author: Eng. Muhammad AlShehri
|
|
9
|
-
Email: connect@exonware.com
|
|
10
|
-
Version: 0.1.0.1
|
|
11
|
-
Generated: 2025-01-27
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
from .colors import colorize, Colors, Style
|
|
15
|
-
from .args import ArgumentParser, Argument, Command, ArgumentType
|
|
16
|
-
from .progress import ProgressBar, SpinnerProgress, MultiProgress, ProgressConfig
|
|
17
|
-
from .tables import Table, TableFormatter, Column, Alignment, BorderStyle
|
|
18
|
-
|
|
19
|
-
__all__ = [
|
|
20
|
-
# Colors
|
|
21
|
-
'colorize',
|
|
22
|
-
'Colors',
|
|
23
|
-
'Style',
|
|
24
|
-
|
|
25
|
-
# Arguments
|
|
26
|
-
'ArgumentParser',
|
|
27
|
-
'Argument',
|
|
28
|
-
'Command',
|
|
29
|
-
'ArgumentType',
|
|
30
|
-
|
|
31
|
-
# Progress
|
|
32
|
-
'ProgressBar',
|
|
33
|
-
'SpinnerProgress',
|
|
34
|
-
'MultiProgress',
|
|
35
|
-
'ProgressConfig',
|
|
36
|
-
|
|
37
|
-
# Tables
|
|
38
|
-
'Table',
|
|
39
|
-
'TableFormatter',
|
|
40
|
-
'Column',
|
|
41
|
-
'Alignment',
|
|
42
|
-
'BorderStyle',
|
|
43
|
-
]
|
exonware/xwsystem/cli/console.py
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Company: eXonware.com
|
|
3
|
-
Author: Eng. Muhammad AlShehri
|
|
4
|
-
Email: connect@exonware.com
|
|
5
|
-
Version: 0.1.0.1
|
|
6
|
-
Generation Date: September 04, 2025
|
|
7
|
-
|
|
8
|
-
Console utilities for CLI operations.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
import sys
|
|
12
|
-
import os
|
|
13
|
-
from typing import Optional
|
|
14
|
-
from .contracts import IConsole, ColorType
|
|
15
|
-
from .errors import ConsoleError
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class Console(IConsole):
|
|
19
|
-
"""Console implementation for CLI operations."""
|
|
20
|
-
|
|
21
|
-
def __init__(self):
|
|
22
|
-
"""Initialize console."""
|
|
23
|
-
self._supports_color = self._check_color_support()
|
|
24
|
-
self._is_interactive = self._check_interactive()
|
|
25
|
-
|
|
26
|
-
def _check_color_support(self) -> bool:
|
|
27
|
-
"""Check if terminal supports color."""
|
|
28
|
-
try:
|
|
29
|
-
# Check if we're in a terminal that supports color
|
|
30
|
-
return (
|
|
31
|
-
hasattr(sys.stdout, 'isatty') and
|
|
32
|
-
sys.stdout.isatty() and
|
|
33
|
-
os.getenv('TERM') != 'dumb' and
|
|
34
|
-
os.getenv('NO_COLOR') is None
|
|
35
|
-
)
|
|
36
|
-
except:
|
|
37
|
-
return False
|
|
38
|
-
|
|
39
|
-
def _check_interactive(self) -> bool:
|
|
40
|
-
"""Check if console is interactive."""
|
|
41
|
-
try:
|
|
42
|
-
return hasattr(sys.stdin, 'isatty') and sys.stdin.isatty()
|
|
43
|
-
except:
|
|
44
|
-
return False
|
|
45
|
-
|
|
46
|
-
def print(self, text: str, color: Optional[ColorType] = None, **kwargs) -> None:
|
|
47
|
-
"""Print text to console."""
|
|
48
|
-
try:
|
|
49
|
-
if color and self._supports_color:
|
|
50
|
-
text = self._apply_color(text, color)
|
|
51
|
-
|
|
52
|
-
print(text, **kwargs)
|
|
53
|
-
except Exception as e:
|
|
54
|
-
raise ConsoleError(f"Failed to print to console: {e}")
|
|
55
|
-
|
|
56
|
-
def input(self, prompt: str, **kwargs) -> str:
|
|
57
|
-
"""Get input from user."""
|
|
58
|
-
try:
|
|
59
|
-
if not self._is_interactive:
|
|
60
|
-
raise ConsoleError("Console is not interactive")
|
|
61
|
-
|
|
62
|
-
return input(prompt, **kwargs)
|
|
63
|
-
except Exception as e:
|
|
64
|
-
raise ConsoleError(f"Failed to get input: {e}")
|
|
65
|
-
|
|
66
|
-
def clear(self) -> None:
|
|
67
|
-
"""Clear console screen."""
|
|
68
|
-
try:
|
|
69
|
-
if os.name == 'nt': # Windows
|
|
70
|
-
os.system('cls')
|
|
71
|
-
else: # Unix/Linux/macOS
|
|
72
|
-
os.system('clear')
|
|
73
|
-
except Exception as e:
|
|
74
|
-
raise ConsoleError(f"Failed to clear console: {e}")
|
|
75
|
-
|
|
76
|
-
def _apply_color(self, text: str, color: ColorType) -> str:
|
|
77
|
-
"""Apply color to text."""
|
|
78
|
-
color_codes = {
|
|
79
|
-
ColorType.RESET: '\033[0m',
|
|
80
|
-
ColorType.BOLD: '\033[1m',
|
|
81
|
-
ColorType.DIM: '\033[2m',
|
|
82
|
-
ColorType.UNDERLINE: '\033[4m',
|
|
83
|
-
ColorType.RED: '\033[31m',
|
|
84
|
-
ColorType.GREEN: '\033[32m',
|
|
85
|
-
ColorType.YELLOW: '\033[33m',
|
|
86
|
-
ColorType.BLUE: '\033[34m',
|
|
87
|
-
ColorType.MAGENTA: '\033[35m',
|
|
88
|
-
ColorType.CYAN: '\033[36m',
|
|
89
|
-
ColorType.WHITE: '\033[37m',
|
|
90
|
-
ColorType.GRAY: '\033[90m',
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
code = color_codes.get(color, '')
|
|
94
|
-
return f"{code}{text}\033[0m" if code else text
|
|
95
|
-
|
|
96
|
-
def get_size(self) -> tuple[int, int]:
|
|
97
|
-
"""Get console size."""
|
|
98
|
-
try:
|
|
99
|
-
if hasattr(os, 'get_terminal_size'):
|
|
100
|
-
size = os.get_terminal_size()
|
|
101
|
-
return (size.columns, size.lines)
|
|
102
|
-
else:
|
|
103
|
-
return (80, 24) # Default size
|
|
104
|
-
except:
|
|
105
|
-
return (80, 24)
|
|
106
|
-
|
|
107
|
-
def is_interactive(self) -> bool:
|
|
108
|
-
"""Check if console is interactive."""
|
|
109
|
-
return self._is_interactive
|
|
110
|
-
|
|
111
|
-
def supports_color(self) -> bool:
|
|
112
|
-
"""Check if console supports color."""
|
|
113
|
-
return self._supports_color
|