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.
- mineproductivity-2.0.0/.editorconfig +21 -0
- mineproductivity-2.0.0/.gitattributes +15 -0
- mineproductivity-2.0.0/.github/CODEOWNERS +24 -0
- mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
- mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- mineproductivity-2.0.0/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
- mineproductivity-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +25 -0
- mineproductivity-2.0.0/.github/workflows/benchmark.yml +34 -0
- mineproductivity-2.0.0/.github/workflows/ci.yml +151 -0
- mineproductivity-2.0.0/.github/workflows/codeql.yml +30 -0
- mineproductivity-2.0.0/.github/workflows/dependency-review.yml +25 -0
- mineproductivity-2.0.0/.github/workflows/docs.yml +98 -0
- mineproductivity-2.0.0/.github/workflows/quality.yml +87 -0
- mineproductivity-2.0.0/.github/workflows/release.yml +93 -0
- mineproductivity-2.0.0/.github/workflows/security.yml +69 -0
- mineproductivity-2.0.0/.gitignore +151 -0
- mineproductivity-2.0.0/.pre-commit-config.yaml +27 -0
- mineproductivity-2.0.0/CHANGELOG.md +1501 -0
- mineproductivity-2.0.0/CITATION.cff +38 -0
- mineproductivity-2.0.0/CODE_OF_CONDUCT.md +52 -0
- mineproductivity-2.0.0/CONTRIBUTING.md +83 -0
- mineproductivity-2.0.0/LICENSE +201 -0
- mineproductivity-2.0.0/PKG-INFO +445 -0
- mineproductivity-2.0.0/README.md +382 -0
- mineproductivity-2.0.0/ROADMAP.md +261 -0
- mineproductivity-2.0.0/SECURITY.md +54 -0
- mineproductivity-2.0.0/benchmark/README.md +32 -0
- mineproductivity-2.0.0/benchmark/expected_outputs/README.md +29 -0
- mineproductivity-2.0.0/benchmark/reports/README.md +34 -0
- mineproductivity-2.0.0/benchmark/reports/agents/2026-07-12-agents-v1.10.0.md +41 -0
- mineproductivity-2.0.0/benchmark/reports/decision/2026-07-08-decision-v1.6.0.md +41 -0
- mineproductivity-2.0.0/benchmark/reports/digital_twin/2026-07-08-digital-twin-v1.7.0.md +41 -0
- mineproductivity-2.0.0/benchmark/reports/optimization/2026-07-12-optimization-v1.9.0.md +41 -0
- mineproductivity-2.0.0/benchmark/reports/simulation/2026-07-08-simulation-v1.8.0.md +40 -0
- mineproductivity-2.0.0/benchmark/reports/visualization/2026-07-12-visualization-v1.11.0.md +41 -0
- mineproductivity-2.0.0/benchmark/scenarios/README.md +34 -0
- mineproductivity-2.0.0/benchmark/scenarios/agents/task_repository_latency.py +76 -0
- mineproductivity-2.0.0/benchmark/scenarios/agents/workflow_parallel_throughput.py +123 -0
- mineproductivity-2.0.0/benchmark/scenarios/decision/audit_trail_latency.py +80 -0
- mineproductivity-2.0.0/benchmark/scenarios/decision/rule_engine_throughput.py +98 -0
- mineproductivity-2.0.0/benchmark/scenarios/digital_twin/cold_start_replay.py +168 -0
- mineproductivity-2.0.0/benchmark/scenarios/digital_twin/repository_latency.py +105 -0
- mineproductivity-2.0.0/benchmark/scenarios/optimization/run_repository_latency.py +74 -0
- mineproductivity-2.0.0/benchmark/scenarios/optimization/sweep_resolve_throughput.py +132 -0
- mineproductivity-2.0.0/benchmark/scenarios/simulation/run_repository_latency.py +78 -0
- mineproductivity-2.0.0/benchmark/scenarios/simulation/seed_cache_effectiveness.py +141 -0
- mineproductivity-2.0.0/benchmark/scenarios/visualization/dashboard_repository_latency.py +71 -0
- mineproductivity-2.0.0/benchmark/scenarios/visualization/render_parallel_throughput.py +120 -0
- mineproductivity-2.0.0/certification/README.md +32 -0
- mineproductivity-2.0.0/certification/golden_datasets/README.md +29 -0
- mineproductivity-2.0.0/certification/reference_outputs/README.md +29 -0
- mineproductivity-2.0.0/certification/validation/README.md +29 -0
- mineproductivity-2.0.0/datasets/README.md +38 -0
- mineproductivity-2.0.0/datasets/benchmark/README.md +30 -0
- mineproductivity-2.0.0/datasets/canonical/README.md +30 -0
- mineproductivity-2.0.0/datasets/edge_cases/README.md +30 -0
- mineproductivity-2.0.0/datasets/generated/README.md +30 -0
- mineproductivity-2.0.0/datasets/golden/README.md +30 -0
- mineproductivity-2.0.0/datasets/processed/README.md +30 -0
- mineproductivity-2.0.0/datasets/raw/README.md +30 -0
- mineproductivity-2.0.0/datasets/synthetic/README.md +30 -0
- mineproductivity-2.0.0/docs/README.md +40 -0
- mineproductivity-2.0.0/docs/adr/000-template.md +1 -0
- mineproductivity-2.0.0/docs/adr/ADR-0006-Analytics-Engine.md +78 -0
- mineproductivity-2.0.0/docs/adr/ADR-0007-Decision-Intelligence.md +80 -0
- mineproductivity-2.0.0/docs/adr/ADR-0008-Digital-Twin.md +87 -0
- mineproductivity-2.0.0/docs/adr/ADR-0009-Simulation.md +87 -0
- mineproductivity-2.0.0/docs/adr/ADR-0010-Optimization.md +89 -0
- mineproductivity-2.0.0/docs/adr/ADR-0011-AI-Agents.md +89 -0
- mineproductivity-2.0.0/docs/adr/ADR-0012-Visualization.md +88 -0
- mineproductivity-2.0.0/docs/adr/ADR-0013-Placeholder-Package-Rationalization.md +95 -0
- mineproductivity-2.0.0/docs/adr/index.md +16 -0
- mineproductivity-2.0.0/docs/adr/why.txt +19 -0
- mineproductivity-2.0.0/docs/api/README.md +29 -0
- mineproductivity-2.0.0/docs/api-reference/agents.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/analytics.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/connectors.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/core.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/decision.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/digital_twin.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/events.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/index.md +16 -0
- mineproductivity-2.0.0/docs/api-reference/kpis.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/ontology.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/optimization.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/plugins.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/registry.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/simulation.md +14 -0
- mineproductivity-2.0.0/docs/api-reference/visualization.md +14 -0
- mineproductivity-2.0.0/docs/architecture/01_Event_Framework_Design_Specification.md +889 -0
- mineproductivity-2.0.0/docs/architecture/02_Ontology_Framework_Design_Specification.md +828 -0
- mineproductivity-2.0.0/docs/architecture/03_Registry_Framework_Design_Specification.md +657 -0
- mineproductivity-2.0.0/docs/architecture/04_Connector_Framework_Design_Specification.md +758 -0
- mineproductivity-2.0.0/docs/architecture/05_KPI_Engine_Design_Specification.md +951 -0
- mineproductivity-2.0.0/docs/architecture/06_Analytics_Engine_Design_Specification.md +1220 -0
- mineproductivity-2.0.0/docs/architecture/07_Decision_Intelligence_Design_Specification.md +1243 -0
- mineproductivity-2.0.0/docs/architecture/08_Digital_Twin_Design_Specification.md +1026 -0
- mineproductivity-2.0.0/docs/architecture/09_Simulation_Design_Specification.md +1088 -0
- mineproductivity-2.0.0/docs/architecture/10_Optimization_Design_Specification.md +1095 -0
- mineproductivity-2.0.0/docs/architecture/11_AI_Agents_Design_Specification.md +1229 -0
- mineproductivity-2.0.0/docs/architecture/12_Visualization_Design_Specification.md +963 -0
- mineproductivity-2.0.0/docs/architecture/README.md +57 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide.docx +0 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide_Part_II.docx +0 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Cookbook_Guide_Part_III.docx +0 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Developer_Documentation.html +888 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/MineProductivity_Learning_Benchmark_Suite_v1.0.docx +0 -0
- mineproductivity-2.0.0/docs/architecture/locked_ssot_documents/README.md +26 -0
- mineproductivity-2.0.0/docs/assets/README.md +29 -0
- mineproductivity-2.0.0/docs/benchmarks/agents.md +4 -0
- mineproductivity-2.0.0/docs/benchmarks/decision.md +4 -0
- mineproductivity-2.0.0/docs/benchmarks/digital_twin.md +4 -0
- mineproductivity-2.0.0/docs/benchmarks/index.md +18 -0
- mineproductivity-2.0.0/docs/benchmarks/optimization.md +4 -0
- mineproductivity-2.0.0/docs/benchmarks/simulation.md +4 -0
- mineproductivity-2.0.0/docs/benchmarks/visualization.md +4 -0
- mineproductivity-2.0.0/docs/certification/2.0-certification.md +149 -0
- mineproductivity-2.0.0/docs/citation/CITATION.md +70 -0
- mineproductivity-2.0.0/docs/citation/MineProductivity.bib +10 -0
- mineproductivity-2.0.0/docs/design/01_Event_Implementation_Checklist.md +137 -0
- mineproductivity-2.0.0/docs/design/02_Ontology_Implementation_Checklist.md +131 -0
- mineproductivity-2.0.0/docs/design/03_Registry_Implementation_Checklist.md +128 -0
- mineproductivity-2.0.0/docs/design/04_Connector_Implementation_Checklist.md +130 -0
- mineproductivity-2.0.0/docs/design/05_KPI_Implementation_Checklist.md +145 -0
- mineproductivity-2.0.0/docs/design/06_Analytics_Engine_Implementation_Checklist.md +164 -0
- mineproductivity-2.0.0/docs/design/07_Decision_Intelligence_Implementation_Checklist.md +174 -0
- mineproductivity-2.0.0/docs/design/08_Digital_Twin_Implementation_Checklist.md +160 -0
- mineproductivity-2.0.0/docs/design/09_Simulation_Implementation_Checklist.md +186 -0
- mineproductivity-2.0.0/docs/design/10_Optimization_Implementation_Checklist.md +187 -0
- mineproductivity-2.0.0/docs/design/11_AI_Agents_Implementation_Checklist.md +246 -0
- mineproductivity-2.0.0/docs/design/12_Visualization_Implementation_Checklist.md +222 -0
- mineproductivity-2.0.0/docs/design/README.md +43 -0
- mineproductivity-2.0.0/docs/design/why.txt +13 -0
- mineproductivity-2.0.0/docs/developer_guide/README.md +32 -0
- mineproductivity-2.0.0/docs/getting-started/installation.md +47 -0
- mineproductivity-2.0.0/docs/getting-started/next-steps.md +21 -0
- mineproductivity-2.0.0/docs/getting-started/quick-start.md +51 -0
- mineproductivity-2.0.0/docs/governance/CI_CD_GUIDE.md +72 -0
- mineproductivity-2.0.0/docs/governance/ENGINEERING_RULES.md +96 -0
- mineproductivity-2.0.0/docs/governance/RELEASE_CHECKLIST.md +116 -0
- mineproductivity-2.0.0/docs/images/README.md +29 -0
- mineproductivity-2.0.0/docs/index.md +100 -0
- mineproductivity-2.0.0/docs/learning_suite/README.md +30 -0
- mineproductivity-2.0.0/docs/packages/agents.md +4 -0
- mineproductivity-2.0.0/docs/packages/analytics.md +4 -0
- mineproductivity-2.0.0/docs/packages/connectors.md +4 -0
- mineproductivity-2.0.0/docs/packages/core.md +4 -0
- mineproductivity-2.0.0/docs/packages/decision.md +4 -0
- mineproductivity-2.0.0/docs/packages/digital_twin.md +4 -0
- mineproductivity-2.0.0/docs/packages/events.md +4 -0
- mineproductivity-2.0.0/docs/packages/index.md +29 -0
- mineproductivity-2.0.0/docs/packages/kpis.md +4 -0
- mineproductivity-2.0.0/docs/packages/ontology.md +4 -0
- mineproductivity-2.0.0/docs/packages/optimization.md +4 -0
- mineproductivity-2.0.0/docs/packages/plugins.md +4 -0
- mineproductivity-2.0.0/docs/packages/registry.md +4 -0
- mineproductivity-2.0.0/docs/packages/simulation.md +4 -0
- mineproductivity-2.0.0/docs/packages/visualization.md +4 -0
- mineproductivity-2.0.0/docs/project/changelog.md +4 -0
- mineproductivity-2.0.0/docs/project/citation.md +4 -0
- mineproductivity-2.0.0/docs/project/code-of-conduct.md +4 -0
- mineproductivity-2.0.0/docs/project/contributing.md +4 -0
- mineproductivity-2.0.0/docs/project/roadmap.md +4 -0
- mineproductivity-2.0.0/docs/project/security.md +4 -0
- mineproductivity-2.0.0/docs/reference_blueprint/README.md +30 -0
- mineproductivity-2.0.0/docs/release_notes/why.txt +15 -0
- mineproductivity-2.0.0/docs/tutorials/agents.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/connectors.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/core.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/decision.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/digital_twin.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/events.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/index.md +29 -0
- mineproductivity-2.0.0/docs/tutorials/kpis.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/ontology.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/optimization.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/quickstart.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/registry.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/simulation.md +4 -0
- mineproductivity-2.0.0/docs/tutorials/visualization.md +4 -0
- mineproductivity-2.0.0/docs/user-guide/index.md +33 -0
- mineproductivity-2.0.0/examples/README.md +49 -0
- mineproductivity-2.0.0/examples/agents/01_single_agent_task.py +94 -0
- mineproductivity-2.0.0/examples/agents/02_policy_gated_approval.py +146 -0
- mineproductivity-2.0.0/examples/agents/03_multi_agent_workflow.py +112 -0
- mineproductivity-2.0.0/examples/agents/04_hypothesis_and_plan_search.py +215 -0
- mineproductivity-2.0.0/examples/agents/05_plugin_agent_and_tool.py +172 -0
- mineproductivity-2.0.0/examples/agents/README.md +50 -0
- mineproductivity-2.0.0/examples/ai/README.md +30 -0
- mineproductivity-2.0.0/examples/connectors/01_csv_ingestion.py +77 -0
- mineproductivity-2.0.0/examples/connectors/02_rest_with_retry.py +102 -0
- mineproductivity-2.0.0/examples/connectors/README.md +43 -0
- mineproductivity-2.0.0/examples/core/01_entity_and_value_object.py +59 -0
- mineproductivity-2.0.0/examples/core/02_repository.py +64 -0
- mineproductivity-2.0.0/examples/core/03_factory_and_builder.py +85 -0
- mineproductivity-2.0.0/examples/core/04_validation.py +62 -0
- mineproductivity-2.0.0/examples/core/05_serialization.py +47 -0
- mineproductivity-2.0.0/examples/core/06_result_and_maybe.py +60 -0
- mineproductivity-2.0.0/examples/core/README.md +66 -0
- mineproductivity-2.0.0/examples/decision/01_pipeline_over_evidence.py +145 -0
- mineproductivity-2.0.0/examples/decision/02_action_planning.py +103 -0
- mineproductivity-2.0.0/examples/decision/03_realtime_session.py +156 -0
- mineproductivity-2.0.0/examples/decision/04_plugin_strategy.py +128 -0
- mineproductivity-2.0.0/examples/decision/README.md +53 -0
- mineproductivity-2.0.0/examples/decision/_evidence.py +166 -0
- mineproductivity-2.0.0/examples/digital_twin/01_provision_and_sync.py +167 -0
- mineproductivity-2.0.0/examples/digital_twin/02_discovery.py +114 -0
- mineproductivity-2.0.0/examples/digital_twin/03_snapshot_and_serialize.py +97 -0
- mineproductivity-2.0.0/examples/digital_twin/04_plugin_twin_type.py +135 -0
- mineproductivity-2.0.0/examples/digital_twin/README.md +48 -0
- mineproductivity-2.0.0/examples/events/01_first_event.py +73 -0
- mineproductivity-2.0.0/examples/events/02_replay.py +66 -0
- mineproductivity-2.0.0/examples/events/03_correction.py +96 -0
- mineproductivity-2.0.0/examples/events/README.md +45 -0
- mineproductivity-2.0.0/examples/kpis/01_simple_execution.py +40 -0
- mineproductivity-2.0.0/examples/kpis/02_composite_oee.py +48 -0
- mineproductivity-2.0.0/examples/kpis/03_batch_summary.py +56 -0
- mineproductivity-2.0.0/examples/kpis/04_discovery.py +59 -0
- mineproductivity-2.0.0/examples/kpis/README.md +52 -0
- mineproductivity-2.0.0/examples/kpis/_dataset.py +188 -0
- mineproductivity-2.0.0/examples/ontology/01_equipment_modelling.py +65 -0
- mineproductivity-2.0.0/examples/ontology/02_structural_modelling.py +87 -0
- mineproductivity-2.0.0/examples/ontology/03_validation.py +63 -0
- mineproductivity-2.0.0/examples/ontology/README.md +45 -0
- mineproductivity-2.0.0/examples/optimization/01_mip_fleet_allocation.py +151 -0
- mineproductivity-2.0.0/examples/optimization/02_plan_comparison.py +112 -0
- mineproductivity-2.0.0/examples/optimization/03_sensitivity_sweep.py +108 -0
- mineproductivity-2.0.0/examples/optimization/04_candidate_scenario_search.py +117 -0
- mineproductivity-2.0.0/examples/optimization/05_plugin_solver_adapter.py +157 -0
- mineproductivity-2.0.0/examples/optimization/README.md +50 -0
- mineproductivity-2.0.0/examples/production/README.md +30 -0
- mineproductivity-2.0.0/examples/quickstart/01_five_minute_tour.py +65 -0
- mineproductivity-2.0.0/examples/quickstart/README.md +30 -0
- mineproductivity-2.0.0/examples/registry/01_register_and_discover.py +109 -0
- mineproductivity-2.0.0/examples/registry/02_version_compatibility.py +74 -0
- mineproductivity-2.0.0/examples/registry/README.md +44 -0
- mineproductivity-2.0.0/examples/simulation/01_monte_carlo_experiment.py +118 -0
- mineproductivity-2.0.0/examples/simulation/02_scenario_comparison.py +118 -0
- mineproductivity-2.0.0/examples/simulation/03_sensitivity_sweep.py +108 -0
- mineproductivity-2.0.0/examples/simulation/04_plugin_simulation_model.py +159 -0
- mineproductivity-2.0.0/examples/simulation/README.md +48 -0
- mineproductivity-2.0.0/examples/visualization/01_single_widget_render.py +96 -0
- mineproductivity-2.0.0/examples/visualization/02_multi_source_dashboard.py +178 -0
- mineproductivity-2.0.0/examples/visualization/03_export_report.py +124 -0
- mineproductivity-2.0.0/examples/visualization/04_simulation_playback.py +106 -0
- mineproductivity-2.0.0/examples/visualization/05_plugin_visualization_and_renderer.py +171 -0
- mineproductivity-2.0.0/examples/visualization/README.md +50 -0
- mineproductivity-2.0.0/mkdocs.yml +219 -0
- mineproductivity-2.0.0/notebooks/README.md +34 -0
- mineproductivity-2.0.0/notebooks/advanced/README.md +29 -0
- mineproductivity-2.0.0/notebooks/beginner/01_first_kpi_lookup.ipynb +381 -0
- mineproductivity-2.0.0/notebooks/beginner/README.md +36 -0
- mineproductivity-2.0.0/notebooks/expert/README.md +29 -0
- mineproductivity-2.0.0/notebooks/intermediate/README.md +29 -0
- mineproductivity-2.0.0/notebooks/research/README.md +29 -0
- mineproductivity-2.0.0/pyproject.toml +127 -0
- mineproductivity-2.0.0/scripts/README.md +32 -0
- mineproductivity-2.0.0/scripts/bootstrap/README.md +29 -0
- mineproductivity-2.0.0/scripts/development/README.md +29 -0
- mineproductivity-2.0.0/scripts/docs/link_rewrite_hook.py +70 -0
- mineproductivity-2.0.0/scripts/quality/README.md +31 -0
- mineproductivity-2.0.0/scripts/quality/check_docs.py +181 -0
- mineproductivity-2.0.0/scripts/quality/perf_smoke.py +108 -0
- mineproductivity-2.0.0/scripts/quality/smoke_test.py +58 -0
- mineproductivity-2.0.0/scripts/release/README.md +29 -0
- mineproductivity-2.0.0/src/mineproductivity/README.md +31 -0
- mineproductivity-2.0.0/src/mineproductivity/__init__.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/README.md +27 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/__init__.py +85 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/_registry.py +84 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/abstractions.py +113 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/approval.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/audit.py +102 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/capability.py +91 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/communication.py +82 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/conversation.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/discovery.py +78 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/exceptions.py +60 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/executor.py +273 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/goal.py +41 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/memory.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/metadata.py +78 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/persistence.py +23 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/policy.py +228 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/result.py +57 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/state.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/task.py +87 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/tool.py +107 -0
- mineproductivity-2.0.0/src/mineproductivity/agents/workflow.py +114 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/README.md +90 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/__init__.py +206 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/_registry.py +75 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/abstractions.py +99 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/aggregation.py +214 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/anomaly.py +62 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/baseline.py +130 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/batch.py +67 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/benchmarking.py +258 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/exceptions.py +40 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/forecasting.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/incremental.py +127 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/metadata.py +74 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/outliers.py +72 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/pipeline.py +136 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/quality.py +312 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/result.py +275 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/rolling.py +138 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/statistics.py +348 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/streaming.py +144 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/timeseries.py +126 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/trend.py +124 -0
- mineproductivity-2.0.0/src/mineproductivity/analytics/windowing.py +48 -0
- mineproductivity-2.0.0/src/mineproductivity/benchmark/README.md +38 -0
- mineproductivity-2.0.0/src/mineproductivity/benchmark/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/certification/README.md +38 -0
- mineproductivity-2.0.0/src/mineproductivity/certification/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/cli/README.md +38 -0
- mineproductivity-2.0.0/src/mineproductivity/cli/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/config/README.md +39 -0
- mineproductivity-2.0.0/src/mineproductivity/config/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/README.md +224 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/__init__.py +77 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/_registry.py +30 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/auth.py +74 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/base.py +109 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/contract_tests.py +89 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/exceptions.py +39 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/file/__init__.py +8 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/file/_common.py +125 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/file/csv_connector.py +122 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/file/excel_connector.py +131 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/health.py +33 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/network/__init__.py +8 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/network/graphql_connector.py +143 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/network/rest_connector.py +152 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/normalization.py +109 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/__init__.py +33 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/dispatch_shape.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/hexagon_shape.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/minestar_shape.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/modular_shape.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/oem/wenco_shape.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/retry.py +108 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/__init__.py +8 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/_common.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/kafka_connector.py +90 -0
- mineproductivity-2.0.0/src/mineproductivity/connectors/streaming/mqtt_connector.py +87 -0
- mineproductivity-2.0.0/src/mineproductivity/core/README.md +350 -0
- mineproductivity-2.0.0/src/mineproductivity/core/__init__.py +99 -0
- mineproductivity-2.0.0/src/mineproductivity/core/builder.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/core/configuration.py +49 -0
- mineproductivity-2.0.0/src/mineproductivity/core/entity.py +70 -0
- mineproductivity-2.0.0/src/mineproductivity/core/exceptions.py +74 -0
- mineproductivity-2.0.0/src/mineproductivity/core/factory.py +47 -0
- mineproductivity-2.0.0/src/mineproductivity/core/identifier.py +68 -0
- mineproductivity-2.0.0/src/mineproductivity/core/maybe.py +117 -0
- mineproductivity-2.0.0/src/mineproductivity/core/metadata.py +62 -0
- mineproductivity-2.0.0/src/mineproductivity/core/repository.py +123 -0
- mineproductivity-2.0.0/src/mineproductivity/core/result.py +142 -0
- mineproductivity-2.0.0/src/mineproductivity/core/serialization.py +140 -0
- mineproductivity-2.0.0/src/mineproductivity/core/service.py +30 -0
- mineproductivity-2.0.0/src/mineproductivity/core/specification.py +116 -0
- mineproductivity-2.0.0/src/mineproductivity/core/typing.py +72 -0
- mineproductivity-2.0.0/src/mineproductivity/core/validator.py +118 -0
- mineproductivity-2.0.0/src/mineproductivity/core/value_object.py +85 -0
- mineproductivity-2.0.0/src/mineproductivity/core/versioning.py +47 -0
- mineproductivity-2.0.0/src/mineproductivity/datasets/README.md +40 -0
- mineproductivity-2.0.0/src/mineproductivity/datasets/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/README.md +65 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/__init__.py +181 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/_registry.py +66 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/abstractions.py +146 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/alerting.py +103 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/audit.py +130 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/batch.py +99 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/exceptions.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/explanation.py +117 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/metadata.py +73 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/pipeline.py +131 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/planning.py +166 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/policy.py +197 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/prioritization.py +85 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/ranking.py +111 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/realtime.py +236 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/recommendation.py +80 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/result.py +321 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/root_cause.py +55 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/rules.py +117 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/scoring.py +139 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/strategy.py +212 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/thresholds.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/decision/what_if.py +57 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/README.md +57 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/__init__.py +115 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/_registry.py +71 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/abstractions.py +140 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/caching.py +82 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/categories.py +164 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/discovery.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/exceptions.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/lifecycle.py +31 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/metadata.py +100 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/persistence.py +32 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/result.py +112 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/simulation.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/snapshot.py +58 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/state.py +77 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/synchronization.py +230 -0
- mineproductivity-2.0.0/src/mineproductivity/digital_twin/telemetry.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/events/README.md +203 -0
- mineproductivity-2.0.0/src/mineproductivity/events/__init__.py +83 -0
- mineproductivity-2.0.0/src/mineproductivity/events/base_event.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/events/bus.py +98 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/__init__.py +60 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/consumption_event.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/cycle_event.py +74 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/delay_event.py +46 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/maintenance_event.py +51 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/production_event.py +46 -0
- mineproductivity-2.0.0/src/mineproductivity/events/canonical/safety_event.py +54 -0
- mineproductivity-2.0.0/src/mineproductivity/events/envelope.py +88 -0
- mineproductivity-2.0.0/src/mineproductivity/events/exceptions.py +48 -0
- mineproductivity-2.0.0/src/mineproductivity/events/identifier.py +69 -0
- mineproductivity-2.0.0/src/mineproductivity/events/replay.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/events/schema.py +73 -0
- mineproductivity-2.0.0/src/mineproductivity/events/serialization/__init__.py +16 -0
- mineproductivity-2.0.0/src/mineproductivity/events/serialization/arrow_codec.py +91 -0
- mineproductivity-2.0.0/src/mineproductivity/events/serialization/json_codec.py +126 -0
- mineproductivity-2.0.0/src/mineproductivity/events/serialization/parquet_codec.py +100 -0
- mineproductivity-2.0.0/src/mineproductivity/events/snapshot.py +38 -0
- mineproductivity-2.0.0/src/mineproductivity/events/store.py +219 -0
- mineproductivity-2.0.0/src/mineproductivity/events/validation.py +118 -0
- mineproductivity-2.0.0/src/mineproductivity/events/versioning.py +31 -0
- mineproductivity-2.0.0/src/mineproductivity/exceptions/README.md +39 -0
- mineproductivity-2.0.0/src/mineproductivity/exceptions/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/io/README.md +39 -0
- mineproductivity-2.0.0/src/mineproductivity/io/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/README.md +245 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/__init__.py +96 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/_registry.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/aggregation.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/__init__.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/base_backend.py +78 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/duckdb_backend.py +59 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/numpy_backend.py +83 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/pandas_backend.py +48 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/backends/polars_backend.py +55 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/base_kpi.py +72 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/caching.py +79 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/__init__.py +30 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/_common.py +38 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/cost_kpi.py +18 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/delay_kpi.py +31 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/energy_kpi.py +19 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/haulage_kpi.py +18 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/maintenance_kpi.py +18 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/production_kpi.py +20 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/quality_kpi.py +18 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/safety_kpi.py +19 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/categories/utilization_kpi.py +20 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/certification.py +57 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/composite.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/dependency_graph.py +93 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/engine.py +223 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/exceptions.py +42 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/inheritance.py +54 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/lifecycle.py +20 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/metadata.py +151 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/naming.py +97 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/result.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/__init__.py +46 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/cost.py +70 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/delay.py +48 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/energy.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/haulage.py +51 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/maintenance.py +46 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/production.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/quality.py +49 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/safety.py +54 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/standard_library/utilization.py +211 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/validation.py +67 -0
- mineproductivity-2.0.0/src/mineproductivity/kpis/windowing.py +68 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/README.md +242 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/__init__.py +119 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/cost/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/cost/cost_center.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/entity_type.py +241 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/environmental/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/environmental/emissions.py +65 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/__init__.py +35 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/ancillary.py +57 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/drill.py +27 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/equipment_type.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/fixed_plant.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/haul_truck.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/equipment/loading_unit.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/exceptions.py +23 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/graph_projection.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/location/__init__.py +10 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/location/mine.py +45 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/location/pit.py +68 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/location/route.py +72 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/location/underground.py +77 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/maintenance/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/maintenance/failure_mode.py +73 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/material/__init__.py +8 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/material/commodity.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/material/material_type.py +15 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/organization/__init__.py +9 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/organization/business_unit.py +45 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/organization/crew.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/organization/fleet.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/production/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/production/shift.py +95 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/quality/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/quality/grade.py +74 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/reference/__init__.py +12 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/reference/delay_taxonomy.py +47 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/relationship.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/safety/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/safety/hazard.py +86 -0
- mineproductivity-2.0.0/src/mineproductivity/ontology/validation.py +75 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/README.md +34 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/__init__.py +112 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/_registry.py +47 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/abstractions.py +109 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/comparison.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/constraint_programming.py +38 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/discovery.py +80 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/evolutionary.py +49 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/exceptions.py +49 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/executor.py +234 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/linear_programming.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/metadata.py +72 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/mixed_integer_programming.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/multi_objective.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/network_optimization.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/persistence.py +23 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/problem.py +238 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/result.py +61 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/run.py +71 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/sensitivity.py +130 -0
- mineproductivity-2.0.0/src/mineproductivity/optimization/state.py +48 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/README.md +148 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/__init__.py +33 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/dependency.py +70 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/exceptions.py +18 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/lifecycle.py +140 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/loader.py +53 -0
- mineproductivity-2.0.0/src/mineproductivity/plugins/manifest.py +57 -0
- mineproductivity-2.0.0/src/mineproductivity/py.typed +0 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/README.md +172 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/__init__.py +43 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/caching.py +55 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/decorators.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/entry_point.py +80 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/exceptions.py +34 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/registry.py +141 -0
- mineproductivity-2.0.0/src/mineproductivity/registry/version_compat.py +75 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/README.md +62 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/__init__.py +115 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/_registry.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/abstractions.py +127 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/caching.py +80 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/calibration.py +55 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/clock.py +82 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/comparison.py +95 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/discovery.py +104 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/discrete_event.py +50 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/exceptions.py +52 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/executor.py +275 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/experiment.py +117 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/metadata.py +92 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/montecarlo.py +58 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/persistence.py +29 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/replay.py +73 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/result.py +66 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/run.py +93 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/scenario.py +156 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/sensitivity.py +92 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/state.py +70 -0
- mineproductivity-2.0.0/src/mineproductivity/simulation/system_dynamics.py +49 -0
- mineproductivity-2.0.0/src/mineproductivity/typing/why.txt +15 -0
- mineproductivity-2.0.0/src/mineproductivity/utils/README.md +39 -0
- mineproductivity-2.0.0/src/mineproductivity/utils/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/validation/README.md +39 -0
- mineproductivity-2.0.0/src/mineproductivity/validation/__init__.py +7 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/README.md +27 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/__init__.py +84 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/_registry.py +85 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/abstractions.py +179 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/dashboard.py +64 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/dashboard_builder.py +107 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/discovery.py +46 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/exceptions.py +42 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/export.py +62 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/layout.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/persistence.py +26 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/pipeline.py +88 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/presentation.py +56 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/renderer.py +90 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/report.py +47 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/report_builder.py +63 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/theme.py +44 -0
- mineproductivity-2.0.0/src/mineproductivity/visualization/widget.py +49 -0
- mineproductivity-2.0.0/tests/README.md +39 -0
- mineproductivity-2.0.0/tests/datasets/README.md +31 -0
- mineproductivity-2.0.0/tests/fixtures/README.md +32 -0
- mineproductivity-2.0.0/tests/fixtures/connectors/README.md +19 -0
- mineproductivity-2.0.0/tests/fixtures/connectors/cycle_events.csv +5 -0
- mineproductivity-2.0.0/tests/fixtures/connectors/delay_events.csv +4 -0
- mineproductivity-2.0.0/tests/fixtures/connectors/local_timezone_cycle_events.csv +3 -0
- mineproductivity-2.0.0/tests/fixtures/connectors/malformed_cycle_events.csv +10 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/README.md +26 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/consumption_events.csv +3 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/cycle_events.csv +13 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/delay_events.csv +3 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/maintenance_events.csv +2 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/production_events.csv +2 -0
- mineproductivity-2.0.0/tests/fixtures/kpis/safety_events.csv +3 -0
- mineproductivity-2.0.0/tests/fixtures/plugins/README.md +25 -0
- mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_broken/mineproductivity_registry_fixture_broken/__init__.py +9 -0
- mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_broken/pyproject.toml +16 -0
- mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_healthy/mineproductivity_registry_fixture_healthy/__init__.py +7 -0
- mineproductivity-2.0.0/tests/fixtures/plugins/registry_fixture_healthy/pyproject.toml +16 -0
- mineproductivity-2.0.0/tests/golden/README.md +32 -0
- mineproductivity-2.0.0/tests/integration/README.md +36 -0
- mineproductivity-2.0.0/tests/integration/__init__.py +0 -0
- mineproductivity-2.0.0/tests/integration/conftest.py +39 -0
- mineproductivity-2.0.0/tests/integration/test_connector_pipeline.py +161 -0
- mineproductivity-2.0.0/tests/integration/test_events_pipeline.py +275 -0
- mineproductivity-2.0.0/tests/integration/test_kpi_pipeline.py +278 -0
- mineproductivity-2.0.0/tests/integration/test_ontology_model.py +255 -0
- mineproductivity-2.0.0/tests/integration/test_registry_plugin_discovery.py +117 -0
- mineproductivity-2.0.0/tests/integration/test_simulation_experiment.py +115 -0
- mineproductivity-2.0.0/tests/performance/README.md +32 -0
- mineproductivity-2.0.0/tests/regression/README.md +32 -0
- mineproductivity-2.0.0/tests/unit/README.md +32 -0
- mineproductivity-2.0.0/tests/unit/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/agents/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/agents/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/agents/test__registry.py +250 -0
- mineproductivity-2.0.0/tests/unit/agents/test_abstractions.py +91 -0
- mineproductivity-2.0.0/tests/unit/agents/test_approval.py +43 -0
- mineproductivity-2.0.0/tests/unit/agents/test_audit.py +104 -0
- mineproductivity-2.0.0/tests/unit/agents/test_capability.py +59 -0
- mineproductivity-2.0.0/tests/unit/agents/test_communication.py +110 -0
- mineproductivity-2.0.0/tests/unit/agents/test_conversation.py +45 -0
- mineproductivity-2.0.0/tests/unit/agents/test_discovery.py +79 -0
- mineproductivity-2.0.0/tests/unit/agents/test_exceptions.py +46 -0
- mineproductivity-2.0.0/tests/unit/agents/test_executor.py +449 -0
- mineproductivity-2.0.0/tests/unit/agents/test_goal.py +31 -0
- mineproductivity-2.0.0/tests/unit/agents/test_memory.py +58 -0
- mineproductivity-2.0.0/tests/unit/agents/test_metadata.py +59 -0
- mineproductivity-2.0.0/tests/unit/agents/test_persistence.py +61 -0
- mineproductivity-2.0.0/tests/unit/agents/test_policy.py +214 -0
- mineproductivity-2.0.0/tests/unit/agents/test_public_api.py +264 -0
- mineproductivity-2.0.0/tests/unit/agents/test_result.py +65 -0
- mineproductivity-2.0.0/tests/unit/agents/test_state.py +36 -0
- mineproductivity-2.0.0/tests/unit/agents/test_task.py +100 -0
- mineproductivity-2.0.0/tests/unit/agents/test_tool.py +83 -0
- mineproductivity-2.0.0/tests/unit/agents/test_workflow.py +345 -0
- mineproductivity-2.0.0/tests/unit/analytics/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/analytics/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/analytics/conftest.py +110 -0
- mineproductivity-2.0.0/tests/unit/analytics/test__registry.py +127 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_abstractions.py +123 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_aggregation.py +271 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_anomaly.py +208 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_baseline.py +248 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_batch.py +147 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_benchmarking.py +394 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_exceptions.py +42 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_forecasting.py +169 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_incremental.py +227 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_metadata.py +114 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_outliers.py +216 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_pipeline.py +144 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_public_api.py +128 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_quality.py +426 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_result.py +275 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_rolling.py +164 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_statistics.py +247 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_streaming.py +290 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_timeseries.py +151 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_trend.py +201 -0
- mineproductivity-2.0.0/tests/unit/analytics/test_windowing.py +59 -0
- mineproductivity-2.0.0/tests/unit/benchmark/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/benchmark/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/certification/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/certification/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/cli/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/cli/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/config/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/config/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/README.md +35 -0
- mineproductivity-2.0.0/tests/unit/connectors/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/file/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/file/test_common.py +143 -0
- mineproductivity-2.0.0/tests/unit/connectors/file/test_csv_connector.py +171 -0
- mineproductivity-2.0.0/tests/unit/connectors/file/test_excel_connector.py +144 -0
- mineproductivity-2.0.0/tests/unit/connectors/network/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/network/conftest.py +49 -0
- mineproductivity-2.0.0/tests/unit/connectors/network/test_graphql_connector.py +200 -0
- mineproductivity-2.0.0/tests/unit/connectors/network/test_rest_connector.py +221 -0
- mineproductivity-2.0.0/tests/unit/connectors/oem/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/oem/test_oem_shapes.py +110 -0
- mineproductivity-2.0.0/tests/unit/connectors/streaming/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/connectors/streaming/test_common.py +78 -0
- mineproductivity-2.0.0/tests/unit/connectors/streaming/test_kafka_connector.py +81 -0
- mineproductivity-2.0.0/tests/unit/connectors/streaming/test_mqtt_connector.py +64 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_auth.py +75 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_base.py +94 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_connector_registry.py +60 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_contract_tests.py +129 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_exceptions.py +35 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_health.py +39 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_normalization.py +99 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_public_api.py +129 -0
- mineproductivity-2.0.0/tests/unit/connectors/test_retry.py +148 -0
- mineproductivity-2.0.0/tests/unit/core/README.md +49 -0
- mineproductivity-2.0.0/tests/unit/core/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/core/test_builder.py +52 -0
- mineproductivity-2.0.0/tests/unit/core/test_configuration.py +51 -0
- mineproductivity-2.0.0/tests/unit/core/test_entity.py +76 -0
- mineproductivity-2.0.0/tests/unit/core/test_exceptions.py +68 -0
- mineproductivity-2.0.0/tests/unit/core/test_factory.py +41 -0
- mineproductivity-2.0.0/tests/unit/core/test_identifier.py +56 -0
- mineproductivity-2.0.0/tests/unit/core/test_maybe.py +98 -0
- mineproductivity-2.0.0/tests/unit/core/test_metadata.py +79 -0
- mineproductivity-2.0.0/tests/unit/core/test_public_api.py +94 -0
- mineproductivity-2.0.0/tests/unit/core/test_repository.py +98 -0
- mineproductivity-2.0.0/tests/unit/core/test_result.py +110 -0
- mineproductivity-2.0.0/tests/unit/core/test_serialization.py +216 -0
- mineproductivity-2.0.0/tests/unit/core/test_service.py +23 -0
- mineproductivity-2.0.0/tests/unit/core/test_specification.py +87 -0
- mineproductivity-2.0.0/tests/unit/core/test_typing.py +55 -0
- mineproductivity-2.0.0/tests/unit/core/test_validator.py +83 -0
- mineproductivity-2.0.0/tests/unit/core/test_value_object.py +91 -0
- mineproductivity-2.0.0/tests/unit/core/test_versioning.py +62 -0
- mineproductivity-2.0.0/tests/unit/datasets/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/datasets/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/decision/README.md +52 -0
- mineproductivity-2.0.0/tests/unit/decision/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/decision/test__registry.py +154 -0
- mineproductivity-2.0.0/tests/unit/decision/test_abstractions.py +221 -0
- mineproductivity-2.0.0/tests/unit/decision/test_alerting.py +97 -0
- mineproductivity-2.0.0/tests/unit/decision/test_audit.py +147 -0
- mineproductivity-2.0.0/tests/unit/decision/test_batch.py +82 -0
- mineproductivity-2.0.0/tests/unit/decision/test_exceptions.py +47 -0
- mineproductivity-2.0.0/tests/unit/decision/test_explanation.py +158 -0
- mineproductivity-2.0.0/tests/unit/decision/test_metadata.py +91 -0
- mineproductivity-2.0.0/tests/unit/decision/test_pipeline.py +131 -0
- mineproductivity-2.0.0/tests/unit/decision/test_planning.py +115 -0
- mineproductivity-2.0.0/tests/unit/decision/test_policy.py +266 -0
- mineproductivity-2.0.0/tests/unit/decision/test_prioritization.py +84 -0
- mineproductivity-2.0.0/tests/unit/decision/test_public_api.py +170 -0
- mineproductivity-2.0.0/tests/unit/decision/test_ranking.py +156 -0
- mineproductivity-2.0.0/tests/unit/decision/test_realtime.py +404 -0
- mineproductivity-2.0.0/tests/unit/decision/test_recommendation.py +102 -0
- mineproductivity-2.0.0/tests/unit/decision/test_result.py +271 -0
- mineproductivity-2.0.0/tests/unit/decision/test_root_cause.py +73 -0
- mineproductivity-2.0.0/tests/unit/decision/test_rules.py +131 -0
- mineproductivity-2.0.0/tests/unit/decision/test_scoring.py +136 -0
- mineproductivity-2.0.0/tests/unit/decision/test_strategy.py +303 -0
- mineproductivity-2.0.0/tests/unit/decision/test_thresholds.py +49 -0
- mineproductivity-2.0.0/tests/unit/decision/test_what_if.py +74 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/README.md +32 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test__registry.py +155 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_abstractions.py +180 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_caching.py +78 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_categories.py +122 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_discovery.py +105 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_exceptions.py +44 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_lifecycle.py +26 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_metadata.py +75 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_persistence.py +128 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_public_api.py +244 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_result.py +112 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_simulation.py +84 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_snapshot.py +84 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_state.py +73 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_synchronization.py +531 -0
- mineproductivity-2.0.0/tests/unit/digital_twin/test_telemetry.py +59 -0
- mineproductivity-2.0.0/tests/unit/events/README.md +47 -0
- mineproductivity-2.0.0/tests/unit/events/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_canonical_registry.py +40 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_consumption_event.py +49 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_cycle_event.py +91 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_delay_event.py +57 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_maintenance_event.py +57 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_production_event.py +50 -0
- mineproductivity-2.0.0/tests/unit/events/canonical/test_safety_event.py +53 -0
- mineproductivity-2.0.0/tests/unit/events/conftest.py +59 -0
- mineproductivity-2.0.0/tests/unit/events/serialization/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/events/serialization/test_arrow_codec.py +72 -0
- mineproductivity-2.0.0/tests/unit/events/serialization/test_json_codec.py +188 -0
- mineproductivity-2.0.0/tests/unit/events/serialization/test_parquet_codec.py +101 -0
- mineproductivity-2.0.0/tests/unit/events/test_base_event.py +47 -0
- mineproductivity-2.0.0/tests/unit/events/test_bus.py +87 -0
- mineproductivity-2.0.0/tests/unit/events/test_envelope.py +161 -0
- mineproductivity-2.0.0/tests/unit/events/test_exceptions.py +59 -0
- mineproductivity-2.0.0/tests/unit/events/test_identifier.py +61 -0
- mineproductivity-2.0.0/tests/unit/events/test_public_api.py +125 -0
- mineproductivity-2.0.0/tests/unit/events/test_replay.py +50 -0
- mineproductivity-2.0.0/tests/unit/events/test_schema.py +62 -0
- mineproductivity-2.0.0/tests/unit/events/test_snapshot.py +26 -0
- mineproductivity-2.0.0/tests/unit/events/test_store.py +379 -0
- mineproductivity-2.0.0/tests/unit/events/test_validation.py +133 -0
- mineproductivity-2.0.0/tests/unit/events/test_versioning.py +24 -0
- mineproductivity-2.0.0/tests/unit/exceptions/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/exceptions/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/io/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/io/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/kpis/README.md +38 -0
- mineproductivity-2.0.0/tests/unit/kpis/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_backend_parity.py +88 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_backends_init.py +28 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_base_backend.py +39 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_duckdb_backend.py +83 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_numpy_backend.py +110 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_pandas_backend.py +89 -0
- mineproductivity-2.0.0/tests/unit/kpis/backends/test_polars_backend.py +79 -0
- mineproductivity-2.0.0/tests/unit/kpis/categories/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/kpis/categories/test_category_bases.py +128 -0
- mineproductivity-2.0.0/tests/unit/kpis/categories/test_common.py +102 -0
- mineproductivity-2.0.0/tests/unit/kpis/conftest.py +66 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_cost.py +68 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_delay.py +22 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_energy.py +30 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_haulage.py +49 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_maintenance.py +26 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_production.py +52 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_quality.py +35 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_safety.py +40 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_standard_library_init.py +74 -0
- mineproductivity-2.0.0/tests/unit/kpis/standard_library/test_utilization.py +141 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_aggregation.py +82 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_base_kpi.py +108 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_caching.py +150 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_certification.py +82 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_composite.py +86 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_dependency_graph.py +164 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_engine.py +604 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_exceptions.py +47 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_inheritance.py +57 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_kpi_registry.py +162 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_lifecycle.py +21 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_metadata.py +139 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_naming.py +93 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_public_api.py +196 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_result.py +63 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_validation.py +131 -0
- mineproductivity-2.0.0/tests/unit/kpis/test_windowing.py +90 -0
- mineproductivity-2.0.0/tests/unit/ontology/README.md +33 -0
- mineproductivity-2.0.0/tests/unit/ontology/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/cost/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/cost/test_cost_center.py +37 -0
- mineproductivity-2.0.0/tests/unit/ontology/environmental/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/environmental/test_emissions.py +35 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_ancillary.py +30 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_drill.py +19 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_equipment_type.py +51 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_fixed_plant.py +34 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_haul_truck.py +51 -0
- mineproductivity-2.0.0/tests/unit/ontology/equipment/test_loading_unit.py +34 -0
- mineproductivity-2.0.0/tests/unit/ontology/location/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/location/test_mine.py +25 -0
- mineproductivity-2.0.0/tests/unit/ontology/location/test_pit.py +28 -0
- mineproductivity-2.0.0/tests/unit/ontology/location/test_route.py +51 -0
- mineproductivity-2.0.0/tests/unit/ontology/location/test_underground.py +49 -0
- mineproductivity-2.0.0/tests/unit/ontology/maintenance/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/maintenance/test_failure_mode.py +42 -0
- mineproductivity-2.0.0/tests/unit/ontology/material/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/material/test_commodity.py +29 -0
- mineproductivity-2.0.0/tests/unit/ontology/material/test_material_type.py +15 -0
- mineproductivity-2.0.0/tests/unit/ontology/organization/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/organization/test_business_unit.py +25 -0
- mineproductivity-2.0.0/tests/unit/ontology/organization/test_crew.py +28 -0
- mineproductivity-2.0.0/tests/unit/ontology/organization/test_fleet.py +23 -0
- mineproductivity-2.0.0/tests/unit/ontology/production/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/production/test_shift.py +94 -0
- mineproductivity-2.0.0/tests/unit/ontology/quality/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/quality/test_grade.py +59 -0
- mineproductivity-2.0.0/tests/unit/ontology/reference/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/reference/test_delay_taxonomy.py +28 -0
- mineproductivity-2.0.0/tests/unit/ontology/safety/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/ontology/safety/test_hazard.py +52 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_entity_type.py +214 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_exceptions.py +39 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_graph_projection.py +65 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_public_api.py +147 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_relationship.py +63 -0
- mineproductivity-2.0.0/tests/unit/ontology/test_validation.py +86 -0
- mineproductivity-2.0.0/tests/unit/optimization/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/optimization/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/optimization/test__registry.py +179 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_abstractions.py +32 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_comparison.py +56 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_constraint_programming.py +27 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_discovery.py +104 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_evolutionary.py +96 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_exceptions.py +32 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_executor.py +403 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_linear_programming.py +49 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_metadata.py +50 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_mixed_integer_programming.py +69 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_multi_objective.py +27 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_network_optimization.py +52 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_persistence.py +60 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_problem.py +155 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_public_api.py +232 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_result.py +57 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_run.py +56 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_sensitivity.py +140 -0
- mineproductivity-2.0.0/tests/unit/optimization/test_state.py +38 -0
- mineproductivity-2.0.0/tests/unit/plugins/README.md +35 -0
- mineproductivity-2.0.0/tests/unit/plugins/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_dependency.py +103 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_exceptions.py +26 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_lifecycle.py +159 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_loader.py +99 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_manifest.py +75 -0
- mineproductivity-2.0.0/tests/unit/plugins/test_public_api.py +99 -0
- mineproductivity-2.0.0/tests/unit/registry/README.md +34 -0
- mineproductivity-2.0.0/tests/unit/registry/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/registry/test_caching.py +106 -0
- mineproductivity-2.0.0/tests/unit/registry/test_decorators.py +70 -0
- mineproductivity-2.0.0/tests/unit/registry/test_entry_point.py +134 -0
- mineproductivity-2.0.0/tests/unit/registry/test_exceptions.py +53 -0
- mineproductivity-2.0.0/tests/unit/registry/test_public_api.py +107 -0
- mineproductivity-2.0.0/tests/unit/registry/test_registry.py +128 -0
- mineproductivity-2.0.0/tests/unit/registry/test_version_compat.py +69 -0
- mineproductivity-2.0.0/tests/unit/simulation/README.md +32 -0
- mineproductivity-2.0.0/tests/unit/simulation/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/simulation/test__registry.py +147 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_abstractions.py +50 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_caching.py +70 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_calibration.py +85 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_clock.py +52 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_comparison.py +88 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_discovery.py +157 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_discrete_event.py +96 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_exceptions.py +44 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_executor.py +432 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_experiment.py +122 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_metadata.py +63 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_montecarlo.py +147 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_persistence.py +90 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_public_api.py +248 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_replay.py +126 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_result.py +72 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_run.py +87 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_scenario.py +139 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_sensitivity.py +151 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_state.py +65 -0
- mineproductivity-2.0.0/tests/unit/simulation/test_system_dynamics.py +92 -0
- mineproductivity-2.0.0/tests/unit/utils/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/utils/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/validation/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/validation/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/visualization/README.md +29 -0
- mineproductivity-2.0.0/tests/unit/visualization/__init__.py +0 -0
- mineproductivity-2.0.0/tests/unit/visualization/test__registry.py +268 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_abstractions.py +358 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_dashboard.py +84 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_dashboard_builder.py +80 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_discovery.py +41 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_exceptions.py +36 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_export.py +155 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_layout.py +35 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_persistence.py +70 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_pipeline.py +299 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_presentation.py +54 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_public_api.py +240 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_renderer.py +57 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_report.py +46 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_report_builder.py +161 -0
- mineproductivity-2.0.0/tests/unit/visualization/test_theme.py +37 -0
- 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,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
|