mineproductivity 2.0.0__tar.gz

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 (985) hide show
  1. mineproductivity-2.0.0/.editorconfig +21 -0
  2. mineproductivity-2.0.0/.gitattributes +15 -0
  3. mineproductivity-2.0.0/.github/CODEOWNERS +24 -0
  4. mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
  5. mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  6. mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
  7. mineproductivity-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +25 -0
  8. mineproductivity-2.0.0/.github/workflows/benchmark.yml +34 -0
  9. mineproductivity-2.0.0/.github/workflows/ci.yml +151 -0
  10. mineproductivity-2.0.0/.github/workflows/codeql.yml +30 -0
  11. mineproductivity-2.0.0/.github/workflows/dependency-review.yml +25 -0
  12. mineproductivity-2.0.0/.github/workflows/docs.yml +98 -0
  13. mineproductivity-2.0.0/.github/workflows/quality.yml +87 -0
  14. mineproductivity-2.0.0/.github/workflows/release.yml +93 -0
  15. mineproductivity-2.0.0/.github/workflows/security.yml +69 -0
  16. mineproductivity-2.0.0/.gitignore +151 -0
  17. mineproductivity-2.0.0/.pre-commit-config.yaml +27 -0
  18. mineproductivity-2.0.0/CHANGELOG.md +1501 -0
  19. mineproductivity-2.0.0/CITATION.cff +38 -0
  20. mineproductivity-2.0.0/CODE_OF_CONDUCT.md +52 -0
  21. mineproductivity-2.0.0/CONTRIBUTING.md +83 -0
  22. mineproductivity-2.0.0/LICENSE +201 -0
  23. mineproductivity-2.0.0/PKG-INFO +445 -0
  24. mineproductivity-2.0.0/README.md +382 -0
  25. mineproductivity-2.0.0/ROADMAP.md +261 -0
  26. mineproductivity-2.0.0/SECURITY.md +54 -0
  27. mineproductivity-2.0.0/benchmark/README.md +32 -0
  28. mineproductivity-2.0.0/benchmark/expected_outputs/README.md +29 -0
  29. mineproductivity-2.0.0/benchmark/reports/README.md +34 -0
  30. mineproductivity-2.0.0/benchmark/reports/agents/2026-07-12-agents-v1.10.0.md +41 -0
  31. mineproductivity-2.0.0/benchmark/reports/decision/2026-07-08-decision-v1.6.0.md +41 -0
  32. mineproductivity-2.0.0/benchmark/reports/digital_twin/2026-07-08-digital-twin-v1.7.0.md +41 -0
  33. mineproductivity-2.0.0/benchmark/reports/optimization/2026-07-12-optimization-v1.9.0.md +41 -0
  34. mineproductivity-2.0.0/benchmark/reports/simulation/2026-07-08-simulation-v1.8.0.md +40 -0
  35. mineproductivity-2.0.0/benchmark/reports/visualization/2026-07-12-visualization-v1.11.0.md +41 -0
  36. mineproductivity-2.0.0/benchmark/scenarios/README.md +34 -0
  37. mineproductivity-2.0.0/benchmark/scenarios/agents/task_repository_latency.py +76 -0
  38. mineproductivity-2.0.0/benchmark/scenarios/agents/workflow_parallel_throughput.py +123 -0
  39. mineproductivity-2.0.0/benchmark/scenarios/decision/audit_trail_latency.py +80 -0
  40. mineproductivity-2.0.0/benchmark/scenarios/decision/rule_engine_throughput.py +98 -0
  41. mineproductivity-2.0.0/benchmark/scenarios/digital_twin/cold_start_replay.py +168 -0
  42. mineproductivity-2.0.0/benchmark/scenarios/digital_twin/repository_latency.py +105 -0
  43. mineproductivity-2.0.0/benchmark/scenarios/optimization/run_repository_latency.py +74 -0
  44. mineproductivity-2.0.0/benchmark/scenarios/optimization/sweep_resolve_throughput.py +132 -0
  45. mineproductivity-2.0.0/benchmark/scenarios/simulation/run_repository_latency.py +78 -0
  46. mineproductivity-2.0.0/benchmark/scenarios/simulation/seed_cache_effectiveness.py +141 -0
  47. mineproductivity-2.0.0/benchmark/scenarios/visualization/dashboard_repository_latency.py +71 -0
  48. mineproductivity-2.0.0/benchmark/scenarios/visualization/render_parallel_throughput.py +120 -0
  49. mineproductivity-2.0.0/certification/README.md +32 -0
  50. mineproductivity-2.0.0/certification/golden_datasets/README.md +29 -0
  51. mineproductivity-2.0.0/certification/reference_outputs/README.md +29 -0
  52. mineproductivity-2.0.0/certification/validation/README.md +29 -0
  53. mineproductivity-2.0.0/datasets/README.md +38 -0
  54. mineproductivity-2.0.0/datasets/benchmark/README.md +30 -0
  55. mineproductivity-2.0.0/datasets/canonical/README.md +30 -0
  56. mineproductivity-2.0.0/datasets/edge_cases/README.md +30 -0
  57. mineproductivity-2.0.0/datasets/generated/README.md +30 -0
  58. mineproductivity-2.0.0/datasets/golden/README.md +30 -0
  59. mineproductivity-2.0.0/datasets/processed/README.md +30 -0
  60. mineproductivity-2.0.0/datasets/raw/README.md +30 -0
  61. mineproductivity-2.0.0/datasets/synthetic/README.md +30 -0
  62. mineproductivity-2.0.0/docs/README.md +40 -0
  63. mineproductivity-2.0.0/docs/adr/000-template.md +1 -0
  64. mineproductivity-2.0.0/docs/adr/ADR-0006-Analytics-Engine.md +78 -0
  65. mineproductivity-2.0.0/docs/adr/ADR-0007-Decision-Intelligence.md +80 -0
  66. mineproductivity-2.0.0/docs/adr/ADR-0008-Digital-Twin.md +87 -0
  67. mineproductivity-2.0.0/docs/adr/ADR-0009-Simulation.md +87 -0
  68. mineproductivity-2.0.0/docs/adr/ADR-0010-Optimization.md +89 -0
  69. mineproductivity-2.0.0/docs/adr/ADR-0011-AI-Agents.md +89 -0
  70. mineproductivity-2.0.0/docs/adr/ADR-0012-Visualization.md +88 -0
  71. mineproductivity-2.0.0/docs/adr/ADR-0013-Placeholder-Package-Rationalization.md +95 -0
  72. mineproductivity-2.0.0/docs/adr/index.md +16 -0
  73. mineproductivity-2.0.0/docs/adr/why.txt +19 -0
  74. mineproductivity-2.0.0/docs/api/README.md +29 -0
  75. mineproductivity-2.0.0/docs/api-reference/agents.md +14 -0
  76. mineproductivity-2.0.0/docs/api-reference/analytics.md +14 -0
  77. mineproductivity-2.0.0/docs/api-reference/connectors.md +14 -0
  78. mineproductivity-2.0.0/docs/api-reference/core.md +14 -0
  79. mineproductivity-2.0.0/docs/api-reference/decision.md +14 -0
  80. mineproductivity-2.0.0/docs/api-reference/digital_twin.md +14 -0
  81. mineproductivity-2.0.0/docs/api-reference/events.md +14 -0
  82. mineproductivity-2.0.0/docs/api-reference/index.md +16 -0
  83. mineproductivity-2.0.0/docs/api-reference/kpis.md +14 -0
  84. mineproductivity-2.0.0/docs/api-reference/ontology.md +14 -0
  85. mineproductivity-2.0.0/docs/api-reference/optimization.md +14 -0
  86. mineproductivity-2.0.0/docs/api-reference/plugins.md +14 -0
  87. mineproductivity-2.0.0/docs/api-reference/registry.md +14 -0
  88. mineproductivity-2.0.0/docs/api-reference/simulation.md +14 -0
  89. mineproductivity-2.0.0/docs/api-reference/visualization.md +14 -0
  90. mineproductivity-2.0.0/docs/architecture/01_Event_Framework_Design_Specification.md +889 -0
  91. mineproductivity-2.0.0/docs/architecture/02_Ontology_Framework_Design_Specification.md +828 -0
  92. mineproductivity-2.0.0/docs/architecture/03_Registry_Framework_Design_Specification.md +657 -0
  93. mineproductivity-2.0.0/docs/architecture/04_Connector_Framework_Design_Specification.md +758 -0
  94. mineproductivity-2.0.0/docs/architecture/05_KPI_Engine_Design_Specification.md +951 -0
  95. mineproductivity-2.0.0/docs/architecture/06_Analytics_Engine_Design_Specification.md +1220 -0
  96. mineproductivity-2.0.0/docs/architecture/07_Decision_Intelligence_Design_Specification.md +1243 -0
  97. mineproductivity-2.0.0/docs/architecture/08_Digital_Twin_Design_Specification.md +1026 -0
  98. mineproductivity-2.0.0/docs/architecture/09_Simulation_Design_Specification.md +1088 -0
  99. mineproductivity-2.0.0/docs/architecture/10_Optimization_Design_Specification.md +1095 -0
  100. mineproductivity-2.0.0/docs/architecture/11_AI_Agents_Design_Specification.md +1229 -0
  101. mineproductivity-2.0.0/docs/architecture/12_Visualization_Design_Specification.md +963 -0
  102. mineproductivity-2.0.0/docs/architecture/README.md +57 -0
  103. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide.docx +0 -0
  104. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide_Part_II.docx +0 -0
  105. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide_Part_III.docx +0 -0
  106. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Documentation.html +888 -0
  107. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Learning_Benchmark_Suite_v1.0.docx +0 -0
  108. mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/README.md +26 -0
  109. mineproductivity-2.0.0/docs/assets/README.md +29 -0
  110. mineproductivity-2.0.0/docs/benchmarks/agents.md +4 -0
  111. mineproductivity-2.0.0/docs/benchmarks/decision.md +4 -0
  112. mineproductivity-2.0.0/docs/benchmarks/digital_twin.md +4 -0
  113. mineproductivity-2.0.0/docs/benchmarks/index.md +18 -0
  114. mineproductivity-2.0.0/docs/benchmarks/optimization.md +4 -0
  115. mineproductivity-2.0.0/docs/benchmarks/simulation.md +4 -0
  116. mineproductivity-2.0.0/docs/benchmarks/visualization.md +4 -0
  117. mineproductivity-2.0.0/docs/certification/2.0-certification.md +149 -0
  118. mineproductivity-2.0.0/docs/citation/CITATION.md +70 -0
  119. mineproductivity-2.0.0/docs/citation/MineProductivity.bib +10 -0
  120. mineproductivity-2.0.0/docs/design/01_Event_Implementation_Checklist.md +137 -0
  121. mineproductivity-2.0.0/docs/design/02_Ontology_Implementation_Checklist.md +131 -0
  122. mineproductivity-2.0.0/docs/design/03_Registry_Implementation_Checklist.md +128 -0
  123. mineproductivity-2.0.0/docs/design/04_Connector_Implementation_Checklist.md +130 -0
  124. mineproductivity-2.0.0/docs/design/05_KPI_Implementation_Checklist.md +145 -0
  125. mineproductivity-2.0.0/docs/design/06_Analytics_Engine_Implementation_Checklist.md +164 -0
  126. mineproductivity-2.0.0/docs/design/07_Decision_Intelligence_Implementation_Checklist.md +174 -0
  127. mineproductivity-2.0.0/docs/design/08_Digital_Twin_Implementation_Checklist.md +160 -0
  128. mineproductivity-2.0.0/docs/design/09_Simulation_Implementation_Checklist.md +186 -0
  129. mineproductivity-2.0.0/docs/design/10_Optimization_Implementation_Checklist.md +187 -0
  130. mineproductivity-2.0.0/docs/design/11_AI_Agents_Implementation_Checklist.md +246 -0
  131. mineproductivity-2.0.0/docs/design/12_Visualization_Implementation_Checklist.md +222 -0
  132. mineproductivity-2.0.0/docs/design/README.md +43 -0
  133. mineproductivity-2.0.0/docs/design/why.txt +13 -0
  134. mineproductivity-2.0.0/docs/developer_guide/README.md +32 -0
  135. mineproductivity-2.0.0/docs/getting-started/installation.md +47 -0
  136. mineproductivity-2.0.0/docs/getting-started/next-steps.md +21 -0
  137. mineproductivity-2.0.0/docs/getting-started/quick-start.md +51 -0
  138. mineproductivity-2.0.0/docs/governance/CI_CD_GUIDE.md +72 -0
  139. mineproductivity-2.0.0/docs/governance/ENGINEERING_RULES.md +96 -0
  140. mineproductivity-2.0.0/docs/governance/RELEASE_CHECKLIST.md +116 -0
  141. mineproductivity-2.0.0/docs/images/README.md +29 -0
  142. mineproductivity-2.0.0/docs/index.md +100 -0
  143. mineproductivity-2.0.0/docs/learning_suite/README.md +30 -0
  144. mineproductivity-2.0.0/docs/packages/agents.md +4 -0
  145. mineproductivity-2.0.0/docs/packages/analytics.md +4 -0
  146. mineproductivity-2.0.0/docs/packages/connectors.md +4 -0
  147. mineproductivity-2.0.0/docs/packages/core.md +4 -0
  148. mineproductivity-2.0.0/docs/packages/decision.md +4 -0
  149. mineproductivity-2.0.0/docs/packages/digital_twin.md +4 -0
  150. mineproductivity-2.0.0/docs/packages/events.md +4 -0
  151. mineproductivity-2.0.0/docs/packages/index.md +29 -0
  152. mineproductivity-2.0.0/docs/packages/kpis.md +4 -0
  153. mineproductivity-2.0.0/docs/packages/ontology.md +4 -0
  154. mineproductivity-2.0.0/docs/packages/optimization.md +4 -0
  155. mineproductivity-2.0.0/docs/packages/plugins.md +4 -0
  156. mineproductivity-2.0.0/docs/packages/registry.md +4 -0
  157. mineproductivity-2.0.0/docs/packages/simulation.md +4 -0
  158. mineproductivity-2.0.0/docs/packages/visualization.md +4 -0
  159. mineproductivity-2.0.0/docs/project/changelog.md +4 -0
  160. mineproductivity-2.0.0/docs/project/citation.md +4 -0
  161. mineproductivity-2.0.0/docs/project/code-of-conduct.md +4 -0
  162. mineproductivity-2.0.0/docs/project/contributing.md +4 -0
  163. mineproductivity-2.0.0/docs/project/roadmap.md +4 -0
  164. mineproductivity-2.0.0/docs/project/security.md +4 -0
  165. mineproductivity-2.0.0/docs/reference_blueprint/README.md +30 -0
  166. mineproductivity-2.0.0/docs/release_notes/why.txt +15 -0
  167. mineproductivity-2.0.0/docs/tutorials/agents.md +4 -0
  168. mineproductivity-2.0.0/docs/tutorials/connectors.md +4 -0
  169. mineproductivity-2.0.0/docs/tutorials/core.md +4 -0
  170. mineproductivity-2.0.0/docs/tutorials/decision.md +4 -0
  171. mineproductivity-2.0.0/docs/tutorials/digital_twin.md +4 -0
  172. mineproductivity-2.0.0/docs/tutorials/events.md +4 -0
  173. mineproductivity-2.0.0/docs/tutorials/index.md +29 -0
  174. mineproductivity-2.0.0/docs/tutorials/kpis.md +4 -0
  175. mineproductivity-2.0.0/docs/tutorials/ontology.md +4 -0
  176. mineproductivity-2.0.0/docs/tutorials/optimization.md +4 -0
  177. mineproductivity-2.0.0/docs/tutorials/quickstart.md +4 -0
  178. mineproductivity-2.0.0/docs/tutorials/registry.md +4 -0
  179. mineproductivity-2.0.0/docs/tutorials/simulation.md +4 -0
  180. mineproductivity-2.0.0/docs/tutorials/visualization.md +4 -0
  181. mineproductivity-2.0.0/docs/user-guide/index.md +33 -0
  182. mineproductivity-2.0.0/examples/README.md +49 -0
  183. mineproductivity-2.0.0/examples/agents/01_single_agent_task.py +94 -0
  184. mineproductivity-2.0.0/examples/agents/02_policy_gated_approval.py +146 -0
  185. mineproductivity-2.0.0/examples/agents/03_multi_agent_workflow.py +112 -0
  186. mineproductivity-2.0.0/examples/agents/04_hypothesis_and_plan_search.py +215 -0
  187. mineproductivity-2.0.0/examples/agents/05_plugin_agent_and_tool.py +172 -0
  188. mineproductivity-2.0.0/examples/agents/README.md +50 -0
  189. mineproductivity-2.0.0/examples/ai/README.md +30 -0
  190. mineproductivity-2.0.0/examples/connectors/01_csv_ingestion.py +77 -0
  191. mineproductivity-2.0.0/examples/connectors/02_rest_with_retry.py +102 -0
  192. mineproductivity-2.0.0/examples/connectors/README.md +43 -0
  193. mineproductivity-2.0.0/examples/core/01_entity_and_value_object.py +59 -0
  194. mineproductivity-2.0.0/examples/core/02_repository.py +64 -0
  195. mineproductivity-2.0.0/examples/core/03_factory_and_builder.py +85 -0
  196. mineproductivity-2.0.0/examples/core/04_validation.py +62 -0
  197. mineproductivity-2.0.0/examples/core/05_serialization.py +47 -0
  198. mineproductivity-2.0.0/examples/core/06_result_and_maybe.py +60 -0
  199. mineproductivity-2.0.0/examples/core/README.md +66 -0
  200. mineproductivity-2.0.0/examples/decision/01_pipeline_over_evidence.py +145 -0
  201. mineproductivity-2.0.0/examples/decision/02_action_planning.py +103 -0
  202. mineproductivity-2.0.0/examples/decision/03_realtime_session.py +156 -0
  203. mineproductivity-2.0.0/examples/decision/04_plugin_strategy.py +128 -0
  204. mineproductivity-2.0.0/examples/decision/README.md +53 -0
  205. mineproductivity-2.0.0/examples/decision/_evidence.py +166 -0
  206. mineproductivity-2.0.0/examples/digital_twin/01_provision_and_sync.py +167 -0
  207. mineproductivity-2.0.0/examples/digital_twin/02_discovery.py +114 -0
  208. mineproductivity-2.0.0/examples/digital_twin/03_snapshot_and_serialize.py +97 -0
  209. mineproductivity-2.0.0/examples/digital_twin/04_plugin_twin_type.py +135 -0
  210. mineproductivity-2.0.0/examples/digital_twin/README.md +48 -0
  211. mineproductivity-2.0.0/examples/events/01_first_event.py +73 -0
  212. mineproductivity-2.0.0/examples/events/02_replay.py +66 -0
  213. mineproductivity-2.0.0/examples/events/03_correction.py +96 -0
  214. mineproductivity-2.0.0/examples/events/README.md +45 -0
  215. mineproductivity-2.0.0/examples/kpis/01_simple_execution.py +40 -0
  216. mineproductivity-2.0.0/examples/kpis/02_composite_oee.py +48 -0
  217. mineproductivity-2.0.0/examples/kpis/03_batch_summary.py +56 -0
  218. mineproductivity-2.0.0/examples/kpis/04_discovery.py +59 -0
  219. mineproductivity-2.0.0/examples/kpis/README.md +52 -0
  220. mineproductivity-2.0.0/examples/kpis/_dataset.py +188 -0
  221. mineproductivity-2.0.0/examples/ontology/01_equipment_modelling.py +65 -0
  222. mineproductivity-2.0.0/examples/ontology/02_structural_modelling.py +87 -0
  223. mineproductivity-2.0.0/examples/ontology/03_validation.py +63 -0
  224. mineproductivity-2.0.0/examples/ontology/README.md +45 -0
  225. mineproductivity-2.0.0/examples/optimization/01_mip_fleet_allocation.py +151 -0
  226. mineproductivity-2.0.0/examples/optimization/02_plan_comparison.py +112 -0
  227. mineproductivity-2.0.0/examples/optimization/03_sensitivity_sweep.py +108 -0
  228. mineproductivity-2.0.0/examples/optimization/04_candidate_scenario_search.py +117 -0
  229. mineproductivity-2.0.0/examples/optimization/05_plugin_solver_adapter.py +157 -0
  230. mineproductivity-2.0.0/examples/optimization/README.md +50 -0
  231. mineproductivity-2.0.0/examples/production/README.md +30 -0
  232. mineproductivity-2.0.0/examples/quickstart/01_five_minute_tour.py +65 -0
  233. mineproductivity-2.0.0/examples/quickstart/README.md +30 -0
  234. mineproductivity-2.0.0/examples/registry/01_register_and_discover.py +109 -0
  235. mineproductivity-2.0.0/examples/registry/02_version_compatibility.py +74 -0
  236. mineproductivity-2.0.0/examples/registry/README.md +44 -0
  237. mineproductivity-2.0.0/examples/simulation/01_monte_carlo_experiment.py +118 -0
  238. mineproductivity-2.0.0/examples/simulation/02_scenario_comparison.py +118 -0
  239. mineproductivity-2.0.0/examples/simulation/03_sensitivity_sweep.py +108 -0
  240. mineproductivity-2.0.0/examples/simulation/04_plugin_simulation_model.py +159 -0
  241. mineproductivity-2.0.0/examples/simulation/README.md +48 -0
  242. mineproductivity-2.0.0/examples/visualization/01_single_widget_render.py +96 -0
  243. mineproductivity-2.0.0/examples/visualization/02_multi_source_dashboard.py +178 -0
  244. mineproductivity-2.0.0/examples/visualization/03_export_report.py +124 -0
  245. mineproductivity-2.0.0/examples/visualization/04_simulation_playback.py +106 -0
  246. mineproductivity-2.0.0/examples/visualization/05_plugin_visualization_and_renderer.py +171 -0
  247. mineproductivity-2.0.0/examples/visualization/README.md +50 -0
  248. mineproductivity-2.0.0/mkdocs.yml +219 -0
  249. mineproductivity-2.0.0/notebooks/README.md +34 -0
  250. mineproductivity-2.0.0/notebooks/advanced/README.md +29 -0
  251. mineproductivity-2.0.0/notebooks/beginner/01_first_kpi_lookup.ipynb +381 -0
  252. mineproductivity-2.0.0/notebooks/beginner/README.md +36 -0
  253. mineproductivity-2.0.0/notebooks/expert/README.md +29 -0
  254. mineproductivity-2.0.0/notebooks/intermediate/README.md +29 -0
  255. mineproductivity-2.0.0/notebooks/research/README.md +29 -0
  256. mineproductivity-2.0.0/pyproject.toml +127 -0
  257. mineproductivity-2.0.0/scripts/README.md +32 -0
  258. mineproductivity-2.0.0/scripts/bootstrap/README.md +29 -0
  259. mineproductivity-2.0.0/scripts/development/README.md +29 -0
  260. mineproductivity-2.0.0/scripts/docs/link_rewrite_hook.py +70 -0
  261. mineproductivity-2.0.0/scripts/quality/README.md +31 -0
  262. mineproductivity-2.0.0/scripts/quality/check_docs.py +181 -0
  263. mineproductivity-2.0.0/scripts/quality/perf_smoke.py +108 -0
  264. mineproductivity-2.0.0/scripts/quality/smoke_test.py +58 -0
  265. mineproductivity-2.0.0/scripts/release/README.md +29 -0
  266. mineproductivity-2.0.0/src/mineproductivity/README.md +31 -0
  267. mineproductivity-2.0.0/src/mineproductivity/__init__.py +50 -0
  268. mineproductivity-2.0.0/src/mineproductivity/agents/README.md +27 -0
  269. mineproductivity-2.0.0/src/mineproductivity/agents/__init__.py +85 -0
  270. mineproductivity-2.0.0/src/mineproductivity/agents/_registry.py +84 -0
  271. mineproductivity-2.0.0/src/mineproductivity/agents/abstractions.py +113 -0
  272. mineproductivity-2.0.0/src/mineproductivity/agents/approval.py +56 -0
  273. mineproductivity-2.0.0/src/mineproductivity/agents/audit.py +102 -0
  274. mineproductivity-2.0.0/src/mineproductivity/agents/capability.py +91 -0
  275. mineproductivity-2.0.0/src/mineproductivity/agents/communication.py +82 -0
  276. mineproductivity-2.0.0/src/mineproductivity/agents/conversation.py +61 -0
  277. mineproductivity-2.0.0/src/mineproductivity/agents/discovery.py +78 -0
  278. mineproductivity-2.0.0/src/mineproductivity/agents/exceptions.py +60 -0
  279. mineproductivity-2.0.0/src/mineproductivity/agents/executor.py +273 -0
  280. mineproductivity-2.0.0/src/mineproductivity/agents/goal.py +41 -0
  281. mineproductivity-2.0.0/src/mineproductivity/agents/memory.py +43 -0
  282. mineproductivity-2.0.0/src/mineproductivity/agents/metadata.py +78 -0
  283. mineproductivity-2.0.0/src/mineproductivity/agents/persistence.py +23 -0
  284. mineproductivity-2.0.0/src/mineproductivity/agents/policy.py +228 -0
  285. mineproductivity-2.0.0/src/mineproductivity/agents/result.py +57 -0
  286. mineproductivity-2.0.0/src/mineproductivity/agents/state.py +50 -0
  287. mineproductivity-2.0.0/src/mineproductivity/agents/task.py +87 -0
  288. mineproductivity-2.0.0/src/mineproductivity/agents/tool.py +107 -0
  289. mineproductivity-2.0.0/src/mineproductivity/agents/workflow.py +114 -0
  290. mineproductivity-2.0.0/src/mineproductivity/analytics/README.md +90 -0
  291. mineproductivity-2.0.0/src/mineproductivity/analytics/__init__.py +206 -0
  292. mineproductivity-2.0.0/src/mineproductivity/analytics/_registry.py +75 -0
  293. mineproductivity-2.0.0/src/mineproductivity/analytics/abstractions.py +99 -0
  294. mineproductivity-2.0.0/src/mineproductivity/analytics/aggregation.py +214 -0
  295. mineproductivity-2.0.0/src/mineproductivity/analytics/anomaly.py +62 -0
  296. mineproductivity-2.0.0/src/mineproductivity/analytics/baseline.py +130 -0
  297. mineproductivity-2.0.0/src/mineproductivity/analytics/batch.py +67 -0
  298. mineproductivity-2.0.0/src/mineproductivity/analytics/benchmarking.py +258 -0
  299. mineproductivity-2.0.0/src/mineproductivity/analytics/exceptions.py +40 -0
  300. mineproductivity-2.0.0/src/mineproductivity/analytics/forecasting.py +56 -0
  301. mineproductivity-2.0.0/src/mineproductivity/analytics/incremental.py +127 -0
  302. mineproductivity-2.0.0/src/mineproductivity/analytics/metadata.py +74 -0
  303. mineproductivity-2.0.0/src/mineproductivity/analytics/outliers.py +72 -0
  304. mineproductivity-2.0.0/src/mineproductivity/analytics/pipeline.py +136 -0
  305. mineproductivity-2.0.0/src/mineproductivity/analytics/quality.py +312 -0
  306. mineproductivity-2.0.0/src/mineproductivity/analytics/result.py +275 -0
  307. mineproductivity-2.0.0/src/mineproductivity/analytics/rolling.py +138 -0
  308. mineproductivity-2.0.0/src/mineproductivity/analytics/statistics.py +348 -0
  309. mineproductivity-2.0.0/src/mineproductivity/analytics/streaming.py +144 -0
  310. mineproductivity-2.0.0/src/mineproductivity/analytics/timeseries.py +126 -0
  311. mineproductivity-2.0.0/src/mineproductivity/analytics/trend.py +124 -0
  312. mineproductivity-2.0.0/src/mineproductivity/analytics/windowing.py +48 -0
  313. mineproductivity-2.0.0/src/mineproductivity/benchmark/README.md +38 -0
  314. mineproductivity-2.0.0/src/mineproductivity/benchmark/__init__.py +7 -0
  315. mineproductivity-2.0.0/src/mineproductivity/certification/README.md +38 -0
  316. mineproductivity-2.0.0/src/mineproductivity/certification/__init__.py +7 -0
  317. mineproductivity-2.0.0/src/mineproductivity/cli/README.md +38 -0
  318. mineproductivity-2.0.0/src/mineproductivity/cli/__init__.py +7 -0
  319. mineproductivity-2.0.0/src/mineproductivity/config/README.md +39 -0
  320. mineproductivity-2.0.0/src/mineproductivity/config/__init__.py +7 -0
  321. mineproductivity-2.0.0/src/mineproductivity/connectors/README.md +224 -0
  322. mineproductivity-2.0.0/src/mineproductivity/connectors/__init__.py +77 -0
  323. mineproductivity-2.0.0/src/mineproductivity/connectors/_registry.py +30 -0
  324. mineproductivity-2.0.0/src/mineproductivity/connectors/auth.py +74 -0
  325. mineproductivity-2.0.0/src/mineproductivity/connectors/base.py +109 -0
  326. mineproductivity-2.0.0/src/mineproductivity/connectors/contract_tests.py +89 -0
  327. mineproductivity-2.0.0/src/mineproductivity/connectors/exceptions.py +39 -0
  328. mineproductivity-2.0.0/src/mineproductivity/connectors/file/__init__.py +8 -0
  329. mineproductivity-2.0.0/src/mineproductivity/connectors/file/_common.py +125 -0
  330. mineproductivity-2.0.0/src/mineproductivity/connectors/file/csv_connector.py +122 -0
  331. mineproductivity-2.0.0/src/mineproductivity/connectors/file/excel_connector.py +131 -0
  332. mineproductivity-2.0.0/src/mineproductivity/connectors/health.py +33 -0
  333. mineproductivity-2.0.0/src/mineproductivity/connectors/network/__init__.py +8 -0
  334. mineproductivity-2.0.0/src/mineproductivity/connectors/network/graphql_connector.py +143 -0
  335. mineproductivity-2.0.0/src/mineproductivity/connectors/network/rest_connector.py +152 -0
  336. mineproductivity-2.0.0/src/mineproductivity/connectors/normalization.py +109 -0
  337. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/__init__.py +33 -0
  338. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/dispatch_shape.py +61 -0
  339. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/hexagon_shape.py +61 -0
  340. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/minestar_shape.py +64 -0
  341. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/modular_shape.py +61 -0
  342. mineproductivity-2.0.0/src/mineproductivity/connectors/oem/wenco_shape.py +63 -0
  343. mineproductivity-2.0.0/src/mineproductivity/connectors/retry.py +108 -0
  344. mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/__init__.py +8 -0
  345. mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/_common.py +64 -0
  346. mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/kafka_connector.py +90 -0
  347. mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/mqtt_connector.py +87 -0
  348. mineproductivity-2.0.0/src/mineproductivity/core/README.md +350 -0
  349. mineproductivity-2.0.0/src/mineproductivity/core/__init__.py +99 -0
  350. mineproductivity-2.0.0/src/mineproductivity/core/builder.py +56 -0
  351. mineproductivity-2.0.0/src/mineproductivity/core/configuration.py +49 -0
  352. mineproductivity-2.0.0/src/mineproductivity/core/entity.py +70 -0
  353. mineproductivity-2.0.0/src/mineproductivity/core/exceptions.py +74 -0
  354. mineproductivity-2.0.0/src/mineproductivity/core/factory.py +47 -0
  355. mineproductivity-2.0.0/src/mineproductivity/core/identifier.py +68 -0
  356. mineproductivity-2.0.0/src/mineproductivity/core/maybe.py +117 -0
  357. mineproductivity-2.0.0/src/mineproductivity/core/metadata.py +62 -0
  358. mineproductivity-2.0.0/src/mineproductivity/core/repository.py +123 -0
  359. mineproductivity-2.0.0/src/mineproductivity/core/result.py +142 -0
  360. mineproductivity-2.0.0/src/mineproductivity/core/serialization.py +140 -0
  361. mineproductivity-2.0.0/src/mineproductivity/core/service.py +30 -0
  362. mineproductivity-2.0.0/src/mineproductivity/core/specification.py +116 -0
  363. mineproductivity-2.0.0/src/mineproductivity/core/typing.py +72 -0
  364. mineproductivity-2.0.0/src/mineproductivity/core/validator.py +118 -0
  365. mineproductivity-2.0.0/src/mineproductivity/core/value_object.py +85 -0
  366. mineproductivity-2.0.0/src/mineproductivity/core/versioning.py +47 -0
  367. mineproductivity-2.0.0/src/mineproductivity/datasets/README.md +40 -0
  368. mineproductivity-2.0.0/src/mineproductivity/datasets/__init__.py +7 -0
  369. mineproductivity-2.0.0/src/mineproductivity/decision/README.md +65 -0
  370. mineproductivity-2.0.0/src/mineproductivity/decision/__init__.py +181 -0
  371. mineproductivity-2.0.0/src/mineproductivity/decision/_registry.py +66 -0
  372. mineproductivity-2.0.0/src/mineproductivity/decision/abstractions.py +146 -0
  373. mineproductivity-2.0.0/src/mineproductivity/decision/alerting.py +103 -0
  374. mineproductivity-2.0.0/src/mineproductivity/decision/audit.py +130 -0
  375. mineproductivity-2.0.0/src/mineproductivity/decision/batch.py +99 -0
  376. mineproductivity-2.0.0/src/mineproductivity/decision/exceptions.py +50 -0
  377. mineproductivity-2.0.0/src/mineproductivity/decision/explanation.py +117 -0
  378. mineproductivity-2.0.0/src/mineproductivity/decision/metadata.py +73 -0
  379. mineproductivity-2.0.0/src/mineproductivity/decision/pipeline.py +131 -0
  380. mineproductivity-2.0.0/src/mineproductivity/decision/planning.py +166 -0
  381. mineproductivity-2.0.0/src/mineproductivity/decision/policy.py +197 -0
  382. mineproductivity-2.0.0/src/mineproductivity/decision/prioritization.py +85 -0
  383. mineproductivity-2.0.0/src/mineproductivity/decision/ranking.py +111 -0
  384. mineproductivity-2.0.0/src/mineproductivity/decision/realtime.py +236 -0
  385. mineproductivity-2.0.0/src/mineproductivity/decision/recommendation.py +80 -0
  386. mineproductivity-2.0.0/src/mineproductivity/decision/result.py +321 -0
  387. mineproductivity-2.0.0/src/mineproductivity/decision/root_cause.py +55 -0
  388. mineproductivity-2.0.0/src/mineproductivity/decision/rules.py +117 -0
  389. mineproductivity-2.0.0/src/mineproductivity/decision/scoring.py +139 -0
  390. mineproductivity-2.0.0/src/mineproductivity/decision/strategy.py +212 -0
  391. mineproductivity-2.0.0/src/mineproductivity/decision/thresholds.py +61 -0
  392. mineproductivity-2.0.0/src/mineproductivity/decision/what_if.py +57 -0
  393. mineproductivity-2.0.0/src/mineproductivity/digital_twin/README.md +57 -0
  394. mineproductivity-2.0.0/src/mineproductivity/digital_twin/__init__.py +115 -0
  395. mineproductivity-2.0.0/src/mineproductivity/digital_twin/_registry.py +71 -0
  396. mineproductivity-2.0.0/src/mineproductivity/digital_twin/abstractions.py +140 -0
  397. mineproductivity-2.0.0/src/mineproductivity/digital_twin/caching.py +82 -0
  398. mineproductivity-2.0.0/src/mineproductivity/digital_twin/categories.py +164 -0
  399. mineproductivity-2.0.0/src/mineproductivity/digital_twin/discovery.py +64 -0
  400. mineproductivity-2.0.0/src/mineproductivity/digital_twin/exceptions.py +50 -0
  401. mineproductivity-2.0.0/src/mineproductivity/digital_twin/lifecycle.py +31 -0
  402. mineproductivity-2.0.0/src/mineproductivity/digital_twin/metadata.py +100 -0
  403. mineproductivity-2.0.0/src/mineproductivity/digital_twin/persistence.py +32 -0
  404. mineproductivity-2.0.0/src/mineproductivity/digital_twin/result.py +112 -0
  405. mineproductivity-2.0.0/src/mineproductivity/digital_twin/simulation.py +64 -0
  406. mineproductivity-2.0.0/src/mineproductivity/digital_twin/snapshot.py +58 -0
  407. mineproductivity-2.0.0/src/mineproductivity/digital_twin/state.py +77 -0
  408. mineproductivity-2.0.0/src/mineproductivity/digital_twin/synchronization.py +230 -0
  409. mineproductivity-2.0.0/src/mineproductivity/digital_twin/telemetry.py +50 -0
  410. mineproductivity-2.0.0/src/mineproductivity/events/README.md +203 -0
  411. mineproductivity-2.0.0/src/mineproductivity/events/__init__.py +83 -0
  412. mineproductivity-2.0.0/src/mineproductivity/events/base_event.py +44 -0
  413. mineproductivity-2.0.0/src/mineproductivity/events/bus.py +98 -0
  414. mineproductivity-2.0.0/src/mineproductivity/events/canonical/__init__.py +60 -0
  415. mineproductivity-2.0.0/src/mineproductivity/events/canonical/consumption_event.py +53 -0
  416. mineproductivity-2.0.0/src/mineproductivity/events/canonical/cycle_event.py +74 -0
  417. mineproductivity-2.0.0/src/mineproductivity/events/canonical/delay_event.py +46 -0
  418. mineproductivity-2.0.0/src/mineproductivity/events/canonical/maintenance_event.py +51 -0
  419. mineproductivity-2.0.0/src/mineproductivity/events/canonical/production_event.py +46 -0
  420. mineproductivity-2.0.0/src/mineproductivity/events/canonical/safety_event.py +54 -0
  421. mineproductivity-2.0.0/src/mineproductivity/events/envelope.py +88 -0
  422. mineproductivity-2.0.0/src/mineproductivity/events/exceptions.py +48 -0
  423. mineproductivity-2.0.0/src/mineproductivity/events/identifier.py +69 -0
  424. mineproductivity-2.0.0/src/mineproductivity/events/replay.py +63 -0
  425. mineproductivity-2.0.0/src/mineproductivity/events/schema.py +73 -0
  426. mineproductivity-2.0.0/src/mineproductivity/events/serialization/__init__.py +16 -0
  427. mineproductivity-2.0.0/src/mineproductivity/events/serialization/arrow_codec.py +91 -0
  428. mineproductivity-2.0.0/src/mineproductivity/events/serialization/json_codec.py +126 -0
  429. mineproductivity-2.0.0/src/mineproductivity/events/serialization/parquet_codec.py +100 -0
  430. mineproductivity-2.0.0/src/mineproductivity/events/snapshot.py +38 -0
  431. mineproductivity-2.0.0/src/mineproductivity/events/store.py +219 -0
  432. mineproductivity-2.0.0/src/mineproductivity/events/validation.py +118 -0
  433. mineproductivity-2.0.0/src/mineproductivity/events/versioning.py +31 -0
  434. mineproductivity-2.0.0/src/mineproductivity/exceptions/README.md +39 -0
  435. mineproductivity-2.0.0/src/mineproductivity/exceptions/__init__.py +7 -0
  436. mineproductivity-2.0.0/src/mineproductivity/io/README.md +39 -0
  437. mineproductivity-2.0.0/src/mineproductivity/io/__init__.py +7 -0
  438. mineproductivity-2.0.0/src/mineproductivity/kpis/README.md +245 -0
  439. mineproductivity-2.0.0/src/mineproductivity/kpis/__init__.py +96 -0
  440. mineproductivity-2.0.0/src/mineproductivity/kpis/_registry.py +61 -0
  441. mineproductivity-2.0.0/src/mineproductivity/kpis/aggregation.py +63 -0
  442. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/__init__.py +44 -0
  443. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/base_backend.py +78 -0
  444. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/duckdb_backend.py +59 -0
  445. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/numpy_backend.py +83 -0
  446. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/pandas_backend.py +48 -0
  447. mineproductivity-2.0.0/src/mineproductivity/kpis/backends/polars_backend.py +55 -0
  448. mineproductivity-2.0.0/src/mineproductivity/kpis/base_kpi.py +72 -0
  449. mineproductivity-2.0.0/src/mineproductivity/kpis/caching.py +79 -0
  450. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/__init__.py +30 -0
  451. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/_common.py +38 -0
  452. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/cost_kpi.py +18 -0
  453. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/delay_kpi.py +31 -0
  454. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/energy_kpi.py +19 -0
  455. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/haulage_kpi.py +18 -0
  456. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/maintenance_kpi.py +18 -0
  457. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/production_kpi.py +20 -0
  458. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/quality_kpi.py +18 -0
  459. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/safety_kpi.py +19 -0
  460. mineproductivity-2.0.0/src/mineproductivity/kpis/categories/utilization_kpi.py +20 -0
  461. mineproductivity-2.0.0/src/mineproductivity/kpis/certification.py +57 -0
  462. mineproductivity-2.0.0/src/mineproductivity/kpis/composite.py +61 -0
  463. mineproductivity-2.0.0/src/mineproductivity/kpis/dependency_graph.py +93 -0
  464. mineproductivity-2.0.0/src/mineproductivity/kpis/engine.py +223 -0
  465. mineproductivity-2.0.0/src/mineproductivity/kpis/exceptions.py +42 -0
  466. mineproductivity-2.0.0/src/mineproductivity/kpis/inheritance.py +54 -0
  467. mineproductivity-2.0.0/src/mineproductivity/kpis/lifecycle.py +20 -0
  468. mineproductivity-2.0.0/src/mineproductivity/kpis/metadata.py +151 -0
  469. mineproductivity-2.0.0/src/mineproductivity/kpis/naming.py +97 -0
  470. mineproductivity-2.0.0/src/mineproductivity/kpis/result.py +61 -0
  471. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/__init__.py +46 -0
  472. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/cost.py +70 -0
  473. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/delay.py +48 -0
  474. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/energy.py +50 -0
  475. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/haulage.py +51 -0
  476. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/maintenance.py +46 -0
  477. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/production.py +53 -0
  478. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/quality.py +49 -0
  479. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/safety.py +54 -0
  480. mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/utilization.py +211 -0
  481. mineproductivity-2.0.0/src/mineproductivity/kpis/validation.py +67 -0
  482. mineproductivity-2.0.0/src/mineproductivity/kpis/windowing.py +68 -0
  483. mineproductivity-2.0.0/src/mineproductivity/ontology/README.md +242 -0
  484. mineproductivity-2.0.0/src/mineproductivity/ontology/__init__.py +119 -0
  485. mineproductivity-2.0.0/src/mineproductivity/ontology/cost/__init__.py +7 -0
  486. mineproductivity-2.0.0/src/mineproductivity/ontology/cost/cost_center.py +56 -0
  487. mineproductivity-2.0.0/src/mineproductivity/ontology/entity_type.py +241 -0
  488. mineproductivity-2.0.0/src/mineproductivity/ontology/environmental/__init__.py +7 -0
  489. mineproductivity-2.0.0/src/mineproductivity/ontology/environmental/emissions.py +65 -0
  490. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/__init__.py +35 -0
  491. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/ancillary.py +57 -0
  492. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/drill.py +27 -0
  493. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/equipment_type.py +53 -0
  494. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/fixed_plant.py +56 -0
  495. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/haul_truck.py +53 -0
  496. mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/loading_unit.py +61 -0
  497. mineproductivity-2.0.0/src/mineproductivity/ontology/exceptions.py +23 -0
  498. mineproductivity-2.0.0/src/mineproductivity/ontology/graph_projection.py +53 -0
  499. mineproductivity-2.0.0/src/mineproductivity/ontology/location/__init__.py +10 -0
  500. mineproductivity-2.0.0/src/mineproductivity/ontology/location/mine.py +45 -0
  501. mineproductivity-2.0.0/src/mineproductivity/ontology/location/pit.py +68 -0
  502. mineproductivity-2.0.0/src/mineproductivity/ontology/location/route.py +72 -0
  503. mineproductivity-2.0.0/src/mineproductivity/ontology/location/underground.py +77 -0
  504. mineproductivity-2.0.0/src/mineproductivity/ontology/maintenance/__init__.py +7 -0
  505. mineproductivity-2.0.0/src/mineproductivity/ontology/maintenance/failure_mode.py +73 -0
  506. mineproductivity-2.0.0/src/mineproductivity/ontology/material/__init__.py +8 -0
  507. mineproductivity-2.0.0/src/mineproductivity/ontology/material/commodity.py +44 -0
  508. mineproductivity-2.0.0/src/mineproductivity/ontology/material/material_type.py +15 -0
  509. mineproductivity-2.0.0/src/mineproductivity/ontology/organization/__init__.py +9 -0
  510. mineproductivity-2.0.0/src/mineproductivity/ontology/organization/business_unit.py +45 -0
  511. mineproductivity-2.0.0/src/mineproductivity/ontology/organization/crew.py +61 -0
  512. mineproductivity-2.0.0/src/mineproductivity/ontology/organization/fleet.py +43 -0
  513. mineproductivity-2.0.0/src/mineproductivity/ontology/production/__init__.py +7 -0
  514. mineproductivity-2.0.0/src/mineproductivity/ontology/production/shift.py +95 -0
  515. mineproductivity-2.0.0/src/mineproductivity/ontology/quality/__init__.py +7 -0
  516. mineproductivity-2.0.0/src/mineproductivity/ontology/quality/grade.py +74 -0
  517. mineproductivity-2.0.0/src/mineproductivity/ontology/reference/__init__.py +12 -0
  518. mineproductivity-2.0.0/src/mineproductivity/ontology/reference/delay_taxonomy.py +47 -0
  519. mineproductivity-2.0.0/src/mineproductivity/ontology/relationship.py +50 -0
  520. mineproductivity-2.0.0/src/mineproductivity/ontology/safety/__init__.py +7 -0
  521. mineproductivity-2.0.0/src/mineproductivity/ontology/safety/hazard.py +86 -0
  522. mineproductivity-2.0.0/src/mineproductivity/ontology/validation.py +75 -0
  523. mineproductivity-2.0.0/src/mineproductivity/optimization/README.md +34 -0
  524. mineproductivity-2.0.0/src/mineproductivity/optimization/__init__.py +112 -0
  525. mineproductivity-2.0.0/src/mineproductivity/optimization/_registry.py +47 -0
  526. mineproductivity-2.0.0/src/mineproductivity/optimization/abstractions.py +109 -0
  527. mineproductivity-2.0.0/src/mineproductivity/optimization/comparison.py +64 -0
  528. mineproductivity-2.0.0/src/mineproductivity/optimization/constraint_programming.py +38 -0
  529. mineproductivity-2.0.0/src/mineproductivity/optimization/discovery.py +80 -0
  530. mineproductivity-2.0.0/src/mineproductivity/optimization/evolutionary.py +49 -0
  531. mineproductivity-2.0.0/src/mineproductivity/optimization/exceptions.py +49 -0
  532. mineproductivity-2.0.0/src/mineproductivity/optimization/executor.py +234 -0
  533. mineproductivity-2.0.0/src/mineproductivity/optimization/linear_programming.py +44 -0
  534. mineproductivity-2.0.0/src/mineproductivity/optimization/metadata.py +72 -0
  535. mineproductivity-2.0.0/src/mineproductivity/optimization/mixed_integer_programming.py +43 -0
  536. mineproductivity-2.0.0/src/mineproductivity/optimization/multi_objective.py +43 -0
  537. mineproductivity-2.0.0/src/mineproductivity/optimization/network_optimization.py +43 -0
  538. mineproductivity-2.0.0/src/mineproductivity/optimization/persistence.py +23 -0
  539. mineproductivity-2.0.0/src/mineproductivity/optimization/problem.py +238 -0
  540. mineproductivity-2.0.0/src/mineproductivity/optimization/result.py +61 -0
  541. mineproductivity-2.0.0/src/mineproductivity/optimization/run.py +71 -0
  542. mineproductivity-2.0.0/src/mineproductivity/optimization/sensitivity.py +130 -0
  543. mineproductivity-2.0.0/src/mineproductivity/optimization/state.py +48 -0
  544. mineproductivity-2.0.0/src/mineproductivity/plugins/README.md +148 -0
  545. mineproductivity-2.0.0/src/mineproductivity/plugins/__init__.py +33 -0
  546. mineproductivity-2.0.0/src/mineproductivity/plugins/dependency.py +70 -0
  547. mineproductivity-2.0.0/src/mineproductivity/plugins/exceptions.py +18 -0
  548. mineproductivity-2.0.0/src/mineproductivity/plugins/lifecycle.py +140 -0
  549. mineproductivity-2.0.0/src/mineproductivity/plugins/loader.py +53 -0
  550. mineproductivity-2.0.0/src/mineproductivity/plugins/manifest.py +57 -0
  551. mineproductivity-2.0.0/src/mineproductivity/py.typed +0 -0
  552. mineproductivity-2.0.0/src/mineproductivity/registry/README.md +172 -0
  553. mineproductivity-2.0.0/src/mineproductivity/registry/__init__.py +43 -0
  554. mineproductivity-2.0.0/src/mineproductivity/registry/caching.py +55 -0
  555. mineproductivity-2.0.0/src/mineproductivity/registry/decorators.py +63 -0
  556. mineproductivity-2.0.0/src/mineproductivity/registry/entry_point.py +80 -0
  557. mineproductivity-2.0.0/src/mineproductivity/registry/exceptions.py +34 -0
  558. mineproductivity-2.0.0/src/mineproductivity/registry/registry.py +141 -0
  559. mineproductivity-2.0.0/src/mineproductivity/registry/version_compat.py +75 -0
  560. mineproductivity-2.0.0/src/mineproductivity/simulation/README.md +62 -0
  561. mineproductivity-2.0.0/src/mineproductivity/simulation/__init__.py +115 -0
  562. mineproductivity-2.0.0/src/mineproductivity/simulation/_registry.py +63 -0
  563. mineproductivity-2.0.0/src/mineproductivity/simulation/abstractions.py +127 -0
  564. mineproductivity-2.0.0/src/mineproductivity/simulation/caching.py +80 -0
  565. mineproductivity-2.0.0/src/mineproductivity/simulation/calibration.py +55 -0
  566. mineproductivity-2.0.0/src/mineproductivity/simulation/clock.py +82 -0
  567. mineproductivity-2.0.0/src/mineproductivity/simulation/comparison.py +95 -0
  568. mineproductivity-2.0.0/src/mineproductivity/simulation/discovery.py +104 -0
  569. mineproductivity-2.0.0/src/mineproductivity/simulation/discrete_event.py +50 -0
  570. mineproductivity-2.0.0/src/mineproductivity/simulation/exceptions.py +52 -0
  571. mineproductivity-2.0.0/src/mineproductivity/simulation/executor.py +275 -0
  572. mineproductivity-2.0.0/src/mineproductivity/simulation/experiment.py +117 -0
  573. mineproductivity-2.0.0/src/mineproductivity/simulation/metadata.py +92 -0
  574. mineproductivity-2.0.0/src/mineproductivity/simulation/montecarlo.py +58 -0
  575. mineproductivity-2.0.0/src/mineproductivity/simulation/persistence.py +29 -0
  576. mineproductivity-2.0.0/src/mineproductivity/simulation/replay.py +73 -0
  577. mineproductivity-2.0.0/src/mineproductivity/simulation/result.py +66 -0
  578. mineproductivity-2.0.0/src/mineproductivity/simulation/run.py +93 -0
  579. mineproductivity-2.0.0/src/mineproductivity/simulation/scenario.py +156 -0
  580. mineproductivity-2.0.0/src/mineproductivity/simulation/sensitivity.py +92 -0
  581. mineproductivity-2.0.0/src/mineproductivity/simulation/state.py +70 -0
  582. mineproductivity-2.0.0/src/mineproductivity/simulation/system_dynamics.py +49 -0
  583. mineproductivity-2.0.0/src/mineproductivity/typing/why.txt +15 -0
  584. mineproductivity-2.0.0/src/mineproductivity/utils/README.md +39 -0
  585. mineproductivity-2.0.0/src/mineproductivity/utils/__init__.py +7 -0
  586. mineproductivity-2.0.0/src/mineproductivity/validation/README.md +39 -0
  587. mineproductivity-2.0.0/src/mineproductivity/validation/__init__.py +7 -0
  588. mineproductivity-2.0.0/src/mineproductivity/visualization/README.md +27 -0
  589. mineproductivity-2.0.0/src/mineproductivity/visualization/__init__.py +84 -0
  590. mineproductivity-2.0.0/src/mineproductivity/visualization/_registry.py +85 -0
  591. mineproductivity-2.0.0/src/mineproductivity/visualization/abstractions.py +179 -0
  592. mineproductivity-2.0.0/src/mineproductivity/visualization/dashboard.py +64 -0
  593. mineproductivity-2.0.0/src/mineproductivity/visualization/dashboard_builder.py +107 -0
  594. mineproductivity-2.0.0/src/mineproductivity/visualization/discovery.py +46 -0
  595. mineproductivity-2.0.0/src/mineproductivity/visualization/exceptions.py +42 -0
  596. mineproductivity-2.0.0/src/mineproductivity/visualization/export.py +62 -0
  597. mineproductivity-2.0.0/src/mineproductivity/visualization/layout.py +44 -0
  598. mineproductivity-2.0.0/src/mineproductivity/visualization/persistence.py +26 -0
  599. mineproductivity-2.0.0/src/mineproductivity/visualization/pipeline.py +88 -0
  600. mineproductivity-2.0.0/src/mineproductivity/visualization/presentation.py +56 -0
  601. mineproductivity-2.0.0/src/mineproductivity/visualization/renderer.py +90 -0
  602. mineproductivity-2.0.0/src/mineproductivity/visualization/report.py +47 -0
  603. mineproductivity-2.0.0/src/mineproductivity/visualization/report_builder.py +63 -0
  604. mineproductivity-2.0.0/src/mineproductivity/visualization/theme.py +44 -0
  605. mineproductivity-2.0.0/src/mineproductivity/visualization/widget.py +49 -0
  606. mineproductivity-2.0.0/tests/README.md +39 -0
  607. mineproductivity-2.0.0/tests/datasets/README.md +31 -0
  608. mineproductivity-2.0.0/tests/fixtures/README.md +32 -0
  609. mineproductivity-2.0.0/tests/fixtures/connectors/README.md +19 -0
  610. mineproductivity-2.0.0/tests/fixtures/connectors/cycle_events.csv +5 -0
  611. mineproductivity-2.0.0/tests/fixtures/connectors/delay_events.csv +4 -0
  612. mineproductivity-2.0.0/tests/fixtures/connectors/local_timezone_cycle_events.csv +3 -0
  613. mineproductivity-2.0.0/tests/fixtures/connectors/malformed_cycle_events.csv +10 -0
  614. mineproductivity-2.0.0/tests/fixtures/kpis/README.md +26 -0
  615. mineproductivity-2.0.0/tests/fixtures/kpis/consumption_events.csv +3 -0
  616. mineproductivity-2.0.0/tests/fixtures/kpis/cycle_events.csv +13 -0
  617. mineproductivity-2.0.0/tests/fixtures/kpis/delay_events.csv +3 -0
  618. mineproductivity-2.0.0/tests/fixtures/kpis/maintenance_events.csv +2 -0
  619. mineproductivity-2.0.0/tests/fixtures/kpis/production_events.csv +2 -0
  620. mineproductivity-2.0.0/tests/fixtures/kpis/safety_events.csv +3 -0
  621. mineproductivity-2.0.0/tests/fixtures/plugins/README.md +25 -0
  622. mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_broken/mineproductivity_registry_fixture_broken/__init__.py +9 -0
  623. mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_broken/pyproject.toml +16 -0
  624. mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_healthy/mineproductivity_registry_fixture_healthy/__init__.py +7 -0
  625. mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_healthy/pyproject.toml +16 -0
  626. mineproductivity-2.0.0/tests/golden/README.md +32 -0
  627. mineproductivity-2.0.0/tests/integration/README.md +36 -0
  628. mineproductivity-2.0.0/tests/integration/__init__.py +0 -0
  629. mineproductivity-2.0.0/tests/integration/conftest.py +39 -0
  630. mineproductivity-2.0.0/tests/integration/test_connector_pipeline.py +161 -0
  631. mineproductivity-2.0.0/tests/integration/test_events_pipeline.py +275 -0
  632. mineproductivity-2.0.0/tests/integration/test_kpi_pipeline.py +278 -0
  633. mineproductivity-2.0.0/tests/integration/test_ontology_model.py +255 -0
  634. mineproductivity-2.0.0/tests/integration/test_registry_plugin_discovery.py +117 -0
  635. mineproductivity-2.0.0/tests/integration/test_simulation_experiment.py +115 -0
  636. mineproductivity-2.0.0/tests/performance/README.md +32 -0
  637. mineproductivity-2.0.0/tests/regression/README.md +32 -0
  638. mineproductivity-2.0.0/tests/unit/README.md +32 -0
  639. mineproductivity-2.0.0/tests/unit/__init__.py +0 -0
  640. mineproductivity-2.0.0/tests/unit/agents/README.md +29 -0
  641. mineproductivity-2.0.0/tests/unit/agents/__init__.py +0 -0
  642. mineproductivity-2.0.0/tests/unit/agents/test__registry.py +250 -0
  643. mineproductivity-2.0.0/tests/unit/agents/test_abstractions.py +91 -0
  644. mineproductivity-2.0.0/tests/unit/agents/test_approval.py +43 -0
  645. mineproductivity-2.0.0/tests/unit/agents/test_audit.py +104 -0
  646. mineproductivity-2.0.0/tests/unit/agents/test_capability.py +59 -0
  647. mineproductivity-2.0.0/tests/unit/agents/test_communication.py +110 -0
  648. mineproductivity-2.0.0/tests/unit/agents/test_conversation.py +45 -0
  649. mineproductivity-2.0.0/tests/unit/agents/test_discovery.py +79 -0
  650. mineproductivity-2.0.0/tests/unit/agents/test_exceptions.py +46 -0
  651. mineproductivity-2.0.0/tests/unit/agents/test_executor.py +449 -0
  652. mineproductivity-2.0.0/tests/unit/agents/test_goal.py +31 -0
  653. mineproductivity-2.0.0/tests/unit/agents/test_memory.py +58 -0
  654. mineproductivity-2.0.0/tests/unit/agents/test_metadata.py +59 -0
  655. mineproductivity-2.0.0/tests/unit/agents/test_persistence.py +61 -0
  656. mineproductivity-2.0.0/tests/unit/agents/test_policy.py +214 -0
  657. mineproductivity-2.0.0/tests/unit/agents/test_public_api.py +264 -0
  658. mineproductivity-2.0.0/tests/unit/agents/test_result.py +65 -0
  659. mineproductivity-2.0.0/tests/unit/agents/test_state.py +36 -0
  660. mineproductivity-2.0.0/tests/unit/agents/test_task.py +100 -0
  661. mineproductivity-2.0.0/tests/unit/agents/test_tool.py +83 -0
  662. mineproductivity-2.0.0/tests/unit/agents/test_workflow.py +345 -0
  663. mineproductivity-2.0.0/tests/unit/analytics/README.md +29 -0
  664. mineproductivity-2.0.0/tests/unit/analytics/__init__.py +0 -0
  665. mineproductivity-2.0.0/tests/unit/analytics/conftest.py +110 -0
  666. mineproductivity-2.0.0/tests/unit/analytics/test__registry.py +127 -0
  667. mineproductivity-2.0.0/tests/unit/analytics/test_abstractions.py +123 -0
  668. mineproductivity-2.0.0/tests/unit/analytics/test_aggregation.py +271 -0
  669. mineproductivity-2.0.0/tests/unit/analytics/test_anomaly.py +208 -0
  670. mineproductivity-2.0.0/tests/unit/analytics/test_baseline.py +248 -0
  671. mineproductivity-2.0.0/tests/unit/analytics/test_batch.py +147 -0
  672. mineproductivity-2.0.0/tests/unit/analytics/test_benchmarking.py +394 -0
  673. mineproductivity-2.0.0/tests/unit/analytics/test_exceptions.py +42 -0
  674. mineproductivity-2.0.0/tests/unit/analytics/test_forecasting.py +169 -0
  675. mineproductivity-2.0.0/tests/unit/analytics/test_incremental.py +227 -0
  676. mineproductivity-2.0.0/tests/unit/analytics/test_metadata.py +114 -0
  677. mineproductivity-2.0.0/tests/unit/analytics/test_outliers.py +216 -0
  678. mineproductivity-2.0.0/tests/unit/analytics/test_pipeline.py +144 -0
  679. mineproductivity-2.0.0/tests/unit/analytics/test_public_api.py +128 -0
  680. mineproductivity-2.0.0/tests/unit/analytics/test_quality.py +426 -0
  681. mineproductivity-2.0.0/tests/unit/analytics/test_result.py +275 -0
  682. mineproductivity-2.0.0/tests/unit/analytics/test_rolling.py +164 -0
  683. mineproductivity-2.0.0/tests/unit/analytics/test_statistics.py +247 -0
  684. mineproductivity-2.0.0/tests/unit/analytics/test_streaming.py +290 -0
  685. mineproductivity-2.0.0/tests/unit/analytics/test_timeseries.py +151 -0
  686. mineproductivity-2.0.0/tests/unit/analytics/test_trend.py +201 -0
  687. mineproductivity-2.0.0/tests/unit/analytics/test_windowing.py +59 -0
  688. mineproductivity-2.0.0/tests/unit/benchmark/README.md +29 -0
  689. mineproductivity-2.0.0/tests/unit/benchmark/__init__.py +0 -0
  690. mineproductivity-2.0.0/tests/unit/certification/README.md +29 -0
  691. mineproductivity-2.0.0/tests/unit/certification/__init__.py +0 -0
  692. mineproductivity-2.0.0/tests/unit/cli/README.md +29 -0
  693. mineproductivity-2.0.0/tests/unit/cli/__init__.py +0 -0
  694. mineproductivity-2.0.0/tests/unit/config/README.md +29 -0
  695. mineproductivity-2.0.0/tests/unit/config/__init__.py +0 -0
  696. mineproductivity-2.0.0/tests/unit/connectors/README.md +35 -0
  697. mineproductivity-2.0.0/tests/unit/connectors/__init__.py +0 -0
  698. mineproductivity-2.0.0/tests/unit/connectors/file/__init__.py +0 -0
  699. mineproductivity-2.0.0/tests/unit/connectors/file/test_common.py +143 -0
  700. mineproductivity-2.0.0/tests/unit/connectors/file/test_csv_connector.py +171 -0
  701. mineproductivity-2.0.0/tests/unit/connectors/file/test_excel_connector.py +144 -0
  702. mineproductivity-2.0.0/tests/unit/connectors/network/__init__.py +0 -0
  703. mineproductivity-2.0.0/tests/unit/connectors/network/conftest.py +49 -0
  704. mineproductivity-2.0.0/tests/unit/connectors/network/test_graphql_connector.py +200 -0
  705. mineproductivity-2.0.0/tests/unit/connectors/network/test_rest_connector.py +221 -0
  706. mineproductivity-2.0.0/tests/unit/connectors/oem/__init__.py +0 -0
  707. mineproductivity-2.0.0/tests/unit/connectors/oem/test_oem_shapes.py +110 -0
  708. mineproductivity-2.0.0/tests/unit/connectors/streaming/__init__.py +0 -0
  709. mineproductivity-2.0.0/tests/unit/connectors/streaming/test_common.py +78 -0
  710. mineproductivity-2.0.0/tests/unit/connectors/streaming/test_kafka_connector.py +81 -0
  711. mineproductivity-2.0.0/tests/unit/connectors/streaming/test_mqtt_connector.py +64 -0
  712. mineproductivity-2.0.0/tests/unit/connectors/test_auth.py +75 -0
  713. mineproductivity-2.0.0/tests/unit/connectors/test_base.py +94 -0
  714. mineproductivity-2.0.0/tests/unit/connectors/test_connector_registry.py +60 -0
  715. mineproductivity-2.0.0/tests/unit/connectors/test_contract_tests.py +129 -0
  716. mineproductivity-2.0.0/tests/unit/connectors/test_exceptions.py +35 -0
  717. mineproductivity-2.0.0/tests/unit/connectors/test_health.py +39 -0
  718. mineproductivity-2.0.0/tests/unit/connectors/test_normalization.py +99 -0
  719. mineproductivity-2.0.0/tests/unit/connectors/test_public_api.py +129 -0
  720. mineproductivity-2.0.0/tests/unit/connectors/test_retry.py +148 -0
  721. mineproductivity-2.0.0/tests/unit/core/README.md +49 -0
  722. mineproductivity-2.0.0/tests/unit/core/__init__.py +0 -0
  723. mineproductivity-2.0.0/tests/unit/core/test_builder.py +52 -0
  724. mineproductivity-2.0.0/tests/unit/core/test_configuration.py +51 -0
  725. mineproductivity-2.0.0/tests/unit/core/test_entity.py +76 -0
  726. mineproductivity-2.0.0/tests/unit/core/test_exceptions.py +68 -0
  727. mineproductivity-2.0.0/tests/unit/core/test_factory.py +41 -0
  728. mineproductivity-2.0.0/tests/unit/core/test_identifier.py +56 -0
  729. mineproductivity-2.0.0/tests/unit/core/test_maybe.py +98 -0
  730. mineproductivity-2.0.0/tests/unit/core/test_metadata.py +79 -0
  731. mineproductivity-2.0.0/tests/unit/core/test_public_api.py +94 -0
  732. mineproductivity-2.0.0/tests/unit/core/test_repository.py +98 -0
  733. mineproductivity-2.0.0/tests/unit/core/test_result.py +110 -0
  734. mineproductivity-2.0.0/tests/unit/core/test_serialization.py +216 -0
  735. mineproductivity-2.0.0/tests/unit/core/test_service.py +23 -0
  736. mineproductivity-2.0.0/tests/unit/core/test_specification.py +87 -0
  737. mineproductivity-2.0.0/tests/unit/core/test_typing.py +55 -0
  738. mineproductivity-2.0.0/tests/unit/core/test_validator.py +83 -0
  739. mineproductivity-2.0.0/tests/unit/core/test_value_object.py +91 -0
  740. mineproductivity-2.0.0/tests/unit/core/test_versioning.py +62 -0
  741. mineproductivity-2.0.0/tests/unit/datasets/README.md +29 -0
  742. mineproductivity-2.0.0/tests/unit/datasets/__init__.py +0 -0
  743. mineproductivity-2.0.0/tests/unit/decision/README.md +52 -0
  744. mineproductivity-2.0.0/tests/unit/decision/__init__.py +0 -0
  745. mineproductivity-2.0.0/tests/unit/decision/test__registry.py +154 -0
  746. mineproductivity-2.0.0/tests/unit/decision/test_abstractions.py +221 -0
  747. mineproductivity-2.0.0/tests/unit/decision/test_alerting.py +97 -0
  748. mineproductivity-2.0.0/tests/unit/decision/test_audit.py +147 -0
  749. mineproductivity-2.0.0/tests/unit/decision/test_batch.py +82 -0
  750. mineproductivity-2.0.0/tests/unit/decision/test_exceptions.py +47 -0
  751. mineproductivity-2.0.0/tests/unit/decision/test_explanation.py +158 -0
  752. mineproductivity-2.0.0/tests/unit/decision/test_metadata.py +91 -0
  753. mineproductivity-2.0.0/tests/unit/decision/test_pipeline.py +131 -0
  754. mineproductivity-2.0.0/tests/unit/decision/test_planning.py +115 -0
  755. mineproductivity-2.0.0/tests/unit/decision/test_policy.py +266 -0
  756. mineproductivity-2.0.0/tests/unit/decision/test_prioritization.py +84 -0
  757. mineproductivity-2.0.0/tests/unit/decision/test_public_api.py +170 -0
  758. mineproductivity-2.0.0/tests/unit/decision/test_ranking.py +156 -0
  759. mineproductivity-2.0.0/tests/unit/decision/test_realtime.py +404 -0
  760. mineproductivity-2.0.0/tests/unit/decision/test_recommendation.py +102 -0
  761. mineproductivity-2.0.0/tests/unit/decision/test_result.py +271 -0
  762. mineproductivity-2.0.0/tests/unit/decision/test_root_cause.py +73 -0
  763. mineproductivity-2.0.0/tests/unit/decision/test_rules.py +131 -0
  764. mineproductivity-2.0.0/tests/unit/decision/test_scoring.py +136 -0
  765. mineproductivity-2.0.0/tests/unit/decision/test_strategy.py +303 -0
  766. mineproductivity-2.0.0/tests/unit/decision/test_thresholds.py +49 -0
  767. mineproductivity-2.0.0/tests/unit/decision/test_what_if.py +74 -0
  768. mineproductivity-2.0.0/tests/unit/digital_twin/README.md +32 -0
  769. mineproductivity-2.0.0/tests/unit/digital_twin/__init__.py +0 -0
  770. mineproductivity-2.0.0/tests/unit/digital_twin/test__registry.py +155 -0
  771. mineproductivity-2.0.0/tests/unit/digital_twin/test_abstractions.py +180 -0
  772. mineproductivity-2.0.0/tests/unit/digital_twin/test_caching.py +78 -0
  773. mineproductivity-2.0.0/tests/unit/digital_twin/test_categories.py +122 -0
  774. mineproductivity-2.0.0/tests/unit/digital_twin/test_discovery.py +105 -0
  775. mineproductivity-2.0.0/tests/unit/digital_twin/test_exceptions.py +44 -0
  776. mineproductivity-2.0.0/tests/unit/digital_twin/test_lifecycle.py +26 -0
  777. mineproductivity-2.0.0/tests/unit/digital_twin/test_metadata.py +75 -0
  778. mineproductivity-2.0.0/tests/unit/digital_twin/test_persistence.py +128 -0
  779. mineproductivity-2.0.0/tests/unit/digital_twin/test_public_api.py +244 -0
  780. mineproductivity-2.0.0/tests/unit/digital_twin/test_result.py +112 -0
  781. mineproductivity-2.0.0/tests/unit/digital_twin/test_simulation.py +84 -0
  782. mineproductivity-2.0.0/tests/unit/digital_twin/test_snapshot.py +84 -0
  783. mineproductivity-2.0.0/tests/unit/digital_twin/test_state.py +73 -0
  784. mineproductivity-2.0.0/tests/unit/digital_twin/test_synchronization.py +531 -0
  785. mineproductivity-2.0.0/tests/unit/digital_twin/test_telemetry.py +59 -0
  786. mineproductivity-2.0.0/tests/unit/events/README.md +47 -0
  787. mineproductivity-2.0.0/tests/unit/events/__init__.py +0 -0
  788. mineproductivity-2.0.0/tests/unit/events/canonical/__init__.py +0 -0
  789. mineproductivity-2.0.0/tests/unit/events/canonical/test_canonical_registry.py +40 -0
  790. mineproductivity-2.0.0/tests/unit/events/canonical/test_consumption_event.py +49 -0
  791. mineproductivity-2.0.0/tests/unit/events/canonical/test_cycle_event.py +91 -0
  792. mineproductivity-2.0.0/tests/unit/events/canonical/test_delay_event.py +57 -0
  793. mineproductivity-2.0.0/tests/unit/events/canonical/test_maintenance_event.py +57 -0
  794. mineproductivity-2.0.0/tests/unit/events/canonical/test_production_event.py +50 -0
  795. mineproductivity-2.0.0/tests/unit/events/canonical/test_safety_event.py +53 -0
  796. mineproductivity-2.0.0/tests/unit/events/conftest.py +59 -0
  797. mineproductivity-2.0.0/tests/unit/events/serialization/__init__.py +0 -0
  798. mineproductivity-2.0.0/tests/unit/events/serialization/test_arrow_codec.py +72 -0
  799. mineproductivity-2.0.0/tests/unit/events/serialization/test_json_codec.py +188 -0
  800. mineproductivity-2.0.0/tests/unit/events/serialization/test_parquet_codec.py +101 -0
  801. mineproductivity-2.0.0/tests/unit/events/test_base_event.py +47 -0
  802. mineproductivity-2.0.0/tests/unit/events/test_bus.py +87 -0
  803. mineproductivity-2.0.0/tests/unit/events/test_envelope.py +161 -0
  804. mineproductivity-2.0.0/tests/unit/events/test_exceptions.py +59 -0
  805. mineproductivity-2.0.0/tests/unit/events/test_identifier.py +61 -0
  806. mineproductivity-2.0.0/tests/unit/events/test_public_api.py +125 -0
  807. mineproductivity-2.0.0/tests/unit/events/test_replay.py +50 -0
  808. mineproductivity-2.0.0/tests/unit/events/test_schema.py +62 -0
  809. mineproductivity-2.0.0/tests/unit/events/test_snapshot.py +26 -0
  810. mineproductivity-2.0.0/tests/unit/events/test_store.py +379 -0
  811. mineproductivity-2.0.0/tests/unit/events/test_validation.py +133 -0
  812. mineproductivity-2.0.0/tests/unit/events/test_versioning.py +24 -0
  813. mineproductivity-2.0.0/tests/unit/exceptions/README.md +29 -0
  814. mineproductivity-2.0.0/tests/unit/exceptions/__init__.py +0 -0
  815. mineproductivity-2.0.0/tests/unit/io/README.md +29 -0
  816. mineproductivity-2.0.0/tests/unit/io/__init__.py +0 -0
  817. mineproductivity-2.0.0/tests/unit/kpis/README.md +38 -0
  818. mineproductivity-2.0.0/tests/unit/kpis/__init__.py +0 -0
  819. mineproductivity-2.0.0/tests/unit/kpis/backends/__init__.py +0 -0
  820. mineproductivity-2.0.0/tests/unit/kpis/backends/test_backend_parity.py +88 -0
  821. mineproductivity-2.0.0/tests/unit/kpis/backends/test_backends_init.py +28 -0
  822. mineproductivity-2.0.0/tests/unit/kpis/backends/test_base_backend.py +39 -0
  823. mineproductivity-2.0.0/tests/unit/kpis/backends/test_duckdb_backend.py +83 -0
  824. mineproductivity-2.0.0/tests/unit/kpis/backends/test_numpy_backend.py +110 -0
  825. mineproductivity-2.0.0/tests/unit/kpis/backends/test_pandas_backend.py +89 -0
  826. mineproductivity-2.0.0/tests/unit/kpis/backends/test_polars_backend.py +79 -0
  827. mineproductivity-2.0.0/tests/unit/kpis/categories/__init__.py +0 -0
  828. mineproductivity-2.0.0/tests/unit/kpis/categories/test_category_bases.py +128 -0
  829. mineproductivity-2.0.0/tests/unit/kpis/categories/test_common.py +102 -0
  830. mineproductivity-2.0.0/tests/unit/kpis/conftest.py +66 -0
  831. mineproductivity-2.0.0/tests/unit/kpis/standard_library/__init__.py +0 -0
  832. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_cost.py +68 -0
  833. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_delay.py +22 -0
  834. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_energy.py +30 -0
  835. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_haulage.py +49 -0
  836. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_maintenance.py +26 -0
  837. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_production.py +52 -0
  838. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_quality.py +35 -0
  839. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_safety.py +40 -0
  840. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_standard_library_init.py +74 -0
  841. mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_utilization.py +141 -0
  842. mineproductivity-2.0.0/tests/unit/kpis/test_aggregation.py +82 -0
  843. mineproductivity-2.0.0/tests/unit/kpis/test_base_kpi.py +108 -0
  844. mineproductivity-2.0.0/tests/unit/kpis/test_caching.py +150 -0
  845. mineproductivity-2.0.0/tests/unit/kpis/test_certification.py +82 -0
  846. mineproductivity-2.0.0/tests/unit/kpis/test_composite.py +86 -0
  847. mineproductivity-2.0.0/tests/unit/kpis/test_dependency_graph.py +164 -0
  848. mineproductivity-2.0.0/tests/unit/kpis/test_engine.py +604 -0
  849. mineproductivity-2.0.0/tests/unit/kpis/test_exceptions.py +47 -0
  850. mineproductivity-2.0.0/tests/unit/kpis/test_inheritance.py +57 -0
  851. mineproductivity-2.0.0/tests/unit/kpis/test_kpi_registry.py +162 -0
  852. mineproductivity-2.0.0/tests/unit/kpis/test_lifecycle.py +21 -0
  853. mineproductivity-2.0.0/tests/unit/kpis/test_metadata.py +139 -0
  854. mineproductivity-2.0.0/tests/unit/kpis/test_naming.py +93 -0
  855. mineproductivity-2.0.0/tests/unit/kpis/test_public_api.py +196 -0
  856. mineproductivity-2.0.0/tests/unit/kpis/test_result.py +63 -0
  857. mineproductivity-2.0.0/tests/unit/kpis/test_validation.py +131 -0
  858. mineproductivity-2.0.0/tests/unit/kpis/test_windowing.py +90 -0
  859. mineproductivity-2.0.0/tests/unit/ontology/README.md +33 -0
  860. mineproductivity-2.0.0/tests/unit/ontology/__init__.py +0 -0
  861. mineproductivity-2.0.0/tests/unit/ontology/cost/__init__.py +0 -0
  862. mineproductivity-2.0.0/tests/unit/ontology/cost/test_cost_center.py +37 -0
  863. mineproductivity-2.0.0/tests/unit/ontology/environmental/__init__.py +0 -0
  864. mineproductivity-2.0.0/tests/unit/ontology/environmental/test_emissions.py +35 -0
  865. mineproductivity-2.0.0/tests/unit/ontology/equipment/__init__.py +0 -0
  866. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_ancillary.py +30 -0
  867. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_drill.py +19 -0
  868. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_equipment_type.py +51 -0
  869. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_fixed_plant.py +34 -0
  870. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_haul_truck.py +51 -0
  871. mineproductivity-2.0.0/tests/unit/ontology/equipment/test_loading_unit.py +34 -0
  872. mineproductivity-2.0.0/tests/unit/ontology/location/__init__.py +0 -0
  873. mineproductivity-2.0.0/tests/unit/ontology/location/test_mine.py +25 -0
  874. mineproductivity-2.0.0/tests/unit/ontology/location/test_pit.py +28 -0
  875. mineproductivity-2.0.0/tests/unit/ontology/location/test_route.py +51 -0
  876. mineproductivity-2.0.0/tests/unit/ontology/location/test_underground.py +49 -0
  877. mineproductivity-2.0.0/tests/unit/ontology/maintenance/__init__.py +0 -0
  878. mineproductivity-2.0.0/tests/unit/ontology/maintenance/test_failure_mode.py +42 -0
  879. mineproductivity-2.0.0/tests/unit/ontology/material/__init__.py +0 -0
  880. mineproductivity-2.0.0/tests/unit/ontology/material/test_commodity.py +29 -0
  881. mineproductivity-2.0.0/tests/unit/ontology/material/test_material_type.py +15 -0
  882. mineproductivity-2.0.0/tests/unit/ontology/organization/__init__.py +0 -0
  883. mineproductivity-2.0.0/tests/unit/ontology/organization/test_business_unit.py +25 -0
  884. mineproductivity-2.0.0/tests/unit/ontology/organization/test_crew.py +28 -0
  885. mineproductivity-2.0.0/tests/unit/ontology/organization/test_fleet.py +23 -0
  886. mineproductivity-2.0.0/tests/unit/ontology/production/__init__.py +0 -0
  887. mineproductivity-2.0.0/tests/unit/ontology/production/test_shift.py +94 -0
  888. mineproductivity-2.0.0/tests/unit/ontology/quality/__init__.py +0 -0
  889. mineproductivity-2.0.0/tests/unit/ontology/quality/test_grade.py +59 -0
  890. mineproductivity-2.0.0/tests/unit/ontology/reference/__init__.py +0 -0
  891. mineproductivity-2.0.0/tests/unit/ontology/reference/test_delay_taxonomy.py +28 -0
  892. mineproductivity-2.0.0/tests/unit/ontology/safety/__init__.py +0 -0
  893. mineproductivity-2.0.0/tests/unit/ontology/safety/test_hazard.py +52 -0
  894. mineproductivity-2.0.0/tests/unit/ontology/test_entity_type.py +214 -0
  895. mineproductivity-2.0.0/tests/unit/ontology/test_exceptions.py +39 -0
  896. mineproductivity-2.0.0/tests/unit/ontology/test_graph_projection.py +65 -0
  897. mineproductivity-2.0.0/tests/unit/ontology/test_public_api.py +147 -0
  898. mineproductivity-2.0.0/tests/unit/ontology/test_relationship.py +63 -0
  899. mineproductivity-2.0.0/tests/unit/ontology/test_validation.py +86 -0
  900. mineproductivity-2.0.0/tests/unit/optimization/README.md +29 -0
  901. mineproductivity-2.0.0/tests/unit/optimization/__init__.py +0 -0
  902. mineproductivity-2.0.0/tests/unit/optimization/test__registry.py +179 -0
  903. mineproductivity-2.0.0/tests/unit/optimization/test_abstractions.py +32 -0
  904. mineproductivity-2.0.0/tests/unit/optimization/test_comparison.py +56 -0
  905. mineproductivity-2.0.0/tests/unit/optimization/test_constraint_programming.py +27 -0
  906. mineproductivity-2.0.0/tests/unit/optimization/test_discovery.py +104 -0
  907. mineproductivity-2.0.0/tests/unit/optimization/test_evolutionary.py +96 -0
  908. mineproductivity-2.0.0/tests/unit/optimization/test_exceptions.py +32 -0
  909. mineproductivity-2.0.0/tests/unit/optimization/test_executor.py +403 -0
  910. mineproductivity-2.0.0/tests/unit/optimization/test_linear_programming.py +49 -0
  911. mineproductivity-2.0.0/tests/unit/optimization/test_metadata.py +50 -0
  912. mineproductivity-2.0.0/tests/unit/optimization/test_mixed_integer_programming.py +69 -0
  913. mineproductivity-2.0.0/tests/unit/optimization/test_multi_objective.py +27 -0
  914. mineproductivity-2.0.0/tests/unit/optimization/test_network_optimization.py +52 -0
  915. mineproductivity-2.0.0/tests/unit/optimization/test_persistence.py +60 -0
  916. mineproductivity-2.0.0/tests/unit/optimization/test_problem.py +155 -0
  917. mineproductivity-2.0.0/tests/unit/optimization/test_public_api.py +232 -0
  918. mineproductivity-2.0.0/tests/unit/optimization/test_result.py +57 -0
  919. mineproductivity-2.0.0/tests/unit/optimization/test_run.py +56 -0
  920. mineproductivity-2.0.0/tests/unit/optimization/test_sensitivity.py +140 -0
  921. mineproductivity-2.0.0/tests/unit/optimization/test_state.py +38 -0
  922. mineproductivity-2.0.0/tests/unit/plugins/README.md +35 -0
  923. mineproductivity-2.0.0/tests/unit/plugins/__init__.py +0 -0
  924. mineproductivity-2.0.0/tests/unit/plugins/test_dependency.py +103 -0
  925. mineproductivity-2.0.0/tests/unit/plugins/test_exceptions.py +26 -0
  926. mineproductivity-2.0.0/tests/unit/plugins/test_lifecycle.py +159 -0
  927. mineproductivity-2.0.0/tests/unit/plugins/test_loader.py +99 -0
  928. mineproductivity-2.0.0/tests/unit/plugins/test_manifest.py +75 -0
  929. mineproductivity-2.0.0/tests/unit/plugins/test_public_api.py +99 -0
  930. mineproductivity-2.0.0/tests/unit/registry/README.md +34 -0
  931. mineproductivity-2.0.0/tests/unit/registry/__init__.py +0 -0
  932. mineproductivity-2.0.0/tests/unit/registry/test_caching.py +106 -0
  933. mineproductivity-2.0.0/tests/unit/registry/test_decorators.py +70 -0
  934. mineproductivity-2.0.0/tests/unit/registry/test_entry_point.py +134 -0
  935. mineproductivity-2.0.0/tests/unit/registry/test_exceptions.py +53 -0
  936. mineproductivity-2.0.0/tests/unit/registry/test_public_api.py +107 -0
  937. mineproductivity-2.0.0/tests/unit/registry/test_registry.py +128 -0
  938. mineproductivity-2.0.0/tests/unit/registry/test_version_compat.py +69 -0
  939. mineproductivity-2.0.0/tests/unit/simulation/README.md +32 -0
  940. mineproductivity-2.0.0/tests/unit/simulation/__init__.py +0 -0
  941. mineproductivity-2.0.0/tests/unit/simulation/test__registry.py +147 -0
  942. mineproductivity-2.0.0/tests/unit/simulation/test_abstractions.py +50 -0
  943. mineproductivity-2.0.0/tests/unit/simulation/test_caching.py +70 -0
  944. mineproductivity-2.0.0/tests/unit/simulation/test_calibration.py +85 -0
  945. mineproductivity-2.0.0/tests/unit/simulation/test_clock.py +52 -0
  946. mineproductivity-2.0.0/tests/unit/simulation/test_comparison.py +88 -0
  947. mineproductivity-2.0.0/tests/unit/simulation/test_discovery.py +157 -0
  948. mineproductivity-2.0.0/tests/unit/simulation/test_discrete_event.py +96 -0
  949. mineproductivity-2.0.0/tests/unit/simulation/test_exceptions.py +44 -0
  950. mineproductivity-2.0.0/tests/unit/simulation/test_executor.py +432 -0
  951. mineproductivity-2.0.0/tests/unit/simulation/test_experiment.py +122 -0
  952. mineproductivity-2.0.0/tests/unit/simulation/test_metadata.py +63 -0
  953. mineproductivity-2.0.0/tests/unit/simulation/test_montecarlo.py +147 -0
  954. mineproductivity-2.0.0/tests/unit/simulation/test_persistence.py +90 -0
  955. mineproductivity-2.0.0/tests/unit/simulation/test_public_api.py +248 -0
  956. mineproductivity-2.0.0/tests/unit/simulation/test_replay.py +126 -0
  957. mineproductivity-2.0.0/tests/unit/simulation/test_result.py +72 -0
  958. mineproductivity-2.0.0/tests/unit/simulation/test_run.py +87 -0
  959. mineproductivity-2.0.0/tests/unit/simulation/test_scenario.py +139 -0
  960. mineproductivity-2.0.0/tests/unit/simulation/test_sensitivity.py +151 -0
  961. mineproductivity-2.0.0/tests/unit/simulation/test_state.py +65 -0
  962. mineproductivity-2.0.0/tests/unit/simulation/test_system_dynamics.py +92 -0
  963. mineproductivity-2.0.0/tests/unit/utils/README.md +29 -0
  964. mineproductivity-2.0.0/tests/unit/utils/__init__.py +0 -0
  965. mineproductivity-2.0.0/tests/unit/validation/README.md +29 -0
  966. mineproductivity-2.0.0/tests/unit/validation/__init__.py +0 -0
  967. mineproductivity-2.0.0/tests/unit/visualization/README.md +29 -0
  968. mineproductivity-2.0.0/tests/unit/visualization/__init__.py +0 -0
  969. mineproductivity-2.0.0/tests/unit/visualization/test__registry.py +268 -0
  970. mineproductivity-2.0.0/tests/unit/visualization/test_abstractions.py +358 -0
  971. mineproductivity-2.0.0/tests/unit/visualization/test_dashboard.py +84 -0
  972. mineproductivity-2.0.0/tests/unit/visualization/test_dashboard_builder.py +80 -0
  973. mineproductivity-2.0.0/tests/unit/visualization/test_discovery.py +41 -0
  974. mineproductivity-2.0.0/tests/unit/visualization/test_exceptions.py +36 -0
  975. mineproductivity-2.0.0/tests/unit/visualization/test_export.py +155 -0
  976. mineproductivity-2.0.0/tests/unit/visualization/test_layout.py +35 -0
  977. mineproductivity-2.0.0/tests/unit/visualization/test_persistence.py +70 -0
  978. mineproductivity-2.0.0/tests/unit/visualization/test_pipeline.py +299 -0
  979. mineproductivity-2.0.0/tests/unit/visualization/test_presentation.py +54 -0
  980. mineproductivity-2.0.0/tests/unit/visualization/test_public_api.py +240 -0
  981. mineproductivity-2.0.0/tests/unit/visualization/test_renderer.py +57 -0
  982. mineproductivity-2.0.0/tests/unit/visualization/test_report.py +46 -0
  983. mineproductivity-2.0.0/tests/unit/visualization/test_report_builder.py +161 -0
  984. mineproductivity-2.0.0/tests/unit/visualization/test_theme.py +37 -0
  985. mineproductivity-2.0.0/tests/unit/visualization/test_widget.py +46 -0
