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,8 +1,9 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/defaults.py
|
|
1
2
|
"""
|
|
2
3
|
Company: eXonware.com
|
|
3
4
|
Author: Eng. Muhammad AlShehri
|
|
4
5
|
Email: connect@exonware.com
|
|
5
|
-
Version: 0.1.0.
|
|
6
|
+
Version: 0.1.0.3
|
|
6
7
|
Generation Date: September 04, 2025
|
|
7
8
|
|
|
8
9
|
Default configuration constants for XSystem framework.
|
|
@@ -166,7 +167,7 @@ class DefaultConfig(AConfigBase):
|
|
|
166
167
|
|
|
167
168
|
def validate(self) -> bool:
|
|
168
169
|
"""Validate configuration."""
|
|
169
|
-
# Basic validation - all values
|
|
170
|
+
# Basic validation - all values are non-None
|
|
170
171
|
return all(value is not None for value in self._config.values())
|
|
171
172
|
|
|
172
173
|
def get_default(self, key: str) -> Any:
|
exonware/xwsystem/config/defs.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/defs.py
|
|
2
3
|
#exonware/xwsystem/config/types.py
|
|
3
4
|
"""
|
|
4
5
|
Company: eXonware.com
|
|
5
6
|
Author: Eng. Muhammad AlShehri
|
|
6
7
|
Email: connect@exonware.com
|
|
7
|
-
Version: 0.1.0.
|
|
8
|
+
Version: 0.1.0.3
|
|
8
9
|
Generation Date: 07-Sep-2025
|
|
9
10
|
|
|
10
11
|
Config types and enums for XWSystem.
|
|
@@ -78,4 +79,4 @@ class AdvancedPerformanceMode(Enum):
|
|
|
78
79
|
OPTIMIZED = "optimized" # Prioritize memory efficiency
|
|
79
80
|
MANUAL = "manual" # Use specific custom settings
|
|
80
81
|
ADAPTIVE = "adaptive" # Runtime adaptation based on performance monitoring
|
|
81
|
-
DUAL_ADAPTIVE = "dual_adaptive" #
|
|
82
|
+
DUAL_ADAPTIVE = "dual_adaptive" # Dual-phase: fast cruise + deep-dive
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/errors.py
|
|
1
2
|
#exonware/xwsystem/config/errors.py
|
|
2
3
|
"""
|
|
3
4
|
Company: eXonware.com
|
|
4
5
|
Author: Eng. Muhammad AlShehri
|
|
5
6
|
Email: connect@exonware.com
|
|
6
|
-
Version: 0.1.0.
|
|
7
|
+
Version: 0.1.0.3
|
|
7
8
|
Generation Date: September 04, 2025
|
|
8
9
|
|
|
9
10
|
Configuration module errors - exception classes for configuration functionality.
|
|
@@ -74,7 +75,3 @@ class PerformanceConfigError(ConfigError):
|
|
|
74
75
|
"""Raised when performance configuration fails."""
|
|
75
76
|
pass
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
# Aliases for backward compatibility
|
|
79
|
-
PerformanceError = PerformanceConfigError
|
|
80
|
-
LoggingError = LoggingConfigError
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/logging.py
|
|
1
2
|
"""
|
|
2
3
|
Company: eXonware.com
|
|
3
4
|
Author: Eng. Muhammad AlShehri
|
|
4
5
|
Email: connect@exonware.com
|
|
5
|
-
Version: 0.1.0.
|
|
6
|
+
Version: 0.1.0.3
|
|
6
7
|
Generation Date: September 04, 2025
|
|
7
8
|
|
|
8
9
|
Logging configuration for XSystem.
|
|
@@ -12,7 +13,6 @@ Provides simple logging control functions and configuration management.
|
|
|
12
13
|
|
|
13
14
|
import logging
|
|
14
15
|
import os
|
|
15
|
-
from typing import Union
|
|
16
16
|
|
|
17
17
|
from .defaults import LOGGING_ENABLED, LOGGING_LEVEL
|
|
18
18
|
|
|
@@ -39,13 +39,17 @@ class LoggingConfig:
|
|
|
39
39
|
|
|
40
40
|
def set_level(self, level: str) -> None:
|
|
41
41
|
"""Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)."""
|
|
42
|
-
|
|
42
|
+
level_upper = level.upper()
|
|
43
|
+
# Validate level by trying to get it from logging module
|
|
44
|
+
# This will raise AttributeError for invalid levels
|
|
45
|
+
try:
|
|
46
|
+
logging_level = getattr(logging, level_upper)
|
|
47
|
+
except AttributeError:
|
|
48
|
+
raise AttributeError(f"Invalid logging level: {level}. Valid levels are: DEBUG, INFO, WARNING, ERROR, CRITICAL")
|
|
49
|
+
|
|
50
|
+
self._level = level_upper
|
|
43
51
|
if self._enabled:
|
|
44
|
-
|
|
45
|
-
logging.getLogger().setLevel(getattr(logging, self._level))
|
|
46
|
-
except (AttributeError, TypeError):
|
|
47
|
-
# Handle cases where logging level comparison might fail
|
|
48
|
-
pass
|
|
52
|
+
logging.getLogger().setLevel(logging_level)
|
|
49
53
|
|
|
50
54
|
@property
|
|
51
55
|
def enabled(self) -> bool:
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/logging_setup.py
|
|
1
2
|
"""
|
|
2
3
|
Company: eXonware.com
|
|
3
4
|
Author: Eng. Muhammad AlShehri
|
|
4
5
|
Email: connect@exonware.com
|
|
5
|
-
Version: 0.1.0.
|
|
6
|
+
Version: 0.1.0.3
|
|
6
7
|
Generation Date: September 05, 2025
|
|
7
8
|
|
|
8
9
|
Logging configuration setup for XSystem.
|
|
@@ -41,7 +42,7 @@ def setup_logging(
|
|
|
41
42
|
return
|
|
42
43
|
|
|
43
44
|
# Try to check XSystem config if available
|
|
44
|
-
# Import is explicit - internal package import
|
|
45
|
+
# Import is explicit - internal package import
|
|
45
46
|
from .logging import logging_config
|
|
46
47
|
|
|
47
48
|
if not logging_config.enabled:
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/performance.py
|
|
1
2
|
"""Performance optimization configuration for xwsystem I/O operations.
|
|
2
3
|
|
|
3
4
|
This module provides configuration options to enable/disable performance
|
|
@@ -80,54 +81,8 @@ def set_performance_config(config: PerformanceConfig) -> None:
|
|
|
80
81
|
_config = config
|
|
81
82
|
|
|
82
83
|
|
|
83
|
-
# Placeholder classes for backward compatibility with existing config system
|
|
84
|
-
# These are not used by the new optimization system but are required by __init__.py
|
|
85
|
-
@dataclass
|
|
86
|
-
class PerformanceLimits:
|
|
87
|
-
"""Placeholder for backward compatibility."""
|
|
88
|
-
pass
|
|
89
|
-
|
|
90
|
-
@dataclass
|
|
91
|
-
class SerializationLimits:
|
|
92
|
-
"""Placeholder for backward compatibility."""
|
|
93
|
-
pass
|
|
94
|
-
|
|
95
|
-
@dataclass
|
|
96
|
-
class NetworkLimits:
|
|
97
|
-
"""Placeholder for backward compatibility."""
|
|
98
|
-
pass
|
|
99
|
-
|
|
100
|
-
@dataclass
|
|
101
|
-
class SecurityLimits:
|
|
102
|
-
"""Placeholder for backward compatibility."""
|
|
103
|
-
pass
|
|
104
|
-
|
|
105
|
-
def configure_performance(**kwargs):
|
|
106
|
-
"""Placeholder for backward compatibility."""
|
|
107
|
-
pass
|
|
108
|
-
|
|
109
|
-
def get_serialization_limits():
|
|
110
|
-
"""Placeholder for backward compatibility."""
|
|
111
|
-
return SerializationLimits()
|
|
112
|
-
|
|
113
|
-
def get_network_limits():
|
|
114
|
-
"""Placeholder for backward compatibility."""
|
|
115
|
-
return NetworkLimits()
|
|
116
|
-
|
|
117
|
-
def get_security_limits():
|
|
118
|
-
"""Placeholder for backward compatibility."""
|
|
119
|
-
return SecurityLimits()
|
|
120
|
-
|
|
121
84
|
__all__ = [
|
|
122
85
|
"PerformanceConfig",
|
|
123
|
-
"PerformanceLimits",
|
|
124
|
-
"SerializationLimits",
|
|
125
|
-
"NetworkLimits",
|
|
126
|
-
"SecurityLimits",
|
|
127
86
|
"get_performance_config",
|
|
128
87
|
"set_performance_config",
|
|
129
|
-
"configure_performance",
|
|
130
|
-
"get_serialization_limits",
|
|
131
|
-
"get_network_limits",
|
|
132
|
-
"get_security_limits",
|
|
133
88
|
]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/config/performance_modes.py
|
|
1
2
|
"""
|
|
2
3
|
Performance mode definitions for XWSystem framework.
|
|
3
4
|
|
|
@@ -10,18 +11,18 @@ import statistics
|
|
|
10
11
|
import threading
|
|
11
12
|
import time
|
|
12
13
|
from dataclasses import dataclass, field
|
|
13
|
-
from typing import Any, Optional
|
|
14
|
+
from typing import Any, Optional
|
|
14
15
|
from .defs import AdvancedPerformanceMode
|
|
15
16
|
|
|
16
17
|
import psutil
|
|
17
18
|
|
|
18
19
|
|
|
19
|
-
# Use AdvancedPerformanceMode directly as PerformanceMode
|
|
20
|
+
# Use AdvancedPerformanceMode directly as PerformanceMode
|
|
20
21
|
PerformanceMode = AdvancedPerformanceMode
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
class PerformanceModes:
|
|
24
|
-
"""Performance mode constants
|
|
25
|
+
"""Performance mode constants."""
|
|
25
26
|
|
|
26
27
|
FAST = "fast"
|
|
27
28
|
BALANCED = "balanced"
|
|
@@ -54,7 +55,7 @@ class PerformanceProfile:
|
|
|
54
55
|
enable_thread_safety: bool
|
|
55
56
|
lock_timeout: float
|
|
56
57
|
|
|
57
|
-
# Security limits (
|
|
58
|
+
# Security limits (enforced)
|
|
58
59
|
max_depth: int
|
|
59
60
|
max_nodes: int
|
|
60
61
|
max_path_length: int
|
|
@@ -127,7 +128,7 @@ class DualAdaptiveProfile(PerformanceProfile):
|
|
|
127
128
|
deep_dive_sample_rate: int = 1 # Sample every operation in deep-dive
|
|
128
129
|
deep_dive_history_size: int = 1000 # Keep detailed history during deep-dive
|
|
129
130
|
|
|
130
|
-
#
|
|
131
|
+
# Adaptive triggers
|
|
131
132
|
memory_pressure_threshold: float = 0.8 # 80% memory usage triggers deep-dive
|
|
132
133
|
cpu_pressure_threshold: float = 0.7 # 70% CPU usage triggers deep-dive
|
|
133
134
|
performance_degradation_threshold: float = 0.2 # 20% degradation triggers deep-dive
|
|
@@ -343,7 +344,7 @@ class AdaptiveLearningEngine:
|
|
|
343
344
|
if not mode_scores:
|
|
344
345
|
return PerformanceMode.AUTO
|
|
345
346
|
|
|
346
|
-
# Return the
|
|
347
|
+
# Return the highest performing mode
|
|
347
348
|
best_mode_name = max(mode_scores.items(), key=lambda x: x[1])[0]
|
|
348
349
|
return PerformanceMode.from_string(best_mode_name)
|
|
349
350
|
|
|
@@ -590,7 +591,7 @@ class DualPhaseAdaptiveEngine:
|
|
|
590
591
|
if not mode_scores:
|
|
591
592
|
return PerformanceMode.OPTIMIZED
|
|
592
593
|
|
|
593
|
-
# Return the
|
|
594
|
+
# Return the highest performing mode
|
|
594
595
|
best_mode_name = max(mode_scores.items(), key=lambda x: x[1])[0]
|
|
595
596
|
return PerformanceMode.from_string(best_mode_name)
|
|
596
597
|
|
|
@@ -759,7 +760,7 @@ class PerformanceProfiles:
|
|
|
759
760
|
deep_dive_duration=200, # Deep-dive for 200 operations (was 500)
|
|
760
761
|
deep_dive_sample_rate=5, # Sample every 5th operation (was 1)
|
|
761
762
|
deep_dive_history_size=500, # Keep detailed history (was 1000)
|
|
762
|
-
#
|
|
763
|
+
# Adaptive triggers
|
|
763
764
|
memory_pressure_threshold=0.9, # 90% memory usage triggers deep-dive (was 0.8)
|
|
764
765
|
cpu_pressure_threshold=0.8, # 80% CPU usage triggers deep-dive (was 0.7)
|
|
765
766
|
performance_degradation_threshold=0.3, # 30% degradation triggers deep-dive (was 0.2)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
#exonware/xwsystem/src/exonware/xwsystem/config.py
|
|
3
|
+
|
|
4
|
+
Package-level configuration entry points for xwsystem.
|
|
5
|
+
|
|
6
|
+
Company: eXonware.com
|
|
7
|
+
Author: Eng. Muhammad AlShehri
|
|
8
|
+
Email: connect@exonware.com
|
|
9
|
+
Version: 0.1.0.3
|
|
10
|
+
Last Updated: 29-Jan-2026
|
|
11
|
+
|
|
12
|
+
This module exists to satisfy the canonical structure in GUIDE_31_DEV.md:
|
|
13
|
+
- `config.py` at package root for configuration surfaces.
|
|
14
|
+
|
|
15
|
+
The concrete configuration system lives under `exonware.xwsystem.config`.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
from .config.logging_setup import get_logger, setup_logging
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
__all__ = [
|
|
24
|
+
"get_logger",
|
|
25
|
+
"setup_logging",
|
|
26
|
+
]
|
|
27
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
#exonware/xwsystem/src/exonware/xwsystem/console/__init__.py
|
|
3
|
+
#exonware/xwsystem/console/__init__.py
|
|
4
|
+
"""
|
|
5
|
+
Company: eXonware.com
|
|
6
|
+
Author: Eng. Muhammad AlShehri
|
|
7
|
+
Email: connect@exonware.com
|
|
8
|
+
Version: 0.1.0.3
|
|
9
|
+
Generation Date: 2025-01-27
|
|
10
|
+
|
|
11
|
+
Console module for structured logging and user interaction.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from .defs import (
|
|
15
|
+
LogLevel,
|
|
16
|
+
ConsoleEventType,
|
|
17
|
+
ConsoleEvent,
|
|
18
|
+
)
|
|
19
|
+
from .contracts import (
|
|
20
|
+
IEventLogger,
|
|
21
|
+
IConsoleWriter,
|
|
22
|
+
)
|
|
23
|
+
from .base import (
|
|
24
|
+
AEventLogger,
|
|
25
|
+
AConsoleWriter,
|
|
26
|
+
)
|
|
27
|
+
from .event_logger import ConsoleEventLogger
|
|
28
|
+
from .writer import ConsoleWriter
|
|
29
|
+
from .errors import (
|
|
30
|
+
ConsoleError,
|
|
31
|
+
EventLoggerError,
|
|
32
|
+
ConsoleWriterError,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
__all__ = [
|
|
36
|
+
# Type definitions
|
|
37
|
+
'LogLevel',
|
|
38
|
+
'ConsoleEventType',
|
|
39
|
+
'ConsoleEvent',
|
|
40
|
+
# Interfaces
|
|
41
|
+
'IEventLogger',
|
|
42
|
+
'IConsoleWriter',
|
|
43
|
+
# Abstract base classes
|
|
44
|
+
'AEventLogger',
|
|
45
|
+
'AConsoleWriter',
|
|
46
|
+
# Implementations
|
|
47
|
+
'ConsoleEventLogger',
|
|
48
|
+
'ConsoleWriter',
|
|
49
|
+
# Errors
|
|
50
|
+
'ConsoleError',
|
|
51
|
+
'EventLoggerError',
|
|
52
|
+
'ConsoleWriterError',
|
|
53
|
+
]
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
#exonware/xwsystem/src/exonware/xwsystem/console/base.py
|
|
3
|
+
#exonware/xwsystem/console/base.py
|
|
4
|
+
"""
|
|
5
|
+
Company: eXonware.com
|
|
6
|
+
Author: Eng. Muhammad AlShehri
|
|
7
|
+
Email: connect@exonware.com
|
|
8
|
+
Version: 0.1.0.3
|
|
9
|
+
Generation Date: 2025-01-27
|
|
10
|
+
|
|
11
|
+
Console module base classes - abstract base classes for console functionality.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from abc import ABC, abstractmethod
|
|
15
|
+
from typing import Optional, Any
|
|
16
|
+
from .contracts import IEventLogger, IConsoleWriter
|
|
17
|
+
from .defs import LogLevel, ConsoleEventType, ConsoleEvent
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AEventLogger(ABC, IEventLogger):
|
|
21
|
+
"""
|
|
22
|
+
Abstract base class for event logging.
|
|
23
|
+
|
|
24
|
+
All event loggers should extend this class.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
@abstractmethod
|
|
28
|
+
def log(
|
|
29
|
+
self,
|
|
30
|
+
msg: str,
|
|
31
|
+
source: Optional[str] = None,
|
|
32
|
+
data: Optional[Any] = None,
|
|
33
|
+
color: Optional[str] = None,
|
|
34
|
+
label: Optional[str] = None
|
|
35
|
+
) -> ConsoleEvent:
|
|
36
|
+
"""Log a general message."""
|
|
37
|
+
pass
|
|
38
|
+
|
|
39
|
+
@abstractmethod
|
|
40
|
+
def info(
|
|
41
|
+
self,
|
|
42
|
+
msg: str,
|
|
43
|
+
source: Optional[str] = None,
|
|
44
|
+
data: Optional[Any] = None
|
|
45
|
+
) -> ConsoleEvent:
|
|
46
|
+
"""Log an info message."""
|
|
47
|
+
pass
|
|
48
|
+
|
|
49
|
+
@abstractmethod
|
|
50
|
+
def warn(
|
|
51
|
+
self,
|
|
52
|
+
msg: str,
|
|
53
|
+
source: Optional[str] = None,
|
|
54
|
+
data: Optional[Any] = None
|
|
55
|
+
) -> ConsoleEvent:
|
|
56
|
+
"""Log a warning message."""
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
@abstractmethod
|
|
60
|
+
def error(
|
|
61
|
+
self,
|
|
62
|
+
msg: str,
|
|
63
|
+
source: Optional[str] = None,
|
|
64
|
+
data: Optional[Any] = None,
|
|
65
|
+
stack: Optional[str] = None
|
|
66
|
+
) -> ConsoleEvent:
|
|
67
|
+
"""Log an error message."""
|
|
68
|
+
pass
|
|
69
|
+
|
|
70
|
+
@abstractmethod
|
|
71
|
+
def debug(
|
|
72
|
+
self,
|
|
73
|
+
msg: str,
|
|
74
|
+
source: Optional[str] = None,
|
|
75
|
+
data: Optional[Any] = None
|
|
76
|
+
) -> ConsoleEvent:
|
|
77
|
+
"""Log a debug message."""
|
|
78
|
+
pass
|
|
79
|
+
|
|
80
|
+
@abstractmethod
|
|
81
|
+
def get_events(
|
|
82
|
+
self,
|
|
83
|
+
event_type: Optional[ConsoleEventType] = None,
|
|
84
|
+
level: Optional[LogLevel] = None,
|
|
85
|
+
source: Optional[str] = None,
|
|
86
|
+
limit: Optional[int] = None
|
|
87
|
+
) -> list[dict]:
|
|
88
|
+
"""Get logged events as dictionaries."""
|
|
89
|
+
pass
|
|
90
|
+
|
|
91
|
+
@abstractmethod
|
|
92
|
+
def clear(self) -> None:
|
|
93
|
+
"""Clear all logged events."""
|
|
94
|
+
pass
|
|
95
|
+
|
|
96
|
+
@abstractmethod
|
|
97
|
+
def count(self) -> int:
|
|
98
|
+
"""Get the number of logged events."""
|
|
99
|
+
pass
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class AConsoleWriter(ABC, IConsoleWriter):
|
|
103
|
+
"""
|
|
104
|
+
Abstract base class for console writing (user interaction, not logging).
|
|
105
|
+
|
|
106
|
+
Can be used as a base class for bots and other user interaction systems.
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
@abstractmethod
|
|
110
|
+
def write(self, text: str, **kwargs) -> None:
|
|
111
|
+
"""Write text to console."""
|
|
112
|
+
pass
|
|
113
|
+
|
|
114
|
+
@abstractmethod
|
|
115
|
+
def write_line(self, text: str = "", **kwargs) -> None:
|
|
116
|
+
"""Write a line to console."""
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
@abstractmethod
|
|
120
|
+
def read(self, prompt: str = "") -> str:
|
|
121
|
+
"""Read input from console."""
|
|
122
|
+
pass
|
|
123
|
+
|
|
124
|
+
@abstractmethod
|
|
125
|
+
def clear(self) -> None:
|
|
126
|
+
"""Clear console screen."""
|
|
127
|
+
pass
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
__all__ = [
|
|
131
|
+
'AEventLogger',
|
|
132
|
+
'AConsoleWriter',
|
|
133
|
+
]
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#exonware/xwsystem/src/exonware/xwsystem/console/cli/__init__.py
|
|
2
|
+
"""
|
|
3
|
+
Command Line Interface (CLI) Utilities
|
|
4
|
+
======================================
|
|
5
|
+
|
|
6
|
+
Production-grade CLI utilities for XSystem.
|
|
7
|
+
|
|
8
|
+
Company: eXonware.com
|
|
9
|
+
Author: Eng. Muhammad AlShehri
|
|
10
|
+
Email: connect@exonware.com
|
|
11
|
+
Version: 0.1.0.3
|
|
12
|
+
Generated: 2025-01-27
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
# Import general console enums from console level (priority)
|
|
16
|
+
from ..defs import Colors, Style, Alignment, BorderStyle
|
|
17
|
+
from .colors import colorize, CliColoredOutput
|
|
18
|
+
from .args import CliArgumentParser, CliArgument, CliCommand, ArgumentType
|
|
19
|
+
from .progress import CliProgressBar, CliSpinnerProgress, CliMultiProgress, CliProgressConfig
|
|
20
|
+
from .tables import CliTable, CliTableFormatter, CliColumn
|
|
21
|
+
from .console import CliConsole
|
|
22
|
+
from .event_logger import CliEventLogger
|
|
23
|
+
from .encoding import ensure_utf8_console
|
|
24
|
+
|
|
25
|
+
__all__ = [
|
|
26
|
+
# General console enums (from console level)
|
|
27
|
+
'Colors',
|
|
28
|
+
'Style',
|
|
29
|
+
'Alignment',
|
|
30
|
+
'BorderStyle',
|
|
31
|
+
|
|
32
|
+
# Colors
|
|
33
|
+
'colorize',
|
|
34
|
+
'CliColoredOutput',
|
|
35
|
+
|
|
36
|
+
# Arguments
|
|
37
|
+
'CliArgumentParser',
|
|
38
|
+
'CliArgument',
|
|
39
|
+
'CliCommand',
|
|
40
|
+
'ArgumentType',
|
|
41
|
+
|
|
42
|
+
# Progress
|
|
43
|
+
'CliProgressBar',
|
|
44
|
+
'CliSpinnerProgress',
|
|
45
|
+
'CliMultiProgress',
|
|
46
|
+
'CliProgressConfig',
|
|
47
|
+
|
|
48
|
+
# Tables
|
|
49
|
+
'CliTable',
|
|
50
|
+
'CliTableFormatter',
|
|
51
|
+
'CliColumn',
|
|
52
|
+
|
|
53
|
+
# Console (extends ConsoleWriter from console level)
|
|
54
|
+
'CliConsole',
|
|
55
|
+
|
|
56
|
+
# Event Logger (extends logging.Logger)
|
|
57
|
+
'CliEventLogger',
|
|
58
|
+
|
|
59
|
+
# Encoding
|
|
60
|
+
'ensure_utf8_console',
|
|
61
|
+
]
|