scientific-computing-system 2.0.0__tar.gz → 2.0.1__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.
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CHANGELOG.md +11 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CITATION.cff +3 -3
- scientific_computing_system-2.0.1/PKG-INFO +139 -0
- scientific_computing_system-2.0.1/README.md +43 -0
- scientific_computing_system-2.0.1/SECURITY.md +82 -0
- scientific_computing_system-2.0.1/benchmarks/robust_runner.py +118 -0
- scientific_computing_system-2.0.1/docs/why-pure-python.md +19 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/pyproject.toml +7 -2
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/requirements-dev.lock +3 -3
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/_version.py +3 -2
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_io/__init__.py +8 -0
- scientific_computing_system-2.0.1/src/cds/data_io/streaming.py +314 -0
- scientific_computing_system-2.0.1/src/cds/hypothesis/evaluator.py +311 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/fitting.py +161 -13
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/markov.py +34 -19
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/methods.py +102 -80
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/provenance/__init__.py +4 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/provenance/manifest.py +153 -20
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/circuit.py +42 -12
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/multi_qubit.py +96 -41
- scientific_computing_system-2.0.1/src/cds/quantum/simulator.py +53 -0
- scientific_computing_system-2.0.1/src/cds/sensitivity.py +204 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/__init__.py +4 -4
- scientific_computing_system-2.0.1/src/cds/stats/hypothesis_tests.py +294 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/__init__.py +2 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/adapters.py +77 -1
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/registry.py +20 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/uncertainty/propagation.py +24 -24
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/units/core.py +24 -1
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/__init__.py +12 -0
- scientific_computing_system-2.0.1/src/cds/validation/adequacy.py +157 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/checks.py +217 -0
- scientific_computing_system-2.0.1/src/cds/workflow/__init__.py +77 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/engine.py +18 -4
- scientific_computing_system-2.0.1/src/cds/workflow/gates.py +120 -0
- scientific_computing_system-2.0.1/src/cds/workflow/orchestrator.py +431 -0
- scientific_computing_system-2.0.1/src/cds/workflow/selection.py +454 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/tooling.py +61 -10
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/types.py +14 -1
- scientific_computing_system-2.0.1/tests/test_audit_completion_coverage.py +183 -0
- scientific_computing_system-2.0.1/tests/test_audit_guard_coverage.py +115 -0
- scientific_computing_system-2.0.1/tests/test_audit_hardening.py +138 -0
- scientific_computing_system-2.0.1/tests/test_audit_hardening_coverage.py +111 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_io.py +4 -0
- scientific_computing_system-2.0.1/tests/test_edge_ml_quantum_linalg.py +191 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_quantum_evaluator_cli.py +16 -64
- scientific_computing_system-2.0.1/tests/test_fitting_bootstrap.py +202 -0
- scientific_computing_system-2.0.1/tests/test_hardening_privacy_provenance.py +306 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_engine.py +10 -8
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_mining.py +3 -1
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_tests.py +6 -15
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_markov.py +43 -4
- scientific_computing_system-2.0.1/tests/test_montecarlo.py +245 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_multi_qubit.py +170 -47
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_provenance.py +29 -0
- scientific_computing_system-2.0.1/tests/test_provenance_audit_hardening.py +45 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_quantum.py +72 -8
- scientific_computing_system-2.0.1/tests/test_release_contract.py +105 -0
- scientific_computing_system-2.0.1/tests/test_selection_audit_hardening.py +55 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_sensitivity.py +6 -2
- scientific_computing_system-2.0.1/tests/test_sensitivity_global.py +73 -0
- scientific_computing_system-2.0.1/tests/test_statistical_audit.py +75 -0
- scientific_computing_system-2.0.1/tests/test_stats_audit_coverage.py +17 -0
- scientific_computing_system-2.0.1/tests/test_streaming_analytics.py +128 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_uncertainty.py +11 -7
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_units.py +22 -0
- scientific_computing_system-2.0.1/tests/test_validation_adequacy.py +129 -0
- scientific_computing_system-2.0.1/tests/test_validation_advanced.py +110 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_workflow.py +45 -8
- scientific_computing_system-2.0.1/tests/test_workflow_gates.py +144 -0
- scientific_computing_system-2.0.1/tests/test_workflow_orchestrator.py +516 -0
- scientific_computing_system-2.0.1/tests/test_workflow_orchestrator_blocked_review.py +95 -0
- scientific_computing_system-2.0.1/tests/test_workflow_selection.py +312 -0
- scientific_computing_system-2.0.1/tests/test_workflow_selection_coverage.py +114 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_workflow_tooling.py +2 -1
- scientific_computing_system-2.0.0/PKG-INFO +0 -769
- scientific_computing_system-2.0.0/README.md +0 -678
- scientific_computing_system-2.0.0/SECURITY.md +0 -72
- scientific_computing_system-2.0.0/src/cds/data_io/streaming.py +0 -120
- scientific_computing_system-2.0.0/src/cds/hypothesis/evaluator.py +0 -369
- scientific_computing_system-2.0.0/src/cds/quantum/simulator.py +0 -38
- scientific_computing_system-2.0.0/src/cds/sensitivity.py +0 -90
- scientific_computing_system-2.0.0/src/cds/stats/hypothesis_tests.py +0 -403
- scientific_computing_system-2.0.0/src/cds/workflow/__init__.py +0 -32
- scientific_computing_system-2.0.0/tests/test_edge_ml_quantum_linalg.py +0 -246
- scientific_computing_system-2.0.0/tests/test_montecarlo.py +0 -149
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/.gitignore +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CONTRIBUTING.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/LICENSE +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/benchmarks/results.json +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/benchmarks/run_benchmarks.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/dashboard/app.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/ARCHITECTURE.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/CASE_STUDY_HUBBLE.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/api.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/assets/icon.svg +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/assets/logo.svg +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/benchmarks.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/cookbook.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/getting-started.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/index.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/maintenance.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/ml_reference.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/research-workflows.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/stylesheets/extra.css +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tour_of_numerical_methods.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/core_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/data_analysis_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/diffeq_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/fft2_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/graph_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_tests_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/knowledge_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/linalg_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/math_utils_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_advanced_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_and_viz_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/modeling_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/montecarlo_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_attention_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_bpe_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_viz.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/numerical_integration_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/optimization_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/pandas_io_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/pca_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/probability_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/quantum_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/quick_start.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/scientific_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/signals_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/stats_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/stiff_ode_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/time_series_demo.md +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/core_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/data_analysis_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/diffeq_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/discovery_pipeline_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/ensemble_showcase.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/fft2_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/graph_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_custom_generator.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_tests_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_with_stats_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/interpolate_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/knowledge_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/linalg_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/math_utils_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/ml_and_viz_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/modeling_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/montecarlo_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_attention_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_bpe_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_mini_gpt_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_viz_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/numerical_integration_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/optimization_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/pca_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/pde_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/plot_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/plotting_notebook.ipynb +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/probability_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/quantum_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/scientific_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/signals_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/stats_demo.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/tour_of_numerical_methods.ipynb +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/mkdocs.yml +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/requirements.lock +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/scripts/publish.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/scripts/verify_cli_install.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/__main__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/bayes/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/bayes/conjugate.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/__main__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_handlers.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_parser.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_style.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_system_info.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/_numeric.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/models.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/dataset.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/loader.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/pandas_io.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/transform.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/viz.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/_implicit.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/solvers.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/symplectic.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/fractals/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/fractals/sets.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/genetics/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/genetics/sequence.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/graph/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/graph/algorithms.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/generator.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/mining.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/infotheory/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/infotheory/measures.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/interpolate/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/graph.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/notes.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/retrieval.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/calculus.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/linalg.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/special.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/svd.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/boosting.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/clustering.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/decomposition.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/ensemble.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/linear_models.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/metrics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/model_selection.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/naive_bayes.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/neighbors.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/neural.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/preprocessing.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/tree.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/voting.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/_base.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/_nodes.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/expression.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/model.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/solver.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/attention.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/_grad.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/ops.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/tensor.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/bpe.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/data.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/embed.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/layers.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/model.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/optim.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/training.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/viz.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/numerical_integration/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/numerical_integration/quadrature.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/_metaheuristics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/constrained.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/minimize.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/pde/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/_backend.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/charts.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/_advanced.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/distributions.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/extra_distributions.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/py.typed +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/constants.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/formulas.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/filters.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/processing.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/stft.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/wavelet.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/_distributions.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/bootstrap.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/descriptive.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/nonparametric.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/power.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/regression.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/time_series.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/uncertainty/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/units/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/report.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/wavelets/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/wavelets/haar.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/__init__.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/conftest.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_advanced_fitting.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_bayes_v2.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_benchmarks.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_bootstrap.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_color.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_extended.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_system_info.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_constrained_opt.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_core.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis_lazy_bridge.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis_pandas_io.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_dataset.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_diffeq.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_diffeq_implicit.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_domain_validation.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_misc_numerical.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_nlp.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_stats_optimization_signals.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_extra_distributions.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_fft2.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_fractals.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_genetics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_graph.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_infotheory.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_interpolate.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_knowledge.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_layering.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_linalg_extended.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_linalg_qr_cholesky.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_math_utils.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_boosting.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_clustering.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_ensemble.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_knn.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_linreg.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_logreg.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_metrics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_model_selection.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_naive_bayes.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_pca.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_preprocessing.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_tree.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_viz.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_voting.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_modeling.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_modeling_fit_validation.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_attention.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_autograd.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_bpe.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_embed.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_layers.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_model.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_training.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_viz.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_integration.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_invariants.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_oracles.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_optimization.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_optimization_metaheuristics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_pde.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_plot_charts.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_plot_lazy.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_power.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_probability.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_probability_advanced.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_property_invariants.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_public_api.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_retrieval.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_scientific.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_signals.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_signals_filters.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_special_invariants.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_special_numerics.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats_nonparametric.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats_time_series.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stft.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_svd.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_symplectic.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_tool_adapters.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_tools_registry.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_validation.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_wavelet.py +0 -0
- {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_wavelets_v2.py +0 -0
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [v2.0.1] - 2026-09-29
|
|
11
|
+
|
|
12
|
+
Metadata-only patch release for improved PyPI discoverability. No runtime API or numerical behavior changes.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Expanded PyPI keywords and classifiers for reproducibility, uncertainty quantification, sensitivity analysis, dimensional analysis, scientific workflows, ODE/PDE, and related scientific-computing searches.
|
|
17
|
+
- Refreshed development lock versions required by the current security audit.
|
|
18
|
+
- Normalized repository trailing whitespace required by pre-commit.
|
|
19
|
+
|
|
20
|
+
|
|
10
21
|
### Added
|
|
11
22
|
|
|
12
23
|
- **Random Forest classifier** (`cds.ml`): bagged CART trees with
|
|
@@ -2,7 +2,7 @@ cff-version: 1.2.0
|
|
|
2
2
|
message: "If you use this software, please cite it using the metadata from this file."
|
|
3
3
|
type: software
|
|
4
4
|
title: "scientific-computing-system"
|
|
5
|
-
version:
|
|
5
|
+
version: 2.0.1
|
|
6
6
|
authors:
|
|
7
7
|
- name: "Furox-Art"
|
|
8
8
|
email: "furkanarkn1451@gmail.com"
|
|
@@ -10,7 +10,7 @@ abstract: "Pure Python computational science system — quantum simulation, sign
|
|
|
10
10
|
license: MIT
|
|
11
11
|
repository-code: "https://github.com/Furox-Art/scientific-computing-system"
|
|
12
12
|
url: "https://github.com/Furox-Art/scientific-computing-system"
|
|
13
|
-
date-released: "2026-
|
|
13
|
+
date-released: "2026-09-29"
|
|
14
14
|
keywords:
|
|
15
15
|
- "pure python"
|
|
16
16
|
- "scientific computing"
|
|
@@ -25,5 +25,5 @@ preferred-citation:
|
|
|
25
25
|
authors:
|
|
26
26
|
- name: "Furox-Art"
|
|
27
27
|
year: 2026
|
|
28
|
-
version:
|
|
28
|
+
version: 2.0.1
|
|
29
29
|
url: "https://github.com/Furox-Art/scientific-computing-system"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: scientific-computing-system
|
|
3
|
+
Version: 2.0.1
|
|
4
|
+
Summary: A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and optional research-data backends. Zero runtime dependencies.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Furox-Art/scientific-computing-system
|
|
6
|
+
Project-URL: Repository, https://github.com/Furox-Art/scientific-computing-system
|
|
7
|
+
Project-URL: Documentation, https://furox-art.github.io/scientific-computing-system/
|
|
8
|
+
Project-URL: PyPI, https://pypi.org/project/scientific-computing-system/
|
|
9
|
+
Project-URL: Issues, https://github.com/Furox-Art/scientific-computing-system/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/Furox-Art/scientific-computing-system/releases
|
|
11
|
+
Author-email: Furox-Art <furkanarkn1451@gmail.com>
|
|
12
|
+
License-Expression: MIT
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Keywords: data-analysis,differential-equations,dimensional-analysis,graph-theory,hypothesis-generation,knowledge-graph,linear-algebra,machine-learning,monte-carlo,nlp,numerical-integration,numerical-methods,ode,optimization,pde,physics,probability,pure-python,quantum,reproducibility,scientific-computing,scientific-workflows,sensitivity-analysis,signal-processing,statistics,symbolic-math,uncertainty-quantification
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
27
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
29
|
+
Classifier: Typing :: Typed
|
|
30
|
+
Requires-Python: >=3.10
|
|
31
|
+
Provides-Extra: all
|
|
32
|
+
Requires-Dist: build; extra == 'all'
|
|
33
|
+
Requires-Dist: h5py>=3.10; extra == 'all'
|
|
34
|
+
Requires-Dist: hypothesis>=6.100; extra == 'all'
|
|
35
|
+
Requires-Dist: ipykernel; extra == 'all'
|
|
36
|
+
Requires-Dist: matplotlib>=3.8.0; extra == 'all'
|
|
37
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == 'all'
|
|
38
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'all'
|
|
39
|
+
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'all'
|
|
40
|
+
Requires-Dist: mypy>=1.10; extra == 'all'
|
|
41
|
+
Requires-Dist: netcdf4>=1.6; extra == 'all'
|
|
42
|
+
Requires-Dist: notebook; extra == 'all'
|
|
43
|
+
Requires-Dist: numpy>=1.26; extra == 'all'
|
|
44
|
+
Requires-Dist: pandas>=2.0; extra == 'all'
|
|
45
|
+
Requires-Dist: pre-commit; extra == 'all'
|
|
46
|
+
Requires-Dist: pytest-cov; extra == 'all'
|
|
47
|
+
Requires-Dist: pytest>=8.0; extra == 'all'
|
|
48
|
+
Requires-Dist: ruff>=0.4; extra == 'all'
|
|
49
|
+
Requires-Dist: scikit-learn>=1.4; extra == 'all'
|
|
50
|
+
Requires-Dist: scipy>=1.11; extra == 'all'
|
|
51
|
+
Requires-Dist: statsmodels>=0.14; extra == 'all'
|
|
52
|
+
Requires-Dist: streamlit>=1.30.0; extra == 'all'
|
|
53
|
+
Requires-Dist: sympy>=1.12; extra == 'all'
|
|
54
|
+
Requires-Dist: z3-solver>=4.12.2; extra == 'all'
|
|
55
|
+
Provides-Extra: dashboard
|
|
56
|
+
Requires-Dist: pandas; extra == 'dashboard'
|
|
57
|
+
Requires-Dist: streamlit>=1.30.0; extra == 'dashboard'
|
|
58
|
+
Provides-Extra: dev
|
|
59
|
+
Requires-Dist: build; extra == 'dev'
|
|
60
|
+
Requires-Dist: ipykernel; extra == 'dev'
|
|
61
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
62
|
+
Requires-Dist: notebook; extra == 'dev'
|
|
63
|
+
Requires-Dist: numpy<2.5,>=2.0; extra == 'dev'
|
|
64
|
+
Requires-Dist: pandas-stubs>=2.0; extra == 'dev'
|
|
65
|
+
Requires-Dist: pre-commit; extra == 'dev'
|
|
66
|
+
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
67
|
+
Provides-Extra: docs
|
|
68
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
69
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
70
|
+
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
|
|
71
|
+
Provides-Extra: io
|
|
72
|
+
Requires-Dist: h5py>=3.10; extra == 'io'
|
|
73
|
+
Requires-Dist: netcdf4>=1.6; extra == 'io'
|
|
74
|
+
Provides-Extra: pandas
|
|
75
|
+
Requires-Dist: pandas>=2.0; extra == 'pandas'
|
|
76
|
+
Provides-Extra: plot
|
|
77
|
+
Requires-Dist: matplotlib>=3.8.0; extra == 'plot'
|
|
78
|
+
Provides-Extra: promo
|
|
79
|
+
Requires-Dist: imageio-ffmpeg>=0.5.1; extra == 'promo'
|
|
80
|
+
Requires-Dist: matplotlib>=3.8.0; extra == 'promo'
|
|
81
|
+
Requires-Dist: numpy>=1.26.0; extra == 'promo'
|
|
82
|
+
Requires-Dist: pillow>=10.0.0; extra == 'promo'
|
|
83
|
+
Provides-Extra: property
|
|
84
|
+
Requires-Dist: hypothesis>=6.100; extra == 'property'
|
|
85
|
+
Provides-Extra: scientific
|
|
86
|
+
Requires-Dist: numpy>=1.26; extra == 'scientific'
|
|
87
|
+
Requires-Dist: scikit-learn>=1.4; extra == 'scientific'
|
|
88
|
+
Requires-Dist: scipy>=1.11; extra == 'scientific'
|
|
89
|
+
Requires-Dist: statsmodels>=0.14; extra == 'scientific'
|
|
90
|
+
Requires-Dist: sympy>=1.12; extra == 'scientific'
|
|
91
|
+
Requires-Dist: z3-solver>=4.12.2; extra == 'scientific'
|
|
92
|
+
Provides-Extra: test
|
|
93
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
94
|
+
Requires-Dist: pytest>=8.0; extra == 'test'
|
|
95
|
+
Description-Content-Type: text/markdown
|
|
96
|
+
|
|
97
|
+
<p align="center">
|
|
98
|
+
<img src="assets/logo.svg" alt="scientific-computing-system" width="640">
|
|
99
|
+
</p>
|
|
100
|
+
|
|
101
|
+
<h1 align="center">scientific-computing-system</h1>
|
|
102
|
+
|
|
103
|
+
<p align="center"><b>A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and reproducible research.</b></p>
|
|
104
|
+
|
|
105
|
+
<p align="center">
|
|
106
|
+
<a href="https://pypi.org/project/scientific-computing-system/"><img src="https://img.shields.io/pypi/v/scientific-computing-system.svg" alt="PyPI version"></a>
|
|
107
|
+
<a href="https://www.npmjs.com/package/scientific-computing-system"><img src="https://img.shields.io/npm/v/scientific-computing-system.svg" alt="npm version"></a>
|
|
108
|
+
<a href="https://pypi.org/project/scientific-computing-system/"><img src="https://img.shields.io/pypi/dm/scientific-computing-system.svg" alt="PyPI downloads"></a>
|
|
109
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10+-green.svg" alt="Python 3.10+"></a>
|
|
110
|
+
<a href="https://codecov.io/gh/Furox-Art/scientific-computing-system"><img src="https://codecov.io/gh/Furox-Art/scientific-computing-system/branch/main/graph/badge.svg" alt="codecov"></a>
|
|
111
|
+
<a href="https://github.com/Furox-Art/scientific-computing-system/actions/workflows/tests.yml"><img src="https://github.com/Furox-Art/scientific-computing-system/actions/workflows/tests.yml/badge.svg" alt="CI"></a>
|
|
112
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
|
|
113
|
+
<a href="https://furox-art.github.io/scientific-computing-system/"><img src="https://img.shields.io/badge/docs-mkdocs-teal.svg" alt="Docs"></a>
|
|
114
|
+
<a href="https://github.com/Furox-Art/scientific-computing-system/releases"><img src="https://img.shields.io/github/v/release/Furox-Art/scientific-computing-system.svg" alt="GitHub release"></a>
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
I wrote this because NumPy and SciPy are incredible, but they're also 20 years old and carry two decades of design decisions that don't always make sense anymore.
|
|
118
|
+
|
|
119
|
+
This is a from-scratch rethinking of what scientific computing in Python could look like if we started today. No C extensions, no Fortran legacy, no dependency hell. Just Python, type hints, and algorithms that are actually readable.
|
|
120
|
+
|
|
121
|
+
## What's inside
|
|
122
|
+
|
|
123
|
+
- **Linear algebra**: SVD, QR, Cholesky, eigenvalues-all implemented in pure Python with proper error handling
|
|
124
|
+
- **Optimization**: gradient descent, constrained optimization, metaheuristics
|
|
125
|
+
- **Statistics**: hypothesis testing, Bayesian inference, time series
|
|
126
|
+
- **Machine learning**: PCA, clustering, simple neural nets (educational, not production)
|
|
127
|
+
- **Quantum computing**: circuit simulation, state vectors, basic gates
|
|
128
|
+
- **Signal processing**: filters, wavelets, STFT
|
|
129
|
+
- **ODE/PDE solvers**: stiff and non-stiff, symplectic integrators
|
|
130
|
+
|
|
131
|
+
## The catch
|
|
132
|
+
|
|
133
|
+
It's slower than NumPy. Sometimes 10x slower, sometimes 100x. That's the price of pure Python. But it's also completely transparent-you can read every algorithm, understand every step, and modify anything without compiling C.
|
|
134
|
+
|
|
135
|
+
I use it for prototyping, for teaching, and for cases where I need to know exactly what the computer is doing. For production number crunching, I still reach for NumPy.
|
|
136
|
+
|
|
137
|
+
## License
|
|
138
|
+
|
|
139
|
+
MIT.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo.svg" alt="scientific-computing-system" width="640">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">scientific-computing-system</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><b>A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and reproducible research.</b></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://pypi.org/project/scientific-computing-system/"><img src="https://img.shields.io/pypi/v/scientific-computing-system.svg" alt="PyPI version"></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/scientific-computing-system"><img src="https://img.shields.io/npm/v/scientific-computing-system.svg" alt="npm version"></a>
|
|
12
|
+
<a href="https://pypi.org/project/scientific-computing-system/"><img src="https://img.shields.io/pypi/dm/scientific-computing-system.svg" alt="PyPI downloads"></a>
|
|
13
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10+-green.svg" alt="Python 3.10+"></a>
|
|
14
|
+
<a href="https://codecov.io/gh/Furox-Art/scientific-computing-system"><img src="https://codecov.io/gh/Furox-Art/scientific-computing-system/branch/main/graph/badge.svg" alt="codecov"></a>
|
|
15
|
+
<a href="https://github.com/Furox-Art/scientific-computing-system/actions/workflows/tests.yml"><img src="https://github.com/Furox-Art/scientific-computing-system/actions/workflows/tests.yml/badge.svg" alt="CI"></a>
|
|
16
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
|
|
17
|
+
<a href="https://furox-art.github.io/scientific-computing-system/"><img src="https://img.shields.io/badge/docs-mkdocs-teal.svg" alt="Docs"></a>
|
|
18
|
+
<a href="https://github.com/Furox-Art/scientific-computing-system/releases"><img src="https://img.shields.io/github/v/release/Furox-Art/scientific-computing-system.svg" alt="GitHub release"></a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
I wrote this because NumPy and SciPy are incredible, but they're also 20 years old and carry two decades of design decisions that don't always make sense anymore.
|
|
22
|
+
|
|
23
|
+
This is a from-scratch rethinking of what scientific computing in Python could look like if we started today. No C extensions, no Fortran legacy, no dependency hell. Just Python, type hints, and algorithms that are actually readable.
|
|
24
|
+
|
|
25
|
+
## What's inside
|
|
26
|
+
|
|
27
|
+
- **Linear algebra**: SVD, QR, Cholesky, eigenvalues-all implemented in pure Python with proper error handling
|
|
28
|
+
- **Optimization**: gradient descent, constrained optimization, metaheuristics
|
|
29
|
+
- **Statistics**: hypothesis testing, Bayesian inference, time series
|
|
30
|
+
- **Machine learning**: PCA, clustering, simple neural nets (educational, not production)
|
|
31
|
+
- **Quantum computing**: circuit simulation, state vectors, basic gates
|
|
32
|
+
- **Signal processing**: filters, wavelets, STFT
|
|
33
|
+
- **ODE/PDE solvers**: stiff and non-stiff, symplectic integrators
|
|
34
|
+
|
|
35
|
+
## The catch
|
|
36
|
+
|
|
37
|
+
It's slower than NumPy. Sometimes 10x slower, sometimes 100x. That's the price of pure Python. But it's also completely transparent-you can read every algorithm, understand every step, and modify anything without compiling C.
|
|
38
|
+
|
|
39
|
+
I use it for prototyping, for teaching, and for cases where I need to know exactly what the computer is doing. For production number crunching, I still reach for NumPy.
|
|
40
|
+
|
|
41
|
+
## License
|
|
42
|
+
|
|
43
|
+
MIT.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
| Version | Supported | Notes |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| 2.0.x | Yes | Current stable release line |
|
|
8
|
+
| < 2.0 | No | Superseded by the 2.0 release line unless a specific security advisory states otherwise |
|
|
9
|
+
|
|
10
|
+
Security fixes target the current stable release line. Older release lines should not be assumed to receive backports unless an advisory explicitly says so.
|
|
11
|
+
|
|
12
|
+
## Reporting a Vulnerability
|
|
13
|
+
|
|
14
|
+
If you find a security vulnerability, please **do not open a public issue**.
|
|
15
|
+
|
|
16
|
+
Use GitHub's private vulnerability reporting feature:
|
|
17
|
+
|
|
18
|
+
- GitHub: https://github.com/Furox-Art/scientific-computing-system/security/advisories/new
|
|
19
|
+
|
|
20
|
+
You may also contact the maintainer directly. Reports should include the affected version, a minimal reproduction where practical, impact, and any suggested mitigation.
|
|
21
|
+
|
|
22
|
+
## Threat Model
|
|
23
|
+
|
|
24
|
+
`scientific-computing-system` is a local-first, pure-Python scientific-computing library distributed through PyPI. The core package has no required runtime dependencies. Optional scientific backends are loaded only when explicitly requested.
|
|
25
|
+
|
|
26
|
+
### In Scope
|
|
27
|
+
|
|
28
|
+
| Threat | Mitigation |
|
|
29
|
+
|---|---|
|
|
30
|
+
| **Supply chain: malicious or substituted release artifact** | The release workflow is the sole PyPI publish authority. It builds wheel + sdist on a GitHub-hosted runner, verifies package metadata/version, installs the built wheel, smoke-tests the installed CLI, generates GitHub artifact attestation for those exact runner-local files, and publishes through PyPI Trusted Publishing (OIDC). |
|
|
31
|
+
| **Registry drift** | Public PyPI is treated as the distribution registry. The release integrity check requires exactly one wheel and one sdist on PyPI and requires the matching GitHub Release to contain no wheel/sdist assets. A registry-policy workflow rechecks the public PyPI package and removes accidental distribution assets from GitHub Releases. |
|
|
32
|
+
| **Dependency vulnerabilities** | The core has no required runtime dependencies. Development/test/docs lock files are audited in CI with `pip-audit`; optional backends are isolated behind extras and lazy loading. |
|
|
33
|
+
| **Code execution from package install** | The build backend is `hatchling`; there is no `setup.py` execution and package versioning is static in `pyproject.toml` plus `src/cds/_version.py`. |
|
|
34
|
+
| **Unexpected scientific-tool loading** | Optional tools are selected through an explicit registry/capability layer and are not imported into the zero-dependency core unless requested. |
|
|
35
|
+
| **Untrusted CLI input** | The CLI uses `argparse`-based typed/explicit parsing and does not evaluate arbitrary Python expressions. |
|
|
36
|
+
| **Scientific workflow overclaiming** | The research orchestrator is fail-closed: blocked methods, missing tools, denied approvals, incomplete execution, validation failures, and unresolved method suitability prevent an unqualified final conclusion. |
|
|
37
|
+
|
|
38
|
+
### Optional Backend Boundary
|
|
39
|
+
|
|
40
|
+
Optional backends such as SciPy, statsmodels, scikit-learn, SymPy, Z3, h5py, and netCDF4 have their own parser, file-format, numerical, and security behavior. CDS does not make those libraries safe for adversarial input.
|
|
41
|
+
|
|
42
|
+
In particular, `sympy_verify_identity()` passes caller-provided symbolic strings to SymPy's parser. Do not treat that adapter as a sandbox for hostile expressions. Likewise, HDF5/NetCDF files should be treated according to the security guidance of their respective backend libraries.
|
|
43
|
+
|
|
44
|
+
### Out of Scope
|
|
45
|
+
|
|
46
|
+
| Threat | Reasoning |
|
|
47
|
+
|---|---|
|
|
48
|
+
| **Denial of service from intentionally pathological numerical input** | The library is designed for local scientific/research workloads rather than hostile multi-tenant execution. Resource limits should be applied by the host application when processing untrusted inputs. |
|
|
49
|
+
| **Side-channel resistance** | Numerical kernels are not designed or audited as constant-time cryptographic primitives. |
|
|
50
|
+
| **Remote confidentiality guarantees** | The core package does not provide a hosted data service. Applications embedding CDS are responsible for their own storage, access control, and network policy. |
|
|
51
|
+
| **Cryptographic implementation correctness** | CDS is not a cryptographic library and does not provide custom cryptographic primitives. |
|
|
52
|
+
|
|
53
|
+
## Known Limitations
|
|
54
|
+
|
|
55
|
+
- **Pure-Python performance:** many core algorithms prioritize transparency and zero required dependencies rather than accelerated throughput. Large numerical workloads should use appropriate optional accelerated backends.
|
|
56
|
+
- **Numerical kernels are not formally verified:** Z3 is available as an optional constraint/formal-verification backend, but that does not imply the numerical library itself has machine-checked proofs.
|
|
57
|
+
- **Optional-backend compatibility is a moving boundary:** backend APIs can change independently of CDS. Pin and test the optional scientific stack used by high-assurance deployments.
|
|
58
|
+
- **Single-maintainer project:** security response and backport capacity are limited compared with a staffed security team.
|
|
59
|
+
|
|
60
|
+
## Security Best Practices for Users
|
|
61
|
+
|
|
62
|
+
1. **Pin the package version** in reproducible environments, for example `scientific-computing-system==2.0.0` rather than an unconstrained range.
|
|
63
|
+
2. **Install only the optional extras you need.** Fewer third-party packages reduce supply-chain and compatibility surface.
|
|
64
|
+
3. **Verify provenance for high-assurance use.** Compare the PyPI wheel/sdist SHA-256 digests with the subjects recorded by the GitHub release workflow's artifact attestation.
|
|
65
|
+
4. **Treat optional backend inputs as backend inputs.** Do not pass hostile symbolic expressions or untrusted scientific files without the validation/sandboxing appropriate to SymPy, HDF5, NetCDF, or the relevant backend.
|
|
66
|
+
5. **Keep the environment current.** Review dependency updates and run vulnerability auditing against the exact environment deployed.
|
|
67
|
+
6. **Do not use the library as the sole validation layer for safety-critical conclusions.** Independent domain validation remains necessary.
|
|
68
|
+
|
|
69
|
+
## Repository Security Controls
|
|
70
|
+
|
|
71
|
+
CI includes strict type checking, Ruff lint/format checks, full test coverage gates, property-based tests, dependency auditing, CodeQL, and installed-wheel CLI smoke tests across supported operating systems.
|
|
72
|
+
|
|
73
|
+
These checks are only effective as merge controls when the default branch is protected by a branch rule/ruleset that requires the relevant status checks. Repository administrators should require the aggregate `CI` check, CodeQL, and Installed CLI Smoke before merges and disallow force-push/deletion of `main`.
|
|
74
|
+
|
|
75
|
+
## Acknowledgments
|
|
76
|
+
|
|
77
|
+
Responsible disclosures may be credited in the relevant GitHub Security Advisory with the reporter's consent.
|
|
78
|
+
|
|
79
|
+
## Contact
|
|
80
|
+
|
|
81
|
+
- Maintainer: Furox-Art (@Furox-Art)
|
|
82
|
+
- Private reporting: https://github.com/Furox-Art/scientific-computing-system/security/advisories/new
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"""Reproducible benchmark runner with robust timing summaries.
|
|
2
|
+
|
|
3
|
+
This wrapper preserves the benchmark workloads in ``run_benchmarks.py`` while
|
|
4
|
+
replacing its best-of timing helper with warmup + repeated sampling and enriching
|
|
5
|
+
the JSON artifact with enough environment metadata to compare runs responsibly.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import math
|
|
11
|
+
import multiprocessing
|
|
12
|
+
import os
|
|
13
|
+
import platform
|
|
14
|
+
import statistics
|
|
15
|
+
import subprocess
|
|
16
|
+
import timeit
|
|
17
|
+
from collections import OrderedDict
|
|
18
|
+
from collections.abc import Callable
|
|
19
|
+
|
|
20
|
+
import run_benchmarks as legacy
|
|
21
|
+
|
|
22
|
+
from cds import __version__
|
|
23
|
+
|
|
24
|
+
_TIMING_SAMPLES: list[dict[str, object]] = []
|
|
25
|
+
_original_build_json = legacy._build_json_record
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _percentile(values: list[float], probability: float) -> float:
|
|
29
|
+
ordered = sorted(values)
|
|
30
|
+
position = probability * (len(ordered) - 1)
|
|
31
|
+
low = math.floor(position)
|
|
32
|
+
high = math.ceil(position)
|
|
33
|
+
if low == high:
|
|
34
|
+
return ordered[low]
|
|
35
|
+
weight = position - low
|
|
36
|
+
return ordered[low] * (1.0 - weight) + ordered[high] * weight
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def robust_bench(func: Callable[[], object], number: int, repeat: int = 1) -> float:
|
|
40
|
+
"""Warm up once, collect repeated per-call timings, and return the median."""
|
|
41
|
+
if number <= 0 or repeat <= 0:
|
|
42
|
+
raise ValueError("number and repeat must be positive")
|
|
43
|
+
func()
|
|
44
|
+
sample_count = max(5, repeat)
|
|
45
|
+
samples = [timeit.timeit(func, number=number) / number for _ in range(sample_count)]
|
|
46
|
+
median = statistics.median(samples)
|
|
47
|
+
mad = statistics.median(abs(value - median) for value in samples)
|
|
48
|
+
_TIMING_SAMPLES.append(
|
|
49
|
+
{
|
|
50
|
+
"index": len(_TIMING_SAMPLES),
|
|
51
|
+
"number_per_sample": number,
|
|
52
|
+
"sample_count": sample_count,
|
|
53
|
+
"median_seconds": median,
|
|
54
|
+
"mad_seconds": mad,
|
|
55
|
+
"p95_seconds": _percentile(samples, 0.95),
|
|
56
|
+
"min_seconds": min(samples),
|
|
57
|
+
"max_seconds": max(samples),
|
|
58
|
+
"samples_seconds": samples,
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
return median
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _full_git_sha() -> str:
|
|
65
|
+
value = os.environ.get("GITHUB_SHA", "").strip()
|
|
66
|
+
if value:
|
|
67
|
+
return value
|
|
68
|
+
try:
|
|
69
|
+
result = subprocess.run(
|
|
70
|
+
["git", "rev-parse", "HEAD"],
|
|
71
|
+
capture_output=True,
|
|
72
|
+
text=True,
|
|
73
|
+
timeout=5,
|
|
74
|
+
check=False,
|
|
75
|
+
)
|
|
76
|
+
except (OSError, subprocess.SubprocessError):
|
|
77
|
+
return "unknown"
|
|
78
|
+
return result.stdout.strip() if result.returncode == 0 and result.stdout.strip() else "unknown"
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def build_robust_json(
|
|
82
|
+
results: dict[str, OrderedDict[str, str]],
|
|
83
|
+
) -> dict[str, object]:
|
|
84
|
+
"""Extend legacy benchmark JSON with reproducibility and timing metadata."""
|
|
85
|
+
record = _original_build_json(results)
|
|
86
|
+
record["schema_version"] = 2
|
|
87
|
+
record["package_version"] = __version__
|
|
88
|
+
record["git_sha_full"] = _full_git_sha()
|
|
89
|
+
record["environment"] = {
|
|
90
|
+
"python": platform.python_version(),
|
|
91
|
+
"implementation": platform.python_implementation(),
|
|
92
|
+
"platform": platform.platform(),
|
|
93
|
+
"machine": platform.machine(),
|
|
94
|
+
"processor": platform.processor() or "unknown",
|
|
95
|
+
"cpu_count": multiprocessing.cpu_count(),
|
|
96
|
+
}
|
|
97
|
+
record["reproducibility"] = {
|
|
98
|
+
"timing_clock": "timeit.default_timer",
|
|
99
|
+
"warmup_calls": 1,
|
|
100
|
+
"minimum_timing_samples": 5,
|
|
101
|
+
"reported_central_tendency": "median",
|
|
102
|
+
"dispersion": "median_absolute_deviation",
|
|
103
|
+
"tail_statistic": "p95",
|
|
104
|
+
"known_seeds": {"monte_carlo_pi": 42},
|
|
105
|
+
}
|
|
106
|
+
record["timing_distributions"] = list(_TIMING_SAMPLES)
|
|
107
|
+
return record
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def main() -> None:
|
|
111
|
+
_TIMING_SAMPLES.clear()
|
|
112
|
+
legacy._bench = robust_bench
|
|
113
|
+
legacy._build_json_record = build_robust_json
|
|
114
|
+
legacy.run_all()
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
if __name__ == "__main__":
|
|
118
|
+
main()
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Why Pure Python?
|
|
2
|
+
|
|
3
|
+
Fair question. NumPy exists. Why reinvent it?
|
|
4
|
+
|
|
5
|
+
## 1. Learning
|
|
6
|
+
|
|
7
|
+
Every algorithm here is readable top to bottom. Want to know how SVD actually works? Open the file. No Fortran, no BLAS calls, no magic.
|
|
8
|
+
|
|
9
|
+
## 2. Trust
|
|
10
|
+
|
|
11
|
+
When your simulation gives a weird answer, you can trace every single operation. Try doing that with a compiled LAPACK binding.
|
|
12
|
+
|
|
13
|
+
## 3. Zero dependencies
|
|
14
|
+
|
|
15
|
+
pip install and you are done. No MKL vs OpenBLAS drama. No broken wheels on ARM. No version conflicts with your other packages.
|
|
16
|
+
|
|
17
|
+
## The honest tradeoff
|
|
18
|
+
|
|
19
|
+
It is slow. For production workloads, use scientific-computing-system-2.0 instead, which wraps NumPy/SciPy with the same philosophy but actual speed.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Distribution name. Formerly published as "cognitive-discovery-system";
|
|
3
3
|
# the import name stays `cds`. Keep the old PyPI project alive as an alias.
|
|
4
4
|
name = "scientific-computing-system"
|
|
5
|
-
version = "2.0.
|
|
5
|
+
version = "2.0.1"
|
|
6
6
|
description = "A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and optional research-data backends. Zero runtime dependencies."
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
license = "MIT"
|
|
@@ -11,10 +11,12 @@ requires-python = ">=3.10"
|
|
|
11
11
|
authors = [
|
|
12
12
|
{name = "Furox-Art", email = "furkanarkn1451@gmail.com"}
|
|
13
13
|
]
|
|
14
|
-
keywords = ["quantum", "machine-learning", "nlp", "signal-processing", "optimization", "statistics", "probability", "scientific-computing", "numerical-methods", "numerical-integration", "differential-equations", "monte-carlo", "graph-theory", "knowledge-graph", "symbolic-math", "data-analysis", "physics", "linear-algebra", "hypothesis-generation", "pure-python"]
|
|
14
|
+
keywords = ["quantum", "machine-learning", "nlp", "signal-processing", "optimization", "statistics", "probability", "scientific-computing", "numerical-methods", "numerical-integration", "differential-equations", "monte-carlo", "graph-theory", "knowledge-graph", "symbolic-math", "data-analysis", "physics", "linear-algebra", "hypothesis-generation", "pure-python", "reproducibility", "uncertainty-quantification", "sensitivity-analysis", "dimensional-analysis", "scientific-workflows", "ode", "pde"]
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Development Status :: 5 - Production/Stable",
|
|
17
17
|
"Intended Audience :: Science/Research",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
18
20
|
"Programming Language :: Python :: 3",
|
|
19
21
|
"Programming Language :: Python :: 3.10",
|
|
20
22
|
"Programming Language :: Python :: 3.11",
|
|
@@ -23,6 +25,9 @@ classifiers = [
|
|
|
23
25
|
"Topic :: Scientific/Engineering",
|
|
24
26
|
"Topic :: Scientific/Engineering :: Mathematics",
|
|
25
27
|
"Topic :: Scientific/Engineering :: Physics",
|
|
28
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
29
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
30
|
+
"Typing :: Typed",
|
|
26
31
|
]
|
|
27
32
|
|
|
28
33
|
dependencies = []
|
{scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/requirements-dev.lock
RENAMED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
# pip-compile --extra=dev --extra=docs --extra=test --output-file=requirements-dev.lock pyproject.toml
|
|
6
6
|
#
|
|
7
|
-
anyio==4.14.
|
|
7
|
+
anyio==4.14.2
|
|
8
8
|
# via
|
|
9
9
|
# httpx
|
|
10
10
|
# jupyter-server
|
|
@@ -143,7 +143,7 @@ jupyter-events==0.12.1
|
|
|
143
143
|
# via jupyter-server
|
|
144
144
|
jupyter-lsp==2.3.1
|
|
145
145
|
# via jupyterlab
|
|
146
|
-
jupyter-server==2.
|
|
146
|
+
jupyter-server==2.21.0
|
|
147
147
|
# via
|
|
148
148
|
# jupyter-lsp
|
|
149
149
|
# jupyterlab
|
|
@@ -364,7 +364,7 @@ six==1.17.0
|
|
|
364
364
|
# via
|
|
365
365
|
# python-dateutil
|
|
366
366
|
# rfc3339-validator
|
|
367
|
-
soupsieve==2.
|
|
367
|
+
soupsieve==2.9.0
|
|
368
368
|
# via beautifulsoup4
|
|
369
369
|
stack-data==0.6.3
|
|
370
370
|
# via ipython
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Static version source. Kept in lockstep with `version` in `pyproject.toml`.
|
|
2
|
+
# Release retry for 2.0.1 after dependency-audit root exclusion.
|
|
2
3
|
# Bump both for a release; merging the version bump to main triggers the
|
|
3
4
|
# verified GitHub + PyPI publish workflow. See `pyproject.toml` for the release
|
|
4
5
|
# checklist. This file is committed (not generated) so mypy has a concrete
|
|
@@ -7,5 +8,5 @@ from __future__ import annotations
|
|
|
7
8
|
|
|
8
9
|
__all__ = ["__version__", "version", "__version_tuple__", "version_tuple"]
|
|
9
10
|
|
|
10
|
-
__version__ = version = "2.0.
|
|
11
|
-
__version_tuple__ = version_tuple = (2, 0,
|
|
11
|
+
__version__ = version = "2.0.1"
|
|
12
|
+
__version_tuple__ = version_tuple = (2, 0, 1)
|
{scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_io/__init__.py
RENAMED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from cds.data_io.streaming import (
|
|
4
4
|
FileProfile,
|
|
5
|
+
OnlineMoments,
|
|
6
|
+
StreamingLinearAccumulator,
|
|
7
|
+
StreamingLinearFit,
|
|
8
|
+
fit_linear_csv_streaming,
|
|
5
9
|
iter_csv_batches,
|
|
6
10
|
iter_file_blocks,
|
|
7
11
|
open_hdf5,
|
|
@@ -11,6 +15,10 @@ from cds.data_io.streaming import (
|
|
|
11
15
|
|
|
12
16
|
__all__ = [
|
|
13
17
|
"FileProfile",
|
|
18
|
+
"OnlineMoments",
|
|
19
|
+
"StreamingLinearAccumulator",
|
|
20
|
+
"StreamingLinearFit",
|
|
21
|
+
"fit_linear_csv_streaming",
|
|
14
22
|
"iter_csv_batches",
|
|
15
23
|
"iter_file_blocks",
|
|
16
24
|
"open_hdf5",
|