truthound 1.0.8__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 (877) hide show
  1. truthound/__init__.py +162 -0
  2. truthound/adapters.py +100 -0
  3. truthound/api.py +365 -0
  4. truthound/audit/__init__.py +248 -0
  5. truthound/audit/core.py +967 -0
  6. truthound/audit/filters.py +620 -0
  7. truthound/audit/formatters.py +707 -0
  8. truthound/audit/logger.py +902 -0
  9. truthound/audit/middleware.py +571 -0
  10. truthound/audit/storage.py +1083 -0
  11. truthound/benchmark/__init__.py +123 -0
  12. truthound/benchmark/base.py +757 -0
  13. truthound/benchmark/comparison.py +635 -0
  14. truthound/benchmark/generators.py +706 -0
  15. truthound/benchmark/reporters.py +718 -0
  16. truthound/benchmark/runner.py +635 -0
  17. truthound/benchmark/scenarios.py +712 -0
  18. truthound/cache.py +252 -0
  19. truthound/checkpoint/__init__.py +136 -0
  20. truthound/checkpoint/actions/__init__.py +164 -0
  21. truthound/checkpoint/actions/base.py +324 -0
  22. truthound/checkpoint/actions/custom.py +234 -0
  23. truthound/checkpoint/actions/discord_notify.py +290 -0
  24. truthound/checkpoint/actions/email_notify.py +405 -0
  25. truthound/checkpoint/actions/github_action.py +406 -0
  26. truthound/checkpoint/actions/opsgenie.py +1499 -0
  27. truthound/checkpoint/actions/pagerduty.py +226 -0
  28. truthound/checkpoint/actions/slack_notify.py +233 -0
  29. truthound/checkpoint/actions/store_result.py +249 -0
  30. truthound/checkpoint/actions/teams_notify.py +1570 -0
  31. truthound/checkpoint/actions/telegram_notify.py +419 -0
  32. truthound/checkpoint/actions/update_docs.py +552 -0
  33. truthound/checkpoint/actions/webhook.py +293 -0
  34. truthound/checkpoint/analytics/__init__.py +147 -0
  35. truthound/checkpoint/analytics/aggregations/__init__.py +23 -0
  36. truthound/checkpoint/analytics/aggregations/rollup.py +481 -0
  37. truthound/checkpoint/analytics/aggregations/time_bucket.py +306 -0
  38. truthound/checkpoint/analytics/analyzers/__init__.py +17 -0
  39. truthound/checkpoint/analytics/analyzers/anomaly.py +386 -0
  40. truthound/checkpoint/analytics/analyzers/base.py +270 -0
  41. truthound/checkpoint/analytics/analyzers/forecast.py +421 -0
  42. truthound/checkpoint/analytics/analyzers/trend.py +314 -0
  43. truthound/checkpoint/analytics/models.py +292 -0
  44. truthound/checkpoint/analytics/protocols.py +549 -0
  45. truthound/checkpoint/analytics/service.py +718 -0
  46. truthound/checkpoint/analytics/stores/__init__.py +16 -0
  47. truthound/checkpoint/analytics/stores/base.py +306 -0
  48. truthound/checkpoint/analytics/stores/memory_store.py +353 -0
  49. truthound/checkpoint/analytics/stores/sqlite_store.py +557 -0
  50. truthound/checkpoint/analytics/stores/timescale_store.py +501 -0
  51. truthound/checkpoint/async_actions.py +794 -0
  52. truthound/checkpoint/async_base.py +708 -0
  53. truthound/checkpoint/async_checkpoint.py +617 -0
  54. truthound/checkpoint/async_runner.py +639 -0
  55. truthound/checkpoint/checkpoint.py +527 -0
  56. truthound/checkpoint/ci/__init__.py +61 -0
  57. truthound/checkpoint/ci/detector.py +355 -0
  58. truthound/checkpoint/ci/reporter.py +436 -0
  59. truthound/checkpoint/ci/templates.py +454 -0
  60. truthound/checkpoint/circuitbreaker/__init__.py +133 -0
  61. truthound/checkpoint/circuitbreaker/breaker.py +542 -0
  62. truthound/checkpoint/circuitbreaker/core.py +252 -0
  63. truthound/checkpoint/circuitbreaker/detection.py +459 -0
  64. truthound/checkpoint/circuitbreaker/middleware.py +389 -0
  65. truthound/checkpoint/circuitbreaker/registry.py +357 -0
  66. truthound/checkpoint/distributed/__init__.py +139 -0
  67. truthound/checkpoint/distributed/backends/__init__.py +35 -0
  68. truthound/checkpoint/distributed/backends/celery_backend.py +503 -0
  69. truthound/checkpoint/distributed/backends/kubernetes_backend.py +696 -0
  70. truthound/checkpoint/distributed/backends/local_backend.py +397 -0
  71. truthound/checkpoint/distributed/backends/ray_backend.py +625 -0
  72. truthound/checkpoint/distributed/base.py +774 -0
  73. truthound/checkpoint/distributed/orchestrator.py +765 -0
  74. truthound/checkpoint/distributed/protocols.py +842 -0
  75. truthound/checkpoint/distributed/registry.py +449 -0
  76. truthound/checkpoint/idempotency/__init__.py +120 -0
  77. truthound/checkpoint/idempotency/core.py +295 -0
  78. truthound/checkpoint/idempotency/fingerprint.py +454 -0
  79. truthound/checkpoint/idempotency/locking.py +604 -0
  80. truthound/checkpoint/idempotency/service.py +592 -0
  81. truthound/checkpoint/idempotency/stores.py +653 -0
  82. truthound/checkpoint/monitoring/__init__.py +134 -0
  83. truthound/checkpoint/monitoring/aggregators/__init__.py +15 -0
  84. truthound/checkpoint/monitoring/aggregators/base.py +372 -0
  85. truthound/checkpoint/monitoring/aggregators/realtime.py +300 -0
  86. truthound/checkpoint/monitoring/aggregators/window.py +493 -0
  87. truthound/checkpoint/monitoring/collectors/__init__.py +17 -0
  88. truthound/checkpoint/monitoring/collectors/base.py +257 -0
  89. truthound/checkpoint/monitoring/collectors/memory_collector.py +617 -0
  90. truthound/checkpoint/monitoring/collectors/prometheus_collector.py +451 -0
  91. truthound/checkpoint/monitoring/collectors/redis_collector.py +518 -0
  92. truthound/checkpoint/monitoring/events.py +410 -0
  93. truthound/checkpoint/monitoring/protocols.py +636 -0
  94. truthound/checkpoint/monitoring/service.py +578 -0
  95. truthound/checkpoint/monitoring/views/__init__.py +17 -0
  96. truthound/checkpoint/monitoring/views/base.py +172 -0
  97. truthound/checkpoint/monitoring/views/queue_view.py +220 -0
  98. truthound/checkpoint/monitoring/views/task_view.py +240 -0
  99. truthound/checkpoint/monitoring/views/worker_view.py +263 -0
  100. truthound/checkpoint/registry.py +337 -0
  101. truthound/checkpoint/runner.py +356 -0
  102. truthound/checkpoint/transaction/__init__.py +133 -0
  103. truthound/checkpoint/transaction/base.py +389 -0
  104. truthound/checkpoint/transaction/compensatable.py +537 -0
  105. truthound/checkpoint/transaction/coordinator.py +576 -0
  106. truthound/checkpoint/transaction/executor.py +622 -0
  107. truthound/checkpoint/transaction/idempotency.py +534 -0
  108. truthound/checkpoint/transaction/saga/__init__.py +143 -0
  109. truthound/checkpoint/transaction/saga/builder.py +584 -0
  110. truthound/checkpoint/transaction/saga/definition.py +515 -0
  111. truthound/checkpoint/transaction/saga/event_store.py +542 -0
  112. truthound/checkpoint/transaction/saga/patterns.py +833 -0
  113. truthound/checkpoint/transaction/saga/runner.py +718 -0
  114. truthound/checkpoint/transaction/saga/state_machine.py +793 -0
  115. truthound/checkpoint/transaction/saga/strategies.py +780 -0
  116. truthound/checkpoint/transaction/saga/testing.py +886 -0
  117. truthound/checkpoint/triggers/__init__.py +58 -0
  118. truthound/checkpoint/triggers/base.py +237 -0
  119. truthound/checkpoint/triggers/event.py +385 -0
  120. truthound/checkpoint/triggers/schedule.py +355 -0
  121. truthound/cli.py +2358 -0
  122. truthound/cli_modules/__init__.py +124 -0
  123. truthound/cli_modules/advanced/__init__.py +45 -0
  124. truthound/cli_modules/advanced/benchmark.py +343 -0
  125. truthound/cli_modules/advanced/docs.py +225 -0
  126. truthound/cli_modules/advanced/lineage.py +209 -0
  127. truthound/cli_modules/advanced/ml.py +320 -0
  128. truthound/cli_modules/advanced/realtime.py +196 -0
  129. truthound/cli_modules/checkpoint/__init__.py +46 -0
  130. truthound/cli_modules/checkpoint/init.py +114 -0
  131. truthound/cli_modules/checkpoint/list.py +71 -0
  132. truthound/cli_modules/checkpoint/run.py +159 -0
  133. truthound/cli_modules/checkpoint/validate.py +67 -0
  134. truthound/cli_modules/common/__init__.py +71 -0
  135. truthound/cli_modules/common/errors.py +414 -0
  136. truthound/cli_modules/common/options.py +419 -0
  137. truthound/cli_modules/common/output.py +507 -0
  138. truthound/cli_modules/common/protocol.py +552 -0
  139. truthound/cli_modules/core/__init__.py +48 -0
  140. truthound/cli_modules/core/check.py +123 -0
  141. truthound/cli_modules/core/compare.py +104 -0
  142. truthound/cli_modules/core/learn.py +57 -0
  143. truthound/cli_modules/core/mask.py +77 -0
  144. truthound/cli_modules/core/profile.py +65 -0
  145. truthound/cli_modules/core/scan.py +61 -0
  146. truthound/cli_modules/profiler/__init__.py +51 -0
  147. truthound/cli_modules/profiler/auto_profile.py +175 -0
  148. truthound/cli_modules/profiler/metadata.py +107 -0
  149. truthound/cli_modules/profiler/suite.py +283 -0
  150. truthound/cli_modules/registry.py +431 -0
  151. truthound/cli_modules/scaffolding/__init__.py +89 -0
  152. truthound/cli_modules/scaffolding/base.py +631 -0
  153. truthound/cli_modules/scaffolding/commands.py +545 -0
  154. truthound/cli_modules/scaffolding/plugins.py +1072 -0
  155. truthound/cli_modules/scaffolding/reporters.py +594 -0
  156. truthound/cli_modules/scaffolding/validators.py +1127 -0
  157. truthound/common/__init__.py +18 -0
  158. truthound/common/resilience/__init__.py +130 -0
  159. truthound/common/resilience/bulkhead.py +266 -0
  160. truthound/common/resilience/circuit_breaker.py +516 -0
  161. truthound/common/resilience/composite.py +332 -0
  162. truthound/common/resilience/config.py +292 -0
  163. truthound/common/resilience/protocols.py +217 -0
  164. truthound/common/resilience/rate_limiter.py +404 -0
  165. truthound/common/resilience/retry.py +341 -0
  166. truthound/datadocs/__init__.py +260 -0
  167. truthound/datadocs/base.py +571 -0
  168. truthound/datadocs/builder.py +761 -0
  169. truthound/datadocs/charts.py +764 -0
  170. truthound/datadocs/dashboard/__init__.py +63 -0
  171. truthound/datadocs/dashboard/app.py +576 -0
  172. truthound/datadocs/dashboard/components.py +584 -0
  173. truthound/datadocs/dashboard/state.py +240 -0
  174. truthound/datadocs/engine/__init__.py +46 -0
  175. truthound/datadocs/engine/context.py +376 -0
  176. truthound/datadocs/engine/pipeline.py +618 -0
  177. truthound/datadocs/engine/registry.py +469 -0
  178. truthound/datadocs/exporters/__init__.py +49 -0
  179. truthound/datadocs/exporters/base.py +198 -0
  180. truthound/datadocs/exporters/html.py +178 -0
  181. truthound/datadocs/exporters/json_exporter.py +253 -0
  182. truthound/datadocs/exporters/markdown.py +284 -0
  183. truthound/datadocs/exporters/pdf.py +392 -0
  184. truthound/datadocs/i18n/__init__.py +86 -0
  185. truthound/datadocs/i18n/catalog.py +960 -0
  186. truthound/datadocs/i18n/formatting.py +505 -0
  187. truthound/datadocs/i18n/loader.py +256 -0
  188. truthound/datadocs/i18n/plurals.py +378 -0
  189. truthound/datadocs/renderers/__init__.py +42 -0
  190. truthound/datadocs/renderers/base.py +401 -0
  191. truthound/datadocs/renderers/custom.py +342 -0
  192. truthound/datadocs/renderers/jinja.py +697 -0
  193. truthound/datadocs/sections.py +736 -0
  194. truthound/datadocs/styles.py +931 -0
  195. truthound/datadocs/themes/__init__.py +101 -0
  196. truthound/datadocs/themes/base.py +336 -0
  197. truthound/datadocs/themes/default.py +417 -0
  198. truthound/datadocs/themes/enterprise.py +419 -0
  199. truthound/datadocs/themes/loader.py +336 -0
  200. truthound/datadocs/themes.py +301 -0
  201. truthound/datadocs/transformers/__init__.py +57 -0
  202. truthound/datadocs/transformers/base.py +268 -0
  203. truthound/datadocs/transformers/enrichers.py +544 -0
  204. truthound/datadocs/transformers/filters.py +447 -0
  205. truthound/datadocs/transformers/i18n.py +468 -0
  206. truthound/datadocs/versioning/__init__.py +62 -0
  207. truthound/datadocs/versioning/diff.py +639 -0
  208. truthound/datadocs/versioning/storage.py +497 -0
  209. truthound/datadocs/versioning/version.py +358 -0
  210. truthound/datasources/__init__.py +223 -0
  211. truthound/datasources/_async_protocols.py +222 -0
  212. truthound/datasources/_protocols.py +159 -0
  213. truthound/datasources/adapters.py +428 -0
  214. truthound/datasources/async_base.py +599 -0
  215. truthound/datasources/async_factory.py +511 -0
  216. truthound/datasources/base.py +516 -0
  217. truthound/datasources/factory.py +433 -0
  218. truthound/datasources/nosql/__init__.py +47 -0
  219. truthound/datasources/nosql/base.py +487 -0
  220. truthound/datasources/nosql/elasticsearch.py +801 -0
  221. truthound/datasources/nosql/mongodb.py +636 -0
  222. truthound/datasources/pandas_optimized.py +582 -0
  223. truthound/datasources/pandas_source.py +216 -0
  224. truthound/datasources/polars_source.py +395 -0
  225. truthound/datasources/spark_source.py +479 -0
  226. truthound/datasources/sql/__init__.py +154 -0
  227. truthound/datasources/sql/base.py +710 -0
  228. truthound/datasources/sql/bigquery.py +410 -0
  229. truthound/datasources/sql/cloud_base.py +199 -0
  230. truthound/datasources/sql/databricks.py +471 -0
  231. truthound/datasources/sql/mysql.py +316 -0
  232. truthound/datasources/sql/oracle.py +427 -0
  233. truthound/datasources/sql/postgresql.py +321 -0
  234. truthound/datasources/sql/redshift.py +479 -0
  235. truthound/datasources/sql/snowflake.py +439 -0
  236. truthound/datasources/sql/sqlite.py +286 -0
  237. truthound/datasources/sql/sqlserver.py +437 -0
  238. truthound/datasources/streaming/__init__.py +47 -0
  239. truthound/datasources/streaming/base.py +350 -0
  240. truthound/datasources/streaming/kafka.py +670 -0
  241. truthound/decorators.py +98 -0
  242. truthound/docs/__init__.py +69 -0
  243. truthound/docs/extractor.py +971 -0
  244. truthound/docs/generator.py +601 -0
  245. truthound/docs/parser.py +1037 -0
  246. truthound/docs/renderer.py +999 -0
  247. truthound/drift/__init__.py +22 -0
  248. truthound/drift/compare.py +189 -0
  249. truthound/drift/detectors.py +464 -0
  250. truthound/drift/report.py +160 -0
  251. truthound/execution/__init__.py +65 -0
  252. truthound/execution/_protocols.py +324 -0
  253. truthound/execution/base.py +576 -0
  254. truthound/execution/distributed/__init__.py +179 -0
  255. truthound/execution/distributed/aggregations.py +731 -0
  256. truthound/execution/distributed/arrow_bridge.py +817 -0
  257. truthound/execution/distributed/base.py +550 -0
  258. truthound/execution/distributed/dask_engine.py +976 -0
  259. truthound/execution/distributed/mixins.py +766 -0
  260. truthound/execution/distributed/protocols.py +756 -0
  261. truthound/execution/distributed/ray_engine.py +1127 -0
  262. truthound/execution/distributed/registry.py +446 -0
  263. truthound/execution/distributed/spark_engine.py +1011 -0
  264. truthound/execution/distributed/validator_adapter.py +682 -0
  265. truthound/execution/pandas_engine.py +401 -0
  266. truthound/execution/polars_engine.py +497 -0
  267. truthound/execution/pushdown/__init__.py +230 -0
  268. truthound/execution/pushdown/ast.py +1550 -0
  269. truthound/execution/pushdown/builder.py +1550 -0
  270. truthound/execution/pushdown/dialects.py +1072 -0
  271. truthound/execution/pushdown/executor.py +829 -0
  272. truthound/execution/pushdown/optimizer.py +1041 -0
  273. truthound/execution/sql_engine.py +518 -0
  274. truthound/infrastructure/__init__.py +189 -0
  275. truthound/infrastructure/audit.py +1515 -0
  276. truthound/infrastructure/config.py +1133 -0
  277. truthound/infrastructure/encryption.py +1132 -0
  278. truthound/infrastructure/logging.py +1503 -0
  279. truthound/infrastructure/metrics.py +1220 -0
  280. truthound/lineage/__init__.py +89 -0
  281. truthound/lineage/base.py +746 -0
  282. truthound/lineage/impact_analysis.py +474 -0
  283. truthound/lineage/integrations/__init__.py +22 -0
  284. truthound/lineage/integrations/openlineage.py +548 -0
  285. truthound/lineage/tracker.py +512 -0
  286. truthound/lineage/visualization/__init__.py +33 -0
  287. truthound/lineage/visualization/protocols.py +145 -0
  288. truthound/lineage/visualization/renderers/__init__.py +20 -0
  289. truthound/lineage/visualization/renderers/cytoscape.py +329 -0
  290. truthound/lineage/visualization/renderers/d3.py +331 -0
  291. truthound/lineage/visualization/renderers/graphviz.py +276 -0
  292. truthound/lineage/visualization/renderers/mermaid.py +308 -0
  293. truthound/maskers.py +113 -0
  294. truthound/ml/__init__.py +124 -0
  295. truthound/ml/anomaly_models/__init__.py +31 -0
  296. truthound/ml/anomaly_models/ensemble.py +362 -0
  297. truthound/ml/anomaly_models/isolation_forest.py +444 -0
  298. truthound/ml/anomaly_models/statistical.py +392 -0
  299. truthound/ml/base.py +1178 -0
  300. truthound/ml/drift_detection/__init__.py +26 -0
  301. truthound/ml/drift_detection/concept.py +381 -0
  302. truthound/ml/drift_detection/distribution.py +361 -0
  303. truthound/ml/drift_detection/feature.py +442 -0
  304. truthound/ml/drift_detection/multivariate.py +495 -0
  305. truthound/ml/monitoring/__init__.py +88 -0
  306. truthound/ml/monitoring/alerting/__init__.py +33 -0
  307. truthound/ml/monitoring/alerting/handlers.py +427 -0
  308. truthound/ml/monitoring/alerting/rules.py +508 -0
  309. truthound/ml/monitoring/collectors/__init__.py +19 -0
  310. truthound/ml/monitoring/collectors/composite.py +105 -0
  311. truthound/ml/monitoring/collectors/drift.py +324 -0
  312. truthound/ml/monitoring/collectors/performance.py +179 -0
  313. truthound/ml/monitoring/collectors/quality.py +369 -0
  314. truthound/ml/monitoring/monitor.py +536 -0
  315. truthound/ml/monitoring/protocols.py +451 -0
  316. truthound/ml/monitoring/stores/__init__.py +15 -0
  317. truthound/ml/monitoring/stores/memory.py +201 -0
  318. truthound/ml/monitoring/stores/prometheus.py +296 -0
  319. truthound/ml/rule_learning/__init__.py +25 -0
  320. truthound/ml/rule_learning/constraint_miner.py +443 -0
  321. truthound/ml/rule_learning/pattern_learner.py +499 -0
  322. truthound/ml/rule_learning/profile_learner.py +462 -0
  323. truthound/multitenancy/__init__.py +326 -0
  324. truthound/multitenancy/core.py +852 -0
  325. truthound/multitenancy/integration.py +597 -0
  326. truthound/multitenancy/isolation.py +630 -0
  327. truthound/multitenancy/manager.py +770 -0
  328. truthound/multitenancy/middleware.py +765 -0
  329. truthound/multitenancy/quota.py +537 -0
  330. truthound/multitenancy/resolvers.py +603 -0
  331. truthound/multitenancy/storage.py +703 -0
  332. truthound/observability/__init__.py +307 -0
  333. truthound/observability/context.py +531 -0
  334. truthound/observability/instrumentation.py +611 -0
  335. truthound/observability/logging.py +887 -0
  336. truthound/observability/metrics.py +1157 -0
  337. truthound/observability/tracing/__init__.py +178 -0
  338. truthound/observability/tracing/baggage.py +310 -0
  339. truthound/observability/tracing/config.py +426 -0
  340. truthound/observability/tracing/exporter.py +787 -0
  341. truthound/observability/tracing/integration.py +1018 -0
  342. truthound/observability/tracing/otel/__init__.py +146 -0
  343. truthound/observability/tracing/otel/adapter.py +982 -0
  344. truthound/observability/tracing/otel/bridge.py +1177 -0
  345. truthound/observability/tracing/otel/compat.py +681 -0
  346. truthound/observability/tracing/otel/config.py +691 -0
  347. truthound/observability/tracing/otel/detection.py +327 -0
  348. truthound/observability/tracing/otel/protocols.py +426 -0
  349. truthound/observability/tracing/processor.py +561 -0
  350. truthound/observability/tracing/propagator.py +757 -0
  351. truthound/observability/tracing/provider.py +569 -0
  352. truthound/observability/tracing/resource.py +515 -0
  353. truthound/observability/tracing/sampler.py +487 -0
  354. truthound/observability/tracing/span.py +676 -0
  355. truthound/plugins/__init__.py +198 -0
  356. truthound/plugins/base.py +599 -0
  357. truthound/plugins/cli.py +680 -0
  358. truthound/plugins/dependencies/__init__.py +42 -0
  359. truthound/plugins/dependencies/graph.py +422 -0
  360. truthound/plugins/dependencies/resolver.py +417 -0
  361. truthound/plugins/discovery.py +379 -0
  362. truthound/plugins/docs/__init__.py +46 -0
  363. truthound/plugins/docs/extractor.py +444 -0
  364. truthound/plugins/docs/renderer.py +499 -0
  365. truthound/plugins/enterprise_manager.py +877 -0
  366. truthound/plugins/examples/__init__.py +19 -0
  367. truthound/plugins/examples/custom_validators.py +317 -0
  368. truthound/plugins/examples/slack_notifier.py +312 -0
  369. truthound/plugins/examples/xml_reporter.py +254 -0
  370. truthound/plugins/hooks.py +558 -0
  371. truthound/plugins/lifecycle/__init__.py +43 -0
  372. truthound/plugins/lifecycle/hot_reload.py +402 -0
  373. truthound/plugins/lifecycle/manager.py +371 -0
  374. truthound/plugins/manager.py +736 -0
  375. truthound/plugins/registry.py +338 -0
  376. truthound/plugins/security/__init__.py +93 -0
  377. truthound/plugins/security/exceptions.py +332 -0
  378. truthound/plugins/security/policies.py +348 -0
  379. truthound/plugins/security/protocols.py +643 -0
  380. truthound/plugins/security/sandbox/__init__.py +45 -0
  381. truthound/plugins/security/sandbox/context.py +158 -0
  382. truthound/plugins/security/sandbox/engines/__init__.py +19 -0
  383. truthound/plugins/security/sandbox/engines/container.py +379 -0
  384. truthound/plugins/security/sandbox/engines/noop.py +144 -0
  385. truthound/plugins/security/sandbox/engines/process.py +336 -0
  386. truthound/plugins/security/sandbox/factory.py +211 -0
  387. truthound/plugins/security/signing/__init__.py +57 -0
  388. truthound/plugins/security/signing/service.py +330 -0
  389. truthound/plugins/security/signing/trust_store.py +368 -0
  390. truthound/plugins/security/signing/verifier.py +459 -0
  391. truthound/plugins/versioning/__init__.py +41 -0
  392. truthound/plugins/versioning/constraints.py +297 -0
  393. truthound/plugins/versioning/resolver.py +329 -0
  394. truthound/profiler/__init__.py +1729 -0
  395. truthound/profiler/_lazy.py +452 -0
  396. truthound/profiler/ab_testing/__init__.py +80 -0
  397. truthound/profiler/ab_testing/analysis.py +449 -0
  398. truthound/profiler/ab_testing/base.py +257 -0
  399. truthound/profiler/ab_testing/experiment.py +395 -0
  400. truthound/profiler/ab_testing/tracking.py +368 -0
  401. truthound/profiler/auto_threshold.py +1170 -0
  402. truthound/profiler/base.py +579 -0
  403. truthound/profiler/cache_patterns.py +911 -0
  404. truthound/profiler/caching.py +1303 -0
  405. truthound/profiler/column_profiler.py +712 -0
  406. truthound/profiler/comparison.py +1007 -0
  407. truthound/profiler/custom_patterns.py +1170 -0
  408. truthound/profiler/dashboard/__init__.py +50 -0
  409. truthound/profiler/dashboard/app.py +476 -0
  410. truthound/profiler/dashboard/components.py +457 -0
  411. truthound/profiler/dashboard/config.py +72 -0
  412. truthound/profiler/distributed/__init__.py +83 -0
  413. truthound/profiler/distributed/base.py +281 -0
  414. truthound/profiler/distributed/dask_backend.py +498 -0
  415. truthound/profiler/distributed/local_backend.py +293 -0
  416. truthound/profiler/distributed/profiler.py +304 -0
  417. truthound/profiler/distributed/ray_backend.py +374 -0
  418. truthound/profiler/distributed/spark_backend.py +375 -0
  419. truthound/profiler/distributed.py +1366 -0
  420. truthound/profiler/enterprise_sampling.py +1065 -0
  421. truthound/profiler/errors.py +488 -0
  422. truthound/profiler/evolution/__init__.py +91 -0
  423. truthound/profiler/evolution/alerts.py +426 -0
  424. truthound/profiler/evolution/changes.py +206 -0
  425. truthound/profiler/evolution/compatibility.py +365 -0
  426. truthound/profiler/evolution/detector.py +372 -0
  427. truthound/profiler/evolution/protocols.py +121 -0
  428. truthound/profiler/generators/__init__.py +48 -0
  429. truthound/profiler/generators/base.py +384 -0
  430. truthound/profiler/generators/ml_rules.py +375 -0
  431. truthound/profiler/generators/pattern_rules.py +384 -0
  432. truthound/profiler/generators/schema_rules.py +267 -0
  433. truthound/profiler/generators/stats_rules.py +324 -0
  434. truthound/profiler/generators/suite_generator.py +857 -0
  435. truthound/profiler/i18n.py +1542 -0
  436. truthound/profiler/incremental.py +554 -0
  437. truthound/profiler/incremental_validation.py +1710 -0
  438. truthound/profiler/integration/__init__.py +73 -0
  439. truthound/profiler/integration/adapters.py +345 -0
  440. truthound/profiler/integration/context.py +371 -0
  441. truthound/profiler/integration/executor.py +527 -0
  442. truthound/profiler/integration/naming.py +75 -0
  443. truthound/profiler/integration/protocols.py +243 -0
  444. truthound/profiler/memory.py +1185 -0
  445. truthound/profiler/migration/__init__.py +60 -0
  446. truthound/profiler/migration/base.py +345 -0
  447. truthound/profiler/migration/manager.py +444 -0
  448. truthound/profiler/migration/v1_0_to_v1_1.py +484 -0
  449. truthound/profiler/ml/__init__.py +73 -0
  450. truthound/profiler/ml/base.py +244 -0
  451. truthound/profiler/ml/classifier.py +507 -0
  452. truthound/profiler/ml/feature_extraction.py +604 -0
  453. truthound/profiler/ml/pretrained.py +448 -0
  454. truthound/profiler/ml_inference.py +1276 -0
  455. truthound/profiler/native_patterns.py +815 -0
  456. truthound/profiler/observability.py +1184 -0
  457. truthound/profiler/process_timeout.py +1566 -0
  458. truthound/profiler/progress.py +568 -0
  459. truthound/profiler/progress_callbacks.py +1734 -0
  460. truthound/profiler/quality.py +1345 -0
  461. truthound/profiler/resilience.py +1180 -0
  462. truthound/profiler/sampled_matcher.py +794 -0
  463. truthound/profiler/sampling.py +1288 -0
  464. truthound/profiler/scheduling/__init__.py +82 -0
  465. truthound/profiler/scheduling/protocols.py +214 -0
  466. truthound/profiler/scheduling/scheduler.py +474 -0
  467. truthound/profiler/scheduling/storage.py +457 -0
  468. truthound/profiler/scheduling/triggers.py +449 -0
  469. truthound/profiler/schema.py +603 -0
  470. truthound/profiler/streaming.py +685 -0
  471. truthound/profiler/streaming_patterns.py +1354 -0
  472. truthound/profiler/suite_cli.py +625 -0
  473. truthound/profiler/suite_config.py +789 -0
  474. truthound/profiler/suite_export.py +1268 -0
  475. truthound/profiler/table_profiler.py +547 -0
  476. truthound/profiler/timeout.py +565 -0
  477. truthound/profiler/validation.py +1532 -0
  478. truthound/profiler/visualization/__init__.py +118 -0
  479. truthound/profiler/visualization/base.py +346 -0
  480. truthound/profiler/visualization/generator.py +1259 -0
  481. truthound/profiler/visualization/plotly_renderer.py +811 -0
  482. truthound/profiler/visualization/renderers.py +669 -0
  483. truthound/profiler/visualization/sections.py +540 -0
  484. truthound/profiler/visualization.py +2122 -0
  485. truthound/profiler/yaml_validation.py +1151 -0
  486. truthound/py.typed +0 -0
  487. truthound/ratelimit/__init__.py +248 -0
  488. truthound/ratelimit/algorithms.py +1108 -0
  489. truthound/ratelimit/core.py +573 -0
  490. truthound/ratelimit/integration.py +532 -0
  491. truthound/ratelimit/limiter.py +663 -0
  492. truthound/ratelimit/middleware.py +700 -0
  493. truthound/ratelimit/policy.py +792 -0
  494. truthound/ratelimit/storage.py +763 -0
  495. truthound/rbac/__init__.py +340 -0
  496. truthound/rbac/core.py +976 -0
  497. truthound/rbac/integration.py +760 -0
  498. truthound/rbac/manager.py +1052 -0
  499. truthound/rbac/middleware.py +842 -0
  500. truthound/rbac/policy.py +954 -0
  501. truthound/rbac/storage.py +878 -0
  502. truthound/realtime/__init__.py +141 -0
  503. truthound/realtime/adapters/__init__.py +43 -0
  504. truthound/realtime/adapters/base.py +533 -0
  505. truthound/realtime/adapters/kafka.py +487 -0
  506. truthound/realtime/adapters/kinesis.py +479 -0
  507. truthound/realtime/adapters/mock.py +243 -0
  508. truthound/realtime/base.py +553 -0
  509. truthound/realtime/factory.py +382 -0
  510. truthound/realtime/incremental.py +660 -0
  511. truthound/realtime/processing/__init__.py +67 -0
  512. truthound/realtime/processing/exactly_once.py +575 -0
  513. truthound/realtime/processing/state.py +547 -0
  514. truthound/realtime/processing/windows.py +647 -0
  515. truthound/realtime/protocols.py +569 -0
  516. truthound/realtime/streaming.py +605 -0
  517. truthound/realtime/testing/__init__.py +32 -0
  518. truthound/realtime/testing/containers.py +615 -0
  519. truthound/realtime/testing/fixtures.py +484 -0
  520. truthound/report.py +280 -0
  521. truthound/reporters/__init__.py +46 -0
  522. truthound/reporters/_protocols.py +30 -0
  523. truthound/reporters/base.py +324 -0
  524. truthound/reporters/ci/__init__.py +66 -0
  525. truthound/reporters/ci/azure.py +436 -0
  526. truthound/reporters/ci/base.py +509 -0
  527. truthound/reporters/ci/bitbucket.py +567 -0
  528. truthound/reporters/ci/circleci.py +547 -0
  529. truthound/reporters/ci/detection.py +364 -0
  530. truthound/reporters/ci/factory.py +182 -0
  531. truthound/reporters/ci/github.py +388 -0
  532. truthound/reporters/ci/gitlab.py +471 -0
  533. truthound/reporters/ci/jenkins.py +525 -0
  534. truthound/reporters/console_reporter.py +299 -0
  535. truthound/reporters/factory.py +211 -0
  536. truthound/reporters/html_reporter.py +524 -0
  537. truthound/reporters/json_reporter.py +256 -0
  538. truthound/reporters/markdown_reporter.py +280 -0
  539. truthound/reporters/sdk/__init__.py +174 -0
  540. truthound/reporters/sdk/builder.py +558 -0
  541. truthound/reporters/sdk/mixins.py +1150 -0
  542. truthound/reporters/sdk/schema.py +1493 -0
  543. truthound/reporters/sdk/templates.py +666 -0
  544. truthound/reporters/sdk/testing.py +968 -0
  545. truthound/scanners.py +170 -0
  546. truthound/scheduling/__init__.py +122 -0
  547. truthound/scheduling/cron.py +1136 -0
  548. truthound/scheduling/presets.py +212 -0
  549. truthound/schema.py +275 -0
  550. truthound/secrets/__init__.py +173 -0
  551. truthound/secrets/base.py +618 -0
  552. truthound/secrets/cloud.py +682 -0
  553. truthound/secrets/integration.py +507 -0
  554. truthound/secrets/manager.py +633 -0
  555. truthound/secrets/oidc/__init__.py +172 -0
  556. truthound/secrets/oidc/base.py +902 -0
  557. truthound/secrets/oidc/credential_provider.py +623 -0
  558. truthound/secrets/oidc/exchangers.py +1001 -0
  559. truthound/secrets/oidc/github/__init__.py +110 -0
  560. truthound/secrets/oidc/github/claims.py +718 -0
  561. truthound/secrets/oidc/github/enhanced_provider.py +693 -0
  562. truthound/secrets/oidc/github/trust_policy.py +742 -0
  563. truthound/secrets/oidc/github/verification.py +723 -0
  564. truthound/secrets/oidc/github/workflow.py +691 -0
  565. truthound/secrets/oidc/providers.py +825 -0
  566. truthound/secrets/providers.py +506 -0
  567. truthound/secrets/resolver.py +495 -0
  568. truthound/stores/__init__.py +177 -0
  569. truthound/stores/backends/__init__.py +18 -0
  570. truthound/stores/backends/_protocols.py +340 -0
  571. truthound/stores/backends/azure_blob.py +530 -0
  572. truthound/stores/backends/concurrent_filesystem.py +915 -0
  573. truthound/stores/backends/connection_pool.py +1365 -0
  574. truthound/stores/backends/database.py +743 -0
  575. truthound/stores/backends/filesystem.py +538 -0
  576. truthound/stores/backends/gcs.py +399 -0
  577. truthound/stores/backends/memory.py +354 -0
  578. truthound/stores/backends/s3.py +434 -0
  579. truthound/stores/backpressure/__init__.py +84 -0
  580. truthound/stores/backpressure/base.py +375 -0
  581. truthound/stores/backpressure/circuit_breaker.py +434 -0
  582. truthound/stores/backpressure/monitor.py +376 -0
  583. truthound/stores/backpressure/strategies.py +677 -0
  584. truthound/stores/base.py +551 -0
  585. truthound/stores/batching/__init__.py +65 -0
  586. truthound/stores/batching/base.py +305 -0
  587. truthound/stores/batching/buffer.py +370 -0
  588. truthound/stores/batching/store.py +248 -0
  589. truthound/stores/batching/writer.py +521 -0
  590. truthound/stores/caching/__init__.py +60 -0
  591. truthound/stores/caching/backends.py +684 -0
  592. truthound/stores/caching/base.py +356 -0
  593. truthound/stores/caching/store.py +305 -0
  594. truthound/stores/compression/__init__.py +193 -0
  595. truthound/stores/compression/adaptive.py +694 -0
  596. truthound/stores/compression/base.py +514 -0
  597. truthound/stores/compression/pipeline.py +868 -0
  598. truthound/stores/compression/providers.py +672 -0
  599. truthound/stores/compression/streaming.py +832 -0
  600. truthound/stores/concurrency/__init__.py +81 -0
  601. truthound/stores/concurrency/atomic.py +556 -0
  602. truthound/stores/concurrency/index.py +775 -0
  603. truthound/stores/concurrency/locks.py +576 -0
  604. truthound/stores/concurrency/manager.py +482 -0
  605. truthound/stores/encryption/__init__.py +297 -0
  606. truthound/stores/encryption/base.py +952 -0
  607. truthound/stores/encryption/keys.py +1191 -0
  608. truthound/stores/encryption/pipeline.py +903 -0
  609. truthound/stores/encryption/providers.py +953 -0
  610. truthound/stores/encryption/streaming.py +950 -0
  611. truthound/stores/expectations.py +227 -0
  612. truthound/stores/factory.py +246 -0
  613. truthound/stores/migration/__init__.py +75 -0
  614. truthound/stores/migration/base.py +480 -0
  615. truthound/stores/migration/manager.py +347 -0
  616. truthound/stores/migration/registry.py +382 -0
  617. truthound/stores/migration/store.py +559 -0
  618. truthound/stores/observability/__init__.py +106 -0
  619. truthound/stores/observability/audit.py +718 -0
  620. truthound/stores/observability/config.py +270 -0
  621. truthound/stores/observability/factory.py +208 -0
  622. truthound/stores/observability/metrics.py +636 -0
  623. truthound/stores/observability/protocols.py +410 -0
  624. truthound/stores/observability/store.py +570 -0
  625. truthound/stores/observability/tracing.py +784 -0
  626. truthound/stores/replication/__init__.py +76 -0
  627. truthound/stores/replication/base.py +260 -0
  628. truthound/stores/replication/monitor.py +269 -0
  629. truthound/stores/replication/store.py +439 -0
  630. truthound/stores/replication/syncer.py +391 -0
  631. truthound/stores/results.py +359 -0
  632. truthound/stores/retention/__init__.py +77 -0
  633. truthound/stores/retention/base.py +378 -0
  634. truthound/stores/retention/policies.py +621 -0
  635. truthound/stores/retention/scheduler.py +279 -0
  636. truthound/stores/retention/store.py +526 -0
  637. truthound/stores/streaming/__init__.py +138 -0
  638. truthound/stores/streaming/base.py +801 -0
  639. truthound/stores/streaming/database.py +984 -0
  640. truthound/stores/streaming/filesystem.py +719 -0
  641. truthound/stores/streaming/reader.py +629 -0
  642. truthound/stores/streaming/s3.py +843 -0
  643. truthound/stores/streaming/writer.py +790 -0
  644. truthound/stores/tiering/__init__.py +108 -0
  645. truthound/stores/tiering/base.py +462 -0
  646. truthound/stores/tiering/manager.py +249 -0
  647. truthound/stores/tiering/policies.py +692 -0
  648. truthound/stores/tiering/store.py +526 -0
  649. truthound/stores/versioning/__init__.py +56 -0
  650. truthound/stores/versioning/base.py +376 -0
  651. truthound/stores/versioning/store.py +660 -0
  652. truthound/stores/versioning/strategies.py +353 -0
  653. truthound/types.py +56 -0
  654. truthound/validators/__init__.py +774 -0
  655. truthound/validators/aggregate/__init__.py +27 -0
  656. truthound/validators/aggregate/central.py +116 -0
  657. truthound/validators/aggregate/extremes.py +116 -0
  658. truthound/validators/aggregate/spread.py +118 -0
  659. truthound/validators/aggregate/sum.py +64 -0
  660. truthound/validators/aggregate/type.py +78 -0
  661. truthound/validators/anomaly/__init__.py +93 -0
  662. truthound/validators/anomaly/base.py +431 -0
  663. truthound/validators/anomaly/ml_based.py +1190 -0
  664. truthound/validators/anomaly/multivariate.py +647 -0
  665. truthound/validators/anomaly/statistical.py +599 -0
  666. truthound/validators/base.py +1089 -0
  667. truthound/validators/business_rule/__init__.py +46 -0
  668. truthound/validators/business_rule/base.py +147 -0
  669. truthound/validators/business_rule/checksum.py +509 -0
  670. truthound/validators/business_rule/financial.py +526 -0
  671. truthound/validators/cache.py +733 -0
  672. truthound/validators/completeness/__init__.py +39 -0
  673. truthound/validators/completeness/conditional.py +73 -0
  674. truthound/validators/completeness/default.py +98 -0
  675. truthound/validators/completeness/empty.py +103 -0
  676. truthound/validators/completeness/nan.py +337 -0
  677. truthound/validators/completeness/null.py +152 -0
  678. truthound/validators/cross_table/__init__.py +17 -0
  679. truthound/validators/cross_table/aggregate.py +333 -0
  680. truthound/validators/cross_table/row_count.py +122 -0
  681. truthound/validators/datetime/__init__.py +29 -0
  682. truthound/validators/datetime/format.py +78 -0
  683. truthound/validators/datetime/freshness.py +269 -0
  684. truthound/validators/datetime/order.py +73 -0
  685. truthound/validators/datetime/parseable.py +185 -0
  686. truthound/validators/datetime/range.py +202 -0
  687. truthound/validators/datetime/timezone.py +69 -0
  688. truthound/validators/distribution/__init__.py +49 -0
  689. truthound/validators/distribution/distribution.py +128 -0
  690. truthound/validators/distribution/monotonic.py +119 -0
  691. truthound/validators/distribution/outlier.py +178 -0
  692. truthound/validators/distribution/quantile.py +80 -0
  693. truthound/validators/distribution/range.py +254 -0
  694. truthound/validators/distribution/set.py +125 -0
  695. truthound/validators/distribution/statistical.py +459 -0
  696. truthound/validators/drift/__init__.py +79 -0
  697. truthound/validators/drift/base.py +427 -0
  698. truthound/validators/drift/multi_feature.py +401 -0
  699. truthound/validators/drift/numeric.py +395 -0
  700. truthound/validators/drift/psi.py +446 -0
  701. truthound/validators/drift/statistical.py +510 -0
  702. truthound/validators/enterprise.py +1658 -0
  703. truthound/validators/geospatial/__init__.py +80 -0
  704. truthound/validators/geospatial/base.py +97 -0
  705. truthound/validators/geospatial/boundary.py +238 -0
  706. truthound/validators/geospatial/coordinate.py +351 -0
  707. truthound/validators/geospatial/distance.py +399 -0
  708. truthound/validators/geospatial/polygon.py +665 -0
  709. truthound/validators/i18n/__init__.py +308 -0
  710. truthound/validators/i18n/bidi.py +571 -0
  711. truthound/validators/i18n/catalogs.py +570 -0
  712. truthound/validators/i18n/dialects.py +763 -0
  713. truthound/validators/i18n/extended_catalogs.py +549 -0
  714. truthound/validators/i18n/formatting.py +1434 -0
  715. truthound/validators/i18n/loader.py +1020 -0
  716. truthound/validators/i18n/messages.py +521 -0
  717. truthound/validators/i18n/plural.py +683 -0
  718. truthound/validators/i18n/protocols.py +855 -0
  719. truthound/validators/i18n/tms.py +1162 -0
  720. truthound/validators/localization/__init__.py +53 -0
  721. truthound/validators/localization/base.py +122 -0
  722. truthound/validators/localization/chinese.py +362 -0
  723. truthound/validators/localization/japanese.py +275 -0
  724. truthound/validators/localization/korean.py +524 -0
  725. truthound/validators/memory/__init__.py +94 -0
  726. truthound/validators/memory/approximate_knn.py +506 -0
  727. truthound/validators/memory/base.py +547 -0
  728. truthound/validators/memory/sgd_online.py +719 -0
  729. truthound/validators/memory/streaming_ecdf.py +753 -0
  730. truthound/validators/ml_feature/__init__.py +54 -0
  731. truthound/validators/ml_feature/base.py +249 -0
  732. truthound/validators/ml_feature/correlation.py +299 -0
  733. truthound/validators/ml_feature/leakage.py +344 -0
  734. truthound/validators/ml_feature/null_impact.py +270 -0
  735. truthound/validators/ml_feature/scale.py +264 -0
  736. truthound/validators/multi_column/__init__.py +89 -0
  737. truthound/validators/multi_column/arithmetic.py +284 -0
  738. truthound/validators/multi_column/base.py +231 -0
  739. truthound/validators/multi_column/comparison.py +273 -0
  740. truthound/validators/multi_column/consistency.py +312 -0
  741. truthound/validators/multi_column/statistical.py +299 -0
  742. truthound/validators/optimization/__init__.py +164 -0
  743. truthound/validators/optimization/aggregation.py +563 -0
  744. truthound/validators/optimization/covariance.py +556 -0
  745. truthound/validators/optimization/geo.py +626 -0
  746. truthound/validators/optimization/graph.py +587 -0
  747. truthound/validators/optimization/orchestrator.py +970 -0
  748. truthound/validators/optimization/profiling.py +1312 -0
  749. truthound/validators/privacy/__init__.py +223 -0
  750. truthound/validators/privacy/base.py +635 -0
  751. truthound/validators/privacy/ccpa.py +670 -0
  752. truthound/validators/privacy/gdpr.py +728 -0
  753. truthound/validators/privacy/global_patterns.py +604 -0
  754. truthound/validators/privacy/plugins.py +867 -0
  755. truthound/validators/profiling/__init__.py +52 -0
  756. truthound/validators/profiling/base.py +175 -0
  757. truthound/validators/profiling/cardinality.py +312 -0
  758. truthound/validators/profiling/entropy.py +391 -0
  759. truthound/validators/profiling/frequency.py +455 -0
  760. truthound/validators/pushdown_support.py +660 -0
  761. truthound/validators/query/__init__.py +91 -0
  762. truthound/validators/query/aggregate.py +346 -0
  763. truthound/validators/query/base.py +246 -0
  764. truthound/validators/query/column.py +249 -0
  765. truthound/validators/query/expression.py +274 -0
  766. truthound/validators/query/result.py +323 -0
  767. truthound/validators/query/row_count.py +264 -0
  768. truthound/validators/referential/__init__.py +80 -0
  769. truthound/validators/referential/base.py +395 -0
  770. truthound/validators/referential/cascade.py +391 -0
  771. truthound/validators/referential/circular.py +563 -0
  772. truthound/validators/referential/foreign_key.py +624 -0
  773. truthound/validators/referential/orphan.py +485 -0
  774. truthound/validators/registry.py +112 -0
  775. truthound/validators/schema/__init__.py +41 -0
  776. truthound/validators/schema/column_count.py +142 -0
  777. truthound/validators/schema/column_exists.py +80 -0
  778. truthound/validators/schema/column_order.py +82 -0
  779. truthound/validators/schema/column_pair.py +85 -0
  780. truthound/validators/schema/column_pair_set.py +195 -0
  781. truthound/validators/schema/column_type.py +94 -0
  782. truthound/validators/schema/multi_column.py +53 -0
  783. truthound/validators/schema/multi_column_aggregate.py +175 -0
  784. truthound/validators/schema/referential.py +274 -0
  785. truthound/validators/schema/table_schema.py +91 -0
  786. truthound/validators/schema_validator.py +219 -0
  787. truthound/validators/sdk/__init__.py +250 -0
  788. truthound/validators/sdk/builder.py +680 -0
  789. truthound/validators/sdk/decorators.py +474 -0
  790. truthound/validators/sdk/enterprise/__init__.py +211 -0
  791. truthound/validators/sdk/enterprise/docs.py +725 -0
  792. truthound/validators/sdk/enterprise/fuzzing.py +659 -0
  793. truthound/validators/sdk/enterprise/licensing.py +709 -0
  794. truthound/validators/sdk/enterprise/manager.py +543 -0
  795. truthound/validators/sdk/enterprise/resources.py +628 -0
  796. truthound/validators/sdk/enterprise/sandbox.py +766 -0
  797. truthound/validators/sdk/enterprise/signing.py +603 -0
  798. truthound/validators/sdk/enterprise/templates.py +865 -0
  799. truthound/validators/sdk/enterprise/versioning.py +659 -0
  800. truthound/validators/sdk/templates.py +757 -0
  801. truthound/validators/sdk/testing.py +807 -0
  802. truthound/validators/security/__init__.py +181 -0
  803. truthound/validators/security/redos/__init__.py +182 -0
  804. truthound/validators/security/redos/core.py +861 -0
  805. truthound/validators/security/redos/cpu_monitor.py +593 -0
  806. truthound/validators/security/redos/cve_database.py +791 -0
  807. truthound/validators/security/redos/ml/__init__.py +155 -0
  808. truthound/validators/security/redos/ml/base.py +785 -0
  809. truthound/validators/security/redos/ml/datasets.py +618 -0
  810. truthound/validators/security/redos/ml/features.py +359 -0
  811. truthound/validators/security/redos/ml/models.py +1000 -0
  812. truthound/validators/security/redos/ml/predictor.py +507 -0
  813. truthound/validators/security/redos/ml/storage.py +632 -0
  814. truthound/validators/security/redos/ml/training.py +571 -0
  815. truthound/validators/security/redos/ml_analyzer.py +937 -0
  816. truthound/validators/security/redos/optimizer.py +674 -0
  817. truthound/validators/security/redos/profiler.py +682 -0
  818. truthound/validators/security/redos/re2_engine.py +709 -0
  819. truthound/validators/security/redos.py +886 -0
  820. truthound/validators/security/sql_security.py +1247 -0
  821. truthound/validators/streaming/__init__.py +126 -0
  822. truthound/validators/streaming/base.py +292 -0
  823. truthound/validators/streaming/completeness.py +210 -0
  824. truthound/validators/streaming/mixin.py +575 -0
  825. truthound/validators/streaming/range.py +308 -0
  826. truthound/validators/streaming/sources.py +846 -0
  827. truthound/validators/string/__init__.py +57 -0
  828. truthound/validators/string/casing.py +158 -0
  829. truthound/validators/string/charset.py +96 -0
  830. truthound/validators/string/format.py +501 -0
  831. truthound/validators/string/json.py +77 -0
  832. truthound/validators/string/json_schema.py +184 -0
  833. truthound/validators/string/length.py +104 -0
  834. truthound/validators/string/like_pattern.py +237 -0
  835. truthound/validators/string/regex.py +202 -0
  836. truthound/validators/string/regex_extended.py +435 -0
  837. truthound/validators/table/__init__.py +88 -0
  838. truthound/validators/table/base.py +78 -0
  839. truthound/validators/table/column_count.py +198 -0
  840. truthound/validators/table/freshness.py +362 -0
  841. truthound/validators/table/row_count.py +251 -0
  842. truthound/validators/table/schema.py +333 -0
  843. truthound/validators/table/size.py +285 -0
  844. truthound/validators/timeout/__init__.py +102 -0
  845. truthound/validators/timeout/advanced/__init__.py +247 -0
  846. truthound/validators/timeout/advanced/circuit_breaker.py +675 -0
  847. truthound/validators/timeout/advanced/prediction.py +773 -0
  848. truthound/validators/timeout/advanced/priority.py +618 -0
  849. truthound/validators/timeout/advanced/redis_backend.py +770 -0
  850. truthound/validators/timeout/advanced/retry.py +721 -0
  851. truthound/validators/timeout/advanced/sampling.py +788 -0
  852. truthound/validators/timeout/advanced/sla.py +661 -0
  853. truthound/validators/timeout/advanced/telemetry.py +804 -0
  854. truthound/validators/timeout/cascade.py +477 -0
  855. truthound/validators/timeout/deadline.py +657 -0
  856. truthound/validators/timeout/degradation.py +525 -0
  857. truthound/validators/timeout/distributed.py +597 -0
  858. truthound/validators/timeseries/__init__.py +89 -0
  859. truthound/validators/timeseries/base.py +326 -0
  860. truthound/validators/timeseries/completeness.py +617 -0
  861. truthound/validators/timeseries/gap.py +485 -0
  862. truthound/validators/timeseries/monotonic.py +310 -0
  863. truthound/validators/timeseries/seasonality.py +422 -0
  864. truthound/validators/timeseries/trend.py +510 -0
  865. truthound/validators/uniqueness/__init__.py +59 -0
  866. truthound/validators/uniqueness/approximate.py +475 -0
  867. truthound/validators/uniqueness/distinct_values.py +253 -0
  868. truthound/validators/uniqueness/duplicate.py +118 -0
  869. truthound/validators/uniqueness/primary_key.py +140 -0
  870. truthound/validators/uniqueness/unique.py +191 -0
  871. truthound/validators/uniqueness/within_record.py +599 -0
  872. truthound/validators/utils.py +756 -0
  873. truthound-1.0.8.dist-info/METADATA +474 -0
  874. truthound-1.0.8.dist-info/RECORD +877 -0
  875. truthound-1.0.8.dist-info/WHEEL +4 -0
  876. truthound-1.0.8.dist-info/entry_points.txt +2 -0
  877. truthound-1.0.8.dist-info/licenses/LICENSE +190 -0
