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.
Files changed (381) hide show
  1. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CHANGELOG.md +11 -0
  2. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CITATION.cff +3 -3
  3. scientific_computing_system-2.0.1/PKG-INFO +139 -0
  4. scientific_computing_system-2.0.1/README.md +43 -0
  5. scientific_computing_system-2.0.1/SECURITY.md +82 -0
  6. scientific_computing_system-2.0.1/benchmarks/robust_runner.py +118 -0
  7. scientific_computing_system-2.0.1/docs/why-pure-python.md +19 -0
  8. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/pyproject.toml +7 -2
  9. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/requirements-dev.lock +3 -3
  10. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/_version.py +3 -2
  11. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_io/__init__.py +8 -0
  12. scientific_computing_system-2.0.1/src/cds/data_io/streaming.py +314 -0
  13. scientific_computing_system-2.0.1/src/cds/hypothesis/evaluator.py +311 -0
  14. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/fitting.py +161 -13
  15. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/markov.py +34 -19
  16. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/methods.py +102 -80
  17. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/provenance/__init__.py +4 -0
  18. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/provenance/manifest.py +153 -20
  19. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/circuit.py +42 -12
  20. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/multi_qubit.py +96 -41
  21. scientific_computing_system-2.0.1/src/cds/quantum/simulator.py +53 -0
  22. scientific_computing_system-2.0.1/src/cds/sensitivity.py +204 -0
  23. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/__init__.py +4 -4
  24. scientific_computing_system-2.0.1/src/cds/stats/hypothesis_tests.py +294 -0
  25. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/__init__.py +2 -0
  26. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/adapters.py +77 -1
  27. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/tools/registry.py +20 -0
  28. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/uncertainty/propagation.py +24 -24
  29. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/units/core.py +24 -1
  30. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/__init__.py +12 -0
  31. scientific_computing_system-2.0.1/src/cds/validation/adequacy.py +157 -0
  32. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/checks.py +217 -0
  33. scientific_computing_system-2.0.1/src/cds/workflow/__init__.py +77 -0
  34. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/engine.py +18 -4
  35. scientific_computing_system-2.0.1/src/cds/workflow/gates.py +120 -0
  36. scientific_computing_system-2.0.1/src/cds/workflow/orchestrator.py +431 -0
  37. scientific_computing_system-2.0.1/src/cds/workflow/selection.py +454 -0
  38. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/tooling.py +61 -10
  39. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/workflow/types.py +14 -1
  40. scientific_computing_system-2.0.1/tests/test_audit_completion_coverage.py +183 -0
  41. scientific_computing_system-2.0.1/tests/test_audit_guard_coverage.py +115 -0
  42. scientific_computing_system-2.0.1/tests/test_audit_hardening.py +138 -0
  43. scientific_computing_system-2.0.1/tests/test_audit_hardening_coverage.py +111 -0
  44. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_io.py +4 -0
  45. scientific_computing_system-2.0.1/tests/test_edge_ml_quantum_linalg.py +191 -0
  46. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_quantum_evaluator_cli.py +16 -64
  47. scientific_computing_system-2.0.1/tests/test_fitting_bootstrap.py +202 -0
  48. scientific_computing_system-2.0.1/tests/test_hardening_privacy_provenance.py +306 -0
  49. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_engine.py +10 -8
  50. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_mining.py +3 -1
  51. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis_tests.py +6 -15
  52. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_markov.py +43 -4
  53. scientific_computing_system-2.0.1/tests/test_montecarlo.py +245 -0
  54. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_multi_qubit.py +170 -47
  55. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_provenance.py +29 -0
  56. scientific_computing_system-2.0.1/tests/test_provenance_audit_hardening.py +45 -0
  57. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_quantum.py +72 -8
  58. scientific_computing_system-2.0.1/tests/test_release_contract.py +105 -0
  59. scientific_computing_system-2.0.1/tests/test_selection_audit_hardening.py +55 -0
  60. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_sensitivity.py +6 -2
  61. scientific_computing_system-2.0.1/tests/test_sensitivity_global.py +73 -0
  62. scientific_computing_system-2.0.1/tests/test_statistical_audit.py +75 -0
  63. scientific_computing_system-2.0.1/tests/test_stats_audit_coverage.py +17 -0
  64. scientific_computing_system-2.0.1/tests/test_streaming_analytics.py +128 -0
  65. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_uncertainty.py +11 -7
  66. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_units.py +22 -0
  67. scientific_computing_system-2.0.1/tests/test_validation_adequacy.py +129 -0
  68. scientific_computing_system-2.0.1/tests/test_validation_advanced.py +110 -0
  69. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_workflow.py +45 -8
  70. scientific_computing_system-2.0.1/tests/test_workflow_gates.py +144 -0
  71. scientific_computing_system-2.0.1/tests/test_workflow_orchestrator.py +516 -0
  72. scientific_computing_system-2.0.1/tests/test_workflow_orchestrator_blocked_review.py +95 -0
  73. scientific_computing_system-2.0.1/tests/test_workflow_selection.py +312 -0
  74. scientific_computing_system-2.0.1/tests/test_workflow_selection_coverage.py +114 -0
  75. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_workflow_tooling.py +2 -1
  76. scientific_computing_system-2.0.0/PKG-INFO +0 -769
  77. scientific_computing_system-2.0.0/README.md +0 -678
  78. scientific_computing_system-2.0.0/SECURITY.md +0 -72
  79. scientific_computing_system-2.0.0/src/cds/data_io/streaming.py +0 -120
  80. scientific_computing_system-2.0.0/src/cds/hypothesis/evaluator.py +0 -369
  81. scientific_computing_system-2.0.0/src/cds/quantum/simulator.py +0 -38
  82. scientific_computing_system-2.0.0/src/cds/sensitivity.py +0 -90
  83. scientific_computing_system-2.0.0/src/cds/stats/hypothesis_tests.py +0 -403
  84. scientific_computing_system-2.0.0/src/cds/workflow/__init__.py +0 -32
  85. scientific_computing_system-2.0.0/tests/test_edge_ml_quantum_linalg.py +0 -246
  86. scientific_computing_system-2.0.0/tests/test_montecarlo.py +0 -149
  87. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/.gitignore +0 -0
  88. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/CONTRIBUTING.md +0 -0
  89. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/LICENSE +0 -0
  90. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/benchmarks/results.json +0 -0
  91. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/benchmarks/run_benchmarks.py +0 -0
  92. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/dashboard/app.py +0 -0
  93. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/ARCHITECTURE.md +0 -0
  94. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/CASE_STUDY_HUBBLE.md +0 -0
  95. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
  96. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/api.md +0 -0
  97. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/assets/icon.svg +0 -0
  98. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/assets/logo.svg +0 -0
  99. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/benchmarks.md +0 -0
  100. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/cookbook.md +0 -0
  101. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/getting-started.md +0 -0
  102. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/index.md +0 -0
  103. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/maintenance.md +0 -0
  104. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/ml_reference.md +0 -0
  105. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/research-workflows.md +0 -0
  106. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/stylesheets/extra.css +0 -0
  107. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tour_of_numerical_methods.md +0 -0
  108. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/core_demo.md +0 -0
  109. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/data_analysis_demo.md +0 -0
  110. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/diffeq_demo.md +0 -0
  111. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/fft2_demo.md +0 -0
  112. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/graph_demo.md +0 -0
  113. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_demo.md +0 -0
  114. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_tests_demo.md +0 -0
  115. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
  116. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/knowledge_demo.md +0 -0
  117. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/linalg_demo.md +0 -0
  118. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/math_utils_demo.md +0 -0
  119. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_advanced_demo.md +0 -0
  120. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_and_viz_demo.md +0 -0
  121. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/ml_demo.md +0 -0
  122. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/modeling_demo.md +0 -0
  123. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/montecarlo_demo.md +0 -0
  124. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_attention_demo.md +0 -0
  125. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_bpe_demo.md +0 -0
  126. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
  127. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/nlp_viz.md +0 -0
  128. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/numerical_integration_demo.md +0 -0
  129. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/optimization_demo.md +0 -0
  130. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/pandas_io_demo.md +0 -0
  131. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/pca_demo.md +0 -0
  132. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/probability_demo.md +0 -0
  133. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/quantum_demo.md +0 -0
  134. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/quick_start.md +0 -0
  135. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/scientific_demo.md +0 -0
  136. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/signals_demo.md +0 -0
  137. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/stats_demo.md +0 -0
  138. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/stiff_ode_demo.md +0 -0
  139. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/docs/tutorials/time_series_demo.md +0 -0
  140. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/core_demo.py +0 -0
  141. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/data_analysis_demo.py +0 -0
  142. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/diffeq_demo.py +0 -0
  143. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/discovery_pipeline_demo.py +0 -0
  144. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/ensemble_showcase.py +0 -0
  145. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/fft2_demo.py +0 -0
  146. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/graph_demo.py +0 -0
  147. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_custom_generator.py +0 -0
  148. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_demo.py +0 -0
  149. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_tests_demo.py +0 -0
  150. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/hypothesis_with_stats_demo.py +0 -0
  151. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/interpolate_demo.py +0 -0
  152. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/knowledge_demo.py +0 -0
  153. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/linalg_demo.py +0 -0
  154. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/math_utils_demo.py +0 -0
  155. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/ml_and_viz_demo.py +0 -0
  156. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/modeling_demo.py +0 -0
  157. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/montecarlo_demo.py +0 -0
  158. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_attention_demo.py +0 -0
  159. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_bpe_demo.py +0 -0
  160. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_mini_gpt_demo.py +0 -0
  161. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/nlp_viz_demo.py +0 -0
  162. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/numerical_integration_demo.py +0 -0
  163. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/optimization_demo.py +0 -0
  164. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/pca_demo.py +0 -0
  165. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/pde_demo.py +0 -0
  166. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/plot_demo.py +0 -0
  167. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/plotting_notebook.ipynb +0 -0
  168. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/probability_demo.py +0 -0
  169. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/quantum_demo.py +0 -0
  170. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/scientific_demo.py +0 -0
  171. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/signals_demo.py +0 -0
  172. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/stats_demo.py +0 -0
  173. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/examples/tour_of_numerical_methods.ipynb +0 -0
  174. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/mkdocs.yml +0 -0
  175. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/requirements.lock +0 -0
  176. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/scripts/publish.py +0 -0
  177. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/scripts/verify_cli_install.py +0 -0
  178. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/__init__.py +0 -0
  179. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/__main__.py +0 -0
  180. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/bayes/__init__.py +0 -0
  181. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/bayes/conjugate.py +0 -0
  182. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/__init__.py +0 -0
  183. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/__main__.py +0 -0
  184. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_handlers.py +0 -0
  185. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_parser.py +0 -0
  186. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_style.py +0 -0
  187. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/cli/_system_info.py +0 -0
  188. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/__init__.py +0 -0
  189. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/_numeric.py +0 -0
  190. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/core/models.py +0 -0
  191. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/__init__.py +0 -0
  192. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/dataset.py +0 -0
  193. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/loader.py +0 -0
  194. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/pandas_io.py +0 -0
  195. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/transform.py +0 -0
  196. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/data_analysis/viz.py +0 -0
  197. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/__init__.py +0 -0
  198. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/_implicit.py +0 -0
  199. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/solvers.py +0 -0
  200. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/diffeq/symplectic.py +0 -0
  201. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/fractals/__init__.py +0 -0
  202. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/fractals/sets.py +0 -0
  203. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/genetics/__init__.py +0 -0
  204. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/genetics/sequence.py +0 -0
  205. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/graph/__init__.py +0 -0
  206. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/graph/algorithms.py +0 -0
  207. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/__init__.py +0 -0
  208. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/generator.py +0 -0
  209. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/hypothesis/mining.py +0 -0
  210. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/infotheory/__init__.py +0 -0
  211. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/infotheory/measures.py +0 -0
  212. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/interpolate/__init__.py +0 -0
  213. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/__init__.py +0 -0
  214. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/graph.py +0 -0
  215. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/notes.py +0 -0
  216. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/knowledge/retrieval.py +0 -0
  217. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/__init__.py +0 -0
  218. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/calculus.py +0 -0
  219. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/linalg.py +0 -0
  220. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/special.py +0 -0
  221. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/math_utils/svd.py +0 -0
  222. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/__init__.py +0 -0
  223. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/boosting.py +0 -0
  224. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/clustering.py +0 -0
  225. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/decomposition.py +0 -0
  226. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/ensemble.py +0 -0
  227. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/linear_models.py +0 -0
  228. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/metrics.py +0 -0
  229. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/model_selection.py +0 -0
  230. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/naive_bayes.py +0 -0
  231. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/neighbors.py +0 -0
  232. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/neural.py +0 -0
  233. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/preprocessing.py +0 -0
  234. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/tree.py +0 -0
  235. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/ml/voting.py +0 -0
  236. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/__init__.py +0 -0
  237. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/_base.py +0 -0
  238. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/_nodes.py +0 -0
  239. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/expression.py +0 -0
  240. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/model.py +0 -0
  241. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/modeling/solver.py +0 -0
  242. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/montecarlo/__init__.py +0 -0
  243. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/__init__.py +0 -0
  244. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/attention.py +0 -0
  245. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/__init__.py +0 -0
  246. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/_grad.py +0 -0
  247. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/ops.py +0 -0
  248. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/autograd/tensor.py +0 -0
  249. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/bpe.py +0 -0
  250. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/data.py +0 -0
  251. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/embed.py +0 -0
  252. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/layers.py +0 -0
  253. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/model.py +0 -0
  254. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/optim.py +0 -0
  255. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/training.py +0 -0
  256. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/nlp/viz.py +0 -0
  257. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/numerical_integration/__init__.py +0 -0
  258. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/numerical_integration/quadrature.py +0 -0
  259. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/__init__.py +0 -0
  260. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/_metaheuristics.py +0 -0
  261. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/constrained.py +0 -0
  262. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/optimization/minimize.py +0 -0
  263. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/pde/__init__.py +0 -0
  264. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/__init__.py +0 -0
  265. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/_backend.py +0 -0
  266. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/plot/charts.py +0 -0
  267. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/__init__.py +0 -0
  268. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/_advanced.py +0 -0
  269. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/distributions.py +0 -0
  270. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/probability/extra_distributions.py +0 -0
  271. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/py.typed +0 -0
  272. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/quantum/__init__.py +0 -0
  273. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/__init__.py +0 -0
  274. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/constants.py +0 -0
  275. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/scientific/formulas.py +0 -0
  276. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/__init__.py +0 -0
  277. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/filters.py +0 -0
  278. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/processing.py +0 -0
  279. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/stft.py +0 -0
  280. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/signals/wavelet.py +0 -0
  281. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/_distributions.py +0 -0
  282. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/bootstrap.py +0 -0
  283. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/descriptive.py +0 -0
  284. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/nonparametric.py +0 -0
  285. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/power.py +0 -0
  286. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/regression.py +0 -0
  287. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/stats/time_series.py +0 -0
  288. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/uncertainty/__init__.py +0 -0
  289. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/units/__init__.py +0 -0
  290. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/validation/report.py +0 -0
  291. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/wavelets/__init__.py +0 -0
  292. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/src/cds/wavelets/haar.py +0 -0
  293. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/__init__.py +0 -0
  294. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/conftest.py +0 -0
  295. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_advanced_fitting.py +0 -0
  296. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_bayes_v2.py +0 -0
  297. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_benchmarks.py +0 -0
  298. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_bootstrap.py +0 -0
  299. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli.py +0 -0
  300. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_color.py +0 -0
  301. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_extended.py +0 -0
  302. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_cli_system_info.py +0 -0
  303. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_constrained_opt.py +0 -0
  304. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_core.py +0 -0
  305. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis.py +0 -0
  306. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis_lazy_bridge.py +0 -0
  307. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_data_analysis_pandas_io.py +0 -0
  308. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_dataset.py +0 -0
  309. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_diffeq.py +0 -0
  310. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_diffeq_implicit.py +0 -0
  311. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_domain_validation.py +0 -0
  312. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_misc_numerical.py +0 -0
  313. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_nlp.py +0 -0
  314. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_edge_stats_optimization_signals.py +0 -0
  315. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_extra_distributions.py +0 -0
  316. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_fft2.py +0 -0
  317. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_fractals.py +0 -0
  318. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_genetics.py +0 -0
  319. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_graph.py +0 -0
  320. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_hypothesis.py +0 -0
  321. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_infotheory.py +0 -0
  322. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_interpolate.py +0 -0
  323. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_knowledge.py +0 -0
  324. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_layering.py +0 -0
  325. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_linalg_extended.py +0 -0
  326. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_linalg_qr_cholesky.py +0 -0
  327. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_math_utils.py +0 -0
  328. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_boosting.py +0 -0
  329. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_clustering.py +0 -0
  330. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_ensemble.py +0 -0
  331. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_knn.py +0 -0
  332. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_linreg.py +0 -0
  333. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_logreg.py +0 -0
  334. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_metrics.py +0 -0
  335. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_model_selection.py +0 -0
  336. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_naive_bayes.py +0 -0
  337. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_pca.py +0 -0
  338. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_preprocessing.py +0 -0
  339. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_tree.py +0 -0
  340. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_viz.py +0 -0
  341. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_ml_voting.py +0 -0
  342. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_modeling.py +0 -0
  343. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_modeling_fit_validation.py +0 -0
  344. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_attention.py +0 -0
  345. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_autograd.py +0 -0
  346. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_bpe.py +0 -0
  347. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_embed.py +0 -0
  348. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_layers.py +0 -0
  349. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_model.py +0 -0
  350. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_training.py +0 -0
  351. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_nlp_viz.py +0 -0
  352. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_integration.py +0 -0
  353. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_invariants.py +0 -0
  354. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_numerical_oracles.py +0 -0
  355. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_optimization.py +0 -0
  356. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_optimization_metaheuristics.py +0 -0
  357. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_pde.py +0 -0
  358. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_plot_charts.py +0 -0
  359. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_plot_lazy.py +0 -0
  360. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_power.py +0 -0
  361. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_probability.py +0 -0
  362. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_probability_advanced.py +0 -0
  363. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_property_invariants.py +0 -0
  364. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_public_api.py +0 -0
  365. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_retrieval.py +0 -0
  366. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_scientific.py +0 -0
  367. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_signals.py +0 -0
  368. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_signals_filters.py +0 -0
  369. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_special_invariants.py +0 -0
  370. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_special_numerics.py +0 -0
  371. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats.py +0 -0
  372. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats_nonparametric.py +0 -0
  373. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stats_time_series.py +0 -0
  374. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_stft.py +0 -0
  375. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_svd.py +0 -0
  376. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_symplectic.py +0 -0
  377. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_tool_adapters.py +0 -0
  378. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_tools_registry.py +0 -0
  379. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_validation.py +0 -0
  380. {scientific_computing_system-2.0.0 → scientific_computing_system-2.0.1}/tests/test_wavelet.py +0 -0
  381. {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: 1.7.0
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-08-24"
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: 1.7.0
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.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 = []
@@ -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.0
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.20.0
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.8.4
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.0"
11
- __version_tuple__ = version_tuple = (2, 0, 0)
11
+ __version__ = version = "2.0.1"
12
+ __version_tuple__ = version_tuple = (2, 0, 1)
@@ -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",