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.
Files changed (341) hide show
  1. exonware/__init__.py +2 -1
  2. exonware/conf.py +2 -2
  3. exonware/xwsystem/__init__.py +115 -43
  4. exonware/xwsystem/base.py +30 -0
  5. exonware/xwsystem/caching/__init__.py +39 -13
  6. exonware/xwsystem/caching/base.py +24 -6
  7. exonware/xwsystem/caching/bloom_cache.py +2 -2
  8. exonware/xwsystem/caching/cache_manager.py +2 -1
  9. exonware/xwsystem/caching/conditional.py +2 -2
  10. exonware/xwsystem/caching/contracts.py +85 -139
  11. exonware/xwsystem/caching/decorators.py +6 -19
  12. exonware/xwsystem/caching/defs.py +2 -1
  13. exonware/xwsystem/caching/disk_cache.py +2 -1
  14. exonware/xwsystem/caching/distributed.py +2 -1
  15. exonware/xwsystem/caching/errors.py +2 -1
  16. exonware/xwsystem/caching/events.py +110 -27
  17. exonware/xwsystem/caching/eviction_strategies.py +2 -2
  18. exonware/xwsystem/caching/external_caching_python.py +701 -0
  19. exonware/xwsystem/caching/facade.py +253 -0
  20. exonware/xwsystem/caching/factory.py +300 -0
  21. exonware/xwsystem/caching/fluent.py +14 -12
  22. exonware/xwsystem/caching/integrity.py +21 -6
  23. exonware/xwsystem/caching/lfu_cache.py +2 -1
  24. exonware/xwsystem/caching/lfu_optimized.py +18 -6
  25. exonware/xwsystem/caching/lru_cache.py +7 -4
  26. exonware/xwsystem/caching/memory_bounded.py +2 -2
  27. exonware/xwsystem/caching/metrics_exporter.py +2 -2
  28. exonware/xwsystem/caching/observable_cache.py +2 -2
  29. exonware/xwsystem/caching/pluggable_cache.py +2 -2
  30. exonware/xwsystem/caching/rate_limiter.py +2 -2
  31. exonware/xwsystem/caching/read_through.py +2 -2
  32. exonware/xwsystem/caching/secure_cache.py +81 -28
  33. exonware/xwsystem/caching/serializable.py +9 -7
  34. exonware/xwsystem/caching/stats.py +2 -2
  35. exonware/xwsystem/caching/tagging.py +2 -2
  36. exonware/xwsystem/caching/ttl_cache.py +4 -3
  37. exonware/xwsystem/caching/two_tier_cache.py +6 -3
  38. exonware/xwsystem/caching/utils.py +30 -12
  39. exonware/xwsystem/caching/validation.py +2 -2
  40. exonware/xwsystem/caching/warming.py +6 -3
  41. exonware/xwsystem/caching/write_behind.py +15 -6
  42. exonware/xwsystem/config/__init__.py +11 -17
  43. exonware/xwsystem/config/base.py +5 -5
  44. exonware/xwsystem/config/contracts.py +93 -153
  45. exonware/xwsystem/config/defaults.py +3 -2
  46. exonware/xwsystem/config/defs.py +3 -2
  47. exonware/xwsystem/config/errors.py +2 -5
  48. exonware/xwsystem/config/logging.py +12 -8
  49. exonware/xwsystem/config/logging_setup.py +3 -2
  50. exonware/xwsystem/config/performance.py +1 -46
  51. exonware/xwsystem/config/performance_modes.py +9 -8
  52. exonware/xwsystem/config/version_manager.py +1 -0
  53. exonware/xwsystem/config.py +27 -0
  54. exonware/xwsystem/console/__init__.py +53 -0
  55. exonware/xwsystem/console/base.py +133 -0
  56. exonware/xwsystem/console/cli/__init__.py +61 -0
  57. exonware/xwsystem/{cli → console/cli}/args.py +27 -24
  58. exonware/xwsystem/{cli → console/cli}/base.py +18 -87
  59. exonware/xwsystem/{cli → console/cli}/colors.py +15 -13
  60. exonware/xwsystem/console/cli/console.py +98 -0
  61. exonware/xwsystem/{cli → console/cli}/contracts.py +51 -69
  62. exonware/xwsystem/console/cli/defs.py +87 -0
  63. exonware/xwsystem/console/cli/encoding.py +69 -0
  64. exonware/xwsystem/{cli → console/cli}/errors.py +8 -3
  65. exonware/xwsystem/console/cli/event_logger.py +166 -0
  66. exonware/xwsystem/{cli → console/cli}/progress.py +25 -21
  67. exonware/xwsystem/{cli → console/cli}/prompts.py +3 -2
  68. exonware/xwsystem/{cli → console/cli}/tables.py +27 -24
  69. exonware/xwsystem/console/contracts.py +113 -0
  70. exonware/xwsystem/console/defs.py +154 -0
  71. exonware/xwsystem/console/errors.py +34 -0
  72. exonware/xwsystem/console/event_logger.py +385 -0
  73. exonware/xwsystem/console/writer.py +132 -0
  74. exonware/xwsystem/contracts.py +28 -0
  75. exonware/xwsystem/data_structures/__init__.py +23 -0
  76. exonware/xwsystem/data_structures/trie.py +34 -0
  77. exonware/xwsystem/data_structures/union_find.py +144 -0
  78. exonware/xwsystem/defs.py +17 -0
  79. exonware/xwsystem/errors.py +23 -0
  80. exonware/xwsystem/facade.py +62 -0
  81. exonware/xwsystem/http_client/__init__.py +22 -1
  82. exonware/xwsystem/http_client/advanced_client.py +8 -5
  83. exonware/xwsystem/http_client/base.py +3 -2
  84. exonware/xwsystem/http_client/client.py +7 -4
  85. exonware/xwsystem/http_client/contracts.py +42 -56
  86. exonware/xwsystem/http_client/defs.py +2 -1
  87. exonware/xwsystem/http_client/errors.py +2 -1
  88. exonware/xwsystem/http_client/facade.py +156 -0
  89. exonware/xwsystem/io/__init__.py +22 -3
  90. exonware/xwsystem/io/archive/__init__.py +8 -2
  91. exonware/xwsystem/io/archive/archive.py +1 -1
  92. exonware/xwsystem/io/archive/archive_files.py +4 -7
  93. exonware/xwsystem/io/archive/archivers.py +120 -10
  94. exonware/xwsystem/io/archive/base.py +4 -5
  95. exonware/xwsystem/io/archive/codec_integration.py +1 -2
  96. exonware/xwsystem/io/archive/compression.py +1 -2
  97. exonware/xwsystem/io/archive/facade.py +263 -0
  98. exonware/xwsystem/io/archive/formats/__init__.py +2 -3
  99. exonware/xwsystem/io/archive/formats/brotli_format.py +20 -7
  100. exonware/xwsystem/io/archive/formats/lz4_format.py +20 -7
  101. exonware/xwsystem/io/archive/formats/rar.py +11 -5
  102. exonware/xwsystem/io/archive/formats/sevenzip.py +12 -6
  103. exonware/xwsystem/io/archive/formats/squashfs_format.py +1 -2
  104. exonware/xwsystem/io/archive/formats/tar.py +52 -7
  105. exonware/xwsystem/io/archive/formats/wim_format.py +11 -5
  106. exonware/xwsystem/io/archive/formats/zip.py +1 -2
  107. exonware/xwsystem/io/archive/formats/zpaq_format.py +1 -2
  108. exonware/xwsystem/io/archive/formats/zstandard.py +20 -7
  109. exonware/xwsystem/io/base.py +119 -115
  110. exonware/xwsystem/io/codec/__init__.py +4 -2
  111. exonware/xwsystem/io/codec/base.py +19 -13
  112. exonware/xwsystem/io/codec/contracts.py +59 -2
  113. exonware/xwsystem/io/codec/registry.py +67 -21
  114. exonware/xwsystem/io/common/__init__.py +1 -1
  115. exonware/xwsystem/io/common/atomic.py +29 -16
  116. exonware/xwsystem/io/common/base.py +11 -10
  117. exonware/xwsystem/io/common/lock.py +6 -5
  118. exonware/xwsystem/io/common/path_manager.py +2 -1
  119. exonware/xwsystem/io/common/watcher.py +1 -2
  120. exonware/xwsystem/io/contracts.py +301 -433
  121. exonware/xwsystem/io/contracts_1.py +1180 -0
  122. exonware/xwsystem/io/data_operations.py +19 -20
  123. exonware/xwsystem/io/defs.py +4 -3
  124. exonware/xwsystem/io/errors.py +3 -2
  125. exonware/xwsystem/io/facade.py +87 -61
  126. exonware/xwsystem/io/file/__init__.py +1 -1
  127. exonware/xwsystem/io/file/base.py +8 -9
  128. exonware/xwsystem/io/file/conversion.py +2 -3
  129. exonware/xwsystem/io/file/file.py +61 -18
  130. exonware/xwsystem/io/file/paged_source.py +8 -8
  131. exonware/xwsystem/io/file/paging/__init__.py +1 -2
  132. exonware/xwsystem/io/file/paging/byte_paging.py +4 -5
  133. exonware/xwsystem/io/file/paging/line_paging.py +2 -3
  134. exonware/xwsystem/io/file/paging/record_paging.py +2 -3
  135. exonware/xwsystem/io/file/paging/registry.py +1 -2
  136. exonware/xwsystem/io/file/source.py +13 -17
  137. exonware/xwsystem/io/filesystem/__init__.py +1 -1
  138. exonware/xwsystem/io/filesystem/base.py +1 -2
  139. exonware/xwsystem/io/filesystem/local.py +3 -4
  140. exonware/xwsystem/io/folder/__init__.py +1 -1
  141. exonware/xwsystem/io/folder/base.py +1 -2
  142. exonware/xwsystem/io/folder/folder.py +16 -7
  143. exonware/xwsystem/io/indexing/__init__.py +14 -0
  144. exonware/xwsystem/io/indexing/facade.py +443 -0
  145. exonware/xwsystem/io/path_parser.py +98 -0
  146. exonware/xwsystem/io/serialization/__init__.py +21 -3
  147. exonware/xwsystem/io/serialization/auto_serializer.py +146 -20
  148. exonware/xwsystem/io/serialization/base.py +84 -34
  149. exonware/xwsystem/io/serialization/contracts.py +50 -73
  150. exonware/xwsystem/io/serialization/defs.py +2 -1
  151. exonware/xwsystem/io/serialization/errors.py +2 -1
  152. exonware/xwsystem/io/serialization/flyweight.py +154 -7
  153. exonware/xwsystem/io/serialization/format_detector.py +15 -14
  154. exonware/xwsystem/io/serialization/formats/__init__.py +8 -5
  155. exonware/xwsystem/io/serialization/formats/binary/bson.py +15 -6
  156. exonware/xwsystem/io/serialization/formats/binary/cbor.py +5 -5
  157. exonware/xwsystem/io/serialization/formats/binary/marshal.py +5 -5
  158. exonware/xwsystem/io/serialization/formats/binary/msgpack.py +5 -5
  159. exonware/xwsystem/io/serialization/formats/binary/pickle.py +5 -5
  160. exonware/xwsystem/io/serialization/formats/binary/plistlib.py +5 -5
  161. exonware/xwsystem/io/serialization/formats/database/dbm.py +7 -7
  162. exonware/xwsystem/io/serialization/formats/database/shelve.py +7 -7
  163. exonware/xwsystem/io/serialization/formats/database/sqlite3.py +7 -7
  164. exonware/xwsystem/io/serialization/formats/tabular/__init__.py +27 -0
  165. exonware/xwsystem/io/serialization/formats/tabular/base.py +89 -0
  166. exonware/xwsystem/io/serialization/formats/tabular/csv.py +319 -0
  167. exonware/xwsystem/io/serialization/formats/tabular/df.py +249 -0
  168. exonware/xwsystem/io/serialization/formats/tabular/excel.py +291 -0
  169. exonware/xwsystem/io/serialization/formats/tabular/googlesheets.py +374 -0
  170. exonware/xwsystem/io/serialization/formats/text/__init__.py +1 -1
  171. exonware/xwsystem/io/serialization/formats/text/append_only_log.py +5 -7
  172. exonware/xwsystem/io/serialization/formats/text/configparser.py +5 -5
  173. exonware/xwsystem/io/serialization/formats/text/csv.py +7 -5
  174. exonware/xwsystem/io/serialization/formats/text/formdata.py +5 -5
  175. exonware/xwsystem/io/serialization/formats/text/json.py +27 -18
  176. exonware/xwsystem/io/serialization/formats/text/json5.py +8 -4
  177. exonware/xwsystem/io/serialization/formats/text/jsonlines.py +18 -14
  178. exonware/xwsystem/io/serialization/formats/text/multipart.py +5 -5
  179. exonware/xwsystem/io/serialization/formats/text/toml.py +8 -6
  180. exonware/xwsystem/io/serialization/formats/text/xml.py +25 -20
  181. exonware/xwsystem/io/serialization/formats/text/yaml.py +8 -6
  182. exonware/xwsystem/io/serialization/parsers/__init__.py +3 -2
  183. exonware/xwsystem/io/serialization/parsers/base.py +6 -5
  184. exonware/xwsystem/io/serialization/parsers/hybrid_parser.py +7 -6
  185. exonware/xwsystem/io/serialization/parsers/msgspec_parser.py +10 -7
  186. exonware/xwsystem/io/serialization/parsers/orjson_direct_parser.py +7 -6
  187. exonware/xwsystem/io/serialization/parsers/orjson_parser.py +11 -8
  188. exonware/xwsystem/io/serialization/parsers/pysimdjson_parser.py +13 -9
  189. exonware/xwsystem/io/serialization/parsers/rapidjson_parser.py +10 -7
  190. exonware/xwsystem/io/serialization/parsers/registry.py +11 -10
  191. exonware/xwsystem/io/serialization/parsers/standard.py +7 -6
  192. exonware/xwsystem/io/serialization/parsers/ujson_parser.py +10 -7
  193. exonware/xwsystem/io/serialization/registry.py +4 -4
  194. exonware/xwsystem/io/serialization/serializer.py +168 -79
  195. exonware/xwsystem/io/serialization/universal_options.py +367 -0
  196. exonware/xwsystem/io/serialization/utils/__init__.py +1 -2
  197. exonware/xwsystem/io/serialization/utils/path_ops.py +5 -6
  198. exonware/xwsystem/io/source_reader.py +223 -0
  199. exonware/xwsystem/io/stream/__init__.py +1 -1
  200. exonware/xwsystem/io/stream/async_operations.py +61 -14
  201. exonware/xwsystem/io/stream/base.py +1 -2
  202. exonware/xwsystem/io/stream/codec_io.py +6 -7
  203. exonware/xwsystem/ipc/__init__.py +1 -0
  204. exonware/xwsystem/ipc/async_fabric.py +4 -4
  205. exonware/xwsystem/ipc/base.py +6 -5
  206. exonware/xwsystem/ipc/contracts.py +41 -66
  207. exonware/xwsystem/ipc/defs.py +2 -1
  208. exonware/xwsystem/ipc/errors.py +2 -1
  209. exonware/xwsystem/ipc/message_queue.py +5 -2
  210. exonware/xwsystem/ipc/pipes.py +70 -34
  211. exonware/xwsystem/ipc/process_manager.py +7 -5
  212. exonware/xwsystem/ipc/process_pool.py +6 -5
  213. exonware/xwsystem/ipc/shared_memory.py +64 -11
  214. exonware/xwsystem/monitoring/__init__.py +7 -0
  215. exonware/xwsystem/monitoring/base.py +11 -8
  216. exonware/xwsystem/monitoring/contracts.py +86 -144
  217. exonware/xwsystem/monitoring/defs.py +2 -1
  218. exonware/xwsystem/monitoring/error_recovery.py +16 -3
  219. exonware/xwsystem/monitoring/errors.py +2 -1
  220. exonware/xwsystem/monitoring/facade.py +183 -0
  221. exonware/xwsystem/monitoring/memory_monitor.py +1 -0
  222. exonware/xwsystem/monitoring/metrics.py +1 -0
  223. exonware/xwsystem/monitoring/performance_manager_generic.py +7 -7
  224. exonware/xwsystem/monitoring/performance_monitor.py +1 -0
  225. exonware/xwsystem/monitoring/performance_validator.py +1 -0
  226. exonware/xwsystem/monitoring/system_monitor.py +6 -5
  227. exonware/xwsystem/monitoring/tracing.py +18 -16
  228. exonware/xwsystem/monitoring/tracker.py +2 -1
  229. exonware/xwsystem/operations/__init__.py +5 -50
  230. exonware/xwsystem/operations/base.py +3 -44
  231. exonware/xwsystem/operations/contracts.py +25 -15
  232. exonware/xwsystem/operations/defs.py +1 -1
  233. exonware/xwsystem/operations/diff.py +5 -4
  234. exonware/xwsystem/operations/errors.py +1 -1
  235. exonware/xwsystem/operations/merge.py +6 -4
  236. exonware/xwsystem/operations/patch.py +5 -4
  237. exonware/xwsystem/patterns/__init__.py +1 -0
  238. exonware/xwsystem/patterns/base.py +2 -1
  239. exonware/xwsystem/patterns/context_manager.py +2 -1
  240. exonware/xwsystem/patterns/contracts.py +215 -256
  241. exonware/xwsystem/patterns/defs.py +2 -1
  242. exonware/xwsystem/patterns/dynamic_facade.py +1 -0
  243. exonware/xwsystem/patterns/errors.py +2 -4
  244. exonware/xwsystem/patterns/handler_factory.py +2 -3
  245. exonware/xwsystem/patterns/import_registry.py +1 -0
  246. exonware/xwsystem/patterns/object_pool.py +1 -0
  247. exonware/xwsystem/patterns/registry.py +4 -43
  248. exonware/xwsystem/plugins/__init__.py +2 -1
  249. exonware/xwsystem/plugins/base.py +6 -5
  250. exonware/xwsystem/plugins/contracts.py +94 -158
  251. exonware/xwsystem/plugins/defs.py +2 -1
  252. exonware/xwsystem/plugins/errors.py +2 -1
  253. exonware/xwsystem/py.typed +3 -0
  254. exonware/xwsystem/query/__init__.py +36 -0
  255. exonware/xwsystem/query/contracts.py +56 -0
  256. exonware/xwsystem/query/errors.py +22 -0
  257. exonware/xwsystem/query/registry.py +128 -0
  258. exonware/xwsystem/runtime/__init__.py +2 -1
  259. exonware/xwsystem/runtime/base.py +4 -3
  260. exonware/xwsystem/runtime/contracts.py +39 -60
  261. exonware/xwsystem/runtime/defs.py +2 -1
  262. exonware/xwsystem/runtime/env.py +11 -9
  263. exonware/xwsystem/runtime/errors.py +2 -1
  264. exonware/xwsystem/runtime/reflection.py +3 -2
  265. exonware/xwsystem/security/__init__.py +68 -11
  266. exonware/xwsystem/security/audit.py +167 -0
  267. exonware/xwsystem/security/base.py +121 -24
  268. exonware/xwsystem/security/contracts.py +91 -146
  269. exonware/xwsystem/security/crypto.py +17 -16
  270. exonware/xwsystem/security/defs.py +2 -1
  271. exonware/xwsystem/security/errors.py +2 -1
  272. exonware/xwsystem/security/facade.py +321 -0
  273. exonware/xwsystem/security/file_security.py +330 -0
  274. exonware/xwsystem/security/hazmat.py +11 -8
  275. exonware/xwsystem/security/monitor.py +372 -0
  276. exonware/xwsystem/security/path_validator.py +140 -18
  277. exonware/xwsystem/security/policy.py +357 -0
  278. exonware/xwsystem/security/resource_limits.py +1 -0
  279. exonware/xwsystem/security/validator.py +455 -0
  280. exonware/xwsystem/shared/__init__.py +14 -1
  281. exonware/xwsystem/shared/base.py +285 -2
  282. exonware/xwsystem/shared/contracts.py +415 -126
  283. exonware/xwsystem/shared/defs.py +2 -1
  284. exonware/xwsystem/shared/errors.py +2 -2
  285. exonware/xwsystem/shared/xwobject.py +316 -0
  286. exonware/xwsystem/structures/__init__.py +1 -0
  287. exonware/xwsystem/structures/base.py +3 -2
  288. exonware/xwsystem/structures/circular_detector.py +15 -14
  289. exonware/xwsystem/structures/contracts.py +53 -76
  290. exonware/xwsystem/structures/defs.py +2 -1
  291. exonware/xwsystem/structures/errors.py +2 -1
  292. exonware/xwsystem/structures/tree_walker.py +2 -1
  293. exonware/xwsystem/threading/__init__.py +21 -4
  294. exonware/xwsystem/threading/async_primitives.py +6 -5
  295. exonware/xwsystem/threading/base.py +3 -2
  296. exonware/xwsystem/threading/contracts.py +87 -143
  297. exonware/xwsystem/threading/defs.py +2 -1
  298. exonware/xwsystem/threading/errors.py +2 -1
  299. exonware/xwsystem/threading/facade.py +175 -0
  300. exonware/xwsystem/threading/locks.py +1 -0
  301. exonware/xwsystem/threading/safe_factory.py +1 -0
  302. exonware/xwsystem/utils/__init__.py +40 -0
  303. exonware/xwsystem/utils/base.py +22 -21
  304. exonware/xwsystem/utils/contracts.py +50 -73
  305. exonware/xwsystem/utils/dt/__init__.py +19 -3
  306. exonware/xwsystem/utils/dt/base.py +5 -4
  307. exonware/xwsystem/utils/dt/contracts.py +22 -29
  308. exonware/xwsystem/utils/dt/defs.py +2 -1
  309. exonware/xwsystem/utils/dt/errors.py +2 -5
  310. exonware/xwsystem/utils/dt/formatting.py +88 -2
  311. exonware/xwsystem/utils/dt/humanize.py +10 -9
  312. exonware/xwsystem/utils/dt/parsing.py +56 -5
  313. exonware/xwsystem/utils/dt/timezone_utils.py +2 -24
  314. exonware/xwsystem/utils/errors.py +2 -4
  315. exonware/xwsystem/utils/paths.py +1 -0
  316. exonware/xwsystem/utils/string.py +49 -0
  317. exonware/xwsystem/utils/test_runner.py +185 -0
  318. exonware/xwsystem/utils/utils_contracts.py +2 -1
  319. exonware/xwsystem/utils/web.py +110 -0
  320. exonware/xwsystem/validation/__init__.py +25 -1
  321. exonware/xwsystem/validation/base.py +6 -5
  322. exonware/xwsystem/validation/contracts.py +29 -41
  323. exonware/xwsystem/validation/data_validator.py +1 -0
  324. exonware/xwsystem/validation/declarative.py +11 -8
  325. exonware/xwsystem/validation/defs.py +2 -1
  326. exonware/xwsystem/validation/errors.py +2 -1
  327. exonware/xwsystem/validation/facade.py +198 -0
  328. exonware/xwsystem/validation/fluent_validator.py +22 -19
  329. exonware/xwsystem/validation/schema_discovery.py +210 -0
  330. exonware/xwsystem/validation/type_safety.py +2 -1
  331. exonware/xwsystem/version.py +2 -2
  332. {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/METADATA +71 -4
  333. exonware_xwsystem-0.1.0.3.dist-info/RECORD +337 -0
  334. exonware/xwsystem/cli/__init__.py +0 -43
  335. exonware/xwsystem/cli/console.py +0 -113
  336. exonware/xwsystem/cli/defs.py +0 -134
  337. exonware/xwsystem/conf.py +0 -44
  338. exonware/xwsystem/security/auth.py +0 -484
  339. exonware_xwsystem-0.1.0.1.dist-info/RECORD +0 -284
  340. {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/WHEEL +0 -0
  341. {exonware_xwsystem-0.1.0.1.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/licenses/LICENSE +0 -0
exonware/__init__.py CHANGED
@@ -1,10 +1,11 @@
1
+ #exonware/xwsystem/src/exonware/__init__.py
1
2
  """
2
3
  exonware package - Enterprise-grade Python framework ecosystem
3
4
 
4
5
  Company: eXonware.com
5
6
  Author: Eng. Muhammad AlShehri
6
7
  Email: connect@exonware.com
7
- Version: 0.1.0.1
8
+ Version: 0.1.0.3
8
9
  Generation Date: September 04, 2025
9
10
 
10
11
  This is a namespace package allowing multiple exonware subpackages
exonware/conf.py CHANGED
@@ -1,3 +1,4 @@
1
+ #exonware/xwsystem/src/exonware/conf.py
1
2
  #exonware/conf.py
2
3
  """
3
4
  Public-facing configuration for all exonware packages.
@@ -9,7 +10,7 @@ works across all exonware packages (xwsystem, xwnode, xwdata, etc.).
9
10
  Company: eXonware.com
10
11
  Author: Eng. Muhammad AlShehri
11
12
  Email: connect@exonware.com
12
- Version: 0.1.0.1
13
+ Version: 0.1.0.3
13
14
  Generation Date: 11-Nov-2025
14
15
  """
15
16
 
@@ -106,4 +107,3 @@ class _ConfModule(types.ModuleType):
106
107
  _module_instance = _ConfModule(__name__, __doc__)
107
108
 
108
109
  sys.modules[__name__] = _module_instance
109
-
@@ -1,9 +1,10 @@
1
+ #exonware/xwsystem/src/exonware/xwsystem/__init__.py
1
2
  #exonware/xwsystem/__init__.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.1
7
+ Version: 0.1.0.3
7
8
  Generation Date: October 10, 2025
8
9
 
9
10
  XWSystem - Enterprise-grade Python framework with AI-powered performance optimization.
@@ -57,6 +58,18 @@ from typing import TYPE_CHECKING
57
58
  if TYPE_CHECKING:
58
59
  from typing import Any
59
60
 
61
+ # =============================================================================
62
+ # XWLAZY INTEGRATION - Auto-install missing dependencies silently (EARLY)
63
+ # =============================================================================
64
+ # Activate xwlazy BEFORE other imports to enable auto-installation of missing dependencies
65
+ # This enables silent auto-installation of missing libraries when they are imported
66
+ try:
67
+ from exonware.xwlazy import auto_enable_lazy
68
+ auto_enable_lazy(__package__ or "exonware.xwsystem", mode="smart")
69
+ except ImportError:
70
+ # xwlazy not installed - lazy mode simply stays disabled (normal behavior)
71
+ pass
72
+
60
73
  # Logging utilities
61
74
  from .config.logging_setup import get_logger, setup_logging
62
75
 
@@ -91,7 +104,10 @@ from .io.serialization import (
91
104
  # Registry
92
105
  SerializationRegistry, get_serialization_registry,
93
106
  # Flyweight optimization
94
- get_serializer, get_flyweight_stats, clear_serializer_cache,
107
+ get_serializer, get_flyweight_stats, clear_serializer_cache,
108
+ # Universal options
109
+ map_universal_options, get_supported_universal_options, validate_universal_options,
110
+ get_all_supported_formats, get_format_option_info, UniversalOption,
95
111
  get_cache_info, create_serializer, SerializerPool,
96
112
  # Auto-detection utilities
97
113
  XWSerializer, AutoSerializer,
@@ -187,11 +203,13 @@ from .caching import (
187
203
  )
188
204
  from .caching.ttl_cache import TTLCache, AsyncTTLCache
189
205
 
190
- # CLI utilities
191
- from .cli.colors import colorize, Colors, Style
192
- from .cli.args import ArgumentParser, Argument, Command, ArgumentType
193
- from .cli.progress import ProgressBar, SpinnerProgress, MultiProgress, ProgressConfig
194
- from .cli.tables import Table, TableFormatter, Column, Alignment, BorderStyle
206
+ # CLI utilities - import general console enums from console level (priority)
207
+ from .console.defs import Colors, Style, Alignment, BorderStyle
208
+ from .console.cli.colors import colorize, CliColoredOutput
209
+ from .console.cli.args import CliArgumentParser, CliArgument, CliCommand, ArgumentType
210
+ from .console.cli.progress import CliProgressBar, CliSpinnerProgress, CliMultiProgress, CliProgressConfig
211
+ from .console.cli.tables import CliTable, CliTableFormatter, CliColumn
212
+ from .console.cli.console import CliConsole
195
213
 
196
214
  # Validation utilities
197
215
  from .validation.declarative import XModel, Field, ValidationError
@@ -216,10 +234,17 @@ from .utils.dt import (
216
234
  humanize_timedelta, humanize_timestamp, time_ago, time_until,
217
235
  duration_to_human, parse_human_duration, TimezoneManager,
218
236
  convert_timezone, get_timezone_info, list_timezones,
219
- format_datetime
237
+ format_datetime, get_datetime, get_date, get_date_from_to_month,
238
+ calculate_duration_days, parse_timestamp_milliseconds
220
239
  )
221
240
  from .utils.dt.parsing import parse_datetime, parse_date, parse_time, parse_iso8601, parse_timestamp
222
241
 
242
+ # String utilities
243
+ from .utils.string import find_nth_occurrence
244
+
245
+ # Web utilities
246
+ from .utils.web import validate_url_accessible, extract_webpage_text
247
+
223
248
  # IPC utilities
224
249
  from .ipc import (
225
250
  ProcessManager, ProcessInfo, SharedMemoryManager, SharedData,
@@ -257,15 +282,12 @@ from .config import (
257
282
  PATH_SEPARATOR_FORWARD, PATH_SEPARATOR_BACKWARD,
258
283
  CIRCULAR_REFERENCE_PLACEHOLDER, MAX_DEPTH_EXCEEDED_PLACEHOLDER,
259
284
  LOGGING_ENABLED, LOGGING_LEVEL, setup_logging, get_logger,
260
- PerformanceConfig, PerformanceLimits,
261
- SerializationLimits, NetworkLimits, SecurityLimits
285
+ ConsoleEventLogger, ConsoleEvent,
286
+ PerformanceConfig
262
287
  )
263
288
  from .config.performance import (
264
289
  get_performance_config,
265
- configure_performance,
266
- get_serialization_limits,
267
- get_network_limits,
268
- get_security_limits,
290
+ set_performance_config,
269
291
  )
270
292
 
271
293
  # Monitoring utilities
@@ -320,9 +342,12 @@ from .validation.type_safety import (
320
342
  )
321
343
 
322
344
  # Enterprise utilities - distributed across security, monitoring, and io/serialization
345
+ # Note: Authentication provider implementations (OAuth2Provider, JWTProvider, SAMLProvider, EnterpriseAuth)
346
+ # have been moved to xwauth, which extends xwsystem. Use xwauth for actual authentication providers.
323
347
  from .security import (
324
- OAuth2Provider, JWTProvider, SAMLProvider,
325
- AuthenticationError, AuthorizationError, TokenExpiredError
348
+ AuthenticationError, AuthorizationError, TokenExpiredError,
349
+ AAuthProvider, ATokenInfo, AUserInfo,
350
+ IAuthenticatable, IAuthorization, ISecurityToken
326
351
  )
327
352
  from .monitoring import (
328
353
  TracingManager, OpenTelemetryTracer, JaegerTracer,
@@ -502,7 +527,7 @@ def list_available_formats():
502
527
 
503
528
  # Test which formats are available by trying to create serializers
504
529
  all_formats = [
505
- 'json', 'yaml', 'toml', 'xml', 'csv', 'ini', 'formdata', 'multipart', # Text
530
+ 'json', 'jsonl', 'ndjson', 'yaml', 'toml', 'xml', 'csv', 'ini', 'formdata', 'multipart', # Text (NDJSON/JSONL explicitly listed)
506
531
  'bson', 'msgpack', 'cbor', 'pickle', 'marshal', 'dbm', 'shelve', 'plist', # Binary
507
532
  'avro', 'protobuf', 'thrift', 'parquet', 'orc', 'capnproto', 'flatbuffers', # Enterprise
508
533
  'leveldb', 'lmdb', 'zarr', # Key-value stores
@@ -523,7 +548,7 @@ def list_available_formats():
523
548
  return {
524
549
  'all': available,
525
550
  'missing': missing,
526
- 'text': [f for f in available if f in ['json', 'yaml', 'toml', 'xml', 'csv', 'ini', 'formdata', 'multipart']],
551
+ 'text': [f for f in available if f in ['json', 'jsonl', 'ndjson', 'yaml', 'toml', 'xml', 'csv', 'ini', 'formdata', 'multipart']],
527
552
  'binary': [f for f in available if f in ['bson', 'msgpack', 'cbor', 'pickle', 'marshal', 'dbm', 'shelve', 'plist']],
528
553
  'enterprise': [f for f in available if f in ['avro', 'protobuf', 'thrift', 'parquet', 'orc', 'capnproto', 'flatbuffers']],
529
554
  'keyvalue': [f for f in available if f in ['leveldb', 'lmdb', 'zarr']],
@@ -543,18 +568,24 @@ __all__ = [
543
568
  "ASerialization",
544
569
  "SerializationError",
545
570
 
546
- # Text formats (8) - I→A pattern
571
+ # Text formats (7) - I→A pattern (CSV moved to tabular)
547
572
  "JsonSerializer",
548
573
  "Json5Serializer",
549
574
  "JsonLinesSerializer",
550
575
  "YamlSerializer",
551
576
  "TomlSerializer",
552
577
  "XmlSerializer",
553
- "CsvSerializer",
554
578
  "ConfigParserSerializer",
555
579
  "FormDataSerializer",
556
580
  "MultipartSerializer",
557
581
 
582
+ # Tabular formats (4) - I→A→ATabular pattern
583
+ "ATabularSerialization",
584
+ "ExcelSerializer",
585
+ "CsvSerializer", # Moved from text/ to tabular/
586
+ "GoogleSheetsSerializer",
587
+ "DataFrameSerializer",
588
+
558
589
  # Binary formats (6) - I→A pattern
559
590
  "MsgPackSerializer",
560
591
  "PickleSerializer",
@@ -574,6 +605,9 @@ __all__ = [
574
605
  "detect_format",
575
606
  "get_serializer", "get_flyweight_stats", "clear_serializer_cache",
576
607
  "get_cache_info", "create_serializer", "SerializerPool",
608
+ # Universal options
609
+ "map_universal_options", "get_supported_universal_options", "validate_universal_options",
610
+ "get_all_supported_formats", "get_format_option_info", "UniversalOption",
577
611
  # HTTP
578
612
  "HttpClient",
579
613
  "AsyncHttpClient",
@@ -659,12 +693,10 @@ __all__ = [
659
693
  "get_logger",
660
694
  "disable_logging",
661
695
  "enable_logging",
696
+ "ConsoleEventLogger",
697
+ "ConsoleEvent",
662
698
  # Performance Configuration
663
699
  "get_performance_config",
664
- "configure_performance",
665
- "get_serialization_limits",
666
- "get_network_limits",
667
- "get_security_limits",
668
700
  # Configuration
669
701
  "DEFAULT_ENCODING",
670
702
  "DEFAULT_PATH_DELIMITER",
@@ -688,7 +720,6 @@ __all__ = [
688
720
  "MAX_DEPTH_EXCEEDED_PLACEHOLDER",
689
721
  # Performance Configuration
690
722
  "PerformanceConfig",
691
- "PerformanceLimits",
692
723
  # Validation
693
724
  "DataValidator",
694
725
  "check_data_depth",
@@ -752,26 +783,26 @@ __all__ = [
752
783
  "CacheConfig",
753
784
  "CacheStats",
754
785
 
755
- # CLI
756
- "ArgumentParser",
757
- "Argument",
758
- "Command",
759
- "ArgumentType",
760
- "ColoredOutput",
786
+ # CLI - general console enums (from console level)
761
787
  "Colors",
762
788
  "Style",
763
- "colorize",
764
- "print_colored",
765
- "ProgressBar",
766
- "SpinnerProgress",
767
- "MultiProgress",
768
- "ProgressConfig",
769
- "Table",
770
- "TableFormatter",
771
- "Column",
772
789
  "Alignment",
773
790
  "BorderStyle",
774
- "Console",
791
+ # CLI-specific classes
792
+ "CliArgumentParser",
793
+ "CliArgument",
794
+ "CliCommand",
795
+ "ArgumentType",
796
+ "CliColoredOutput",
797
+ "colorize",
798
+ "CliProgressBar",
799
+ "CliSpinnerProgress",
800
+ "CliMultiProgress",
801
+ "CliProgressConfig",
802
+ "CliTable",
803
+ "CliTableFormatter",
804
+ "CliColumn",
805
+ "CliConsole", # From console.cli.console
775
806
 
776
807
  # Validation
777
808
  "XModel",
@@ -781,10 +812,13 @@ __all__ = [
781
812
  # Enterprise Features
782
813
  # NOTE: Schema Registry classes moved to exonware-xwschema
783
814
  # Available in: pip install exonware-xwschema
815
+ # NOTE: Authentication provider implementations (OAuth2Provider, JWTProvider, SAMLProvider, EnterpriseAuth)
816
+ # have been moved to xwauth, which extends xwsystem. Use xwauth for actual authentication providers.
784
817
  "TracingManager", "OpenTelemetryTracer", "JaegerTracer",
785
818
  "TracingError", "SpanContext", "TraceContext",
786
- "OAuth2Provider", "JWTProvider", "SAMLProvider",
787
819
  "AuthenticationError", "AuthorizationError", "TokenExpiredError",
820
+ "AAuthProvider", "ATokenInfo", "AUserInfo",
821
+ "IAuthenticatable", "IAuthorization", "ISecurityToken",
788
822
 
789
823
  # Security Hazmat
790
824
  "AES_GCM",
@@ -829,7 +863,17 @@ __all__ = [
829
863
  "parse_time",
830
864
  "parse_iso8601",
831
865
  "parse_timestamp",
866
+ "parse_timestamp_milliseconds",
832
867
  "format_datetime",
868
+ "get_datetime",
869
+ "get_date",
870
+ "get_date_from_to_month",
871
+ "calculate_duration_days",
872
+ # String utilities
873
+ "find_nth_occurrence",
874
+ # Web utilities
875
+ "validate_url_accessible",
876
+ "extract_webpage_text",
833
877
 
834
878
  # IPC
835
879
  "ProcessManager",
@@ -851,7 +895,7 @@ __all__ = [
851
895
  "quick_decrypt",
852
896
  "list_available_formats",
853
897
 
854
- # Protocol Definitions - Better type safety
898
+ # Protocol Definitions
855
899
  "Serializable",
856
900
  "AsyncSerializable",
857
901
  "Hashable",
@@ -866,4 +910,32 @@ __all__ = [
866
910
  "ValidationRule",
867
911
  "CacheKey",
868
912
  "ConfigValue",
913
+
914
+ # Unified Facades (DX Improvements)
915
+ "XWCache",
916
+ "XWArchive",
917
+ "XWIndex",
918
+ "XWSecurity",
919
+ "XWCrypto",
920
+ "XWHTTP",
921
+ "XWValidator",
922
+ "XWMonitor",
923
+ "XWConcurrency",
869
924
  ]
925
+
926
+ # =============================================================================
927
+ # UNIFIED FACADES - Simplified Developer Experience (DX)
928
+ # =============================================================================
929
+
930
+ # Import unified facades from their respective modules
931
+ from .caching.facade import XWCache
932
+ from .io.archive.facade import XWArchive
933
+ from .io.indexing.facade import XWIndex
934
+ from .security.facade import XWSecurity, XWCrypto
935
+ from .http_client.facade import XWHTTP
936
+ from .validation.facade import XWValidator
937
+ from .monitoring.facade import XWMonitor
938
+ from .threading.facade import XWConcurrency
939
+
940
+ # XWSerializer already exists in io.serialization.serializer
941
+ # XWIO already exists in io.facade
@@ -0,0 +1,30 @@
1
+ """
2
+ #exonware/xwsystem/src/exonware/xwsystem/base.py
3
+
4
+ High-level abstract base classes 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
+ MANDATORY (GUIDE_31_DEV.md): abstract classes in `base.py` MUST start with `A`
13
+ and MUST use `ABC`.
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ from abc import ABC
19
+
20
+ from .contracts import IXWFacade
21
+
22
+
23
+ class AXWFacade(ABC, IXWFacade):
24
+ """Abstract base for xwsystem facades."""
25
+
26
+
27
+ __all__ = [
28
+ "AXWFacade",
29
+ ]
30
+
@@ -1,8 +1,9 @@
1
+ #exonware/xwsystem/src/exonware/xwsystem/caching/__init__.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.1
6
+ Version: 0.1.0.3
6
7
  Generation Date: 01-Nov-2025
7
8
 
8
9
  XSystem Caching Package
@@ -59,10 +60,7 @@ from .lfu_cache import LFUCache, AsyncLFUCache
59
60
  from .ttl_cache import TTLCache, AsyncTTLCache
60
61
  from .cache_manager import CacheManager, CacheConfig, CacheStats
61
62
  from .decorators import (
62
- # New XW-prefixed names (preferred)
63
- xwcached, xw_async_cached, xwcache, xw_async_cache,
64
- # Backward compatibility
65
- cache, async_cache, cache_result, async_cache_result, cached, async_cached
63
+ xwcached, xw_async_cached, xwcache, xw_async_cache
66
64
  )
67
65
  from .distributed import DistributedCache, RedisCache
68
66
 
@@ -119,9 +117,24 @@ from .utils import (
119
117
  default_key_builder,
120
118
  )
121
119
 
120
+ # Cache Factory (configurable cache creation)
121
+ from .factory import CacheFactory, CacheType, create_cache
122
+
122
123
  # Interfaces (for advanced usage)
123
124
  from .contracts import ICache
124
125
 
126
+ # External cache libraries
127
+ from .external_caching_python import (
128
+ CacheboxCache,
129
+ FunctoolsLRUCache,
130
+ CachetoolsLRUCache,
131
+ CachetoolsLFUCache,
132
+ CachetoolsTTLCache,
133
+ CachetoolsRRCache,
134
+ HAS_CACHEBOX,
135
+ HAS_CACHETOOLS,
136
+ )
137
+
125
138
  # Errors
126
139
  from .errors import (
127
140
  CacheError,
@@ -211,6 +224,11 @@ __all__ = [
211
224
  "format_bytes",
212
225
  "default_key_builder",
213
226
 
227
+ # Cache Factory
228
+ "CacheFactory",
229
+ "CacheType",
230
+ "create_cache",
231
+
214
232
  # Interfaces
215
233
  "ICache",
216
234
 
@@ -219,23 +237,26 @@ __all__ = [
219
237
  "CacheConfig",
220
238
  "CacheStats",
221
239
 
222
- # Decorators (XW-prefixed - preferred)
240
+ # Decorators
223
241
  "xwcached",
224
242
  "xw_async_cached",
225
243
  "xwcache",
226
244
  "xw_async_cache",
227
- # Backward compatibility (deprecated)
228
- "cache",
229
- "async_cache",
230
- "cache_result",
231
- "async_cache_result",
232
- "cached",
233
- "async_cached",
234
245
 
235
246
  # Distributed
236
247
  "DistributedCache",
237
248
  "RedisCache",
238
249
 
250
+ # External cache libraries
251
+ "CacheboxCache",
252
+ "FunctoolsLRUCache",
253
+ "CachetoolsLRUCache",
254
+ "CachetoolsLFUCache",
255
+ "CachetoolsTTLCache",
256
+ "CachetoolsRRCache",
257
+ "HAS_CACHEBOX",
258
+ "HAS_CACHETOOLS",
259
+
239
260
  # Errors
240
261
  "CacheError",
241
262
  "CacheKeyError",
@@ -246,5 +267,10 @@ __all__ = [
246
267
  "CacheRateLimitError",
247
268
  "CacheValueSizeError",
248
269
  "CacheKeySizeError",
270
+
271
+ # Unified Facade
272
+ "XWCache",
249
273
  ]
250
274
 
275
+ # Import unified facade
276
+ from .facade import XWCache
@@ -1,16 +1,17 @@
1
+ #exonware/xwsystem/src/exonware/xwsystem/caching/base.py
1
2
  #exonware/xwsystem/caching/base.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.1
7
+ Version: 0.1.0.3
7
8
  Generation Date: September 04, 2025
8
9
 
9
10
  Caching module base classes - abstract classes for caching functionality.
10
11
  """
11
12
 
12
13
  from abc import ABC, abstractmethod
13
- from typing import Any, Optional, Union, Hashable
14
+ from typing import Any, Optional, Hashable
14
15
  from .defs import CachePolicy
15
16
 
16
17
 
@@ -25,7 +26,8 @@ class ACache(ABC):
25
26
  capacity: Maximum cache size
26
27
  ttl: Time to live in seconds
27
28
  """
28
- self.capacity = capacity
29
+ # Ensure capacity is always int (handle case where it might be string from config)
30
+ self.capacity = int(capacity) if not isinstance(capacity, int) else capacity
29
31
  self.ttl = ttl
30
32
  self._cache: dict[str, Any] = {}
31
33
  self._access_times: dict[str, float] = {}
@@ -185,13 +187,29 @@ class ACache(ABC):
185
187
  More efficient than individual puts for batch operations.
186
188
  """
187
189
  count = 0
190
+ errors = []
188
191
  for key, value in items.items():
189
192
  try:
190
193
  self.put(key, value)
191
194
  count += 1
192
- except Exception:
193
- # Continue with other items even if one fails
194
- pass
195
+ except Exception as e:
196
+ # Log error but continue with other items for batch resilience
197
+ # This follows GUIDE_TEST.md by handling errors explicitly
198
+ # rather than silently ignoring them
199
+ errors.append((key, str(e)))
200
+
201
+ # Log any errors that occurred during batch operation
202
+ if errors:
203
+ # Import here to avoid circular dependencies
204
+ from ..config.logging_setup import get_logger
205
+ logger = get_logger("xwsystem.caching.base")
206
+
207
+ logger.warning(
208
+ f"put_many: {len(errors)} items failed out of {len(items)}. "
209
+ f"Successfully cached {count} items. "
210
+ f"Errors: {errors[:5]}" # Show first 5 errors
211
+ )
212
+
195
213
  return count
196
214
 
197
215
  def delete_many(self, keys: list[Hashable]) -> int:
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env python3
2
+ #exonware/xwsystem/src/exonware/xwsystem/caching/bloom_cache.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.1
7
+ Version: 0.1.0.3
7
8
  Generation Date: 01-Nov-2025
8
9
 
9
10
  Bloom filter-enhanced cache for faster negative lookups.
@@ -212,4 +213,3 @@ __all__ = [
212
213
  'BloomFilterCache',
213
214
  'SimpleBloomFilter',
214
215
  ]
215
-
@@ -1,8 +1,9 @@
1
+ #exonware/xwsystem/src/exonware/xwsystem/caching/cache_manager.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.1
6
+ Version: 0.1.0.3
6
7
  Generation Date: September 04, 2025
7
8
 
8
9
  Cache Manager implementation - Placeholder.
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env python3
2
+ #exonware/xwsystem/src/exonware/xwsystem/caching/conditional.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.1
7
+ Version: 0.1.0.3
7
8
  Generation Date: 01-Nov-2025
8
9
 
9
10
  Conditional eviction policies for caching.
@@ -146,4 +147,3 @@ class ConditionalEvictionCache(LRUCache):
146
147
  __all__ = [
147
148
  'ConditionalEvictionCache',
148
149
  ]
149
-