scientific-computing-system 2.0.0__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/CHANGELOG.md +11 -0
  2. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/CITATION.cff +9 -9
  3. scientific_computing_system-2.1.0/PKG-INFO +172 -0
  4. scientific_computing_system-2.1.0/README.md +76 -0
  5. scientific_computing_system-2.1.0/SECURITY.md +82 -0
  6. scientific_computing_system-2.1.0/benchmarks/robust_runner.py +118 -0
  7. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/index.md +8 -0
  8. scientific_computing_system-2.1.0/docs/why-pure-python.md +19 -0
  9. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/mkdocs.yml +4 -3
  10. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/pyproject.toml +15 -9
  11. scientific_computing_system-2.1.0/requirements-build.lock +17 -0
  12. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/requirements-dev.lock +7 -7
  13. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/__init__.py +6 -2
  14. scientific_computing_system-2.1.0/src/cds/_version.py +9 -0
  15. scientific_computing_system-2.1.0/src/cds/causal.py +210 -0
  16. scientific_computing_system-2.1.0/src/cds/data_io/__init__.py +43 -0
  17. scientific_computing_system-2.1.0/src/cds/data_io/scientific.py +228 -0
  18. scientific_computing_system-2.1.0/src/cds/data_io/streaming.py +314 -0
  19. scientific_computing_system-2.1.0/src/cds/hypothesis/evaluator.py +311 -0
  20. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/fitting.py +161 -13
  21. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/montecarlo/markov.py +34 -19
  22. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/montecarlo/methods.py +102 -80
  23. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/provenance/__init__.py +4 -0
  24. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/provenance/manifest.py +153 -20
  25. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/quantum/circuit.py +42 -12
  26. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/quantum/multi_qubit.py +96 -41
  27. scientific_computing_system-2.1.0/src/cds/quantum/simulator.py +53 -0
  28. scientific_computing_system-2.1.0/src/cds/sensitivity.py +425 -0
  29. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/__init__.py +21 -3
  30. scientific_computing_system-2.1.0/src/cds/stats/hypothesis_tests.py +294 -0
  31. scientific_computing_system-2.1.0/src/cds/stats/multiple_testing.py +189 -0
  32. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/tools/__init__.py +2 -0
  33. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/tools/adapters.py +77 -1
  34. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/tools/registry.py +20 -0
  35. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/uncertainty/propagation.py +24 -24
  36. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/units/core.py +24 -1
  37. scientific_computing_system-2.1.0/src/cds/validation/__init__.py +61 -0
  38. scientific_computing_system-2.1.0/src/cds/validation/adequacy.py +157 -0
  39. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/validation/checks.py +217 -0
  40. scientific_computing_system-2.1.0/src/cds/validation/drift.py +217 -0
  41. scientific_computing_system-2.1.0/src/cds/workflow/__init__.py +77 -0
  42. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/workflow/engine.py +18 -4
  43. scientific_computing_system-2.1.0/src/cds/workflow/gates.py +120 -0
  44. scientific_computing_system-2.1.0/src/cds/workflow/orchestrator.py +431 -0
  45. scientific_computing_system-2.1.0/src/cds/workflow/selection.py +454 -0
  46. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/workflow/tooling.py +61 -10
  47. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/workflow/types.py +14 -1
  48. scientific_computing_system-2.1.0/tests/test_audit_completion_coverage.py +183 -0
  49. scientific_computing_system-2.1.0/tests/test_audit_guard_coverage.py +115 -0
  50. scientific_computing_system-2.1.0/tests/test_audit_hardening.py +138 -0
  51. scientific_computing_system-2.1.0/tests/test_audit_hardening_coverage.py +111 -0
  52. scientific_computing_system-2.1.0/tests/test_causal.py +150 -0
  53. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_data_io.py +4 -0
  54. scientific_computing_system-2.1.0/tests/test_data_io_optional_backends.py +44 -0
  55. scientific_computing_system-2.1.0/tests/test_data_io_scientific.py +197 -0
  56. scientific_computing_system-2.1.0/tests/test_dev_numpy_pin_contract.py +193 -0
  57. scientific_computing_system-2.1.0/tests/test_edge_ml_quantum_linalg.py +191 -0
  58. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_edge_quantum_evaluator_cli.py +16 -64
  59. scientific_computing_system-2.1.0/tests/test_fitting_bootstrap.py +202 -0
  60. scientific_computing_system-2.1.0/tests/test_hardening_privacy_provenance.py +306 -0
  61. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_hypothesis_engine.py +10 -8
  62. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_hypothesis_mining.py +3 -1
  63. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_hypothesis_tests.py +6 -15
  64. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_markov.py +43 -4
  65. scientific_computing_system-2.1.0/tests/test_montecarlo.py +245 -0
  66. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_multi_qubit.py +170 -47
  67. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_provenance.py +29 -0
  68. scientific_computing_system-2.1.0/tests/test_provenance_audit_hardening.py +45 -0
  69. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_quantum.py +72 -8
  70. scientific_computing_system-2.1.0/tests/test_release_contract.py +182 -0
  71. scientific_computing_system-2.1.0/tests/test_selection_audit_hardening.py +55 -0
  72. scientific_computing_system-2.1.0/tests/test_sensitivity.py +166 -0
  73. scientific_computing_system-2.1.0/tests/test_sensitivity_global.py +73 -0
  74. scientific_computing_system-2.1.0/tests/test_statistical_audit.py +75 -0
  75. scientific_computing_system-2.1.0/tests/test_stats_audit_coverage.py +17 -0
  76. scientific_computing_system-2.1.0/tests/test_stats_multiple_testing.py +85 -0
  77. scientific_computing_system-2.1.0/tests/test_streaming_analytics.py +128 -0
  78. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_uncertainty.py +11 -7
  79. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_units.py +22 -0
  80. scientific_computing_system-2.1.0/tests/test_validation_adequacy.py +129 -0
  81. scientific_computing_system-2.1.0/tests/test_validation_advanced.py +110 -0
  82. scientific_computing_system-2.1.0/tests/test_validation_drift.py +116 -0
  83. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_workflow.py +45 -8
  84. scientific_computing_system-2.1.0/tests/test_workflow_gates.py +144 -0
  85. scientific_computing_system-2.1.0/tests/test_workflow_orchestrator.py +516 -0
  86. scientific_computing_system-2.1.0/tests/test_workflow_orchestrator_blocked_review.py +95 -0
  87. scientific_computing_system-2.1.0/tests/test_workflow_selection.py +312 -0
  88. scientific_computing_system-2.1.0/tests/test_workflow_selection_coverage.py +114 -0
  89. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_workflow_tooling.py +2 -1
  90. scientific_computing_system-2.0.0/PKG-INFO +0 -769
  91. scientific_computing_system-2.0.0/README.md +0 -678
  92. scientific_computing_system-2.0.0/SECURITY.md +0 -72
  93. scientific_computing_system-2.0.0/src/cds/_version.py +0 -11
  94. scientific_computing_system-2.0.0/src/cds/data_io/__init__.py +0 -19
  95. scientific_computing_system-2.0.0/src/cds/data_io/streaming.py +0 -120
  96. scientific_computing_system-2.0.0/src/cds/hypothesis/evaluator.py +0 -369
  97. scientific_computing_system-2.0.0/src/cds/quantum/simulator.py +0 -38
  98. scientific_computing_system-2.0.0/src/cds/sensitivity.py +0 -90
  99. scientific_computing_system-2.0.0/src/cds/stats/hypothesis_tests.py +0 -403
  100. scientific_computing_system-2.0.0/src/cds/validation/__init__.py +0 -29
  101. scientific_computing_system-2.0.0/src/cds/workflow/__init__.py +0 -32
  102. scientific_computing_system-2.0.0/tests/test_edge_ml_quantum_linalg.py +0 -246
  103. scientific_computing_system-2.0.0/tests/test_montecarlo.py +0 -149
  104. scientific_computing_system-2.0.0/tests/test_sensitivity.py +0 -55
  105. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/.gitignore +0 -0
  106. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/CONTRIBUTING.md +0 -0
  107. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/LICENSE +0 -0
  108. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/benchmarks/results.json +0 -0
  109. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/benchmarks/run_benchmarks.py +0 -0
  110. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/dashboard/app.py +0 -0
  111. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/ARCHITECTURE.md +0 -0
  112. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/CASE_STUDY_HUBBLE.md +0 -0
  113. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
  114. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/api.md +0 -0
  115. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/assets/icon.svg +0 -0
  116. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/assets/logo.svg +0 -0
  117. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/benchmarks.md +0 -0
  118. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/cookbook.md +0 -0
  119. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/getting-started.md +0 -0
  120. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/maintenance.md +0 -0
  121. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/ml_reference.md +0 -0
  122. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/research-workflows.md +0 -0
  123. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/stylesheets/extra.css +0 -0
  124. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tour_of_numerical_methods.md +0 -0
  125. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/core_demo.md +0 -0
  126. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/data_analysis_demo.md +0 -0
  127. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/diffeq_demo.md +0 -0
  128. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/fft2_demo.md +0 -0
  129. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/graph_demo.md +0 -0
  130. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_demo.md +0 -0
  131. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_tests_demo.md +0 -0
  132. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
  133. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/knowledge_demo.md +0 -0
  134. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/linalg_demo.md +0 -0
  135. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/math_utils_demo.md +0 -0
  136. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/ml_advanced_demo.md +0 -0
  137. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/ml_and_viz_demo.md +0 -0
  138. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/ml_demo.md +0 -0
  139. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/modeling_demo.md +0 -0
  140. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/montecarlo_demo.md +0 -0
  141. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_attention_demo.md +0 -0
  142. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_bpe_demo.md +0 -0
  143. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
  144. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_viz.md +0 -0
  145. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/numerical_integration_demo.md +0 -0
  146. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/optimization_demo.md +0 -0
  147. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/pandas_io_demo.md +0 -0
  148. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/pca_demo.md +0 -0
  149. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/probability_demo.md +0 -0
  150. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/quantum_demo.md +0 -0
  151. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/quick_start.md +0 -0
  152. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/scientific_demo.md +0 -0
  153. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/signals_demo.md +0 -0
  154. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/stats_demo.md +0 -0
  155. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/stiff_ode_demo.md +0 -0
  156. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/docs/tutorials/time_series_demo.md +0 -0
  157. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/core_demo.py +0 -0
  158. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/data_analysis_demo.py +0 -0
  159. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/diffeq_demo.py +0 -0
  160. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/discovery_pipeline_demo.py +0 -0
  161. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/ensemble_showcase.py +0 -0
  162. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/fft2_demo.py +0 -0
  163. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/graph_demo.py +0 -0
  164. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/hypothesis_custom_generator.py +0 -0
  165. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/hypothesis_demo.py +0 -0
  166. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/hypothesis_tests_demo.py +0 -0
  167. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/hypothesis_with_stats_demo.py +0 -0
  168. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/interpolate_demo.py +0 -0
  169. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/knowledge_demo.py +0 -0
  170. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/linalg_demo.py +0 -0
  171. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/math_utils_demo.py +0 -0
  172. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/ml_and_viz_demo.py +0 -0
  173. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/modeling_demo.py +0 -0
  174. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/montecarlo_demo.py +0 -0
  175. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/nlp_attention_demo.py +0 -0
  176. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/nlp_bpe_demo.py +0 -0
  177. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/nlp_mini_gpt_demo.py +0 -0
  178. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/nlp_viz_demo.py +0 -0
  179. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/numerical_integration_demo.py +0 -0
  180. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/optimization_demo.py +0 -0
  181. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/pca_demo.py +0 -0
  182. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/pde_demo.py +0 -0
  183. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/plot_demo.py +0 -0
  184. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/plotting_notebook.ipynb +0 -0
  185. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/probability_demo.py +0 -0
  186. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/quantum_demo.py +0 -0
  187. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/scientific_demo.py +0 -0
  188. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/signals_demo.py +0 -0
  189. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/stats_demo.py +0 -0
  190. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/examples/tour_of_numerical_methods.ipynb +0 -0
  191. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/requirements.lock +0 -0
  192. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/scripts/publish.py +0 -0
  193. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/scripts/verify_cli_install.py +0 -0
  194. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/__main__.py +0 -0
  195. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/bayes/__init__.py +0 -0
  196. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/bayes/conjugate.py +0 -0
  197. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/__init__.py +0 -0
  198. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/__main__.py +0 -0
  199. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/_handlers.py +0 -0
  200. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/_parser.py +0 -0
  201. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/_style.py +0 -0
  202. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/cli/_system_info.py +0 -0
  203. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/core/__init__.py +0 -0
  204. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/core/_numeric.py +0 -0
  205. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/core/models.py +0 -0
  206. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/__init__.py +0 -0
  207. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/dataset.py +0 -0
  208. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/loader.py +0 -0
  209. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/pandas_io.py +0 -0
  210. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/transform.py +0 -0
  211. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/data_analysis/viz.py +0 -0
  212. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/diffeq/__init__.py +0 -0
  213. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/diffeq/_implicit.py +0 -0
  214. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/diffeq/solvers.py +0 -0
  215. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/diffeq/symplectic.py +0 -0
  216. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/fractals/__init__.py +0 -0
  217. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/fractals/sets.py +0 -0
  218. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/genetics/__init__.py +0 -0
  219. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/genetics/sequence.py +0 -0
  220. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/graph/__init__.py +0 -0
  221. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/graph/algorithms.py +0 -0
  222. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/hypothesis/__init__.py +0 -0
  223. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/hypothesis/generator.py +0 -0
  224. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/hypothesis/mining.py +0 -0
  225. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/infotheory/__init__.py +0 -0
  226. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/infotheory/measures.py +0 -0
  227. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/interpolate/__init__.py +0 -0
  228. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/knowledge/__init__.py +0 -0
  229. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/knowledge/graph.py +0 -0
  230. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/knowledge/notes.py +0 -0
  231. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/knowledge/retrieval.py +0 -0
  232. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/math_utils/__init__.py +0 -0
  233. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/math_utils/calculus.py +0 -0
  234. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/math_utils/linalg.py +0 -0
  235. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/math_utils/special.py +0 -0
  236. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/math_utils/svd.py +0 -0
  237. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/__init__.py +0 -0
  238. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/boosting.py +0 -0
  239. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/clustering.py +0 -0
  240. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/decomposition.py +0 -0
  241. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/ensemble.py +0 -0
  242. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/linear_models.py +0 -0
  243. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/metrics.py +0 -0
  244. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/model_selection.py +0 -0
  245. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/naive_bayes.py +0 -0
  246. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/neighbors.py +0 -0
  247. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/neural.py +0 -0
  248. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/preprocessing.py +0 -0
  249. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/tree.py +0 -0
  250. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/ml/voting.py +0 -0
  251. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/__init__.py +0 -0
  252. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/_base.py +0 -0
  253. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/_nodes.py +0 -0
  254. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/expression.py +0 -0
  255. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/model.py +0 -0
  256. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/modeling/solver.py +0 -0
  257. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/montecarlo/__init__.py +0 -0
  258. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/__init__.py +0 -0
  259. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/attention.py +0 -0
  260. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/__init__.py +0 -0
  261. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/_grad.py +0 -0
  262. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/ops.py +0 -0
  263. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/tensor.py +0 -0
  264. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/bpe.py +0 -0
  265. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/data.py +0 -0
  266. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/embed.py +0 -0
  267. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/layers.py +0 -0
  268. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/model.py +0 -0
  269. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/optim.py +0 -0
  270. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/training.py +0 -0
  271. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/nlp/viz.py +0 -0
  272. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/numerical_integration/__init__.py +0 -0
  273. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/numerical_integration/quadrature.py +0 -0
  274. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/optimization/__init__.py +0 -0
  275. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/optimization/_metaheuristics.py +0 -0
  276. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/optimization/constrained.py +0 -0
  277. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/optimization/minimize.py +0 -0
  278. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/pde/__init__.py +0 -0
  279. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/plot/__init__.py +0 -0
  280. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/plot/_backend.py +0 -0
  281. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/plot/charts.py +0 -0
  282. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/probability/__init__.py +0 -0
  283. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/probability/_advanced.py +0 -0
  284. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/probability/distributions.py +0 -0
  285. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/probability/extra_distributions.py +0 -0
  286. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/py.typed +0 -0
  287. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/quantum/__init__.py +0 -0
  288. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/scientific/__init__.py +0 -0
  289. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/scientific/constants.py +0 -0
  290. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/scientific/formulas.py +0 -0
  291. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/signals/__init__.py +0 -0
  292. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/signals/filters.py +0 -0
  293. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/signals/processing.py +0 -0
  294. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/signals/stft.py +0 -0
  295. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/signals/wavelet.py +0 -0
  296. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/_distributions.py +0 -0
  297. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/bootstrap.py +0 -0
  298. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/descriptive.py +0 -0
  299. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/nonparametric.py +0 -0
  300. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/power.py +0 -0
  301. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/regression.py +0 -0
  302. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/stats/time_series.py +0 -0
  303. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/uncertainty/__init__.py +0 -0
  304. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/units/__init__.py +0 -0
  305. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/validation/report.py +0 -0
  306. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/wavelets/__init__.py +0 -0
  307. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/src/cds/wavelets/haar.py +0 -0
  308. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/__init__.py +0 -0
  309. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/conftest.py +0 -0
  310. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_advanced_fitting.py +0 -0
  311. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_bayes_v2.py +0 -0
  312. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_benchmarks.py +0 -0
  313. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_bootstrap.py +0 -0
  314. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_cli.py +0 -0
  315. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_cli_color.py +0 -0
  316. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_cli_extended.py +0 -0
  317. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_cli_system_info.py +0 -0
  318. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_constrained_opt.py +0 -0
  319. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_core.py +0 -0
  320. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_data_analysis.py +0 -0
  321. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_data_analysis_lazy_bridge.py +0 -0
  322. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_data_analysis_pandas_io.py +0 -0
  323. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_dataset.py +0 -0
  324. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_diffeq.py +0 -0
  325. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_diffeq_implicit.py +0 -0
  326. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_domain_validation.py +0 -0
  327. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_edge_misc_numerical.py +0 -0
  328. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_edge_nlp.py +0 -0
  329. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_edge_stats_optimization_signals.py +0 -0
  330. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_extra_distributions.py +0 -0
  331. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_fft2.py +0 -0
  332. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_fractals.py +0 -0
  333. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_genetics.py +0 -0
  334. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_graph.py +0 -0
  335. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_hypothesis.py +0 -0
  336. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_infotheory.py +0 -0
  337. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_interpolate.py +0 -0
  338. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_knowledge.py +0 -0
  339. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_layering.py +0 -0
  340. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_linalg_extended.py +0 -0
  341. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_linalg_qr_cholesky.py +0 -0
  342. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_math_utils.py +0 -0
  343. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_boosting.py +0 -0
  344. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_clustering.py +0 -0
  345. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_ensemble.py +0 -0
  346. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_knn.py +0 -0
  347. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_linreg.py +0 -0
  348. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_logreg.py +0 -0
  349. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_metrics.py +0 -0
  350. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_model_selection.py +0 -0
  351. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_naive_bayes.py +0 -0
  352. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_pca.py +0 -0
  353. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_preprocessing.py +0 -0
  354. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_tree.py +0 -0
  355. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_viz.py +0 -0
  356. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_ml_voting.py +0 -0
  357. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_modeling.py +0 -0
  358. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_modeling_fit_validation.py +0 -0
  359. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_attention.py +0 -0
  360. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_autograd.py +0 -0
  361. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_bpe.py +0 -0
  362. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_embed.py +0 -0
  363. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_layers.py +0 -0
  364. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_model.py +0 -0
  365. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_training.py +0 -0
  366. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_nlp_viz.py +0 -0
  367. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_numerical_integration.py +0 -0
  368. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_numerical_invariants.py +0 -0
  369. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_numerical_oracles.py +0 -0
  370. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_optimization.py +0 -0
  371. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_optimization_metaheuristics.py +0 -0
  372. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_pde.py +0 -0
  373. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_plot_charts.py +0 -0
  374. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_plot_lazy.py +0 -0
  375. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_power.py +0 -0
  376. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_probability.py +0 -0
  377. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_probability_advanced.py +0 -0
  378. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_property_invariants.py +0 -0
  379. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_public_api.py +0 -0
  380. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_retrieval.py +0 -0
  381. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_scientific.py +0 -0
  382. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_signals.py +0 -0
  383. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_signals_filters.py +0 -0
  384. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_special_invariants.py +0 -0
  385. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_special_numerics.py +0 -0
  386. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_stats.py +0 -0
  387. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_stats_nonparametric.py +0 -0
  388. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_stats_time_series.py +0 -0
  389. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_stft.py +0 -0
  390. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_svd.py +0 -0
  391. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_symplectic.py +0 -0
  392. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_tool_adapters.py +0 -0
  393. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_tools_registry.py +0 -0
  394. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_validation.py +0 -0
  395. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/tests/test_wavelet.py +0 -0
  396. {scientific_computing_system-2.0.0 → scientific_computing_system-2.1.0}/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,28 +2,28 @@ 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.1.0