@@ -0,0 +1,1729 @@
1
+ """Auto-Profiling and Rule Generation module (Phase 7).
2
+
3
+ This module provides automatic data profiling and validation rule generation:
4
+ - Profile data to understand structure, patterns, and statistics
5
+ - Generate validation rules based on profile results
6
+ - Export rules as YAML, Python code, or JSON
7
+
8
+ NOTE: This module also provides backward compatibility with the legacy
9
+ `profile_data` function used by api.py.
10
+
11
+ Example:
12
+ # Profile data
13
+ from truthound.profiler import DataProfiler, profile_file
14
+
15
+ profile = profile_file("data.parquet")
16
+ print(f"Rows: {profile.row_count}, Columns: {profile.column_count}")
17
+
18
+ for col in profile:
19
+ print(f"{col.name}: {col.inferred_type}, null_ratio={col.null_ratio}")
20
+
21
+ # Generate validation rules
22
+ from truthound.profiler import generate_suite
23
+
24
+ suite = generate_suite(
25
+ profile,
26
+ strictness="medium",
27
+ include_categories=["schema", "completeness", "format"]
28
+ )
29
+
30
+ # Export as YAML
31
+ print(suite.to_yaml())
32
+
33
+ # Export as Python code
34
+ print(suite.to_python_code())
35
+ """
36
+
37
+ import polars as pl
38
+
39
+ from truthound.profiler.base import (
40
+ # Enums
41
+ DataType,
42
+ Strictness,
43
+ ProfileCategory,
44
+ # Data structures
45
+ PatternMatch,
46
+ DistributionStats,
47
+ ValueFrequency,
48
+ ColumnProfile,
49
+ TableProfile,
50
+ # Base classes
51
+ Profiler,
52
+ ProfilerProtocol,
53
+ TypeInferrer,
54
+ # Configuration
55
+ ProfilerConfig,
56
+ # Registry
57
+ ProfilerRegistry,
58
+ profiler_registry,
59
+ register_profiler,
60
+ register_type_inferrer,
61
+ )
62
+
63
+ from truthound.profiler.column_profiler import (
64
+ # Analyzers
65
+ ColumnAnalyzer,
66
+ BasicStatsAnalyzer,
67
+ NumericAnalyzer,
68
+ StringAnalyzer,
69
+ DatetimeAnalyzer,
70
+ ValueFrequencyAnalyzer,
71
+ PatternAnalyzer,
72
+ # Type inferrers
73
+ PhysicalTypeInferrer,
74
+ PatternBasedTypeInferrer,
75
+ CardinalityTypeInferrer,
76
+ # Main profiler
77
+ ColumnProfiler,
78
+ # Patterns
79
+ PatternDefinition,
80
+ BUILTIN_PATTERNS,
81
+ )
82
+
83
+ from truthound.profiler.table_profiler import (
84
+ # Analyzers
85
+ TableAnalyzer,
86
+ DuplicateRowAnalyzer,
87
+ MemoryEstimator,
88
+ CorrelationAnalyzer,
89
+ # Main profiler
90
+ DataProfiler,
91
+ # Convenience functions
92
+ profile_dataframe,
93
+ profile_file,
94
+ save_profile,
95
+ load_profile,
96
+ )
97
+
98
+ from truthound.profiler.generators import (
99
+ # Base
100
+ RuleGenerator,
101
+ GeneratedRule,
102
+ RuleGeneratorRegistry,
103
+ rule_generator_registry,
104
+ register_generator,
105
+ # Generators
106
+ SchemaRuleGenerator,
107
+ StatsRuleGenerator,
108
+ PatternRuleGenerator,
109
+ MLRuleGenerator,
110
+ # Suite
111
+ ValidationSuiteGenerator,
112
+ generate_suite,
113
+ )
114
+
115
+ from truthound.profiler.generators.base import (
116
+ RuleCategory,
117
+ RuleConfidence,
118
+ RuleBuilder,
119
+ StrictnessThresholds,
120
+ DEFAULT_THRESHOLDS,
121
+ )
122
+
123
+ from truthound.profiler.generators.suite_generator import (
124
+ ValidationSuite,
125
+ save_suite,
126
+ load_suite,
127
+ )
128
+
129
+ # P0 Improvements: Error handling, native patterns, streaming, schema versioning
130
+ from truthound.profiler.errors import (
131
+ # Severity and categories
132
+ ErrorSeverity,
133
+ ErrorCategory,
134
+ # Exception hierarchy
135
+ ProfilerError,
136
+ AnalysisError,
137
+ PatternError,
138
+ TypeInferenceError,
139
+ ValidationError,
140
+ # Error collection
141
+ ErrorRecord,
142
+ ErrorCollector,
143
+ ErrorCatcher,
144
+ # Decorator
145
+ with_error_handling,
146
+ )
147
+
148
+ from truthound.profiler.native_patterns import (
149
+ # Pattern system
150
+ PatternSpec,
151
+ PatternBuilder,
152
+ PatternPriority,
153
+ PatternRegistry,
154
+ BUILTIN_PATTERNS as NATIVE_PATTERNS,
155
+ # Pattern matcher
156
+ NativePatternMatcher,
157
+ NativePatternAnalyzer,
158
+ PatternMatchResult,
159
+ # Convenience functions
160
+ match_patterns,
161
+ infer_column_type,
162
+ )
163
+
164
+ # P0 Critical: Memory-safe sampling for pattern matching
165
+ from truthound.profiler.sampling import (
166
+ # Enums
167
+ SamplingMethod,
168
+ ConfidenceLevel,
169
+ # Configuration
170
+ SamplingConfig,
171
+ DEFAULT_SAMPLING_CONFIG,
172
+ # Metrics
173
+ SamplingMetrics,
174
+ SamplingResult,
175
+ # Strategies
176
+ SamplingStrategy,
177
+ NoSamplingStrategy,
178
+ HeadSamplingStrategy,
179
+ RandomSamplingStrategy,
180
+ SystematicSamplingStrategy,
181
+ HashSamplingStrategy,
182
+ StratifiedSamplingStrategy,
183
+ ReservoirSamplingStrategy,
184
+ AdaptiveSamplingStrategy,
185
+ # Registry
186
+ SamplingStrategyRegistry,
187
+ sampling_strategy_registry,
188
+ # Data size estimation
189
+ DataSizeEstimator,
190
+ # Main interface
191
+ Sampler,
192
+ # Convenience functions
193
+ create_sampler,
194
+ sample_data,
195
+ calculate_sample_size,
196
+ )
197
+
198
+ # Enterprise-scale sampling for 100M+ datasets
199
+ from truthound.profiler.enterprise_sampling import (
200
+ # Scale classification
201
+ ScaleCategory,
202
+ SamplingQuality,
203
+ # Configuration
204
+ MemoryBudgetConfig,
205
+ EnterpriseScaleConfig,
206
+ # Extended metrics
207
+ BlockSamplingMetrics,
208
+ ProgressiveResult,
209
+ # Monitoring
210
+ MemoryMonitor,
211
+ TimeBudgetManager,
212
+ # Strategies
213
+ BlockSamplingStrategy,
214
+ MultiStageSamplingStrategy,
215
+ ColumnAwareSamplingStrategy,
216
+ ProgressiveSamplingStrategy,
217
+ # Main interface
218
+ EnterpriseScaleSampler,
219
+ # Convenience functions
220
+ sample_large_dataset,
221
+ estimate_optimal_sample_size,
222
+ classify_dataset_scale,
223
+ )
224
+
225
+ from truthound.profiler.sampled_matcher import (
226
+ # Results
227
+ SampledPatternMatchResult,
228
+ SampledColumnMatchResult,
229
+ # Configuration
230
+ SampledMatcherConfig,
231
+ # Main interface
232
+ SampledPatternMatcher,
233
+ SafeNativePatternMatcher,
234
+ # Factory functions
235
+ create_sampled_matcher,
236
+ match_patterns_safe,
237
+ infer_column_type_safe,
238
+ )
239
+
240
+ from truthound.profiler.streaming import (
241
+ # Incremental stats
242
+ IncrementalStats,
243
+ # Chunk iterators
244
+ FileChunkIterator,
245
+ DataFrameChunkIterator,
246
+ # Progress tracking
247
+ StreamingProgress,
248
+ ProgressCallback,
249
+ # Streaming profiler
250
+ StreamingProfiler,
251
+ # Convenience functions
252
+ stream_profile_file,
253
+ stream_profile_dataframe,
254
+ )
255
+
256
+ from truthound.profiler.schema import (
257
+ # Schema versioning
258
+ SchemaVersion,
259
+ CURRENT_SCHEMA_VERSION,
260
+ # Migration
261
+ MigrationStep,
262
+ SchemaMigrator,
263
+ schema_migrator,
264
+ # Serialization
265
+ ProfileSerializer,
266
+ # Validation
267
+ SchemaValidationStatus,
268
+ SchemaValidationResult,
269
+ SchemaValidator,
270
+ # Convenience (these override table_profiler versions with versioning support)
271
+ save_profile as save_profile_versioned,
272
+ load_profile as load_profile_versioned,
273
+ validate_profile,
274
+ )
275
+
276
+ # P1 Improvements: Progress, comparison, incremental, timeout
277
+ from truthound.profiler.progress import (
278
+ # Events
279
+ ProgressStage,
280
+ ProgressEvent,
281
+ ProgressCallback,
282
+ # Tracker
283
+ ProgressTracker,
284
+ ProgressAggregator,
285
+ # Reporters
286
+ ConsoleProgressReporter,
287
+ # Convenience
288
+ create_progress_callback,
289
+ )
290
+
291
+ from truthound.profiler.comparison import (
292
+ # Drift types
293
+ DriftType,
294
+ DriftSeverity,
295
+ ChangeDirection,
296
+ # Results
297
+ DriftResult,
298
+ ColumnComparison,
299
+ ProfileComparison,
300
+ # Configuration
301
+ DriftThresholds,
302
+ # Detectors
303
+ DriftDetector,
304
+ CompletenessDriftDetector,
305
+ UniquenessDriftDetector,
306
+ DistributionDriftDetector,
307
+ RangeDriftDetector,
308
+ CardinalityDriftDetector,
309
+ # Comparator
310
+ ProfileComparator,
311
+ # Convenience
312
+ compare_profiles,
313
+ detect_drift,
314
+ )
315
+
316
+ from truthound.profiler.incremental import (
317
+ # Change detection
318
+ ChangeReason,
319
+ ColumnFingerprint,
320
+ ChangeDetectionResult,
321
+ FingerprintCalculator,
322
+ # Configuration
323
+ IncrementalConfig,
324
+ # Profiler
325
+ IncrementalProfiler,
326
+ ProfileMerger,
327
+ # Convenience
328
+ profile_incrementally,
329
+ )
330
+
331
+ # P1 Improvements: Incremental Profiling Validation
332
+ from truthound.profiler.incremental_validation import (
333
+ # Types
334
+ ValidationSeverity,
335
+ ValidationCategory,
336
+ ValidationType,
337
+ # Results
338
+ ValidationIssue,
339
+ ValidationMetrics,
340
+ ValidationResult,
341
+ # Context
342
+ ValidationContext,
343
+ # Base classes
344
+ BaseValidator,
345
+ ValidatorProtocol,
346
+ # Change detection validators
347
+ ChangeDetectionAccuracyValidator,
348
+ SchemaChangeValidator,
349
+ StalenessValidator,
350
+ # Fingerprint validators
351
+ FingerprintConsistencyValidator,
352
+ FingerprintSensitivityValidator,
353
+ # Merge validators
354
+ ProfileMergeValidator,
355
+ # Data integrity validators
356
+ DataIntegrityValidator,
357
+ # Performance validators
358
+ PerformanceValidator,
359
+ # Registry
360
+ ValidatorRegistry,
361
+ validator_registry,
362
+ register_validator,
363
+ # Configuration
364
+ ValidationConfig,
365
+ # Runner
366
+ ValidationRunner,
367
+ # Main validator
368
+ IncrementalValidator,
369
+ # Convenience functions
370
+ validate_incremental,
371
+ validate_merge,
372
+ validate_fingerprints,
373
+ )
374
+
375
+ from truthound.profiler.timeout import (
376
+ # Configuration
377
+ TimeoutAction,
378
+ TimeoutConfig,
379
+ # Results
380
+ TimeoutResult,
381
+ # Executor
382
+ TimeoutExecutor,
383
+ # Utilities
384
+ timeout_context,
385
+ TimeoutAwareMixin,
386
+ DeadlineTracker,
387
+ # Convenience
388
+ with_timeout,
389
+ create_timeout_config,
390
+ )
391
+
392
+ # P0 Critical: Process-isolated timeout for reliable termination
393
+ from truthound.profiler.process_timeout import (
394
+ # Enums
395
+ ExecutionBackend,
396
+ TimeoutAction as ProcessTimeoutAction,
397
+ TerminationMethod,
398
+ CircuitState,
399
+ # Metrics and Results
400
+ ExecutionMetrics,
401
+ ExecutionResult,
402
+ # Complexity Estimation
403
+ ComplexityEstimate,
404
+ ComplexityEstimator,
405
+ DefaultComplexityEstimator,
406
+ default_complexity_estimator,
407
+ # Circuit Breaker
408
+ CircuitBreakerConfig,
409
+ CircuitBreaker,
410
+ CircuitBreakerRegistry,
411
+ circuit_breaker_registry,
412
+ # Execution Strategies
413
+ ExecutionStrategy,
414
+ ThreadExecutionStrategy,
415
+ ProcessExecutionStrategy,
416
+ AdaptiveExecutionStrategy,
417
+ InlineExecutionStrategy,
418
+ ExecutionStrategyRegistry,
419
+ execution_strategy_registry,
420
+ # Resource Monitoring
421
+ ResourceLimits,
422
+ ResourceUsage,
423
+ ResourceMonitor,
424
+ resource_monitor,
425
+ # Main Interface
426
+ ProcessTimeoutConfig,
427
+ ProcessTimeoutExecutor,
428
+ # Convenience Functions
429
+ with_process_timeout,
430
+ estimate_execution_time,
431
+ create_timeout_executor,
432
+ # Context Manager
433
+ process_timeout_context,
434
+ # Decorator
435
+ timeout_protected,
436
+ )
437
+
438
+ # P2 Improvements: Caching, Observability, Quality Scoring, Custom Patterns
439
+ from truthound.profiler.caching import (
440
+ # Cache keys
441
+ CacheKey,
442
+ CacheKeyProtocol,
443
+ FileHashCacheKey,
444
+ DataFrameHashCacheKey,
445
+ # Cache entry
446
+ CacheEntry,
447
+ # Cache backends
448
+ CacheBackend,
449
+ MemoryCacheBackend,
450
+ FileCacheBackend,
451
+ RedisCacheBackend,
452
+ CacheBackendRegistry,
453
+ cache_backend_registry,
454
+ # Profile cache
455
+ CacheConfig,
456
+ ProfileCache,
457
+ # Decorator
458
+ cached_profile,
459
+ # Convenience
460
+ create_cache,
461
+ hash_file,
462
+ # Redis error
463
+ RedisConnectionError,
464
+ )
465
+
466
+ # P2 Improvements: Resilience and fallback patterns
467
+ from truthound.profiler.resilience import (
468
+ # Circuit breaker states
469
+ CircuitState,
470
+ BackendHealth,
471
+ FailureType,
472
+ # Configuration
473
+ CircuitBreakerConfig,
474
+ RetryConfig,
475
+ HealthCheckConfig,
476
+ ResilienceConfig,
477
+ # Circuit breaker
478
+ CircuitBreaker,
479
+ CircuitOpenError,
480
+ # Retry logic
481
+ RetryPolicy,
482
+ # Health monitoring
483
+ HealthMonitor,
484
+ # Resilient backends
485
+ ResilientCacheBackend,
486
+ FallbackChain,
487
+ # Factory functions
488
+ create_resilient_redis_backend,
489
+ create_high_availability_cache,
490
+ )
491
+
492
+ from truthound.profiler.observability import (
493
+ # Types
494
+ MetricType,
495
+ SpanStatus,
496
+ # Span
497
+ Span,
498
+ SpanEvent,
499
+ SpanProtocol,
500
+ # Metrics
501
+ Metric,
502
+ Counter,
503
+ Gauge,
504
+ Histogram,
505
+ MetricValue,
506
+ MetricsCollector,
507
+ # Span exporters
508
+ SpanExporter,
509
+ ConsoleSpanExporter,
510
+ InMemorySpanExporter,
511
+ OTLPSpanExporter,
512
+ SpanExporterRegistry,
513
+ span_exporter_registry,
514
+ # Telemetry
515
+ TelemetryConfig,
516
+ ProfilerTelemetry,
517
+ # Decorators
518
+ traced,
519
+ timed,
520
+ # OpenTelemetry
521
+ OpenTelemetryIntegration,
522
+ # Global access
523
+ get_telemetry,
524
+ set_telemetry,
525
+ get_metrics,
526
+ create_telemetry,
527
+ )
528
+
529
+ from truthound.profiler.quality import (
530
+ # Quality levels
531
+ QualityLevel,
532
+ RuleType,
533
+ # Confusion matrix
534
+ ConfusionMatrix,
535
+ # Metrics
536
+ QualityMetrics,
537
+ # Rules
538
+ RuleProtocol,
539
+ ValidationRule,
540
+ # Estimators
541
+ QualityEstimator,
542
+ SamplingQualityEstimator,
543
+ HeuristicQualityEstimator,
544
+ CrossValidationEstimator,
545
+ QualityEstimatorRegistry,
546
+ quality_estimator_registry,
547
+ # Scorer
548
+ ScoringConfig,
549
+ RuleQualityScore,
550
+ RuleQualityScorer,
551
+ # Trend analysis
552
+ QualityTrendPoint,
553
+ QualityTrendAnalyzer,
554
+ # Convenience
555
+ estimate_quality,
556
+ score_rule,
557
+ compare_rules,
558
+ )
559
+
560
+ from truthound.profiler.custom_patterns import (
561
+ # Pattern configuration
562
+ PatternPriority as CustomPatternPriority,
563
+ PatternExample,
564
+ PatternConfig,
565
+ PatternGroup,
566
+ PatternConfigSchema,
567
+ # Loader
568
+ PatternConfigLoader,
569
+ # Registry
570
+ PatternRegistry as CustomPatternRegistry,
571
+ pattern_registry,
572
+ # Default patterns
573
+ DEFAULT_PATTERNS_YAML,
574
+ load_default_patterns,
575
+ # Convenience
576
+ load_patterns,
577
+ load_patterns_directory,
578
+ register_pattern,
579
+ match_patterns as match_custom_patterns,
580
+ infer_type_from_patterns,
581
+ export_patterns,
582
+ )
583
+
584
+ # P3 Improvements: Distributed Processing, ML Inference, Auto Threshold, Visualization
585
+ from truthound.profiler.distributed import (
586
+ # Backend types
587
+ BackendType,
588
+ PartitionStrategy,
589
+ # Data structures
590
+ PartitionInfo,
591
+ WorkerResult,
592
+ # Configurations
593
+ BackendConfig,
594
+ SparkConfig,
595
+ DaskConfig,
596
+ RayConfig,
597
+ DistributedProfileConfig,
598
+ # Abstract base
599
+ DistributedBackend,
600
+ # Implementations
601
+ LocalBackend,
602
+ SparkBackend,
603
+ DaskBackend,
604
+ RayBackend,
605
+ # Registry
606
+ BackendRegistry,
607
+ # Main interface
608
+ DistributedProfiler,
609
+ # Convenience
610
+ create_distributed_profiler,
611
+ profile_distributed,
612
+ get_available_backends,
613
+ )
614
+
615
+ from truthound.profiler.ml_inference import (
616
+ # Feature types
617
+ FeatureType,
618
+ Feature,
619
+ FeatureVector,
620
+ # Abstract base
621
+ FeatureExtractor,
622
+ # Feature extractors
623
+ NameFeatureExtractor,
624
+ ValueFeatureExtractor,
625
+ StatisticalFeatureExtractor,
626
+ ContextFeatureExtractor,
627
+ # Registry
628
+ FeatureExtractorRegistry,
629
+ # Inference results
630
+ InferenceResult,
631
+ # Abstract model
632
+ InferenceModel,
633
+ # Model implementations
634
+ RuleBasedModel,
635
+ NaiveBayesModel,
636
+ EnsembleModel,
637
+ # Model registry
638
+ ModelRegistry as InferenceModelRegistry,
639
+ # Configuration
640
+ InferrerConfig as MLInferenceConfig,
641
+ # Main interface
642
+ MLTypeInferrer,
643
+ # Convenience
644
+ create_inference_model,
645
+ infer_column_type_ml,
646
+ infer_table_types_ml,
647
+ )
648
+
649
+ from truthound.profiler.auto_threshold import (
650
+ # Strategy types
651
+ TuningStrategy,
652
+ ThresholdType,
653
+ # Data structures
654
+ ColumnThresholds,
655
+ TableThresholds,
656
+ # Presets
657
+ StrictnessPreset,
658
+ # Abstract base
659
+ TuningStrategyImpl,
660
+ # Strategy implementations
661
+ ConservativeStrategy,
662
+ BalancedStrategy,
663
+ PermissiveStrategy,
664
+ AdaptiveStrategy,
665
+ StatisticalStrategy,
666
+ DomainAwareStrategy,
667
+ # Registry
668
+ StrategyRegistry as TuningStrategyRegistry,
669
+ # Configuration
670
+ TunerConfig as TuningConfig,
671
+ # Main interface
672
+ ThresholdTuner,
673
+ # A/B Testing
674
+ ThresholdTestResult,
675
+ ThresholdTester,
676
+ # Convenience
677
+ tune_thresholds,
678
+ get_available_strategies,
679
+ create_tuner,
680
+ )
681
+
682
+ from truthound.profiler.visualization import (
683
+ # Chart types
684
+ ChartType,
685
+ ColorScheme,
686
+ ReportTheme,
687
+ SectionType,
688
+ # Color palettes
689
+ COLOR_PALETTES,
690
+ # Data structures
691
+ ChartData,
692
+ ChartConfig,
693
+ ThemeConfig,
694
+ SectionContent,
695
+ ReportConfig,
696
+ ProfileData,
697
+ # Theme configs
698
+ THEME_CONFIGS,
699
+ # Abstract base
700
+ ChartRenderer,
701
+ SectionRenderer,
702
+ # Registries
703
+ ChartRendererRegistry,
704
+ chart_renderer_registry,
705
+ SectionRegistry,
706
+ section_registry,
707
+ ThemeRegistry,
708
+ theme_registry,
709
+ # Renderers
710
+ SVGChartRenderer,
711
+ BaseSectionRenderer,
712
+ OverviewSectionRenderer,
713
+ DataQualitySectionRenderer,
714
+ ColumnDetailsSectionRenderer,
715
+ PatternsSectionRenderer,
716
+ RecommendationsSectionRenderer,
717
+ CustomSectionRenderer,
718
+ # Template
719
+ ReportTemplate,
720
+ # Converter
721
+ ProfileDataConverter,
722
+ # Main interface
723
+ HTMLReportGenerator,
724
+ ReportExporter,
725
+ # Convenience
726
+ generate_report,
727
+ compare_profiles as compare_profile_reports,
728
+ )
729
+
730
+ # Phase 7 P0: Suite Export System
731
+ from truthound.profiler.suite_export import (
732
+ # Enums
733
+ ExportFormat,
734
+ CodeStyle,
735
+ OutputMode,
736
+ # Configuration
737
+ ExportConfig,
738
+ DEFAULT_CONFIG,
739
+ MINIMAL_CONFIG,
740
+ VERBOSE_CONFIG,
741
+ # Protocol and base
742
+ SuiteFormatterProtocol,
743
+ SuiteFormatter,
744
+ # Built-in formatters
745
+ YAMLFormatter,
746
+ JSONFormatter,
747
+ PythonFormatter,
748
+ TOMLFormatter,
749
+ CheckpointFormatter,
750
+ # Registry
751
+ FormatterRegistry,
752
+ formatter_registry,
753
+ register_formatter,
754
+ # Post-processors
755
+ ExportPostProcessor,
756
+ AddHeaderPostProcessor,
757
+ AddFooterPostProcessor,
758
+ TemplatePostProcessor,
759
+ # Exporter
760
+ ExportResult,
761
+ SuiteExporter,
762
+ # Convenience
763
+ create_exporter,
764
+ export_suite,
765
+ format_suite,
766
+ get_available_formats,
767
+ )
768
+
769
+ # Phase 7 P0: Suite Configuration System
770
+ from truthound.profiler.suite_config import (
771
+ # Enums
772
+ ConfigPreset,
773
+ OutputFormat as SuiteOutputFormat,
774
+ GeneratorMode,
775
+ # Sub-configurations
776
+ CategoryConfig,
777
+ ConfidenceConfig,
778
+ OutputConfig as SuiteOutputConfig,
779
+ GeneratorConfig as SuiteGeneratorOptionsConfig,
780
+ # Main configuration
781
+ SuiteGeneratorConfig,
782
+ # Presets
783
+ PRESETS,
784
+ # File I/O
785
+ load_config as load_suite_config,
786
+ save_config as save_suite_config,
787
+ # CLI support
788
+ CLIArguments,
789
+ build_config_from_cli,
790
+ )
791
+
792
+ # Phase 7 P0: Suite CLI Handlers
793
+ from truthound.profiler.suite_cli import (
794
+ # Result types
795
+ GenerateSuiteResult,
796
+ QuickSuiteResult,
797
+ # Progress tracking
798
+ SuiteGenerationProgress,
799
+ # Handlers
800
+ SuiteGenerationHandler,
801
+ # Helpers
802
+ get_available_formats as get_suite_formats,
803
+ get_available_presets,
804
+ get_available_categories,
805
+ format_category_help,
806
+ format_preset_help,
807
+ validate_format,
808
+ validate_preset,
809
+ validate_strictness,
810
+ validate_confidence,
811
+ # CLI integration
812
+ create_cli_handler,
813
+ run_generate_suite,
814
+ run_quick_suite,
815
+ )
816
+
817
+ # Phase 7 P0: Streaming Pattern Matching
818
+ # Phase 7 P0: Standardized Progress Callbacks
819
+ from truthound.profiler.progress_callbacks import (
820
+ # Event types and levels
821
+ EventLevel,
822
+ EventType,
823
+ # Context and metrics
824
+ ProgressContext,
825
+ ProgressMetrics,
826
+ StandardProgressEvent,
827
+ # Protocols
828
+ ProgressCallback as StandardProgressCallback,
829
+ AsyncProgressCallback,
830
+ LifecycleCallback,
831
+ # Base adapter
832
+ CallbackAdapter,
833
+ # Console adapters
834
+ ConsoleStyle,
835
+ ConsoleAdapter,
836
+ MinimalConsoleAdapter,
837
+ # Logging adapter
838
+ LoggingAdapter,
839
+ # File adapter
840
+ FileOutputConfig,
841
+ FileAdapter,
842
+ # Callback chain
843
+ CallbackChain,
844
+ # Filtering and throttling
845
+ FilterConfig,
846
+ FilteringAdapter,
847
+ ThrottleConfig,
848
+ ThrottlingAdapter,
849
+ # Buffering
850
+ BufferConfig,
851
+ BufferingAdapter,
852
+ # Async
853
+ AsyncAdapter,
854
+ # Registry
855
+ CallbackRegistry,
856
+ # Emitter
857
+ ProgressEmitter,
858
+ # Presets
859
+ CallbackPresets,
860
+ # Convenience functions
861
+ create_callback_chain,
862
+ create_console_callback,
863
+ create_logging_callback,
864
+ create_file_callback,
865
+ with_throttling,
866
+ with_filtering,
867
+ with_buffering,
868
+ )
869
+
870
+ # Phase 7 P0: Internationalization (i18n) System
871
+ from truthound.profiler.i18n import (
872
+ # Message codes
873
+ MessageCode,
874
+ # Locale management
875
+ LocaleInfo,
876
+ LocaleManager,
877
+ BUILTIN_LOCALES,
878
+ set_locale,
879
+ get_locale,
880
+ # Message catalog
881
+ MessageEntry,
882
+ MessageCatalog,
883
+ # Message loaders
884
+ MessageLoader,
885
+ DictMessageLoader,
886
+ FileMessageLoader,
887
+ # Formatter
888
+ PlaceholderFormatter,
889
+ # Main interface
890
+ I18n,
891
+ # I18n exceptions
892
+ I18nError,
893
+ I18nAnalysisError,
894
+ I18nPatternError,
895
+ I18nTypeError,
896
+ I18nIOError,
897
+ I18nTimeoutError,
898
+ I18nValidationError,
899
+ # Registry
900
+ MessageCatalogRegistry,
901
+ # Convenience functions
902
+ get_message,
903
+ t as translate,
904
+ register_messages,
905
+ load_messages_from_file,
906
+ create_message_loader,
907
+ # Context manager
908
+ locale_context,
909
+ # Presets
910
+ I18nPresets,
911
+ )
912
+
913
+ from truthound.profiler.streaming_patterns import (
914
+ # Enums
915
+ AggregationMethod,
916
+ ChunkProcessingStatus,
917
+ # Pattern state management
918
+ PatternChunkStats,
919
+ PatternState,
920
+ ColumnPatternState,
921
+ # Aggregation strategies
922
+ AggregationStrategy,
923
+ IncrementalAggregation,
924
+ WeightedAggregation,
925
+ SlidingWindowAggregation,
926
+ ExponentialAggregation,
927
+ ConsensusAggregation,
928
+ AdaptiveAggregation,
929
+ # Aggregation registry
930
+ AggregationStrategyRegistry,
931
+ aggregation_strategy_registry,
932
+ # Result types
933
+ StreamingPatternResult,
934
+ # Events
935
+ PatternEvent,
936
+ PatternEventCallback,
937
+ # Configuration
938
+ StreamingPatternConfig,
939
+ # Main interface
940
+ StreamingPatternMatcher,
941
+ # Integration
942
+ StreamingPatternIntegration,
943
+ # Convenience functions
944
+ create_streaming_matcher,
945
+ stream_match_patterns,
946
+ get_available_aggregation_methods,
947
+ )
948
+
949
+
950
+ # =============================================================================
951
+ # Legacy Compatibility: profile_data function
952
+ # =============================================================================
953
+
954
+
955
+ def profile_data(lf: pl.LazyFrame, source: str = "unknown") -> dict:
956
+ """Generate a statistical profile of the dataset.
957
+
958
+ This is the legacy profile function maintained for backward compatibility
959
+ with api.py. For new code, use DataProfiler or profile_dataframe instead.
960
+
961
+ Args:
962
+ lf: Polars LazyFrame to profile.
963
+ source: Source identifier for the dataset.
964
+
965
+ Returns:
966
+ Dictionary containing profile information.
967
+ """
968
+ df = lf.collect()
969
+ schema = lf.collect_schema()
970
+
971
+ row_count = len(df)
972
+ column_count = len(schema)
973
+
974
+ # Estimate size in bytes
975
+ size_bytes = df.estimated_size()
976
+
977
+ columns_info: list[dict] = []
978
+
979
+ numeric_types = [
980
+ pl.Int8,
981
+ pl.Int16,
982
+ pl.Int32,
983
+ pl.Int64,
984
+ pl.UInt8,
985
+ pl.UInt16,
986
+ pl.UInt32,
987
+ pl.UInt64,
988
+ pl.Float32,
989
+ pl.Float64,
990
+ ]
991
+
992
+ for col in schema.names():
993
+ dtype = schema[col]
994
+ col_data = df.get_column(col)
995
+
996
+ null_count = col_data.null_count()
997
+ null_pct = f"{(null_count / row_count * 100):.1f}%" if row_count > 0 else "0%"
998
+
999
+ unique_count = col_data.n_unique()
1000
+ unique_pct = f"{(unique_count / row_count * 100):.0f}%" if row_count > 0 else "0%"
1001
+
1002
+ col_info: dict = {
1003
+ "name": col,
1004
+ "dtype": str(dtype),
1005
+ "null_pct": null_pct,
1006
+ "unique_pct": unique_pct,
1007
+ }
1008
+
1009
+ # Add min/max for numeric columns
1010
+ if dtype in numeric_types:
1011
+ non_null = col_data.drop_nulls()
1012
+ if len(non_null) > 0:
1013
+ min_val = non_null.min()
1014
+ max_val = non_null.max()
1015
+ col_info["min"] = str(min_val)
1016
+ col_info["max"] = str(max_val)
1017
+ else:
1018
+ col_info["min"] = "-"
1019
+ col_info["max"] = "-"
1020
+ else:
1021
+ col_info["min"] = "-"
1022
+ col_info["max"] = "-"
1023
+
1024
+ columns_info.append(col_info)
1025
+
1026
+ return {
1027
+ "source": source,
1028
+ "row_count": row_count,
1029
+ "column_count": column_count,
1030
+ "size_bytes": size_bytes,
1031
+ "columns": columns_info,
1032
+ }
1033
+
1034
+
1035
+ __all__ = [
1036
+ # === Legacy compatibility ===
1037
+ "profile_data",
1038
+ # === Base module ===
1039
+ # Enums
1040
+ "DataType",
1041
+ "Strictness",
1042
+ "ProfileCategory",
1043
+ # Data structures
1044
+ "PatternMatch",
1045
+ "DistributionStats",
1046
+ "ValueFrequency",
1047
+ "ColumnProfile",
1048
+ "TableProfile",
1049
+ # Base classes
1050
+ "Profiler",
1051
+ "ProfilerProtocol",
1052
+ "TypeInferrer",
1053
+ # Configuration
1054
+ "ProfilerConfig",
1055
+ # Registry
1056
+ "ProfilerRegistry",
1057
+ "profiler_registry",
1058
+ "register_profiler",
1059
+ "register_type_inferrer",
1060
+ # === Column profiler ===
1061
+ # Analyzers
1062
+ "ColumnAnalyzer",
1063
+ "BasicStatsAnalyzer",
1064
+ "NumericAnalyzer",
1065
+ "StringAnalyzer",
1066
+ "DatetimeAnalyzer",
1067
+ "ValueFrequencyAnalyzer",
1068
+ "PatternAnalyzer",
1069
+ # Type inferrers
1070
+ "PhysicalTypeInferrer",
1071
+ "PatternBasedTypeInferrer",
1072
+ "CardinalityTypeInferrer",
1073
+ # Main profiler
1074
+ "ColumnProfiler",
1075
+ # Patterns
1076
+ "PatternDefinition",
1077
+ "BUILTIN_PATTERNS",
1078
+ # === Table profiler ===
1079
+ # Analyzers
1080
+ "TableAnalyzer",
1081
+ "DuplicateRowAnalyzer",
1082
+ "MemoryEstimator",
1083
+ "CorrelationAnalyzer",
1084
+ # Main profiler
1085
+ "DataProfiler",
1086
+ # Convenience functions
1087
+ "profile_dataframe",
1088
+ "profile_file",
1089
+ "save_profile",
1090
+ "load_profile",
1091
+ # === Generators ===
1092
+ # Base
1093
+ "RuleGenerator",
1094
+ "GeneratedRule",
1095
+ "RuleCategory",
1096
+ "RuleConfidence",
1097
+ "RuleBuilder",
1098
+ "StrictnessThresholds",
1099
+ "DEFAULT_THRESHOLDS",
1100
+ "RuleGeneratorRegistry",
1101
+ "rule_generator_registry",
1102
+ "register_generator",
1103
+ # Generators
1104
+ "SchemaRuleGenerator",
1105
+ "StatsRuleGenerator",
1106
+ "PatternRuleGenerator",
1107
+ "MLRuleGenerator",
1108
+ # Suite
1109
+ "ValidationSuite",
1110
+ "ValidationSuiteGenerator",
1111
+ "generate_suite",
1112
+ "save_suite",
1113
+ "load_suite",
1114
+ # === P0: Error Handling ===
1115
+ "ErrorSeverity",
1116
+ "ErrorCategory",
1117
+ "ProfilerError",
1118
+ "AnalysisError",
1119
+ "PatternError",
1120
+ "TypeInferenceError",
1121
+ "ValidationError",
1122
+ "ErrorRecord",
1123
+ "ErrorCollector",
1124
+ "ErrorCatcher",
1125
+ "with_error_handling",
1126
+ # === P0: Native Pattern Matching ===
1127
+ "PatternSpec",
1128
+ "PatternBuilder",
1129
+ "PatternPriority",
1130
+ "PatternRegistry",
1131
+ "NATIVE_PATTERNS",
1132
+ "NativePatternMatcher",
1133
+ "NativePatternAnalyzer",
1134
+ "PatternMatchResult",
1135
+ "match_patterns",
1136
+ "infer_column_type",
1137
+ # === P0 Critical: Memory-Safe Sampling ===
1138
+ # Enums
1139
+ "SamplingMethod",
1140
+ "ConfidenceLevel",
1141
+ # Configuration
1142
+ "SamplingConfig",
1143
+ "DEFAULT_SAMPLING_CONFIG",
1144
+ # Metrics
1145
+ "SamplingMetrics",
1146
+ "SamplingResult",
1147
+ # Strategies
1148
+ "SamplingStrategy",
1149
+ "NoSamplingStrategy",
1150
+ "HeadSamplingStrategy",
1151
+ "RandomSamplingStrategy",
1152
+ "SystematicSamplingStrategy",
1153
+ "HashSamplingStrategy",
1154
+ "StratifiedSamplingStrategy",
1155
+ "ReservoirSamplingStrategy",
1156
+ "AdaptiveSamplingStrategy",
1157
+ # Registry
1158
+ "SamplingStrategyRegistry",
1159
+ "sampling_strategy_registry",
1160
+ # Data size estimation
1161
+ "DataSizeEstimator",
1162
+ # Main interface
1163
+ "Sampler",
1164
+ # Convenience functions
1165
+ "create_sampler",
1166
+ "sample_data",
1167
+ "calculate_sample_size",
1168
+ # === Enterprise-Scale Sampling (100M+ rows) ===
1169
+ # Scale classification
1170
+ "ScaleCategory",
1171
+ "SamplingQuality",
1172
+ # Configuration
1173
+ "MemoryBudgetConfig",
1174
+ "EnterpriseScaleConfig",
1175
+ # Extended metrics
1176
+ "BlockSamplingMetrics",
1177
+ "ProgressiveResult",
1178
+ # Monitoring
1179
+ "MemoryMonitor",
1180
+ "TimeBudgetManager",
1181
+ # Strategies
1182
+ "BlockSamplingStrategy",
1183
+ "MultiStageSamplingStrategy",
1184
+ "ColumnAwareSamplingStrategy",
1185
+ "ProgressiveSamplingStrategy",
1186
+ # Main interface
1187
+ "EnterpriseScaleSampler",
1188
+ # Convenience functions
1189
+ "sample_large_dataset",
1190
+ "estimate_optimal_sample_size",
1191
+ "classify_dataset_scale",
1192
+ # === P0 Critical: Sampled Pattern Matcher ===
1193
+ # Results
1194
+ "SampledPatternMatchResult",
1195
+ "SampledColumnMatchResult",
1196
+ # Configuration
1197
+ "SampledMatcherConfig",
1198
+ # Main interface
1199
+ "SampledPatternMatcher",
1200
+ "SafeNativePatternMatcher",
1201
+ # Factory functions
1202
+ "create_sampled_matcher",
1203
+ "match_patterns_safe",
1204
+ "infer_column_type_safe",
1205
+ # === P0: Streaming Profiler ===
1206
+ "IncrementalStats",
1207
+ "FileChunkIterator",
1208
+ "DataFrameChunkIterator",
1209
+ "StreamingProgress",
1210
+ "ProgressCallback",
1211
+ "StreamingProfiler",
1212
+ "stream_profile_file",
1213
+ "stream_profile_dataframe",
1214
+ # === P0: Schema Versioning ===
1215
+ "SchemaVersion",
1216
+ "CURRENT_SCHEMA_VERSION",
1217
+ "MigrationStep",
1218
+ "SchemaMigrator",
1219
+ "schema_migrator",
1220
+ "ProfileSerializer",
1221
+ "SchemaValidationStatus",
1222
+ "SchemaValidationResult",
1223
+ "SchemaValidator",
1224
+ "save_profile_versioned",
1225
+ "load_profile_versioned",
1226
+ "validate_profile",
1227
+ # === P1: Progress Tracking ===
1228
+ "ProgressStage",
1229
+ "ProgressEvent",
1230
+ "ProgressTracker",
1231
+ "ProgressAggregator",
1232
+ "ConsoleProgressReporter",
1233
+ "create_progress_callback",
1234
+ # === P1: Profile Comparison ===
1235
+ "DriftType",
1236
+ "DriftSeverity",
1237
+ "ChangeDirection",
1238
+ "DriftResult",
1239
+ "ColumnComparison",
1240
+ "ProfileComparison",
1241
+ "DriftThresholds",
1242
+ "DriftDetector",
1243
+ "CompletenessDriftDetector",
1244
+ "UniquenessDriftDetector",
1245
+ "DistributionDriftDetector",
1246
+ "RangeDriftDetector",
1247
+ "CardinalityDriftDetector",
1248
+ "ProfileComparator",
1249
+ "compare_profiles",
1250
+ "detect_drift",
1251
+ # === P1: Incremental Profiling ===
1252
+ "ChangeReason",
1253
+ "ColumnFingerprint",
1254
+ "ChangeDetectionResult",
1255
+ "FingerprintCalculator",
1256
+ "IncrementalConfig",
1257
+ "IncrementalProfiler",
1258
+ "ProfileMerger",
1259
+ "profile_incrementally",
1260
+ # === P1: Incremental Profiling Validation ===
1261
+ # Types
1262
+ "ValidationSeverity",
1263
+ "ValidationCategory",
1264
+ "ValidationType",
1265
+ # Results
1266
+ "ValidationIssue",
1267
+ "ValidationMetrics",
1268
+ "ValidationResult",
1269
+ # Context
1270
+ "ValidationContext",
1271
+ # Base classes
1272
+ "BaseValidator",
1273
+ "ValidatorProtocol",
1274
+ # Change detection validators
1275
+ "ChangeDetectionAccuracyValidator",
1276
+ "SchemaChangeValidator",
1277
+ "StalenessValidator",
1278
+ # Fingerprint validators
1279
+ "FingerprintConsistencyValidator",
1280
+ "FingerprintSensitivityValidator",
1281
+ # Merge validators
1282
+ "ProfileMergeValidator",
1283
+ # Data integrity validators
1284
+ "DataIntegrityValidator",
1285
+ # Performance validators
1286
+ "PerformanceValidator",
1287
+ # Registry
1288
+ "ValidatorRegistry",
1289
+ "validator_registry",
1290
+ "register_validator",
1291
+ # Configuration
1292
+ "ValidationConfig",
1293
+ # Runner
1294
+ "ValidationRunner",
1295
+ # Main validator
1296
+ "IncrementalValidator",
1297
+ # Convenience functions
1298
+ "validate_incremental",
1299
+ "validate_merge",
1300
+ "validate_fingerprints",
1301
+ # === P1: Timeout Settings ===
1302
+ "TimeoutAction",
1303
+ "TimeoutConfig",
1304
+ "TimeoutResult",
1305
+ "TimeoutExecutor",
1306
+ "timeout_context",
1307
+ "TimeoutAwareMixin",
1308
+ "DeadlineTracker",
1309
+ "with_timeout",
1310
+ "create_timeout_config",
1311
+ # === P0 Critical: Process-Isolated Timeout ===
1312
+ # Enums
1313
+ "ExecutionBackend",
1314
+ "ProcessTimeoutAction",
1315
+ "TerminationMethod",
1316
+ "CircuitState",
1317
+ # Metrics and Results
1318
+ "ExecutionMetrics",
1319
+ "ExecutionResult",
1320
+ # Complexity Estimation
1321
+ "ComplexityEstimate",
1322
+ "ComplexityEstimator",
1323
+ "DefaultComplexityEstimator",
1324
+ "default_complexity_estimator",
1325
+ # Circuit Breaker
1326
+ "CircuitBreakerConfig",
1327
+ "CircuitBreaker",
1328
+ "CircuitBreakerRegistry",
1329
+ "circuit_breaker_registry",
1330
+ # Execution Strategies
1331
+ "ExecutionStrategy",
1332
+ "ThreadExecutionStrategy",
1333
+ "ProcessExecutionStrategy",
1334
+ "AdaptiveExecutionStrategy",
1335
+ "InlineExecutionStrategy",
1336
+ "ExecutionStrategyRegistry",
1337
+ "execution_strategy_registry",
1338
+ # Resource Monitoring
1339
+ "ResourceLimits",
1340
+ "ResourceUsage",
1341
+ "ResourceMonitor",
1342
+ "resource_monitor",
1343
+ # Main Interface
1344
+ "ProcessTimeoutConfig",
1345
+ "ProcessTimeoutExecutor",
1346
+ # Convenience Functions
1347
+ "with_process_timeout",
1348
+ "estimate_execution_time",
1349
+ "create_timeout_executor",
1350
+ # Context Manager
1351
+ "process_timeout_context",
1352
+ # Decorator
1353
+ "timeout_protected",
1354
+ # === P2: Caching Layer ===
1355
+ "CacheKey",
1356
+ "CacheKeyProtocol",
1357
+ "FileHashCacheKey",
1358
+ "DataFrameHashCacheKey",
1359
+ "CacheEntry",
1360
+ "CacheBackend",
1361
+ "MemoryCacheBackend",
1362
+ "FileCacheBackend",
1363
+ "RedisCacheBackend",
1364
+ "CacheBackendRegistry",
1365
+ "cache_backend_registry",
1366
+ "CacheConfig",
1367
+ "ProfileCache",
1368
+ "cached_profile",
1369
+ "create_cache",
1370
+ "hash_file",
1371
+ "RedisConnectionError",
1372
+ # === P2: Resilience and Fallback ===
1373
+ # States and types
1374
+ "CircuitState",
1375
+ "BackendHealth",
1376
+ "FailureType",
1377
+ # Configuration
1378
+ "CircuitBreakerConfig",
1379
+ "RetryConfig",
1380
+ "HealthCheckConfig",
1381
+ "ResilienceConfig",
1382
+ # Circuit breaker
1383
+ "CircuitBreaker",
1384
+ "CircuitOpenError",
1385
+ # Retry logic
1386
+ "RetryPolicy",
1387
+ # Health monitoring
1388
+ "HealthMonitor",
1389
+ # Resilient backends
1390
+ "ResilientCacheBackend",
1391
+ "FallbackChain",
1392
+ # Factory functions
1393
+ "create_resilient_redis_backend",
1394
+ "create_high_availability_cache",
1395
+ # === P2: Observability/Metrics ===
1396
+ "MetricType",
1397
+ "SpanStatus",
1398
+ "Span",
1399
+ "SpanEvent",
1400
+ "SpanProtocol",
1401
+ "Metric",
1402
+ "Counter",
1403
+ "Gauge",
1404
+ "Histogram",
1405
+ "MetricValue",
1406
+ "MetricsCollector",
1407
+ "SpanExporter",
1408
+ "ConsoleSpanExporter",
1409
+ "InMemorySpanExporter",
1410
+ "OTLPSpanExporter",
1411
+ "SpanExporterRegistry",
1412
+ "span_exporter_registry",
1413
+ "TelemetryConfig",
1414
+ "ProfilerTelemetry",
1415
+ "traced",
1416
+ "timed",
1417
+ "OpenTelemetryIntegration",
1418
+ "get_telemetry",
1419
+ "set_telemetry",
1420
+ "get_metrics",
1421
+ "create_telemetry",
1422
+ # === P2: Rule Quality Scoring ===
1423
+ "QualityLevel",
1424
+ "RuleType",
1425
+ "ConfusionMatrix",
1426
+ "QualityMetrics",
1427
+ "RuleProtocol",
1428
+ "ValidationRule",
1429
+ "QualityEstimator",
1430
+ "SamplingQualityEstimator",
1431
+ "HeuristicQualityEstimator",
1432
+ "CrossValidationEstimator",
1433
+ "QualityEstimatorRegistry",
1434
+ "quality_estimator_registry",
1435
+ "ScoringConfig",
1436
+ "RuleQualityScore",
1437
+ "RuleQualityScorer",
1438
+ "QualityTrendPoint",
1439
+ "QualityTrendAnalyzer",
1440
+ "estimate_quality",
1441
+ "score_rule",
1442
+ "compare_rules",
1443
+ # === P2: Custom Patterns YAML ===
1444
+ "CustomPatternPriority",
1445
+ "PatternExample",
1446
+ "PatternConfig",
1447
+ "PatternGroup",
1448
+ "PatternConfigSchema",
1449
+ "PatternConfigLoader",
1450
+ "CustomPatternRegistry",
1451
+ "pattern_registry",
1452
+ "DEFAULT_PATTERNS_YAML",
1453
+ "load_default_patterns",
1454
+ "load_patterns",
1455
+ "load_patterns_directory",
1456
+ "register_pattern",
1457
+ "match_custom_patterns",
1458
+ "infer_type_from_patterns",
1459
+ "export_patterns",
1460
+ # === P3: Distributed Processing ===
1461
+ "BackendType",
1462
+ "PartitionStrategy",
1463
+ "PartitionInfo",
1464
+ "WorkerResult",
1465
+ "BackendConfig",
1466
+ "SparkConfig",
1467
+ "DaskConfig",
1468
+ "RayConfig",
1469
+ "DistributedProfileConfig",
1470
+ "DistributedBackend",
1471
+ "LocalBackend",
1472
+ "SparkBackend",
1473
+ "DaskBackend",
1474
+ "RayBackend",
1475
+ "BackendRegistry",
1476
+ "DistributedProfiler",
1477
+ "create_distributed_profiler",
1478
+ "profile_distributed",
1479
+ "get_available_backends",
1480
+ # === P3: ML-based Type Inference ===
1481
+ "FeatureType",
1482
+ "Feature",
1483
+ "FeatureVector",
1484
+ "FeatureExtractor",
1485
+ "NameFeatureExtractor",
1486
+ "ValueFeatureExtractor",
1487
+ "StatisticalFeatureExtractor",
1488
+ "ContextFeatureExtractor",
1489
+ "FeatureExtractorRegistry",
1490
+ "InferenceResult",
1491
+ "InferenceModel",
1492
+ "RuleBasedModel",
1493
+ "NaiveBayesModel",
1494
+ "EnsembleModel",
1495
+ "InferenceModelRegistry",
1496
+ "MLInferenceConfig",
1497
+ "MLTypeInferrer",
1498
+ "create_inference_model",
1499
+ "infer_column_type_ml",
1500
+ "infer_table_types_ml",
1501
+ # === P3: Automatic Threshold Tuning ===
1502
+ "TuningStrategy",
1503
+ "ThresholdType",
1504
+ "ColumnThresholds",
1505
+ "TableThresholds",
1506
+ "StrictnessPreset",
1507
+ "TuningStrategyImpl",
1508
+ "ConservativeStrategy",
1509
+ "BalancedStrategy",
1510
+ "PermissiveStrategy",
1511
+ "AdaptiveStrategy",
1512
+ "StatisticalStrategy",
1513
+ "DomainAwareStrategy",
1514
+ "TuningStrategyRegistry",
1515
+ "TuningConfig",
1516
+ "ThresholdTuner",
1517
+ "ThresholdTestResult",
1518
+ "ThresholdTester",
1519
+ "create_tuner",
1520
+ "tune_thresholds",
1521
+ "get_available_strategies",
1522
+ # === P3: Profile Visualization ===
1523
+ "ChartType",
1524
+ "ColorScheme",
1525
+ "ReportTheme",
1526
+ "SectionType",
1527
+ "COLOR_PALETTES",
1528
+ "ChartData",
1529
+ "ChartConfig",
1530
+ "ThemeConfig",
1531
+ "SectionContent",
1532
+ "ReportConfig",
1533
+ "ProfileData",
1534
+ "THEME_CONFIGS",
1535
+ "ChartRenderer",
1536
+ "SectionRenderer",
1537
+ "ChartRendererRegistry",
1538
+ "chart_renderer_registry",
1539
+ "SectionRegistry",
1540
+ "section_registry",
1541
+ "ThemeRegistry",
1542
+ "theme_registry",
1543
+ "SVGChartRenderer",
1544
+ "BaseSectionRenderer",
1545
+ "OverviewSectionRenderer",
1546
+ "DataQualitySectionRenderer",
1547
+ "ColumnDetailsSectionRenderer",
1548
+ "PatternsSectionRenderer",
1549
+ "RecommendationsSectionRenderer",
1550
+ "CustomSectionRenderer",
1551
+ "ReportTemplate",
1552
+ "ProfileDataConverter",
1553
+ "HTMLReportGenerator",
1554
+ "ReportExporter",
1555
+ "generate_report",
1556
+ "compare_profile_reports",
1557
+ # === Phase 7 P0: Suite Export System ===
1558
+ "ExportFormat",
1559
+ "CodeStyle",
1560
+ "OutputMode",
1561
+ "ExportConfig",
1562
+ "DEFAULT_CONFIG",
1563
+ "MINIMAL_CONFIG",
1564
+ "VERBOSE_CONFIG",
1565
+ "SuiteFormatterProtocol",
1566
+ "SuiteFormatter",
1567
+ "YAMLFormatter",
1568
+ "JSONFormatter",
1569
+ "PythonFormatter",
1570
+ "TOMLFormatter",
1571
+ "CheckpointFormatter",
1572
+ "FormatterRegistry",
1573
+ "formatter_registry",
1574
+ "register_formatter",
1575
+ "ExportPostProcessor",
1576
+ "AddHeaderPostProcessor",
1577
+ "AddFooterPostProcessor",
1578
+ "TemplatePostProcessor",
1579
+ "ExportResult",
1580
+ "SuiteExporter",
1581
+ "create_exporter",
1582
+ "export_suite",
1583
+ "format_suite",
1584
+ "get_available_formats",
1585
+ # === Phase 7 P0: Suite Configuration System ===
1586
+ "ConfigPreset",
1587
+ "SuiteOutputFormat",
1588
+ "GeneratorMode",
1589
+ "CategoryConfig",
1590
+ "ConfidenceConfig",
1591
+ "SuiteOutputConfig",
1592
+ "SuiteGeneratorOptionsConfig",
1593
+ "SuiteGeneratorConfig",
1594
+ "PRESETS",
1595
+ "load_suite_config",
1596
+ "save_suite_config",
1597
+ "CLIArguments",
1598
+ "build_config_from_cli",
1599
+ # === Phase 7 P0: Suite CLI Handlers ===
1600
+ "GenerateSuiteResult",
1601
+ "QuickSuiteResult",
1602
+ "SuiteGenerationProgress",
1603
+ "SuiteGenerationHandler",
1604
+ "get_suite_formats",
1605
+ "get_available_presets",
1606
+ "get_available_categories",
1607
+ "format_category_help",
1608
+ "format_preset_help",
1609
+ "validate_format",
1610
+ "validate_preset",
1611
+ "validate_strictness",
1612
+ "validate_confidence",
1613
+ "create_cli_handler",
1614
+ "run_generate_suite",
1615
+ "run_quick_suite",
1616
+ # === Phase 7 P0: Streaming Pattern Matching ===
1617
+ "AggregationMethod",
1618
+ # === Phase 7 P0: Progress Callback System ===
1619
+ # Event types and levels
1620
+ "EventLevel",
1621
+ "EventType",
1622
+ # Context and metrics
1623
+ "ProgressContext",
1624
+ "ProgressMetrics",
1625
+ "StandardProgressEvent",
1626
+ # Protocols
1627
+ "StandardProgressCallback",
1628
+ "AsyncProgressCallback",
1629
+ "LifecycleCallback",
1630
+ # Base adapter
1631
+ "CallbackAdapter",
1632
+ # Console adapters
1633
+ "ConsoleStyle",
1634
+ "ConsoleAdapter",
1635
+ "MinimalConsoleAdapter",
1636
+ # Logging adapter
1637
+ "LoggingAdapter",
1638
+ # File adapter
1639
+ "FileOutputConfig",
1640
+ "FileAdapter",
1641
+ # Callback chain
1642
+ "CallbackChain",
1643
+ # Filtering and throttling
1644
+ "FilterConfig",
1645
+ "FilteringAdapter",
1646
+ "ThrottleConfig",
1647
+ "ThrottlingAdapter",
1648
+ # Buffering
1649
+ "BufferConfig",
1650
+ "BufferingAdapter",
1651
+ # Async
1652
+ "AsyncAdapter",
1653
+ # Registry
1654
+ "CallbackRegistry",
1655
+ # Emitter
1656
+ "ProgressEmitter",
1657
+ # Presets
1658
+ "CallbackPresets",
1659
+ # Convenience functions
1660
+ "create_callback_chain",
1661
+ "create_console_callback",
1662
+ "create_logging_callback",
1663
+ "create_file_callback",
1664
+ "with_throttling",
1665
+ "with_filtering",
1666
+ "with_buffering",
1667
+ # === Phase 7 P0: Internationalization (i18n) ===
1668
+ # Message codes
1669
+ "MessageCode",
1670
+ # Locale management
1671
+ "LocaleInfo",
1672
+ "LocaleManager",
1673
+ "BUILTIN_LOCALES",
1674
+ "set_locale",
1675
+ "get_locale",
1676
+ # Message catalog
1677
+ "MessageEntry",
1678
+ "MessageCatalog",
1679
+ # Message loaders
1680
+ "MessageLoader",
1681
+ "DictMessageLoader",
1682
+ "FileMessageLoader",
1683
+ # Formatter
1684
+ "PlaceholderFormatter",
1685
+ # Main interface
1686
+ "I18n",
1687
+ # I18n exceptions
1688
+ "I18nError",
1689
+ "I18nAnalysisError",
1690
+ "I18nPatternError",
1691
+ "I18nTypeError",
1692
+ "I18nIOError",
1693
+ "I18nTimeoutError",
1694
+ "I18nValidationError",
1695
+ # Registry
1696
+ "MessageCatalogRegistry",
1697
+ # Convenience functions
1698
+ "get_message",
1699
+ "translate",
1700
+ "register_messages",
1701
+ "load_messages_from_file",
1702
+ "create_message_loader",
1703
+ # Context manager
1704
+ "locale_context",
1705
+ # Presets
1706
+ "I18nPresets",
1707
+ "ChunkProcessingStatus",
1708
+ "PatternChunkStats",
1709
+ "PatternState",
1710
+ "ColumnPatternState",
1711
+ "AggregationStrategy",
1712
+ "IncrementalAggregation",
1713
+ "WeightedAggregation",
1714
+ "SlidingWindowAggregation",
1715
+ "ExponentialAggregation",
1716
+ "ConsensusAggregation",
1717
+ "AdaptiveAggregation",
1718
+ "AggregationStrategyRegistry",
1719
+ "aggregation_strategy_registry",
1720
+ "StreamingPatternResult",
1721
+ "PatternEvent",
1722
+ "PatternEventCallback",
1723
+ "StreamingPatternConfig",
1724
+ "StreamingPatternMatcher",
1725
+ "StreamingPatternIntegration",
1726
+ "create_streaming_matcher",
1727
+ "stream_match_patterns",
1728
+ "get_available_aggregation_methods",
1729
+ ]