@@ -0,0 +1,21 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ trim_trailing_whitespace = true
8
+ indent_style = space
9
+ indent_size = 4
10
+
11
+ [*.py]
12
+ indent_size = 4
13
+
14
+ [*.{yml,yaml,json,toml}]
15
+ indent_size = 2
16
+
17
+ [*.md]
18
+ trim_trailing_whitespace = false
19
+
20
+ [Makefile]
21
+ indent_style = tab
@@ -0,0 +1,15 @@
1
+ * text=auto eol=lf
2
+
3
+ *.py text diff=python
4
+ *.md text
5
+ *.yml text
6
+ *.yaml text
7
+ *.toml text
8
+ *.json text
9
+
10
+ *.png binary
11
+ *.jpg binary
12
+ *.jpeg binary
13
+ *.gif binary
14
+ *.ico binary
15
+ *.parquet binary
@@ -0,0 +1,24 @@
1
+ # Default owner
2
+ * @imanojkumar
3
+
4
+ /docs/architecture/ @imanojkumar
5
+ /ROADMAP.md @imanojkumar
6
+ /README.md @imanojkumar
7
+
8
+ /src/mineproductivity/core/ @imanojkumar
9
+ /src/mineproductivity/ontology/ @imanojkumar
10
+ /src/mineproductivity/events/ @imanojkumar
11
+ /src/mineproductivity/registry/ @imanojkumar
12
+ /src/mineproductivity/plugins/ @imanojkumar
13
+ /src/mineproductivity/connectors/ @imanojkumar
14
+ /src/mineproductivity/kpis/ @imanojkumar
15
+ /src/mineproductivity/analytics/ @imanojkumar
16
+ /src/mineproductivity/decision/ @imanojkumar
17
+ /src/mineproductivity/digital_twin/ @imanojkumar
18
+ /src/mineproductivity/simulation/ @imanojkumar
19
+ /src/mineproductivity/optimization/ @imanojkumar
20
+ /src/mineproductivity/agents/ @imanojkumar
21
+ /src/mineproductivity/visualization/ @imanojkumar
22
+
23
+ /.github/workflows/ @imanojkumar
24
+ /docs/governance/ @imanojkumar
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a defect in MineProductivity
4
+ title: "[Bug]: "
5
+ labels: bug
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Describe the bug
10
+
11
+ A clear and concise description of the bug.
12
+
13
+ ## Affected package(s)
14
+
15
+ e.g. `src/mineproductivity/kpis`
16
+
17
+ ## To Reproduce
18
+
19
+ Steps to reproduce the behavior.
20
+
21
+ ## Expected behavior
22
+
23
+ What you expected to happen.
24
+
25
+ ## Environment
26
+
27
+ - MineProductivity version:
28
+ - Python version:
29
+ - OS:
30
+
31
+ ## Additional context
32
+
33
+ Add any other context, logs, or screenshots.
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Security Vulnerability
4
+ url: https://github.com/imanojkumar/MineProductivity/security/advisories/new
5
+ about: Please report security vulnerabilities privately, per SECURITY.md.
6
+ - name: Discussions
7
+ url: https://github.com/imanojkumar/MineProductivity/discussions
8
+ about: Ask questions and discuss ideas with the community.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: Feature request
3
+ about: Propose a new capability for MineProductivity
4
+ title: "[Feature]: "
5
+ labels: enhancement
6
+ assignees: ""
7
+ ---
8
+
9
+ ## Is your feature request related to a problem?
10
+
11
+ A clear and concise description of the problem.
12
+
13
+ ## Describe the solution you'd like
14
+
15
+ What you want to happen, and which package(s) it affects
16
+ (e.g. `src/mineproductivity/analytics`).
17
+
18
+ ## Architectural alignment
19
+
20
+ Explain how this aligns with the Master Architecture Handbook v1.0 / Reference
21
+ Implementation Blueprint v1.0. New top-level packages or structural changes
22
+ require architectural justification.
23
+
24
+ ## Alternatives considered
25
+
26
+ Any alternative solutions or features you've considered.
27
+
28
+ ## Additional context
29
+
30
+ Add any other context here.
@@ -0,0 +1,25 @@
1
+ ## Summary
2
+
3
+ <!-- What does this PR change, and why? -->
4
+
5
+ ## Related Issue(s)
6
+
7
+ <!-- Closes #... -->
8
+
9
+ ## Affected Package(s)
10
+
11
+ <!-- e.g. src/mineproductivity/kpis, tests/unit/kpis -->
12
+
13
+ ## Checklist
14
+
15
+ - [ ] Change respects the dependency direction documented in the root `README.md`.
16
+ - [ ] Architecture principles in the Handbook have not been violated.
17
+ - [ ] Tests added/updated in the mirrored `tests/` location.
18
+ - [ ] Package `README.md` updated if responsibilities/dependencies changed.
19
+ - [ ] Public APIs and new modules are documented.
20
+ - [ ] `pre-commit run --all-files` passes locally.
21
+ - [ ] No business logic added beyond this repository's current phase (see `ROADMAP.md`).
22
+
23
+ ## Additional Notes
24
+
25
+ <!-- Anything reviewers should know. -->
@@ -0,0 +1,34 @@
1
+ name: Benchmark
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: benchmark-${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ perf-smoke:
15
+ name: Performance smoke test
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.12"
23
+ cache: pip
24
+ cache-dependency-path: pyproject.toml
25
+
26
+ - run: pip install -e ".[analytics]"
27
+
28
+ # A tripwire, not a benchmark: generous wall-clock ceilings meant
29
+ # to catch a catastrophic regression (an accidental O(n^2), a
30
+ # broken cache, a per-call re-import), not to track performance
31
+ # over time. See scripts/quality/perf_smoke.py and
32
+ # benchmark/README.md for the real (future) benchmark suite this
33
+ # is deliberately not a substitute for.
34
+ - run: python scripts/quality/perf_smoke.py
@@ -0,0 +1,151 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ci-${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ test:
15
+ name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
16
+ runs-on: ${{ matrix.os }}
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ # pyproject.toml declares `requires-python = ">=3.12"`; the matrix
21
+ # covers exactly the Python versions the package supports. Earlier
22
+ # versions (3.10/3.11) are not included here because `pip install`
23
+ # rejects them outright before any test runs -- a job for them can
24
+ # never pass and would only ever be permanently-red noise, not a
25
+ # useful compatibility signal.
26
+ os: [ubuntu-latest, windows-latest, macos-latest]
27
+ python-version: ["3.12", "3.13"]
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+
31
+ - uses: actions/setup-python@v5
32
+ with:
33
+ python-version: ${{ matrix.python-version }}
34
+ cache: pip
35
+ cache-dependency-path: pyproject.toml
36
+
37
+ - name: Install mineproductivity[dev]
38
+ run: pip install -e ".[dev]"
39
+
40
+ - name: Install registry fixture plugin packages
41
+ # Must run before pytest starts: these are editable installs that
42
+ # write .pth files, which Python's site module only reads at
43
+ # interpreter startup. Installing them from inside a running pytest
44
+ # process (as tests/integration/conftest.py's session fixture does)
45
+ # cannot make them importable in that same process.
46
+ run: |
47
+ pip install --no-deps -e tests/fixtures/plugins/registry_fixture_healthy
48
+ pip install --no-deps -e tests/fixtures/plugins/registry_fixture_broken
49
+
50
+ - name: Run tests with coverage
51
+ run: pytest --cov=mineproductivity --cov-report=term-missing --cov-report=xml --cov-fail-under=95
52
+
53
+ - name: Upload coverage report
54
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
55
+ uses: actions/upload-artifact@v4
56
+ with:
57
+ name: coverage-report
58
+ path: coverage.xml
59
+ retention-days: 14
60
+
61
+ build:
62
+ name: Build wheel + sdist
63
+ runs-on: ubuntu-latest
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+
67
+ - uses: actions/setup-python@v5
68
+ with:
69
+ python-version: "3.12"
70
+ cache: pip
71
+
72
+ - name: Install build tooling
73
+ run: pip install build twine
74
+
75
+ - name: Build distribution artifacts
76
+ run: python -m build
77
+
78
+ - name: twine check
79
+ run: twine check --strict dist/*
80
+
81
+ - name: Upload distribution artifacts
82
+ uses: actions/upload-artifact@v4
83
+ with:
84
+ name: dist
85
+ path: dist/
86
+ retention-days: 14
87
+
88
+ install-wheel:
89
+ name: Install validation — wheel (${{ matrix.os }})
90
+ needs: build
91
+ runs-on: ${{ matrix.os }}
92
+ strategy:
93
+ fail-fast: false
94
+ matrix:
95
+ os: [ubuntu-latest, windows-latest, macos-latest]
96
+ steps:
97
+ - uses: actions/checkout@v4
98
+
99
+ - uses: actions/setup-python@v5
100
+ with:
101
+ python-version: "3.12"
102
+ cache: pip
103
+
104
+ - uses: actions/download-artifact@v4
105
+ with:
106
+ name: dist
107
+ path: dist/
108
+
109
+ - name: Install from wheel
110
+ shell: bash
111
+ run: pip install dist/*.whl
112
+
113
+ - name: Smoke test
114
+ run: python scripts/quality/smoke_test.py
115
+
116
+ install-methods:
117
+ name: Install validation — sdist / editable / GitHub
118
+ needs: build
119
+ runs-on: ubuntu-latest
120
+ steps:
121
+ - uses: actions/checkout@v4
122
+
123
+ - uses: actions/setup-python@v5
124
+ with:
125
+ python-version: "3.12"
126
+ cache: pip
127
+
128
+ - uses: actions/download-artifact@v4
129
+ with:
130
+ name: dist
131
+ path: dist/
132
+
133
+ - name: Install from sdist
134
+ run: |
135
+ python -m venv /tmp/venv-sdist
136
+ /tmp/venv-sdist/bin/pip install dist/*.tar.gz
137
+ /tmp/venv-sdist/bin/python scripts/quality/smoke_test.py
138
+
139
+ - name: Install editable
140
+ run: |
141
+ python -m venv /tmp/venv-editable
142
+ /tmp/venv-editable/bin/pip install -e .
143
+ /tmp/venv-editable/bin/python scripts/quality/smoke_test.py
144
+
145
+ - name: Install from GitHub at this commit
146
+ env:
147
+ COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
148
+ run: |
149
+ python -m venv /tmp/venv-github
150
+ /tmp/venv-github/bin/pip install "git+https://github.com/${{ github.repository }}.git@${COMMIT_SHA}"
151
+ /tmp/venv-github/bin/python scripts/quality/smoke_test.py
@@ -0,0 +1,30 @@
1
+ name: CodeQL
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ schedule:
9
+ # Mondays 06:00 UTC -- catches newly-published CodeQL query
10
+ # advisories against unchanged code, not just new commits.
11
+ - cron: "0 6 * * 1"
12
+
13
+ jobs:
14
+ analyze:
15
+ name: Analyze (python)
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ security-events: write
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - uses: github/codeql-action/init@v3
24
+ with:
25
+ languages: python
26
+ queries: security-and-quality
27
+
28
+ - uses: github/codeql-action/analyze@v3
29
+ with:
30
+ category: "/language:python"
@@ -0,0 +1,25 @@
1
+ name: Dependency Review
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: read
9
+ pull-requests: write
10
+
11
+ jobs:
12
+ dependency-review:
13
+ name: Scan dependency changes
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Dependency review
19
+ uses: actions/dependency-review-action@v4
20
+ with:
21
+ # A patch release with a known CVE is a real, actionable risk;
22
+ # a permissive-but-unusual license on a new dependency is worth
23
+ # a human's attention before merge, not an automatic block.
24
+ fail-on-severity: moderate
25
+ comment-summary-in-pr: always
@@ -0,0 +1,98 @@
1
+ name: Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "docs/**"
8
+ - "mkdocs.yml"
9
+ - "README.md"
10
+ - "CHANGELOG.md"
11
+ - "ROADMAP.md"
12
+ - "CONTRIBUTING.md"
13
+ - "CODE_OF_CONDUCT.md"
14
+ - "SECURITY.md"
15
+ - "src/mineproductivity/**"
16
+ - "examples/**/README.md"
17
+ - "benchmark/reports/**"
18
+ - "scripts/docs/**"
19
+ - ".github/workflows/docs.yml"
20
+ pull_request:
21
+ branches: [main]
22
+ paths:
23
+ - "docs/**"
24
+ - "mkdocs.yml"
25
+ - "README.md"
26
+ - "CHANGELOG.md"
27
+ - "ROADMAP.md"
28
+ - "CONTRIBUTING.md"
29
+ - "CODE_OF_CONDUCT.md"
30
+ - "SECURITY.md"
31
+ - "src/mineproductivity/**"
32
+ - "examples/**/README.md"
33
+ - "benchmark/reports/**"
34
+ - "scripts/docs/**"
35
+ - ".github/workflows/docs.yml"
36
+ # Allow manual runs from the Actions tab.
37
+ workflow_dispatch:
38
+
39
+ concurrency:
40
+ group: docs-${{ github.workflow }}-${{ github.ref }}
41
+ cancel-in-progress: true
42
+
43
+ jobs:
44
+ build:
45
+ name: Build documentation site
46
+ runs-on: ubuntu-latest
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ - uses: actions/setup-python@v5
51
+ with:
52
+ python-version: "3.12"
53
+ cache: pip
54
+ cache-dependency-path: pyproject.toml
55
+
56
+ # The docs extra installs mkdocs-material + mkdocstrings; the editable
57
+ # package install lets mkdocstrings import mineproductivity to render
58
+ # the API reference from its docstrings (the base install is
59
+ # dependency-free, so no extras are required for import).
60
+ - run: pip install -e ".[docs]"
61
+
62
+ # --strict fails the build on any broken internal link or warning.
63
+ # Links that intentionally point at repository source files (outside
64
+ # the docs tree) are rewritten to absolute GitHub URLs by the hook in
65
+ # scripts/docs/link_rewrite_hook.py, so they neither break the site
66
+ # nor trip --strict.
67
+ - name: Build the documentation site (strict)
68
+ run: mkdocs build --strict
69
+
70
+ - name: Upload the built site as a workflow artifact
71
+ uses: actions/upload-artifact@v4
72
+ with:
73
+ name: docs-site
74
+ path: site/
75
+ retention-days: 14
76
+
77
+ - name: Upload the GitHub Pages artifact
78
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
79
+ uses: actions/upload-pages-artifact@v3
80
+ with:
81
+ path: site/
82
+
83
+ deploy:
84
+ name: Deploy to GitHub Pages
85
+ # Only publish from main; pull requests build (above) but never deploy.
86
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
87
+ needs: build
88
+ runs-on: ubuntu-latest
89
+ permissions:
90
+ pages: write
91
+ id-token: write
92
+ environment:
93
+ name: github-pages
94
+ url: ${{ steps.deployment.outputs.page_url }}
95
+ steps:
96
+ - name: Deploy the GitHub Pages artifact
97
+ id: deployment
98
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,87 @@
1
+ name: Quality
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: quality-${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ name: Ruff
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+ cache: pip
23
+ cache-dependency-path: pyproject.toml
24
+ - run: pip install -e ".[dev]"
25
+ - name: ruff check
26
+ run: ruff check .
27
+ - name: ruff format --check
28
+ run: ruff format --check .
29
+
30
+ typecheck:
31
+ name: Mypy (strict)
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+ - uses: actions/setup-python@v5
36
+ with:
37
+ python-version: "3.12"
38
+ cache: pip
39
+ cache-dependency-path: pyproject.toml
40
+ - run: pip install -e ".[dev]"
41
+ - run: mypy
42
+
43
+ docs-validation:
44
+ name: Documentation (links + snippets)
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: actions/setup-python@v5
49
+ with:
50
+ python-version: "3.12"
51
+ cache: pip
52
+ cache-dependency-path: pyproject.toml
53
+ - run: pip install -e ".[analytics]"
54
+ - run: python scripts/quality/check_docs.py
55
+
56
+ notebooks:
57
+ name: Execute notebooks
58
+ runs-on: ubuntu-latest
59
+ steps:
60
+ - uses: actions/checkout@v4
61
+ - uses: actions/setup-python@v5
62
+ with:
63
+ python-version: "3.12"
64
+ cache: pip
65
+ cache-dependency-path: pyproject.toml
66
+ - run: pip install -e ".[dev]"
67
+ - name: Register the execution kernel
68
+ run: python -m ipykernel install --user --name ci-kernel
69
+ - name: Execute every notebook
70
+ run: |
71
+ set -e
72
+ shopt -s globstar nullglob
73
+ notebooks=(notebooks/**/*.ipynb)
74
+ if [ ${#notebooks[@]} -eq 0 ]; then
75
+ echo "no notebooks found"
76
+ exit 0
77
+ fi
78
+ for notebook in "${notebooks[@]}"; do
79
+ echo "executing $notebook"
80
+ # jupyter nbconvert --execute raises CellExecutionError (non-zero
81
+ # exit) on the first cell that fails; combined with `set -e`
82
+ # above, that's the only failure signal this job needs.
83
+ jupyter nbconvert --to notebook --execute --inplace \
84
+ --ExecutePreprocessor.kernel_name=ci-kernel \
85
+ --ExecutePreprocessor.timeout=120 \
86
+ "$notebook"
87
+ done
@@ -0,0 +1,93 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ build:
13
+ name: Build + verify distribution artifacts
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.12"
21
+ cache: pip
22
+
23
+ - name: Install build tooling
24
+ run: pip install build twine
25
+
26
+ - name: Build wheel and sdist
27
+ run: python -m build
28
+
29
+ - name: twine check
30
+ run: twine check --strict dist/*
31
+
32
+ - name: Verify the tag matches the package version
33
+ run: |
34
+ TAG_VERSION="${GITHUB_REF_NAME#v}"
35
+ PKG_VERSION="$(python -c "import re, pathlib; print(re.search(r'__version__\s*=\s*\"([^\"]+)\"', pathlib.Path('src/mineproductivity/__init__.py').read_text()).group(1))")"
36
+ echo "tag=$TAG_VERSION package=$PKG_VERSION"
37
+ if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
38
+ echo "::error::Tag $GITHUB_REF_NAME does not match src/mineproductivity/__init__.py's __version__ ($PKG_VERSION)"
39
+ exit 1
40
+ fi
41
+
42
+ - name: Upload distribution artifacts
43
+ uses: actions/upload-artifact@v4
44
+ with:
45
+ name: dist
46
+ path: dist/
47
+ retention-days: 90
48
+
49
+ github-release:
50
+ name: Create GitHub Release
51
+ needs: build
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v4
55
+
56
+ - uses: actions/download-artifact@v4
57
+ with:
58
+ name: dist
59
+ path: dist/
60
+
61
+ - name: Create the GitHub Release with the built artifacts attached
62
+ env:
63
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64
+ run: |
65
+ gh release create "${{ github.ref_name }}" \
66
+ dist/* \
67
+ --title "${{ github.ref_name }}" \
68
+ --generate-notes \
69
+ --notes "See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for the curated release notes.
70
+
71
+ ---
72
+ "
73
+
74
+ # ---------------------------------------------------------------------
75
+ # PyPI publishing is intentionally NOT enabled yet (Milestone C: "Do NOT
76
+ # publish to PyPI"). When the maintainer decides to publish, add a PyPI
77
+ # Trusted Publisher (https://docs.pypi.org/trusted-publishers/) for this
78
+ # repository/workflow, then uncomment the job below -- no API token is
79
+ # needed with Trusted Publishing (OIDC-based).
80
+ # ---------------------------------------------------------------------
81
+ # publish-pypi:
82
+ # name: Publish to PyPI
83
+ # needs: build
84
+ # runs-on: ubuntu-latest
85
+ # environment: pypi
86
+ # permissions:
87
+ # id-token: write # required for OIDC Trusted Publishing
88
+ # steps:
89
+ # - uses: actions/download-artifact@v4
90
+ # with:
91
+ # name: dist
92
+ # path: dist/
93
+ # - uses: pypa/gh-action-pypi-publish@release/v1