exonware-xwsystem 0.1.0.1__py3-none-any.whl → 0.1.0.4__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.4.dist-info}/METADATA +71 -4
- exonware_xwsystem-0.1.0.4.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.4.dist-info}/WHEEL +0 -0
- {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.4.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.4
|
|
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.4
|
|
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=IJOqWHpewoZjigF0blr6GiHlESvB_8o02tFO2A7aQEA,1207
|
|
2
|
+
exonware/conf.py,sha256=RKx_NfGtLNkvFHfeVJ4uPiKVHJHzBZjmpaCRXaKugEI,4382
|
|
3
|
+
exonware/xwsystem/__init__.py,sha256=cYLxP5INoxPX8YFvwhXqVIrIiLdmR3sCnLDIRhvwu5I,29783
|
|
4
|
+
exonware/xwsystem/base.py,sha256=x6lhY0dQVm5XIYMUUMFqSDCyQImkpHzqJyKCfdTYxR4,536
|
|
5
|
+
exonware/xwsystem/config.py,sha256=GCj3gsxRQVy28w1qnSY8RpfCdg15HqrcRQvfIWDnLf8,601
|
|
6
|
+
exonware/xwsystem/contracts.py,sha256=qR8wVNAToQOWtxq3hnzb-Yr6tfGAJNFWZrLA0-34pJ0,541
|
|
7
|
+
exonware/xwsystem/defs.py,sha256=13kAa9snr7AEFRU8-MuUs7xYNPldpZiW58h8gUtflb8,317
|
|
8
|
+
exonware/xwsystem/errors.py,sha256=qnQKQTvcby_YyvFMwEAzoD0bfCMist3p4-HzscxtX10,383
|
|
9
|
+
exonware/xwsystem/facade.py,sha256=aYs_ULuPXAMn8H8p8YthfMnTCF6GD3ITlgrHYY477uU,1519
|
|
10
|
+
exonware/xwsystem/py.typed,sha256=ucCOQWK4hlbAR8Wrksq-DbbjidOCMkCR4nh7hGackEY,85
|
|
11
|
+
exonware/xwsystem/version.py,sha256=M_PurN6AuqeBz2TSzNFrazwu4LSxgd80rvZWI7Giqx8,2349
|
|
12
|
+
exonware/xwsystem/caching/__init__.py,sha256=tT_NW7rAPzshIL1pm8_asu7FfNfFDFV9AxY0O6O5HM8,7196
|
|
13
|
+
exonware/xwsystem/caching/base.py,sha256=GP9pvb2ScupXzC-aEtFrzd8TGG8ZWjY2MPdu2vHQ5p8,8125
|
|
14
|
+
exonware/xwsystem/caching/bloom_cache.py,sha256=tqXY3lrJ8ctoG9BuFMHPZCYsAcWWmtJry9-WGbud51s,6654
|
|
15
|
+
exonware/xwsystem/caching/cache_manager.py,sha256=ASSwn-f28DEii9dSwSX_pwFEXotrdhRkToNw3The9K0,520
|
|
16
|
+
exonware/xwsystem/caching/conditional.py,sha256=wB_dK5SthW7SA7X-B8v9GF6u8vZInjO_J3c8F-D7PcQ,4807
|
|
17
|
+
exonware/xwsystem/caching/contracts.py,sha256=lqbWktCwEe9dKSC3I1NJJvQxMu2lSFbuieNxokazMWg,18280
|
|
18
|
+
exonware/xwsystem/caching/decorators.py,sha256=tO1KPylwPnIeES5mzo4WSWoTwzKNkDSvFovZG-OpI74,8046
|
|
19
|
+
exonware/xwsystem/caching/defs.py,sha256=phxu4CrjaHS-fWw3sk6R-c-vLk3m2xulznPWqbMNFAg,1392
|
|
20
|
+
exonware/xwsystem/caching/disk_cache.py,sha256=crnAhIVdR1os9BEt9wHtr03xWtwK_ADZ5yWN1iliAQA,11414
|
|
21
|
+
exonware/xwsystem/caching/distributed.py,sha256=KavikhLpV3tRKGdNlrWQpDGw_eMmyGn-poPZfG4vBww,1489
|
|
22
|
+
exonware/xwsystem/caching/errors.py,sha256=FjtNPq5eDwBqYUG5kbdFncwZ6dwcXVwEcrwQJgC17wA,2107
|
|
23
|
+
exonware/xwsystem/caching/events.py,sha256=aM42OnXYCIkStSF35CUkFJdAd2IBhQcKAA0uB2NuWMg,9050
|
|
24
|
+
exonware/xwsystem/caching/eviction_strategies.py,sha256=qbL2TMav8-I-ubzV8cAffapqqe8BWqv53ITtkexvwlw,8353
|
|
25
|
+
exonware/xwsystem/caching/external_caching_python.py,sha256=YZsbn4Lk4O9tchTUemqA9FZDIuyO6InDx0JK4ttSb48,21848
|
|
26
|
+
exonware/xwsystem/caching/facade.py,sha256=6dkCKCcdkbihHjeaNHjFsGrACWaOQuNySPwdsS4NQic,7892
|
|
27
|
+
exonware/xwsystem/caching/factory.py,sha256=QINKEEIbHmAXQURE3rjmW-Pl4ahNrwLg9hoKyNZHwKI,10659
|
|
28
|
+
exonware/xwsystem/caching/fluent.py,sha256=oblk2L9i7Og6ruFMPm0bJJ3P-9dc5vbrb5Y4xpBZKak,3338
|
|
29
|
+
exonware/xwsystem/caching/integrity.py,sha256=H6T4gL_V_IH4IqlUusf5wmc8asUXGGxkBj4yz5YGdVY,4113
|
|
30
|
+
exonware/xwsystem/caching/lfu_cache.py,sha256=PpUNqL1P19N3ROrZTi54AFyUUiUsqdbUz8uGM3HPPkc,9617
|
|
31
|
+
exonware/xwsystem/caching/lfu_optimized.py,sha256=tG9rSwMEb0gGy076a--xOWam3_hW_mYDrkztDVUGmq0,18610
|
|
32
|
+
exonware/xwsystem/caching/lru_cache.py,sha256=gYcqRbyYhH-4oTeOP-1mqHJiLjfQ1Z11DBYTekJiW9Q,19882
|
|
33
|
+
exonware/xwsystem/caching/memory_bounded.py,sha256=mmIxIFqfcdNk66xq8ZtfEXlWmoQbgcojNZZL9r_xCps,9894
|
|
34
|
+
exonware/xwsystem/caching/metrics_exporter.py,sha256=N0dTMY66fYs3tIyp1HSjSh_3R_4DaigX5q1aKSYpVbA,6868
|
|
35
|
+
exonware/xwsystem/caching/observable_cache.py,sha256=Kin1os5gFXD5xIsCR5plKcrAOoXYXQOnW8rL_IK9Nc8,4568
|
|
36
|
+
exonware/xwsystem/caching/pluggable_cache.py,sha256=yjE2tSSFwzLDYzwes0FJIhWz3fAuY8Yy0mpkQC1wiQw,7528
|
|
37
|
+
exonware/xwsystem/caching/rate_limiter.py,sha256=9sgdMf2H7pn41bW9i1hlHvTmk12SIbgDGflsUAZo5qs,7741
|
|
38
|
+
exonware/xwsystem/caching/read_through.py,sha256=iYpPveKGC8XiL6zPtUTjGjqlc_WdQiJeRCKJEJPvDXU,7360
|
|
39
|
+
exonware/xwsystem/caching/secure_cache.py,sha256=vffK7PTE7r3QGwo1ovijh9mB-yh-Wvs0iWzDdo2-U90,12264
|
|
40
|
+
exonware/xwsystem/caching/serializable.py,sha256=NsEJ6yNErxMIgZ8JbgSaSiwx6Atz3VfppHHRsD7xnR4,5089
|
|
41
|
+
exonware/xwsystem/caching/stats.py,sha256=k6O_CQb5cmmzgrR28yTEAhFG0HRXCQmNLFP_OvX-4is,5853
|
|
42
|
+
exonware/xwsystem/caching/tagging.py,sha256=RR6nLoTiR44h6o_4WT14GpjinM114qL7wyJdF1BRs7E,5704
|
|
43
|
+
exonware/xwsystem/caching/ttl_cache.py,sha256=4EPsrasmhLAMe_dnxU38zvMiKGXm_qpIP3T1kUyK9QY,18242
|
|
44
|
+
exonware/xwsystem/caching/two_tier_cache.py,sha256=Zg5LPGLmq8xgv0OwvjzaAEIaJ3bA87QPUbXWDWaUlgU,8925
|
|
45
|
+
exonware/xwsystem/caching/utils.py,sha256=jpb5xd8xfVOWvFLkTxrqoNxi9uezf_KoLRoqHnvXgEc,7093
|
|
46
|
+
exonware/xwsystem/caching/validation.py,sha256=FAh9X8BuLj5A41lBv24Ozi26cY9rD6qOXxw3bmXTwG4,6989
|
|
47
|
+
exonware/xwsystem/caching/warming.py,sha256=6fgh7zkPSS1HJVjvncwSouOduEG-bMdIAu0R3KlPiCY,7255
|
|
48
|
+
exonware/xwsystem/caching/write_behind.py,sha256=ZjFNsG8kwjnXAgTB_kbiVn5SHpZX3A-n2Unvmll_1wQ,7199
|
|
49
|
+
exonware/xwsystem/config/__init__.py,sha256=OjD369IyGaKG6AZud9uHMTYws6FzeCUiDJmRxE14X3g,2364
|
|
50
|
+
exonware/xwsystem/config/base.py,sha256=vmjQX-6jh0wyeDEYoZTw-PIo3GkM8Gq2I8tCQsGFYCw,7831
|
|
51
|
+
exonware/xwsystem/config/contracts.py,sha256=miy6nl7_cyIkgoMlEyd6N-9IGEBTGaVEHfjq5bxLyT4,19155
|
|
52
|
+
exonware/xwsystem/config/defaults.py,sha256=suWioW-zTIUCD8lGbKqEbZg8xwE-uFUp6T_KIYzUujk,6072
|
|
53
|
+
exonware/xwsystem/config/defs.py,sha256=NN7dpNbWS88_FV20h6CK69WYV19377RdLn7zzc7y2oA,2103
|
|
54
|
+
exonware/xwsystem/config/errors.py,sha256=Ssd1RuggQ0e5V-qG048jsFo-GdqJ-eNMNL18hjS53vg,1682
|
|
55
|
+
exonware/xwsystem/config/logging.py,sha256=aDllzdCY40e5TTlRk4byVon5DkHFjnjjPQ_PT1uTuDo,2759
|
|
56
|
+
exonware/xwsystem/config/logging_setup.py,sha256=2n4zCWmqi1SpoFowRui4jkKWrLNBGgZXYan_Qpv0YHQ,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=iilWqPHqUwcV9CurBEIehxsupgF_Z5Z83yAuA-dUQdk,1066
|
|
61
|
+
exonware/xwsystem/console/base.py,sha256=YHdj_RAYzq7NrOw8pglB5DQMPmoahBCCfULetQizimo,3152
|
|
62
|
+
exonware/xwsystem/console/contracts.py,sha256=V_0uHLpU6_D3OKlSiFl4HRZzLiI0yvVLMfeYWO2tOqM,2702
|
|
63
|
+
exonware/xwsystem/console/defs.py,sha256=WSAaflVzXbx49gzS3hutM6Kxrlr26xpV40YcpscZ7GQ,3967
|
|
64
|
+
exonware/xwsystem/console/errors.py,sha256=YaF_HgzeBdQfg6DYlKhqVpV7fMULjKbQBYESRyO2xJI,702
|
|
65
|
+
exonware/xwsystem/console/event_logger.py,sha256=Mja6NHEgRJmB8yxo1TJawj3_WS5DETRLHik8CeGO_Gg,11928
|
|
66
|
+
exonware/xwsystem/console/writer.py,sha256=LWU2tpyH2TPdA93jBCTiQ3DpPUbgGTOcWmg-KRIMn8M,4088
|
|
67
|
+
exonware/xwsystem/console/cli/__init__.py,sha256=_j1tk69yLwfsWA8mHez0IqNkZbZwZf9KXwE3obVmp5I,1503
|
|
68
|
+
exonware/xwsystem/console/cli/args.py,sha256=l9rffIcEf-fnlFSqgI8sqP_6qo_xcJgeoHt-UJB5o5A,12365
|
|
69
|
+
exonware/xwsystem/console/cli/base.py,sha256=DBbqd9qvht6Jl67FTG7ispJX1wLdonTx40lO9Xbbomo,6819
|
|
70
|
+
exonware/xwsystem/console/cli/colors.py,sha256=yt2m6QvZv5xy4pNVbu1M9EvuxhZcakOq0tc_1DTWhkc,9591
|
|
71
|
+
exonware/xwsystem/console/cli/console.py,sha256=lykzTb4ZAkrxn7rTNhN287qysPrIA1M643cMWjJ4Vy8,3084
|
|
72
|
+
exonware/xwsystem/console/cli/contracts.py,sha256=BO38A15-NJv860DZAdPNiM43nfKy1hCvsBjUYBapAxc,4120
|
|
73
|
+
exonware/xwsystem/console/cli/defs.py,sha256=kMyNLZLnGNCqiRqCLjvskaqzt3qq6JB1xQjynb8W0cc,1854
|
|
74
|
+
exonware/xwsystem/console/cli/encoding.py,sha256=YARv4v8uo9dZ0RmT57ZAGqDWAQeQrEj7gDQiHO87qnQ,1868
|
|
75
|
+
exonware/xwsystem/console/cli/errors.py,sha256=OUL-z0Zd_6EpsrFRfXFw9lKCTCiC475puimQwNPBjPg,1630
|
|
76
|
+
exonware/xwsystem/console/cli/event_logger.py,sha256=ss0KCFNwAwUKoKmaKemaVsBokvsriDk6GQx8s3nVgh0,5566
|
|
77
|
+
exonware/xwsystem/console/cli/progress.py,sha256=myzICl42kQN3wSg6aAKyzcqKTmY1ViNPTY7lglbHtaM,14154
|
|
78
|
+
exonware/xwsystem/console/cli/prompts.py,sha256=BeZhG-jZDx5PWql4HKGG5egRk6X-f0OBQi9DnamDWc8,2926
|
|
79
|
+
exonware/xwsystem/console/cli/tables.py,sha256=QYzyWz5DqopwMiI8NsHoXLuEzKkVshJ_oJrDlVa8fzk,8451
|
|
80
|
+
exonware/xwsystem/data_structures/__init__.py,sha256=eNZkLHzSmPfcCH9oML9Jn9v12FVbFxe5UvRRXayy2Vs,522
|
|
81
|
+
exonware/xwsystem/data_structures/trie.py,sha256=VCsH9fqP2sV8s5X60APBTQojRhMV3gSFLKXLNQ0blFY,837
|
|
82
|
+
exonware/xwsystem/data_structures/union_find.py,sha256=15q1-BxOXz7Zw1dUH5V0yvoDbiozdhjGJ6d-OpmiMJI,3582
|
|
83
|
+
exonware/xwsystem/http_client/__init__.py,sha256=7nbBdnkuJNQ_9iwk7pxk3l1ACpuHe9IN-QXYrLLrOVQ,902
|
|
84
|
+
exonware/xwsystem/http_client/advanced_client.py,sha256=_16RXkkSsvtgiqd6JeN6Y-ky64L8I6-j86PWwgzL4oQ,17664
|
|
85
|
+
exonware/xwsystem/http_client/base.py,sha256=YAfRD8lWH57EirsuKSmyFuTjP3oGyiTZHEIwybwT_Fg,7546
|
|
86
|
+
exonware/xwsystem/http_client/client.py,sha256=QsprVeQJmIvzhRqz2vWhBz7lpThtyjDQCyC6gyF8gWc,18764
|
|
87
|
+
exonware/xwsystem/http_client/contracts.py,sha256=VCIihyH0O5MD93xIOK_bGdfcBhOaANjBNamgko0Y-v8,3442
|
|
88
|
+
exonware/xwsystem/http_client/defs.py,sha256=uViYOF6JwHyDYtRrCtBO6vhgDcZ_jG9_QB-5ZXiWJ0w,1482
|
|
89
|
+
exonware/xwsystem/http_client/errors.py,sha256=0DW_e2k1-cj0w2tkGPuIUlCNQPHjtIx-dqjI-NsfjrQ,1994
|
|
90
|
+
exonware/xwsystem/http_client/facade.py,sha256=8Ap4TOVEiS2fNX19fPhiA_BUmqOcu9RJY6UmxeCMfBk,4771
|
|
91
|
+
exonware/xwsystem/io/__init__.py,sha256=wDsI_cQpM8_2zao6sY5X-2dhfzBONNt8K9RSIDvy0lc,11599
|
|
92
|
+
exonware/xwsystem/io/base.py,sha256=hWRhoLixT_uhZC-nHbFO4XsJnN92gHe_JIZDUCW7QJA,49695
|
|
93
|
+
exonware/xwsystem/io/contracts.py,sha256=9_BSlvcOSq8mItTQGSMMFhJperDDHIlO0FHh2sjMdo4,46306
|
|
94
|
+
exonware/xwsystem/io/contracts_1.py,sha256=aLA93OXFI-u6W01vtDacp668pf-c9TaQ7ZOsVciDkFY,32753
|
|
95
|
+
exonware/xwsystem/io/data_operations.py,sha256=ijOUO1io-a-rN03BgrAu7R0ZIuSfRPlQoVnYRMcIAeA,27031
|
|
96
|
+
exonware/xwsystem/io/defs.py,sha256=98USsaJDk92iWT8zYWr0spO6NMAjI9vOUCvDjXvgtT4,6309
|
|
97
|
+
exonware/xwsystem/io/errors.py,sha256=uhLYlh2hA5GXMDCy_ZECAbWpLnGHopKYYPC4FbyPjYY,9077
|
|
98
|
+
exonware/xwsystem/io/facade.py,sha256=WYF3I1bxTU6CjKyzFXnq-sQBUFWMFGPDbcWjXweA0zs,36234
|
|
99
|
+
exonware/xwsystem/io/path_parser.py,sha256=mKtkmy90mITRX4-RxheKJwDKcYNvNeJXxprKPRp3Qqg,2824
|
|
100
|
+
exonware/xwsystem/io/source_reader.py,sha256=y9T3anRRMKoPOhtIlz1d9ctsuW4rXpYV-FYntR0qrH8,8069
|
|
101
|
+
exonware/xwsystem/io/archive/__init__.py,sha256=6_HNTwkkDyVoUZ4Lo6uzECy-ADvrt7Ay_6s4cO-gIsA,2780
|
|
102
|
+
exonware/xwsystem/io/archive/archive.py,sha256=wa2c5NkQ5NSDBSz5Zqx2eK61cps_R8E831k0pM3qaVw,3521
|
|
103
|
+
exonware/xwsystem/io/archive/archive_files.py,sha256=rQnNJ32O4MYzm52M46nICXlEFzWfK0olN4AQv6jLiTc,7217
|
|
104
|
+
exonware/xwsystem/io/archive/archivers.py,sha256=6hYghpyDKqftS0hpTNAycDClRUX7rzap2xle487d_TU,14778
|
|
105
|
+
exonware/xwsystem/io/archive/base.py,sha256=c641f70UNOLm8W3zglhfV2YLDJ2Awtcvb1R4Imx8LaI,12170
|
|
106
|
+
exonware/xwsystem/io/archive/codec_integration.py,sha256=x-ZPcXP4P07qZ99pzxP2tlVSKrQDnRNw1KGYNLcGAzQ,1732
|
|
107
|
+
exonware/xwsystem/io/archive/compression.py,sha256=LA4kGBVwNp7LdWo9qNAYq5PVtieyWR6sDYRQmJe-HIc,5575
|
|
108
|
+
exonware/xwsystem/io/archive/facade.py,sha256=oL1Oxz7hebTlJ5rOyhOP5LkD5pXABXf1IMq4ngGlf1A,9261
|
|
109
|
+
exonware/xwsystem/io/archive/formats/__init__.py,sha256=nhOAfjHcGsbnFF5pgif7APgoVarGeOjwzw4BtojXMUY,5060
|
|
110
|
+
exonware/xwsystem/io/archive/formats/brotli_format.py,sha256=U4JwJ6uFru8xlmKyjFgYjKdvJsEr6T_2EEEcJt6NNmQ,5780
|
|
111
|
+
exonware/xwsystem/io/archive/formats/lz4_format.py,sha256=viEmA47mhyu1ogCBs0WSvkFykTdZWG_vqb9qplHPp1E,5672
|
|
112
|
+
exonware/xwsystem/io/archive/formats/rar.py,sha256=yw-WAdevwIvEZVe8NXbXHx8g-DfBd140xhIkWjflYGc,4315
|
|
113
|
+
exonware/xwsystem/io/archive/formats/sevenzip.py,sha256=_YHk7Ij_9Ehaxvv87m4dfWAE0_m9GcU4FhRZwBFokRE,4749
|
|
114
|
+
exonware/xwsystem/io/archive/formats/squashfs_format.py,sha256=4dNwn74IKJVkYZ-5jjPbpn8UriWrtk4dyYhvH0ps-Eg,5485
|
|
115
|
+
exonware/xwsystem/io/archive/formats/tar.py,sha256=4fbzb1kA1qJ7jmsamyi6PzYKAArbxlrCZmIWFBdpa3I,5767
|
|
116
|
+
exonware/xwsystem/io/archive/formats/wim_format.py,sha256=j9RN2WTG2izl3rA_gKVkpdNmndZKludK3TbmIfOXuNg,4524
|
|
117
|
+
exonware/xwsystem/io/archive/formats/zip.py,sha256=pUy2qOtUrw9iCA_mZV4Ex2V7AeA65mHT56-Nlc8h7UE,3100
|
|
118
|
+
exonware/xwsystem/io/archive/formats/zpaq_format.py,sha256=bTt0iadq5AnQJjEHdvH1eXXXkLAVf8DxLo-j4uUMOFU,5201
|
|
119
|
+
exonware/xwsystem/io/archive/formats/zstandard.py,sha256=8sw99rQnwOdk46uasJAm2elBMgZrhYGoqjUqwnOK34o,5879
|
|
120
|
+
exonware/xwsystem/io/codec/__init__.py,sha256=aFUInv_GEWA9GyJ0s6OToy_BmJiYFm4F3OdW2iYa7A0,5034
|
|
121
|
+
exonware/xwsystem/io/codec/base.py,sha256=8Hy6ixGgCfx7lvVYRabVCiZ3dMX6XqSNIkmkyZT2E9E,32488
|
|
122
|
+
exonware/xwsystem/io/codec/contracts.py,sha256=ALZ1UL-COrFWLrIJR26iE8dF7iaAIzMnbBru0uZfE6M,8287
|
|
123
|
+
exonware/xwsystem/io/codec/registry.py,sha256=MXKGjUtvm_WdH3cNOG7XTvvLmaYOndtbAIrnAoGCva4,30644
|
|
124
|
+
exonware/xwsystem/io/common/__init__.py,sha256=37ptLv3w7ylUJ4_1aQqkPKFScpRSSyd3C_CWwe7Li0g,2213
|
|
125
|
+
exonware/xwsystem/io/common/atomic.py,sha256=pIU3aZcmmaJQLrXC4YdrWKy1QoeMInzCQtGxKZAhAgE,15622
|
|
126
|
+
exonware/xwsystem/io/common/base.py,sha256=4RI-kSdha-4VRHZIT2epSvfxFr5NaRHZs56aQqN6cF0,4355
|
|
127
|
+
exonware/xwsystem/io/common/lock.py,sha256=Wxd_zc4flbp9Xt9wA_mlF4s6tDpcjIQvsVgWfxQzL68,3848
|
|
128
|
+
exonware/xwsystem/io/common/path_manager.py,sha256=G_mZgMirtRRMKEbElZRuqSsxYonbMnyE4pTnCtyhUwA,11456
|
|
129
|
+
exonware/xwsystem/io/common/watcher.py,sha256=3kfJxX5BD5Nv_v6X3kWXPDhIw_2RztEU1JZqo3XYQRo,5168
|
|
130
|
+
exonware/xwsystem/io/file/__init__.py,sha256=PuaNW6MSJC8G9puJH-nHNFnhiZlF28xgFqiJDdSzPIE,2303
|
|
131
|
+
exonware/xwsystem/io/file/base.py,sha256=gbYA_H53gK9dSRB1hQnYbqacaGENlLAPQQ-mX-n--_Y,4013
|
|
132
|
+
exonware/xwsystem/io/file/conversion.py,sha256=4a_ZKE4nczggjWGR2043WerH96cxNI27uykocOQ8ej8,8266
|
|
133
|
+
exonware/xwsystem/io/file/file.py,sha256=KtAiKFafYe8muL25hB2mjvmFYZ6Zrnxi9i5z2N4sGH0,14388
|
|
134
|
+
exonware/xwsystem/io/file/paged_source.py,sha256=6zQqpVyJ9xfLWcnYgPzEtlsIuH6C6Rwa2Hwrf3EKX8A,5446
|
|
135
|
+
exonware/xwsystem/io/file/source.py,sha256=kn1oH4s7f8x4aBOS_-3w2YZyFaFafAlM9hFjD8vo1Z0,6940
|
|
136
|
+
exonware/xwsystem/io/file/paging/__init__.py,sha256=cxnx4pJEvMLfAexWPRkFSKDMODggdYRb1YAZ8xIMHck,1183
|
|
137
|
+
exonware/xwsystem/io/file/paging/byte_paging.py,sha256=SaBkggbnwYEwebHdmV-PIdr4EIWSgT0rgk4buTGZ5ZI,1876
|
|
138
|
+
exonware/xwsystem/io/file/paging/line_paging.py,sha256=KbTh31n-S6UO2C1yXVAXzGqw0-OMnBZbuZo7wjd6sVQ,2249
|
|
139
|
+
exonware/xwsystem/io/file/paging/record_paging.py,sha256=MNrylfoU4EGEGA5px5JmSgBxCCNMUsJPqa81dPc34jI,2827
|
|
140
|
+
exonware/xwsystem/io/file/paging/registry.py,sha256=X_Pwlu5xzbH2XDUHgdl3-Klbi9t4kAHFx6PYCODxcQ0,5362
|
|
141
|
+
exonware/xwsystem/io/filesystem/__init__.py,sha256=cJA2oJokP6worfxkSwROFkZUo6m4rDGPIfsRzD6S7S4,955
|
|
142
|
+
exonware/xwsystem/io/filesystem/base.py,sha256=-_toFWhbbKsRp83GpjuhjM9i5TDsoZxTOD_GsObt3cQ,559
|
|
143
|
+
exonware/xwsystem/io/filesystem/local.py,sha256=AQzeT46ZgCmOgDwPY0a1OUxh98OHlhtfR9RcH6E3LRs,5110
|
|
144
|
+
exonware/xwsystem/io/folder/__init__.py,sha256=yboVKbJM-BeueycE9nN6mRtX5jKDp3f76gYE0VwkgrY,561
|
|
145
|
+
exonware/xwsystem/io/folder/base.py,sha256=N4w1D-mQxmlWTMQN54zQrg9oTr7_bX2zIKKSHsX_7_o,882
|
|
146
|
+
exonware/xwsystem/io/folder/folder.py,sha256=z_6DY51geRZBKe3nbUPSkihMxMPNlwMwyebWetJ5rks,9295
|
|
147
|
+
exonware/xwsystem/io/indexing/__init__.py,sha256=vNbHrV3UbnXADbuxXkIi4RSFIdk_n8r_3UUbSeebKpg,321
|
|
148
|
+
exonware/xwsystem/io/indexing/facade.py,sha256=kh4FCXeNS58caNtZGMfUHlh-94OnifnakeeS6aGWO-k,13586
|
|
149
|
+
exonware/xwsystem/io/serialization/__init__.py,sha256=nFr66nTXxEEWdFgv2OxNl_cychzbbMjx0TL0pdNZg5g,5491
|
|
150
|
+
exonware/xwsystem/io/serialization/auto_serializer.py,sha256=fB8DMjMzvxCTDM3o-om_jTU5u5NUG1oRLEUtkqs6Z0E,22743
|
|
151
|
+
exonware/xwsystem/io/serialization/base.py,sha256=KkCrQCpW3ipK8nifjR5lJtjnEGwKDNWJJxiWqw0JnEk,43881
|
|
152
|
+
exonware/xwsystem/io/serialization/contracts.py,sha256=CQC3xI8UrPGwuDuEfgdzljk39OEydgil9VSL0dypLTU,15791
|
|
153
|
+
exonware/xwsystem/io/serialization/defs.py,sha256=Ewa3TXg3i5VQd0XxtZl8sRuXCWuKu4MB3K0X-0n3LRQ,2312
|
|
154
|
+
exonware/xwsystem/io/serialization/errors.py,sha256=HdgWRWrI8xN04bLMb5epIZaASwCDN6sMMvYN-UUc2GA,3634
|
|
155
|
+
exonware/xwsystem/io/serialization/flyweight.py,sha256=GKz6j46JjR7HOTNpF9QF6tL2u2mDgIcTysTtU14ez2s,21309
|
|
156
|
+
exonware/xwsystem/io/serialization/format_detector.py,sha256=X7hPK0UFSyJ1LIAzDWvewvHgw5o5oTDMs9Lgb_n8FJQ,14087
|
|
157
|
+
exonware/xwsystem/io/serialization/registry.py,sha256=LgU7Rtlo8I3NPdvTPa35zoqwprrnbIbhY0wZNa5zinY,5551
|
|
158
|
+
exonware/xwsystem/io/serialization/serializer.py,sha256=trEuS_i1Dyd0m7guO-J1emrOkdmxzgBjSKDlQ6vvOHg,50963
|
|
159
|
+
exonware/xwsystem/io/serialization/universal_options.py,sha256=N46SUsA7dLtVQvEqqfidtFnHrm0509RU4hbaTOay5Lc,12316
|
|
160
|
+
exonware/xwsystem/io/serialization/formats/__init__.py,sha256=9GnWsZCeVAKjB_i_94Jxuag_ZTHpF7zHaMzK3XxHT4A,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=zcWFXdogRqhEmfh68Gvot6Op05rHuCHFjTMcNaei4A0,5203
|
|
163
|
+
exonware/xwsystem/io/serialization/formats/binary/cbor.py,sha256=jATQdQhY3it1OwwgrB1-RZHQNjVMNP3APvD_CgHeluw,4694
|
|
164
|
+
exonware/xwsystem/io/serialization/formats/binary/marshal.py,sha256=oPnUmc0KDpg4l6K3mdS-MqzxDPbT9jwGl2CSTbmQHvk,4526
|
|
165
|
+
exonware/xwsystem/io/serialization/formats/binary/msgpack.py,sha256=OCQgMKBTvdl8M1fOCoSpqgOC73YjCWroeqsa303NUQ8,5548
|
|
166
|
+
exonware/xwsystem/io/serialization/formats/binary/pickle.py,sha256=oHZZw0b-t2L525kcHDeXqt8qNfXV-QXn5dbpyMEpiWE,5157
|
|
167
|
+
exonware/xwsystem/io/serialization/formats/binary/plistlib.py,sha256=BRWJlw3t_diSFI0RHcXQbuPBHglb-B5TdGyhNexoDSE,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=7xsr8InNvkrXnWEpHuOl8FMDMf7FLbmskavyHJ2fdCk,3902
|
|
170
|
+
exonware/xwsystem/io/serialization/formats/database/shelve.py,sha256=lhepq6uMl00wr6x0ZJVhg74IBwqpsYxB8Y05jXrQu80,3810
|
|
171
|
+
exonware/xwsystem/io/serialization/formats/database/sqlite3.py,sha256=KevgwK2_WbANlnNVy4wsJi1ffQ3KkG3aZHYCw0UkNYM,5470
|
|
172
|
+
exonware/xwsystem/io/serialization/formats/tabular/__init__.py,sha256=XR4IlhVfAQDxlMoiiTW-Q1B7ZLcVENG_Tqq1BmmDkrM,754
|
|
173
|
+
exonware/xwsystem/io/serialization/formats/tabular/base.py,sha256=swk8lsE8omihNzzXCbSu-nsNUMP5JoJX_5fIQ6Zf3YA,2707
|
|
174
|
+
exonware/xwsystem/io/serialization/formats/tabular/csv.py,sha256=Ln4pHcJ1G08au1LYrlKOyvMSYb1zi03jUq6XnxsD4fI,10103
|
|
175
|
+
exonware/xwsystem/io/serialization/formats/tabular/df.py,sha256=Boa-nLo7BtVkNGFmo20AaO0Ip5BdXXMERvzsjACLZcE,7697
|
|
176
|
+
exonware/xwsystem/io/serialization/formats/tabular/excel.py,sha256=9MiqKK8fJv5tIUc0gGVBsp10nuRuS6GYqUvIbi4eFmI,10117
|
|
177
|
+
exonware/xwsystem/io/serialization/formats/tabular/googlesheets.py,sha256=uiTabRM_8HEvXmGrApjhiGMofRaUwwxFu803yQRHwQw,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=WeeV-NmWbLS5YJNISDlJctZKR_9iElQ9M1b7o-0LzRU,5770
|
|
181
|
+
exonware/xwsystem/io/serialization/formats/text/csv.py,sha256=cn2RO-PPUd7r00gvAM5athXYTcUdiMElHLkFZzRhrvs,6580
|
|
182
|
+
exonware/xwsystem/io/serialization/formats/text/formdata.py,sha256=_-JVPiUBUNVjnWDB93ynNx65aOM5zGQIXHk7VIsVDp8,5281
|
|
183
|
+
exonware/xwsystem/io/serialization/formats/text/json.py,sha256=R5VlC1N1zWWtgaySZZzUrfxqykA35CFKxIKA1khkExw,15785
|
|
184
|
+
exonware/xwsystem/io/serialization/formats/text/json5.py,sha256=HmDQ_9KBgAHEOgyyUrfUZtKP-u2dVPFjzFw9pGFRoAM,7573
|
|
185
|
+
exonware/xwsystem/io/serialization/formats/text/jsonlines.py,sha256=yQmbtB8E9hPjbI0RtHJspvw_EhfgWkZWtToZdDVgND8,14936
|
|
186
|
+
exonware/xwsystem/io/serialization/formats/text/multipart.py,sha256=gxk1Jc0nzJRFoeWNK1tO4OP0B8DgMAjjNJsR4eRzTTQ,6870
|
|
187
|
+
exonware/xwsystem/io/serialization/formats/text/toml.py,sha256=k9EopkYNyj-jzSnRwyM3yxbQ6G0Kw9LBcJIwIT7wc-I,8932
|
|
188
|
+
exonware/xwsystem/io/serialization/formats/text/xml.py,sha256=fszDxeXt_S66_Flxidm0ZXiN6ZGyWD8fQhsWPbgjMOE,24363
|
|
189
|
+
exonware/xwsystem/io/serialization/formats/text/yaml.py,sha256=N749gGEL16DOL2MVCk4J1r11Ny94SjLzuy65AWha-2Q,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=_V2aKt5Wmsbq1_uJapP1xZTfmxGglx3WwJuav-Q-zhc,666
|
|
202
|
+
exonware/xwsystem/io/serialization/utils/path_ops.py,sha256=b-LcJ2-fhCjB8GvrE3jlLnA2jkp17TuZGkffLx0DBL0,8882
|
|
203
|
+
exonware/xwsystem/io/stream/__init__.py,sha256=cPwluUJrA86te_iTDarlEAZ-J9rvlEWFaKVgujqAtu4,1283
|
|
204
|
+
exonware/xwsystem/io/stream/async_operations.py,sha256=UZ_wezkd9hX8nknnrvJ_uqF5FzQNPCq4Sbl3Ji0dJcc,18708
|
|
205
|
+
exonware/xwsystem/io/stream/base.py,sha256=RsQYe5b8AIKlp0BiXw9rmqH-HKf6Spjnrc9tejvVIgw,926
|
|
206
|
+
exonware/xwsystem/io/stream/codec_io.py,sha256=CIkh_XouXMDczA3TyBOBi-Fxb2ZZv2_r7bHAsPE3jwk,15503
|
|
207
|
+
exonware/xwsystem/ipc/__init__.py,sha256=aGIsdIZK4r8Lv6aD2AfJqSAK_3Gtujp2tC2OFbfh8Ec,1034
|
|
208
|
+
exonware/xwsystem/ipc/async_fabric.py,sha256=SIHFOc7y3-dQh85j0TZGl4usIfv9d3yWsQq3yFSwUY8,13543
|
|
209
|
+
exonware/xwsystem/ipc/base.py,sha256=4rcW2zw1LQ-H7FS2tMV-ZHcDT8bbfTlcUkhQn0Fgf_Q,9426
|
|
210
|
+
exonware/xwsystem/ipc/contracts.py,sha256=MPgszo6ngalK0bbb5vSYGLM28q74yN0qSzFg9aQPG4Y,4103
|
|
211
|
+
exonware/xwsystem/ipc/defs.py,sha256=rT20k_dvo55seAL96tkIhJHsAWmQQvYSsrGEuETAX9A,1466
|
|
212
|
+
exonware/xwsystem/ipc/errors.py,sha256=CWXPbvbv-zvgakqStV2pGi2AoYKxWSH37rYJOAv8FGw,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=U9KM7JzqkJ2k_tbbwjfgoZ_Tk1rF_ROn4HroqV7uCRA,9585
|
|
220
|
+
exonware/xwsystem/monitoring/contracts.py,sha256=zNm8C1yDSNDVMGRgoO71omTJYwcgdBERIkz4sri2F4I,18166
|
|
221
|
+
exonware/xwsystem/monitoring/defs.py,sha256=3laB3N4nnJYQ6L6EZhNiTyZBvR5U3lW-qId7HBGvQpc,1646
|
|
222
|
+
exonware/xwsystem/monitoring/error_recovery.py,sha256=4A8DZry-6jNs_9yO9LyiSRiI1Kpu7KKLHFCUmmlpuQc,20526
|
|
223
|
+
exonware/xwsystem/monitoring/errors.py,sha256=JajxJS03LCpsiRAFrXPL8nxt3YcisTk_-WR1YktrmR8,2745
|
|
224
|
+
exonware/xwsystem/monitoring/facade.py,sha256=Hzb6qePNoR06M3UPAGOqahM-Mh5v6u4j9WjLgiDXRTk,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=06edhMajDuuFISgRNKZgKU38JEdiMxBJ5_RC3OzNE-E,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=0JF2ejJSeMV8Nt59mT5YHFzgg2HTu2Acl5p52WHm2hY,21892
|
|
231
|
+
exonware/xwsystem/monitoring/tracing.py,sha256=zvIkyvjza4ae_kZ8FN13yaxmmYAJWhsLMY7NdJOmgtk,15640
|
|
232
|
+
exonware/xwsystem/monitoring/tracker.py,sha256=tytoEqabrh6X8bMtTv-2a83XBmdAaVZnF2tq3qZdut8,9644
|
|
233
|
+
exonware/xwsystem/operations/__init__.py,sha256=DYir3SeyasLzeu_87UhcqohGyMyTsIGGvX789TvYf6I,1300
|
|
234
|
+
exonware/xwsystem/operations/base.py,sha256=5QvkuwcIFl_gLjDEod-v3ol40rvKOTNXtqkkEhvEyF8,870
|
|
235
|
+
exonware/xwsystem/operations/contracts.py,sha256=NXyAThwGLx6EjajLgVtzJx9mvG_JWHBEDSeLFHEuKC0,1605
|
|
236
|
+
exonware/xwsystem/operations/defs.py,sha256=UbavZ38X7sjqzLBpkuc_D8JW7Q7ItVJYKEBA_4emKOY,1569
|
|
237
|
+
exonware/xwsystem/operations/diff.py,sha256=U6sB5MHRTi4uOjdSNoOe3u669KK4-kRUTAuRlDTMY3U,8706
|
|
238
|
+
exonware/xwsystem/operations/errors.py,sha256=ObcMnZsprwzjvCStoidYwdjyZLXnp_aiBM3RTNcuCHk,801
|
|
239
|
+
exonware/xwsystem/operations/merge.py,sha256=GRr4cIbdjZd9MaDmVzDWmFyP2TKRQcDgS8hD4ihn1us,5643
|
|
240
|
+
exonware/xwsystem/operations/patch.py,sha256=30hwmhRyPbDK0aUNZQWaePDGmgTdD6cx0f7nOx1QGwg,8514
|
|
241
|
+
exonware/xwsystem/patterns/__init__.py,sha256=W-YwdoOwwhPysWfs-v10oOavqDYTJOyo695y8R7e4nU,1089
|
|
242
|
+
exonware/xwsystem/patterns/base.py,sha256=2sjyAFCyEd68luu1yQFmqdN6Uu89ECZcxu8zhSUyOdY,3600
|
|
243
|
+
exonware/xwsystem/patterns/context_manager.py,sha256=FqK8MNHc6EwU6VK_KbAE5mvF5UCrX1O68GVf2lnB4LU,10904
|
|
244
|
+
exonware/xwsystem/patterns/contracts.py,sha256=YzHcCkdmOR8Z6HOSDNJaC1xfbs4iVbB58b4wCu-2Sh4,15886
|
|
245
|
+
exonware/xwsystem/patterns/defs.py,sha256=hTQB1iSs7eQDFLQ0waHUlepheQIQwILqhhH97Nh-OpY,5792
|
|
246
|
+
exonware/xwsystem/patterns/dynamic_facade.py,sha256=NlHugq5VxnSa55Ill9F_dmeDm6sob5sVHzFT79W36Vc,5296
|
|
247
|
+
exonware/xwsystem/patterns/errors.py,sha256=SgBkXrA1vfZdIumgvBWmmJODAfNIaPYCbKdQNBSkgjk,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=Zbdb66yYNMeyRDQyMy3azxNh7bT236N9JPL5-wAJgo4,13868
|
|
252
|
+
exonware/xwsystem/plugins/__init__.py,sha256=uh1UAX-p26iQS_8ie5BHsg6qEx_WD_jpofofu1jr6VA,695
|
|
253
|
+
exonware/xwsystem/plugins/base.py,sha256=0aLxBiWiyymodHsufxI2ZN9BeS6dCk9hTMFDu1ev0LA,19855
|
|
254
|
+
exonware/xwsystem/plugins/contracts.py,sha256=KOqyH0Hjd_X_XXaYzyoFoeSaWZpV3Q5ADeZ1587u16I,21201
|
|
255
|
+
exonware/xwsystem/plugins/defs.py,sha256=nHvxkY1XCpAwotS6lCdWmRzCld1fn4gkiDxMkJ4yTbs,1592
|
|
256
|
+
exonware/xwsystem/plugins/errors.py,sha256=jeaLJXOIQQiPhyJz1gbv69HJN-7JWUVPnqvEl-T9WdQ,15933
|
|
257
|
+
exonware/xwsystem/query/__init__.py,sha256=mbPDKZAEJP6m4TNVvqEBKdXH2S21ceT4z-twc9Q5laA,1006
|
|
258
|
+
exonware/xwsystem/query/contracts.py,sha256=NV0--MAOI4TMMkb9QW5R0nAGxIuAetertrDM2EmQQy0,1439
|
|
259
|
+
exonware/xwsystem/query/errors.py,sha256=rqagph-7h0-7bNlWlw1SClEP6uwEmPocBOa82Pm6AXk,505
|
|
260
|
+
exonware/xwsystem/query/registry.py,sha256=hIHBVsolcAbOpP-aILb1Ol6gsy1-VN5tw0kkwkiyvoM,4084
|
|
261
|
+
exonware/xwsystem/runtime/__init__.py,sha256=c0m1eqSoz1Yrvjl2tAJ4iVtsV5HMqNXXv_vUHq9e7o8,2286
|
|
262
|
+
exonware/xwsystem/runtime/base.py,sha256=HcU9Fiwetj4kUFJt0ClxYfgZJ7MBbzWGg76rfTZK7QU,13839
|
|
263
|
+
exonware/xwsystem/runtime/contracts.py,sha256=12KHyd9Quji6WuXR7FsMLv9ylwgnWQq-GSKoPccNBDQ,3973
|
|
264
|
+
exonware/xwsystem/runtime/defs.py,sha256=9w4LdW5l62KqqoF1xkGFbyHhKLYDRGvNfoLkiqgM5gI,1200
|
|
265
|
+
exonware/xwsystem/runtime/env.py,sha256=Kno8vUkx1_iKjy2X3McK0TPo1ZPcdf77tBTUM69KZ18,13178
|
|
266
|
+
exonware/xwsystem/runtime/errors.py,sha256=U2hucY-7skTtD7iujkkmO3aonvl6BB8LVgdCRvyGGX4,2241
|
|
267
|
+
exonware/xwsystem/runtime/reflection.py,sha256=wgVdnD7tGQA8B0t6ucjQj8fnv58d97DU6dKN1pmmc9E,13630
|
|
268
|
+
exonware/xwsystem/security/__init__.py,sha256=gyXXrATRmwvQBADPw9gp9nXfcLsiYh5-RL05TsCuQPk,2939
|
|
269
|
+
exonware/xwsystem/security/audit.py,sha256=yFkmPNeoEfWEr0kfjGv11MXYZYLK02X4T_OuvbuW1-4,5611
|
|
270
|
+
exonware/xwsystem/security/base.py,sha256=Na6uJLBAkPO_VmI4K4yil5EmcIJKG5YhMj-2ZIor528,14048
|
|
271
|
+
exonware/xwsystem/security/contracts.py,sha256=YQ57QEq_XlXR_7W0m7XNvAgTdJdIp2REFI15bCURpkU,20637
|
|
272
|
+
exonware/xwsystem/security/crypto.py,sha256=ZE1qLxs4OyGy9Xl5VJqyKgy1kpYObi-1skdJXD2AfI8,24103
|
|
273
|
+
exonware/xwsystem/security/defs.py,sha256=xIceMxFYdZQpaGjctJLQ86a9E7m11OAYB_-6tdSTOBw,2041
|
|
274
|
+
exonware/xwsystem/security/errors.py,sha256=VUQ1nQrR88AQVBTWFEJne9XFJTsSRjWi-3GIY2nl_2s,2939
|
|
275
|
+
exonware/xwsystem/security/facade.py,sha256=C0UmaT7w9-V5BuEPv9wlxtazYl6_VuXcjkPZ_DaeeNA,10536
|
|
276
|
+
exonware/xwsystem/security/file_security.py,sha256=T3L3dmeG-H20OrpBIRUxqs_KBEpasPnlH5UDUHBdpw8,10371
|
|
277
|
+
exonware/xwsystem/security/hazmat.py,sha256=Ak9ygXvMf1_bRVpxbVCMDKUVvX9XaSPHaWvoXf4AtnA,23551
|
|
278
|
+
exonware/xwsystem/security/monitor.py,sha256=p-J91sVpaFc_sIUTclyIcqdu6K0605-s7ei5DR0GNYY,12346
|
|
279
|
+
exonware/xwsystem/security/path_validator.py,sha256=wCIsMte8yirNulX9MVBfHO5XbXR6L7JmvuK8nT2niJQ,15343
|
|
280
|
+
exonware/xwsystem/security/policy.py,sha256=i5paJgEzUR-ReYX-D-t85Z9ybT9OsdsdmoN25OtAd3c,12843
|
|
281
|
+
exonware/xwsystem/security/resource_limits.py,sha256=Hx9jToZiWG3Xyh-Pd400TH260wI_hRm8BMfYv3xRNOs,3867
|
|
282
|
+
exonware/xwsystem/security/validator.py,sha256=f6Lo1GnwkZvtvJKyGbuNhjMgiqQIOj2EBRr80LHd0Aw,15170
|
|
283
|
+
exonware/xwsystem/shared/__init__.py,sha256=akgGS6WTDeth37J8v7xhEIvBvGKloxQr6-6Edaamc0A,2327
|
|
284
|
+
exonware/xwsystem/shared/base.py,sha256=mdNagmxRJlr5NPQxJ3R8-zgyEuALTWM-T7TEDy826uE,17332
|
|
285
|
+
exonware/xwsystem/shared/contracts.py,sha256=6gq-yXAReGZzFhqIKeiiPdNJcPPDykse2xMExR_h7uU,23677
|
|
286
|
+
exonware/xwsystem/shared/defs.py,sha256=v1tWgfU0_GrchcxQS3Y1mAMJBfFh7b9tvkcUyZd1INk,3864
|
|
287
|
+
exonware/xwsystem/shared/errors.py,sha256=L2Oj8YJCM2lSibxAn7HBY-bG4m4f518Vtx2IGwGRQfQ,1359
|
|
288
|
+
exonware/xwsystem/shared/xwobject.py,sha256=neYhkdufqDQPvddZvQ13D5_oD1IJNHVY8AjlE5g7-jA,12033
|
|
289
|
+
exonware/xwsystem/structures/__init__.py,sha256=BFgtmL-ZG9FR6u3YlW5fOeAuLkoGc7KnNSUlEY88tD8,598
|
|
290
|
+
exonware/xwsystem/structures/base.py,sha256=1MDIU5sRu6BvhCs1BlXv8YYn7udWgCQ-LajK48AzNXM,12904
|
|
291
|
+
exonware/xwsystem/structures/circular_detector.py,sha256=jNOnOeJeut8OnR4XwCtQDZ5gdG3avXXaX70nJ2hXdAs,11687
|
|
292
|
+
exonware/xwsystem/structures/contracts.py,sha256=L56WvCyCkuaZ1dWRw-sxU0pDgy4bJYJyc29K2R2XsKs,4444
|
|
293
|
+
exonware/xwsystem/structures/defs.py,sha256=m9frGiRpD2-AG8PZ75oqZGtVDp71jEGEY05GDieyZo0,1589
|
|
294
|
+
exonware/xwsystem/structures/errors.py,sha256=Erv-3Fn9W4E5mOo1ddZxfh3GmOG-saKJfQuGmZ7_Ww0,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=dlQ0I_1aIicp4Sp8O065KOLE1FgpWUrzlcuiZVGp4no,18329
|
|
298
|
+
exonware/xwsystem/threading/base.py,sha256=WhsLdREg8AIMvFMrQY-07fJ69iGM2YBn6buZL37Twbk,10403
|
|
299
|
+
exonware/xwsystem/threading/contracts.py,sha256=XEm87kIXWB3-jr68WILVD90Z3hUbKVDaqhA9v7pXGuo,17625
|
|
300
|
+
exonware/xwsystem/threading/defs.py,sha256=Sonuqze5M9WeLefhwMcZrnD3zspY7aalV-mfhr6keuI,1199
|
|
301
|
+
exonware/xwsystem/threading/errors.py,sha256=Ew4L8hXqaywjVRhmk8sx-Nos7Su8s3VXULg6q708iMM,2120
|
|
302
|
+
exonware/xwsystem/threading/facade.py,sha256=1dFDnUfc1DWlHDRhooM9MM9oi5VG2lRC9M6s3-gzuBw,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=My6r8XR123mYmrBFs7nLwakJaZrlg3ijq1M4EB7s_o8,885
|
|
306
|
+
exonware/xwsystem/utils/base.py,sha256=CY43B2b7IiVYoQda8MEhvGwbhCmdBZSxDVsJ8SqNgaI,12763
|
|
307
|
+
exonware/xwsystem/utils/contracts.py,sha256=XiUdpRLmaO1u5-VaFxfx7qtE4t60y-2LnPm8TIFdSmE,4172
|
|
308
|
+
exonware/xwsystem/utils/errors.py,sha256=WmP8QwgevA28QK6S4zmftGamsyIzT60FaTTSZ4OEj3g,2665
|
|
309
|
+
exonware/xwsystem/utils/paths.py,sha256=wnERoT4yPWwNrrJkICaBxDcKtQQpE61SOZqVDAjiQdI,4339
|
|
310
|
+
exonware/xwsystem/utils/string.py,sha256=Xm0HhgzS0RtEFXbDpYNtkQa2Gu1nSiZUft1A9VVW4Mo,1093
|
|
311
|
+
exonware/xwsystem/utils/test_runner.py,sha256=mte4kIsCocNyugnqyvTih9xqaX6LjfaZ96hyVCOkS70,5489
|
|
312
|
+
exonware/xwsystem/utils/utils_contracts.py,sha256=oO05Ug2sTnzB3u6j0KWsbdtmrz6nqdmKkvZn-gM1tvY,1471
|
|
313
|
+
exonware/xwsystem/utils/web.py,sha256=3AoYXnv-liBlSVXBAbfQ5Ro_meGecUjBBRhw6IAO58c,3182
|
|
314
|
+
exonware/xwsystem/utils/dt/__init__.py,sha256=f0i0CVypwSXSDJQ4PYwNGmHpmeTfLdD-n3d0ryNuoJ4,1923
|
|
315
|
+
exonware/xwsystem/utils/dt/base.py,sha256=Hg6likoOeLqUktR9mHjBY_4aS0kXXrS4ex2TGuVcHKw,7205
|
|
316
|
+
exonware/xwsystem/utils/dt/contracts.py,sha256=BPXnABGa3zwXgwEM2UVwTgSxgnFs0QfYOrzW9O6_cbI,2437
|
|
317
|
+
exonware/xwsystem/utils/dt/defs.py,sha256=6Nr-c2efLG-ytXjhchUya_i0uset2Qna-kTSO1t1NXk,1406
|
|
318
|
+
exonware/xwsystem/utils/dt/errors.py,sha256=7rT88YhZRhhbG4QOBjEHRFrQG1d38_k2Fr_xPWgjcG8,1510
|
|
319
|
+
exonware/xwsystem/utils/dt/formatting.py,sha256=99KjVbcSRc0GLCym3Ct7roBqZxuZ8ay01OxmhycKLXk,6870
|
|
320
|
+
exonware/xwsystem/utils/dt/humanize.py,sha256=jOb8C3C642Wg0C2yjzncdmC8dJyykGcNXk6j0k9j8HM,14432
|
|
321
|
+
exonware/xwsystem/utils/dt/parsing.py,sha256=-_zQS4vumkd3m8e7bQAjWufTb4bBoWEHxFQ8YQkQvCQ,7845
|
|
322
|
+
exonware/xwsystem/utils/dt/timezone_utils.py,sha256=EZNtWqTnbJxGEEJCFCDh3yqHvhoE5TkBrRKFw8rGP2I,2755
|
|
323
|
+
exonware/xwsystem/validation/__init__.py,sha256=4ccR0S1V4mGrxh0dMqGD6yRvmo8q7Is2zm62Qg5DqkY,1209
|
|
324
|
+
exonware/xwsystem/validation/base.py,sha256=VHY6dvS7E3GnneBz5EyjwQyFkFAn_4RunST_bqFm8zM,10355
|
|
325
|
+
exonware/xwsystem/validation/contracts.py,sha256=LjkTeaaLnu505y9Cnphj0QYRqu-1x3C6BRrM_v8PvMo,5789
|
|
326
|
+
exonware/xwsystem/validation/data_validator.py,sha256=nCZZC3FPCGL8or4C7vxyCGvAUH5DVK35cOvxmyhSD-0,9103
|
|
327
|
+
exonware/xwsystem/validation/declarative.py,sha256=IGOeJaU3j__6JFjW02YDwaOMoMfegXhaiYZJrRQz4hw,25150
|
|
328
|
+
exonware/xwsystem/validation/defs.py,sha256=5wp7RKPZxUYvOaWm3lvmka1GBWvMtoqHfPTUhDWp8yk,857
|
|
329
|
+
exonware/xwsystem/validation/errors.py,sha256=fiwFpTaloGa3twTafh50KnWmqkQ6r-7c5ZDXVYjTuyA,2515
|
|
330
|
+
exonware/xwsystem/validation/facade.py,sha256=T5dgZDdMa02BdM7-YEpg0Bonzey4m3ykvkrzLJhonsE,6329
|
|
331
|
+
exonware/xwsystem/validation/fluent_validator.py,sha256=AARnEViD1QjFH3kvW_NIBYGJFPJ8d9Tc2P7u3hFQpIU,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.4.dist-info/METADATA,sha256=xEZm-n9CmlMIuYsiqhotnvj2npBtY7o0DtRk1DuhKfw,38266
|
|
335
|
+
exonware_xwsystem-0.1.0.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
336
|
+
exonware_xwsystem-0.1.0.4.dist-info/licenses/LICENSE,sha256=w42ohoEUfhyT0NgiivAL4fWg2AMRLGnfXPMAR4EO-MU,1094
|
|
337
|
+
exonware_xwsystem-0.1.0.4.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
|