6
6
  authors:
7
7
  - name: "Furox-Art"
8
8
  email: "furkanarkn1451@gmail.com"
9
- abstract: "Pure Python computational science system — quantum simulation, signal processing, statistics, optimization, hypothesis generation, optional matplotlib plotting, and related numerical methods. All core modules are implemented without heavy external dependencies."
9
+ abstract: "Pure Python computational science system with numerical methods, statistical validation, global sensitivity and identifiability analysis, conservative causal estimation, distribution-shift checks, memory-bounded scientific I/O, workflow orchestration, and optional scientific backends."
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-30"
14
14
  keywords:
15
15
  - "pure python"
16
16
  - "scientific computing"
17
- - "quantum simulation"
18
- - "signal processing"
19
- - "statistics"
20
- - "hypothesis generation"
21
- - "computational discovery"
17
+ - "model validation"
18
+ - "sensitivity analysis"
19
+ - "causal inference"
20
+ - "out-of-distribution detection"
21
+ - "scientific workflows"
22
22
  preferred-citation:
23
23
  type: software
24
24
  title: "scientific-computing-system"
25
25
  authors:
26
26
  - name: "Furox-Art"
27
27
  year: 2026
28
- version: 1.7.0
28
+ version: 2.1.0
29
29
  url: "https://github.com/Furox-Art/scientific-computing-system"
