exonware-xwsystem 0.0.1.411__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 (342) 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 +73 -391
  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 +279 -14
  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 +199 -0
  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 +65 -33
  176. exonware/xwsystem/io/serialization/formats/text/json5.py +8 -4
  177. exonware/xwsystem/io/serialization/formats/text/jsonlines.py +113 -25
  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 +16 -0
  183. exonware/xwsystem/io/serialization/parsers/base.py +60 -0
  184. exonware/xwsystem/io/serialization/parsers/hybrid_parser.py +62 -0
  185. exonware/xwsystem/io/serialization/parsers/msgspec_parser.py +48 -0
  186. exonware/xwsystem/io/serialization/parsers/orjson_direct_parser.py +54 -0
  187. exonware/xwsystem/io/serialization/parsers/orjson_parser.py +62 -0
  188. exonware/xwsystem/io/serialization/parsers/pysimdjson_parser.py +55 -0
  189. exonware/xwsystem/io/serialization/parsers/rapidjson_parser.py +53 -0
  190. exonware/xwsystem/io/serialization/parsers/registry.py +91 -0
  191. exonware/xwsystem/io/serialization/parsers/standard.py +44 -0
  192. exonware/xwsystem/io/serialization/parsers/ujson_parser.py +53 -0
  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 +139 -480
  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 +4 -4
  332. {exonware_xwsystem-0.0.1.411.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/caching/USAGE_GUIDE.md +0 -779
  335. exonware/xwsystem/cli/__init__.py +0 -43
  336. exonware/xwsystem/cli/console.py +0 -113
  337. exonware/xwsystem/cli/defs.py +0 -134
  338. exonware/xwsystem/conf.py +0 -44
  339. exonware/xwsystem/security/auth.py +0 -484
  340. exonware_xwsystem-0.0.1.411.dist-info/RECORD +0 -274
  341. {exonware_xwsystem-0.0.1.411.dist-info → exonware_xwsystem-0.1.0.3.dist-info}/WHEEL +0 -0
  342. {exonware_xwsystem-0.0.1.411.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.0.1.411
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 should be non-None
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:
@@ -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.0.1.411
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" # Smart dual-phase: fast cruise + intelligent deep-dive
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.0.1.411
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.0.1.411
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
- self._level = level.upper()
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
- try:
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.0.1.411
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 should always be available
45
+ # Import is explicit - internal package import
45
46
  from .logging import logging_config
46
47
 
47
48
  if not logging_config.enabled:
@@ -1,406 +1,88 @@
1
- """
2
- Company: eXonware.com
3
- Author: Eng. Muhammad AlShehri
4
- Email: connect@exonware.com
5
- Version: 0.0.1.411
6
- Generation Date: September 04, 2025
7
-
8
- Performance Configuration Management
1
+ #exonware/xwsystem/src/exonware/xwsystem/config/performance.py
2
+ """Performance optimization configuration for xwsystem I/O operations.
9
3
 
10
- Centralized configuration for XSystem performance limits, timeouts, and optimization settings.
4
+ This module provides configuration options to enable/disable performance
5
+ optimizations (parallel index building, append-only logs) with automatic
6
+ fallback to original implementations.
11
7
  """
12
8
 
13
- from typing import Any, Final, Optional
14
- from dataclasses import dataclass, field
15
- import os
16
- from pathlib import Path
17
-
18
- from ..config.logging_setup import get_logger
19
-
20
- logger = get_logger(__name__)
21
-
22
-
23
- @dataclass
24
- class SerializationLimits:
25
- """Configuration limits for serialization operations."""
26
-
27
- # Data size limits
28
- max_size_mb: float = 50.0 # Maximum data size in MB
29
- max_depth: int = 100 # Maximum nesting depth
30
- max_string_length: int = 1_000_000 # Maximum string length
31
- max_list_items: int = 100_000 # Maximum list/array items
32
- max_dict_keys: int = 10_000 # Maximum dictionary keys
33
-
34
- # File operation limits
35
- max_file_size_mb: float = 100.0 # Maximum file size for operations
36
- max_path_length: int = 4096 # Maximum file path length
37
-
38
- # Performance settings
39
- use_atomic_writes: bool = True # Use atomic file operations by default
40
- validate_input: bool = True # Enable input validation by default
41
- validate_paths: bool = True # Enable path validation by default
42
-
43
- # Memory management
44
- max_memory_mb: float = 200.0 # Maximum memory usage for operations
45
- enable_compression: bool = False # Enable compression by default
46
-
47
-
48
- @dataclass
49
- class NetworkLimits:
50
- """Configuration limits for network operations."""
51
-
52
- # Timeout settings (seconds)
53
- connect_timeout: float = 30.0 # Connection timeout
54
- read_timeout: float = 60.0 # Read timeout
55
- total_timeout: float = 300.0 # Total request timeout
56
-
57
- # Retry settings
58
- max_retries: int = 3 # Maximum retry attempts
59
- retry_backoff_factor: float = 2.0 # Exponential backoff factor
60
- retry_max_delay: float = 60.0 # Maximum retry delay
61
-
62
- # Size limits
63
- max_response_size_mb: float = 100.0 # Maximum response size
64
- max_request_size_mb: float = 50.0 # Maximum request size
65
-
66
- # Connection pool settings
67
- max_connections: int = 100 # Maximum connections in pool
68
- max_keepalive_connections: int = 20 # Maximum keep-alive connections
69
-
9
+ from __future__ import annotations
70
10
 
71
- @dataclass
72
- class SecurityLimits:
73
- """Configuration limits for security operations."""
74
-
75
- # Path validation
76
- allow_absolute_paths: bool = False # Allow absolute paths
77
- allow_symlinks: bool = False # Allow symbolic links
78
- blocked_extensions: tuple = field(default_factory=lambda: (
79
- '.exe', '.bat', '.cmd', '.com', '.scr', '.dll', '.sys'
80
- ))
81
-
82
- # Input validation
83
- max_input_complexity: int = 1000 # Maximum input complexity score
84
- enable_xss_protection: bool = True # Enable XSS protection
85
- enable_injection_protection: bool = True # Enable injection protection
86
-
87
- # Cryptography settings
88
- min_key_size: int = 2048 # Minimum key size for RSA
89
- hash_iterations: int = 100_000 # PBKDF2 iterations
90
- salt_length: int = 32 # Salt length in bytes
11
+ from dataclasses import dataclass
12
+ import os
91
13
 
92
14
 
93
15
  @dataclass
94
- class PerformanceLimits:
95
- """Master configuration for all XSystem performance limits."""
96
-
97
- # Component-specific limits
98
- serialization: SerializationLimits = field(default_factory=SerializationLimits)
99
- network: NetworkLimits = field(default_factory=NetworkLimits)
100
- security: SecurityLimits = field(default_factory=SecurityLimits)
101
-
102
- # Global settings
103
- enable_monitoring: bool = True # Enable performance monitoring
104
- enable_metrics: bool = True # Enable metrics collection
105
- log_performance_warnings: bool = True # Log performance warnings
106
-
107
- # Memory management
108
- max_total_memory_mb: float = 500.0 # Maximum total memory usage
109
- gc_threshold_mb: float = 100.0 # Garbage collection threshold
110
-
111
- # Concurrency settings
112
- max_threads: int = 50 # Maximum thread pool size
113
- max_async_tasks: int = 100 # Maximum async tasks
114
-
115
-
116
- # Default configuration instance
117
- DEFAULT_LIMITS: Final[PerformanceLimits] = PerformanceLimits()
118
-
119
-
120
16
  class PerformanceConfig:
121
- """
122
- Centralized performance configuration manager.
123
-
124
- Manages performance limits, timeouts, and optimization settings for XSystem.
125
- Supports environment variable overrides and runtime configuration updates.
126
- """
127
-
128
- def __init__(self, config_file: Optional[str] = None) -> None:
129
- """
130
- Initialize performance configuration.
131
-
132
- Args:
133
- config_file: Optional path to configuration file
134
- """
135
- self._limits = PerformanceLimits()
136
- self._config_file = config_file
137
- self._mode = "balanced" # Default mode
138
- self._load_from_environment()
139
-
140
- if config_file:
141
- self._load_from_file(config_file)
142
-
143
- logger.info("Performance configuration initialized")
144
-
145
- def _load_from_environment(self) -> None:
146
- """Load configuration overrides from environment variables."""
147
-
148
- # Serialization limits
149
- if val := os.getenv('XSYSTEM_MAX_SIZE_MB'):
150
- self._limits.serialization.max_size_mb = float(val)
151
-
152
- if val := os.getenv('XSYSTEM_MAX_DEPTH'):
153
- self._limits.serialization.max_depth = int(val)
154
-
155
- if val := os.getenv('XSYSTEM_MAX_FILE_SIZE_MB'):
156
- self._limits.serialization.max_file_size_mb = float(val)
157
-
158
- # Network limits
159
- if val := os.getenv('XSYSTEM_CONNECT_TIMEOUT'):
160
- self._limits.network.connect_timeout = float(val)
161
-
162
- if val := os.getenv('XSYSTEM_READ_TIMEOUT'):
163
- self._limits.network.read_timeout = float(val)
164
-
165
- if val := os.getenv('XSYSTEM_MAX_RETRIES'):
166
- self._limits.network.max_retries = int(val)
167
-
168
- # Security limits
169
- if val := os.getenv('XSYSTEM_ALLOW_ABSOLUTE_PATHS'):
170
- self._limits.security.allow_absolute_paths = val.lower() in ('true', '1', 'yes')
171
-
172
- if val := os.getenv('XSYSTEM_MIN_KEY_SIZE'):
173
- self._limits.security.min_key_size = int(val)
174
-
175
- # Global settings
176
- if val := os.getenv('XSYSTEM_MAX_MEMORY_MB'):
177
- self._limits.max_total_memory_mb = float(val)
178
-
179
- if val := os.getenv('XSYSTEM_MAX_THREADS'):
180
- self._limits.max_threads = int(val)
181
-
182
- def _load_from_file(self, config_file: str) -> None:
183
- """
184
- Load configuration from file.
185
-
186
- Args:
187
- config_file: Path to configuration file (JSON/YAML/TOML)
188
- """
189
- try:
190
- config_path = Path(config_file)
191
- if not config_path.exists():
192
- logger.warning(f"Configuration file not found: {config_file}")
193
- return
194
-
195
- # Import here to avoid circular imports
196
- from ..io.serialization import JsonSerializer, YamlSerializer, TomlSerializer
197
-
198
- # Determine format by extension
199
- if config_path.suffix.lower() in ('.json',):
200
- serializer = JsonSerializer(validate_paths=False)
201
- elif config_path.suffix.lower() in ('.yaml', '.yml'):
202
- serializer = YamlSerializer(validate_paths=False)
203
- elif config_path.suffix.lower() in ('.toml',):
204
- serializer = TomlSerializer(validate_paths=False)
205
- else:
206
- logger.warning(f"Unsupported config file format: {config_path.suffix}")
207
- return
208
-
209
- config_data = serializer.load_file(config_file)
210
- self._apply_config_data(config_data)
211
-
212
- logger.info(f"Loaded configuration from: {config_file}")
213
-
214
- except Exception as e:
215
- logger.error(f"Failed to load configuration file {config_file}: {e}")
216
-
217
- def _apply_config_data(self, config_data: dict[str, Any]) -> None:
218
- """Apply configuration data to limits."""
219
-
220
- if 'serialization' in config_data:
221
- ser_config = config_data['serialization']
222
- for key, value in ser_config.items():
223
- if hasattr(self._limits.serialization, key):
224
- setattr(self._limits.serialization, key, value)
225
-
226
- if 'network' in config_data:
227
- net_config = config_data['network']
228
- for key, value in net_config.items():
229
- if hasattr(self._limits.network, key):
230
- setattr(self._limits.network, key, value)
231
-
232
- if 'security' in config_data:
233
- sec_config = config_data['security']
234
- for key, value in sec_config.items():
235
- if hasattr(self._limits.security, key):
236
- setattr(self._limits.security, key, value)
237
-
238
- # Global settings
239
- for key in ['enable_monitoring', 'enable_metrics', 'max_total_memory_mb', 'max_threads']:
240
- if key in config_data:
241
- setattr(self._limits, key, config_data[key])
242
-
243
- @property
244
- def limits(self) -> PerformanceLimits:
245
- """Get current performance limits."""
246
- return self._limits
247
-
248
- def get_serialization_config(self) -> dict[str, Any]:
249
- """Get serialization configuration dictionary."""
250
- return {
251
- 'max_size_mb': self._limits.serialization.max_size_mb,
252
- 'max_depth': self._limits.serialization.max_depth,
253
- 'max_file_size_mb': self._limits.serialization.max_file_size_mb,
254
- 'use_atomic_writes': self._limits.serialization.use_atomic_writes,
255
- 'validate_input': self._limits.serialization.validate_input,
256
- 'validate_paths': self._limits.serialization.validate_paths,
257
- }
258
-
259
- def get_network_config(self) -> dict[str, Any]:
260
- """Get network configuration dictionary."""
261
- return {
262
- 'connect_timeout': self._limits.network.connect_timeout,
263
- 'read_timeout': self._limits.network.read_timeout,
264
- 'total_timeout': self._limits.network.total_timeout,
265
- 'max_retries': self._limits.network.max_retries,
266
- 'max_response_size_mb': self._limits.network.max_response_size_mb,
267
- }
268
-
269
- def get_security_config(self) -> dict[str, Any]:
270
- """Get security configuration dictionary."""
271
- return {
272
- 'allow_absolute_paths': self._limits.security.allow_absolute_paths,
273
- 'allow_symlinks': self._limits.security.allow_symlinks,
274
- 'blocked_extensions': self._limits.security.blocked_extensions,
275
- 'min_key_size': self._limits.security.min_key_size,
276
- }
277
-
278
- def update_limits(self, **kwargs) -> None:
279
- """
280
- Update performance limits at runtime.
281
-
282
- Args:
283
- **kwargs: Limit values to update
284
- """
285
- for key, value in kwargs.items():
286
- if '.' in key:
287
- # Handle nested attributes like 'serialization.max_size_mb'
288
- parts = key.split('.')
289
- obj = self._limits
290
- for part in parts[:-1]:
291
- obj = getattr(obj, part)
292
- setattr(obj, parts[-1], value)
293
- else:
294
- # Handle top-level attributes
295
- if hasattr(self._limits, key):
296
- setattr(self._limits, key, value)
297
-
298
- logger.info(f"Updated performance limits: {kwargs}")
299
-
300
- def set_mode(self, mode: str) -> None:
301
- """Set performance mode."""
302
- self._mode = mode
303
- logger.info(f"Performance mode set to: {mode}")
304
-
305
- def get_mode(self) -> str:
306
- """Get current performance mode."""
307
- return self._mode
308
-
309
- def optimize(self) -> None:
310
- """Optimize performance settings based on current mode."""
311
- if self._mode == "fast":
312
- # Optimize for speed
313
- self._limits.serialization.max_size_mb = 100.0
314
- self._limits.serialization.max_depth = 200
315
- elif self._mode == "memory_optimized":
316
- # Optimize for memory
317
- self._limits.serialization.max_size_mb = 25.0
318
- self._limits.serialization.max_depth = 50
319
- else: # balanced
320
- # Balanced settings
321
- self._limits.serialization.max_size_mb = 50.0
322
- self._limits.serialization.max_depth = 100
323
-
324
- logger.info(f"Performance optimized for mode: {self._mode}")
325
-
326
- def export_config(self, format: str = 'json') -> dict[str, Any]:
327
- """
328
- Export current configuration.
329
-
330
- Args:
331
- format: Export format ('json', 'yaml', 'toml')
332
-
333
- Returns:
334
- Configuration dictionary
335
- """
336
- return {
337
- 'serialization': {
338
- 'max_size_mb': self._limits.serialization.max_size_mb,
339
- 'max_depth': self._limits.serialization.max_depth,
340
- 'max_file_size_mb': self._limits.serialization.max_file_size_mb,
341
- 'use_atomic_writes': self._limits.serialization.use_atomic_writes,
342
- 'validate_input': self._limits.serialization.validate_input,
343
- 'validate_paths': self._limits.serialization.validate_paths,
344
- },
345
- 'network': {
346
- 'connect_timeout': self._limits.network.connect_timeout,
347
- 'read_timeout': self._limits.network.read_timeout,
348
- 'total_timeout': self._limits.network.total_timeout,
349
- 'max_retries': self._limits.network.max_retries,
350
- 'max_response_size_mb': self._limits.network.max_response_size_mb,
351
- },
352
- 'security': {
353
- 'allow_absolute_paths': self._limits.security.allow_absolute_paths,
354
- 'allow_symlinks': self._limits.security.allow_symlinks,
355
- 'min_key_size': self._limits.security.min_key_size,
356
- },
357
- 'global': {
358
- 'enable_monitoring': self._limits.enable_monitoring,
359
- 'enable_metrics': self._limits.enable_metrics,
360
- 'max_total_memory_mb': self._limits.max_total_memory_mb,
361
- 'max_threads': self._limits.max_threads,
362
- }
363
- }
364
-
365
-
366
- # Global configuration instance
367
- _global_config: Optional[PerformanceConfig] = None
17
+ """Configuration for performance optimizations."""
18
+
19
+ # Parallel index building
20
+ enable_parallel_index: bool = True # Auto-enabled for large files
21
+ parallel_index_workers: int | None = None # None = auto (CPU count)
22
+ parallel_index_chunk_size_mb: int = 100 # 100MB chunks
23
+ parallel_index_threshold_mb: int = 200 # Use parallel for files >200MB
24
+
25
+ # Append-only log for atomic updates
26
+ enable_append_log: bool = True # Auto-enabled for large files
27
+ append_log_threshold_mb: int = 100 # Use append-only log for files >100MB
28
+ append_log_compaction_threshold_mb: int = 100 # Compact when log > 100MB
29
+
30
+ # Fallback behavior
31
+ fallback_on_error: bool = True # Fall back to original if optimization fails
32
+
33
+ @classmethod
34
+ def from_env(cls) -> PerformanceConfig:
35
+ """Create config from environment variables."""
36
+ return cls(
37
+ enable_parallel_index=os.getenv("XWSYSTEM_PARALLEL_INDEX", "true").lower() == "true",
38
+ parallel_index_workers=int(os.getenv("XWSYSTEM_PARALLEL_WORKERS", "0")) or None,
39
+ parallel_index_chunk_size_mb=int(os.getenv("XWSYSTEM_CHUNK_SIZE_MB", "100")),
40
+ parallel_index_threshold_mb=int(os.getenv("XWSYSTEM_PARALLEL_THRESHOLD_MB", "200")),
41
+ enable_append_log=os.getenv("XWSYSTEM_APPEND_LOG", "true").lower() == "true",
42
+ append_log_threshold_mb=int(os.getenv("XWSYSTEM_APPEND_LOG_THRESHOLD_MB", "100")),
43
+ append_log_compaction_threshold_mb=int(os.getenv("XWSYSTEM_LOG_THRESHOLD_MB", "100")),
44
+ fallback_on_error=os.getenv("XWSYSTEM_FALLBACK", "true").lower() == "true",
45
+ )
46
+
47
+ @classmethod
48
+ def conservative(cls) -> PerformanceConfig:
49
+ """Conservative config (disable optimizations, use originals)."""
50
+ return cls(
51
+ enable_parallel_index=False,
52
+ enable_append_log=False,
53
+ fallback_on_error=True,
54
+ )
55
+
56
+ @classmethod
57
+ def aggressive(cls) -> PerformanceConfig:
58
+ """Aggressive config (enable all optimizations, no fallback)."""
59
+ return cls(
60
+ enable_parallel_index=True,
61
+ enable_append_log=True,
62
+ fallback_on_error=False,
63
+ )
64
+
65
+
66
+ # Global config instance
67
+ _config: PerformanceConfig | None = None
368
68
 
369
69
 
370
70
  def get_performance_config() -> PerformanceConfig:
371
- """Get the global performance configuration instance."""
372
- global _global_config
373
- if _global_config is None:
374
- _global_config = PerformanceConfig()
375
- return _global_config
376
-
377
-
378
- def configure_performance(config_file: Optional[str] = None, **kwargs) -> None:
379
- """
380
- Configure global performance settings.
381
-
382
- Args:
383
- config_file: Optional configuration file path
384
- **kwargs: Performance limit overrides
385
- """
386
- global _global_config
387
- _global_config = PerformanceConfig(config_file)
388
-
389
- if kwargs:
390
- _global_config.update_limits(**kwargs)
391
-
392
-
393
- # Convenience functions for getting specific limits
394
- def get_serialization_limits() -> SerializationLimits:
395
- """Get current serialization limits."""
396
- return get_performance_config().limits.serialization
71
+ """Get global performance config."""
72
+ global _config
73
+ if _config is None:
74
+ _config = PerformanceConfig.from_env()
75
+ return _config
397
76
 
398
77
 
399
- def get_network_limits() -> NetworkLimits:
400
- """Get current network limits."""
401
- return get_performance_config().limits.network
78
+ def set_performance_config(config: PerformanceConfig) -> None:
79
+ """Set global performance config."""
80
+ global _config
81
+ _config = config
402
82
 
403
83
 
404
- def get_security_limits() -> SecurityLimits:
405
- """Get current security limits."""
406
- return get_performance_config().limits.security
84
+ __all__ = [
85
+ "PerformanceConfig",
86
+ "get_performance_config",
87
+ "set_performance_config",
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, Union
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 for backward compatibility
20
+ # Use AdvancedPerformanceMode directly as PerformanceMode
20
21
  PerformanceMode = AdvancedPerformanceMode
21
22
 
22
23
 
23
24
  class PerformanceModes:
24
- """Performance mode constants for backward compatibility and simple usage."""
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 (always enforced)
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
- # Smart triggers
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 best performing mode
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 best performing mode
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
- # Smart triggers
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)