@@ -0,0 +1,172 @@
1
+ Metadata-Version: 2.4
2
+ Name: scientific-computing-system
3
+ Version: 2.1.0
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
+ ## Quick Start
132
+
133
+ ```bash
134
+ pip install scientific-computing-system
135
+ ```
136
+
137
+ ```python
138
+ from scs.linear_algebra import svd
139
+ from scs.ode import solve_ivp
140
+ from scs.stats import bayesian_posterior
141
+
142
+ # every algorithm is readable pure Python — open the source, see the math
143
+ U, S, Vt = svd(matrix, full_matrices=False)
144
+
145
+ solution = solve_ivp(
146
+ lambda t, y: [y[1], -y[0] - 0.1 * y[1]], # damped oscillator
147
+ t_span=(0, 50),
148
+ y0=[1.0, 0.0],
149
+ method="rk45",
150
+ rtol=1e-8,
151
+ )
152
+ ```
153
+
154
+ Also on npm: `npm i scientific-computing-system`. Full docs: [furox-art.github.io/scientific-computing-system](https://furox-art.github.io/scientific-computing-system/).
155
+
156
+ ## Common use cases
157
+
158
+ - Learn and inspect **numerical methods in pure Python** without compiled extensions.
159
+ - Prototype **scientific computing** workflows with transparent implementations.
160
+ - Explore **ODE/PDE solvers**, numerical integration, optimization, Monte Carlo, signal processing, and linear algebra.
161
+ - Run **statistics, uncertainty quantification, sensitivity analysis, dimensional analysis, and reproducible research** workflows.
162
+ - Teach or audit algorithms where readable source code matters more than raw NumPy/SciPy performance.
163
+
164
+ ## The catch
165
+
166
+ 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.
167
+
168
+ 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.
169
+
170
+ ## License
171
+
172
+ MIT.
@@ -0,0 +1,76 @@
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
+ ## Quick Start
36
+
37
+ ```bash
38
+ pip install scientific-computing-system
39
+ ```
40
+
41
+ ```python
42
+ from scs.linear_algebra import svd
43
+ from scs.ode import solve_ivp
44
+ from scs.stats import bayesian_posterior
45
+
46
+ # every algorithm is readable pure Python — open the source, see the math
47
+ U, S, Vt = svd(matrix, full_matrices=False)
48
+
49
+ solution = solve_ivp(
50
+ lambda t, y: [y[1], -y[0] - 0.1 * y[1]], # damped oscillator
51
+ t_span=(0, 50),
52
+ y0=[1.0, 0.0],
53
+ method="rk45",
54
+ rtol=1e-8,
55
+ )
56
+ ```
57
+
58
+ Also on npm: `npm i scientific-computing-system`. Full docs: [furox-art.github.io/scientific-computing-system](https://furox-art.github.io/scientific-computing-system/).
59
+
60
+ ## Common use cases
61
+
62
+ - Learn and inspect **numerical methods in pure Python** without compiled extensions.
63
+ - Prototype **scientific computing** workflows with transparent implementations.
64
+ - Explore **ODE/PDE solvers**, numerical integration, optimization, Monte Carlo, signal processing, and linear algebra.
65
+ - Run **statistics, uncertainty quantification, sensitivity analysis, dimensional analysis, and reproducible research** workflows.
66
+ - Teach or audit algorithms where readable source code matters more than raw NumPy/SciPy performance.
67
+
68
+ ## The catch
69
+
70
+ 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.
71
+
72
+ 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.
73
+
74
+ ## License
75
+
76
+ 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()
@@ -64,6 +64,14 @@ Module dependency graph and data flow, for contributors and auditors.
64
64
  [Statistics](tutorials/stats_demo.md),
65
65
  [Machine Learning](tutorials/ml_demo.md), then branch out.
66
66
 
67
+ ## What people use CDS for
68
+
69
+ CDS is designed for searchable, practical scientific-Python tasks such as
70
+ **numerical methods**, **ODE and PDE solving**, **Monte Carlo simulation**,
71
+ **statistics and hypothesis testing**, **uncertainty quantification**,
72
+ **sensitivity analysis**, **signal processing**, **linear algebra**,
73
+ **symbolic mathematics**, and **reproducible computational research**.
74
+
67
75
  ## Key Features
68
76
 
69
77
  - **Pure Python:** Every module is implemented from scratch using the Python standard library. No heavy dependencies like NumPy or SciPy required.
@@ -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.
@@ -1,9 +1,10 @@
1
1
  site_name: Scientific Computing System
2
2
  site_url: https://furox-art.github.io/scientific-computing-system/
3
3
  site_description: >-
4
- Pure-Python computational science platform - quantum simulation, FFT,
5
- linear algebra, statistics, ODEs, symbolic math and ML from scratch,
6
- with zero runtime dependencies.
4
+ Pure-Python scientific computing and numerical methods platform for ODE/PDE
5
+ solvers, statistics, uncertainty quantification, sensitivity analysis,
6
+ signal processing, Monte Carlo, linear algebra, symbolic math and reproducible
7
+ computational research, with zero runtime dependencies.
7
8
  site_author: Furox-Art
8
9
  repo_url: https://github.com/Furox-Art/scientific-computing-system
9
10
  repo_name: Furox-Art/scientific-computing-system
@@ -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.1.0"
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 = []
@@ -148,7 +153,7 @@ Issues = "https://github.com/Furox-Art/scientific-computing-system/issues"
148
153
  Changelog = "https://github.com/Furox-Art/scientific-computing-system/releases"
149
154
 
150
155
  [build-system]
151
- requires = ["hatchling"]
156
+ requires = ["hatchling==1.31.0"]
152
157
  build-backend = "hatchling.build"
153
158
 
154
159
  [tool.hatch.build.targets.wheel]
@@ -185,19 +190,20 @@ only-include = [
185
190
  "pyproject.toml",
186
191
  "requirements.lock",
187
192
  "requirements-dev.lock",
193
+ "requirements-build.lock",
188
194
  "mkdocs.yml",
189
195
  ]
190
196
 
191
- # Static versioning: `version` above and `src/cds/_version.py` are the package
192
- # version sources and must stay in lockstep. The release workflow additionally
193
- # rejects any `vX.Y.Z` tag whose X.Y.Z does not exactly match the built wheel
194
- # metadata, preventing GitHub and PyPI releases from drifting apart.
197
+ # Static versioning: `version` above, `src/cds/_version.py`, and both version
198
+ # fields in `CITATION.cff` are release metadata sources and must stay in
199
+ # lockstep. scripts/check_version_discipline.py additionally requires a
200
+ # monotonic version bump whenever package-affecting source changes occur.
195
201
  #
196
202
  # Release checklist:
197
- # 1. Bump `version` above AND `__version__` in `src/cds/_version.py`
203
+ # 1. Bump all three version metadata sources together
198
204
  # 2. Commit, push, and wait for CI + Installed CLI Smoke to be green
199
205
  # 3. Merge the verified version bump to `main`; release.yml builds the wheel
200
- # and creates the matching `vX.Y.Z` tag automatically
206
+ # from a hash-locked, non-isolated build toolchain
201
207
  # 4. Trusted Publishing uploads the verified build to PyPI; the GitHub Release
202
208
  # contains release metadata only, never wheel/sdist distribution assets
203
209
 
@@ -0,0 +1,17 @@
1
+ # Hash-locked Python 3.12 release-build environment.
2
+ # Regenerate deliberately; release.yml installs this file with --require-hashes
3
+ # and --only-binary=:all:, then runs `python -m build --no-isolation`.
4
+ build==1.5.0 \
5
+ --hash=sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f
6
+ hatchling==1.31.0 \
7
+ --hash=sha256:aac80bec8b6fe35e8480f1c335be8910fa210a0e6f735a139be205dadcacb544
8
+ packaging==26.3 \
9
+ --hash=sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c
10
+ pathspec==1.1.1 \
11
+ --hash=sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189
12
+ pluggy==1.6.0 \
13
+ --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
14
+ pyproject-hooks==1.2.0 \
15
+ --hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
16
+ trove-classifiers==2026.6.1.19 \
17
+ --hash=sha256:ab4c4ec93cc4a4e7815fa759906e05e6bb3f2fbd92ea0f897288c6a43efd15b3