scientific-computing-system 2.2.13__tar.gz → 2.2.15__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 (432) hide show
  1. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/bot-reviewer.yml +0 -1
  2. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/changelog.yml +1 -2
  3. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/codeql.yml +3 -1
  4. scientific_computing_system-2.2.15/.github/workflows/dependency-review.yml +21 -0
  5. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/npm-publish.yml +15 -4
  6. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/pypi-release-policy.yml +53 -5
  7. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/release.yml +24 -2
  8. scientific_computing_system-2.2.15/.github/workflows/scorecard.yml +37 -0
  9. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/tests.yml +3 -1
  10. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/CHANGELOG.md +17 -0
  11. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/CITATION.cff +2 -2
  12. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/PKG-INFO +13 -13
  13. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/README.md +8 -8
  14. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/SECURITY.md +2 -2
  15. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/codemeta.json +1 -1
  16. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/package.json +1 -1
  17. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/pyproject.toml +5 -5
  18. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/_version.py +2 -2
  19. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/diffeq/solvers.py +15 -4
  20. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/math_utils/linalg.py +3 -0
  21. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/optimization/minimize.py +8 -1
  22. scientific_computing_system-2.2.15/tests/test_hardening_20261023.py +40 -0
  23. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_release_contract.py +19 -0
  24. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/benchmarks.yml +0 -0
  25. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/cli-package-smoke.yml +0 -0
  26. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.github/workflows/pr-automation.yml +0 -0
  27. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/.gitignore +0 -0
  28. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/CONTRIBUTING.md +0 -0
  29. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/LICENSE +0 -0
  30. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/benchmarks/results.json +0 -0
  31. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/benchmarks/robust_runner.py +0 -0
  32. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/benchmarks/run_benchmarks.py +0 -0
  33. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/bin/scs.js +0 -0
  34. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/dashboard/app.py +0 -0
  35. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/ARCHITECTURE.md +0 -0
  36. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/CASE_STUDY_HUBBLE.md +0 -0
  37. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
  38. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/api.md +0 -0
  39. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/assets/icon.svg +0 -0
  40. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/assets/logo.svg +0 -0
  41. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/benchmarks.md +0 -0
  42. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/checks/verify_provenance_claims.py +0 -0
  43. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/cookbook.md +0 -0
  44. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/getting-started.md +0 -0
  45. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/index.md +0 -0
  46. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/maintenance.md +0 -0
  47. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/ml_reference.md +0 -0
  48. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/related.md +0 -0
  49. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/research-workflows.md +0 -0
  50. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/stylesheets/extra.css +0 -0
  51. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tour_of_numerical_methods.md +0 -0
  52. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/core_demo.md +0 -0
  53. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/data_analysis_demo.md +0 -0
  54. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/diffeq_demo.md +0 -0
  55. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/fft2_demo.md +0 -0
  56. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/graph_demo.md +0 -0
  57. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/hypothesis_demo.md +0 -0
  58. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/hypothesis_tests_demo.md +0 -0
  59. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
  60. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/knowledge_demo.md +0 -0
  61. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/linalg_demo.md +0 -0
  62. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/math_utils_demo.md +0 -0
  63. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/ml_advanced_demo.md +0 -0
  64. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/ml_and_viz_demo.md +0 -0
  65. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/ml_demo.md +0 -0
  66. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/modeling_demo.md +0 -0
  67. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/montecarlo_demo.md +0 -0
  68. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/nlp_attention_demo.md +0 -0
  69. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/nlp_bpe_demo.md +0 -0
  70. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
  71. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/nlp_viz.md +0 -0
  72. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/numerical_integration_demo.md +0 -0
  73. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/optimization_demo.md +0 -0
  74. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/pandas_io_demo.md +0 -0
  75. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/pca_demo.md +0 -0
  76. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/probability_demo.md +0 -0
  77. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/quantum_demo.md +0 -0
  78. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/quick_start.md +0 -0
  79. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/scientific_demo.md +0 -0
  80. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/signals_demo.md +0 -0
  81. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/stats_demo.md +0 -0
  82. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/stiff_ode_demo.md +0 -0
  83. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/tutorials/time_series_demo.md +0 -0
  84. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/docs/why-pure-python.md +0 -0
  85. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/core_demo.py +0 -0
  86. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/data_analysis_demo.py +0 -0
  87. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/diffeq_demo.py +0 -0
  88. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/discovery_pipeline_demo.py +0 -0
  89. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/ensemble_showcase.py +0 -0
  90. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/fft2_demo.py +0 -0
  91. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/graph_demo.py +0 -0
  92. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/hypothesis_custom_generator.py +0 -0
  93. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/hypothesis_demo.py +0 -0
  94. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/hypothesis_tests_demo.py +0 -0
  95. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/hypothesis_with_stats_demo.py +0 -0
  96. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/interpolate_demo.py +0 -0
  97. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/knowledge_demo.py +0 -0
  98. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/linalg_demo.py +0 -0
  99. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/math_utils_demo.py +0 -0
  100. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/ml_and_viz_demo.py +0 -0
  101. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/modeling_demo.py +0 -0
  102. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/montecarlo_demo.py +0 -0
  103. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/nlp_attention_demo.py +0 -0
  104. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/nlp_bpe_demo.py +0 -0
  105. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/nlp_mini_gpt_demo.py +0 -0
  106. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/nlp_viz_demo.py +0 -0
  107. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/numerical_integration_demo.py +0 -0
  108. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/optimization_demo.py +0 -0
  109. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/pca_demo.py +0 -0
  110. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/pde_demo.py +0 -0
  111. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/plot_demo.py +0 -0
  112. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/plotting_notebook.ipynb +0 -0
  113. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/probability_demo.py +0 -0
  114. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/quantum_demo.py +0 -0
  115. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/scientific_demo.py +0 -0
  116. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/signals_demo.py +0 -0
  117. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/stats_demo.py +0 -0
  118. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/examples/tour_of_numerical_methods.ipynb +0 -0
  119. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/index.js +0 -0
  120. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/mkdocs.yml +0 -0
  121. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/npm.test.js +0 -0
  122. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/paper.bib +0 -0
  123. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/paper.md +0 -0
  124. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/requirements-build.lock +0 -0
  125. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/requirements-dev.lock +0 -0
  126. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/requirements.lock +0 -0
  127. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/check_release_toolchain.py +0 -0
  128. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/check_version_discipline.py +0 -0
  129. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/check_version_lockstep.py +0 -0
  130. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/publish.py +0 -0
  131. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/verify_cli_install.py +0 -0
  132. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/verify_cookbook.py +0 -0
  133. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/verify_ml_reference.py +0 -0
  134. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/scripts/verify_release_integrity.py +0 -0
  135. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/__init__.py +0 -0
  136. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/__main__.py +0 -0
  137. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/_paths.py +0 -0
  138. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/bayes/__init__.py +0 -0
  139. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/bayes/conjugate.py +0 -0
  140. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/causal.py +0 -0
  141. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/__init__.py +0 -0
  142. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/__main__.py +0 -0
  143. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/_exit_codes.py +0 -0
  144. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/_handlers.py +0 -0
  145. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/_parser.py +0 -0
  146. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/_style.py +0 -0
  147. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/cli/_system_info.py +0 -0
  148. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/core/__init__.py +0 -0
  149. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/core/_numeric.py +0 -0
  150. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/core/models.py +0 -0
  151. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/__init__.py +0 -0
  152. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/dataset.py +0 -0
  153. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/loader.py +0 -0
  154. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/pandas_io.py +0 -0
  155. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/transform.py +0 -0
  156. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_analysis/viz.py +0 -0
  157. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_io/__init__.py +0 -0
  158. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_io/scientific.py +0 -0
  159. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/data_io/streaming.py +0 -0
  160. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/diffeq/__init__.py +0 -0
  161. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/diffeq/_implicit.py +0 -0
  162. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/diffeq/symplectic.py +0 -0
  163. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/fractals/__init__.py +0 -0
  164. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/fractals/sets.py +0 -0
  165. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/genetics/__init__.py +0 -0
  166. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/genetics/sequence.py +0 -0
  167. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/graph/__init__.py +0 -0
  168. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/graph/algorithms.py +0 -0
  169. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/hypothesis/__init__.py +0 -0
  170. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/hypothesis/evaluator.py +0 -0
  171. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/hypothesis/generator.py +0 -0
  172. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/hypothesis/mining.py +0 -0
  173. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/infotheory/__init__.py +0 -0
  174. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/infotheory/measures.py +0 -0
  175. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/interpolate/__init__.py +0 -0
  176. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/knowledge/__init__.py +0 -0
  177. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/knowledge/graph.py +0 -0
  178. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/knowledge/notes.py +0 -0
  179. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/knowledge/retrieval.py +0 -0
  180. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/math_utils/__init__.py +0 -0
  181. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/math_utils/calculus.py +0 -0
  182. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/math_utils/special.py +0 -0
  183. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/math_utils/svd.py +0 -0
  184. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/__init__.py +0 -0
  185. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/boosting.py +0 -0
  186. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/clustering.py +0 -0
  187. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/decomposition.py +0 -0
  188. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/ensemble.py +0 -0
  189. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/linear_models.py +0 -0
  190. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/metrics.py +0 -0
  191. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/model_selection.py +0 -0
  192. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/naive_bayes.py +0 -0
  193. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/neighbors.py +0 -0
  194. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/neural.py +0 -0
  195. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/preprocessing.py +0 -0
  196. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/tree.py +0 -0
  197. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/ml/voting.py +0 -0
  198. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/__init__.py +0 -0
  199. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/_base.py +0 -0
  200. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/_nodes.py +0 -0
  201. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/expression.py +0 -0
  202. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/fitting.py +0 -0
  203. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/model.py +0 -0
  204. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/modeling/solver.py +0 -0
  205. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/montecarlo/__init__.py +0 -0
  206. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/montecarlo/markov.py +0 -0
  207. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/montecarlo/methods.py +0 -0
  208. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/__init__.py +0 -0
  209. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/attention.py +0 -0
  210. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/autograd/__init__.py +0 -0
  211. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/autograd/_grad.py +0 -0
  212. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/autograd/ops.py +0 -0
  213. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/autograd/tensor.py +0 -0
  214. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/bpe.py +0 -0
  215. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/data.py +0 -0
  216. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/embed.py +0 -0
  217. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/layers.py +0 -0
  218. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/model.py +0 -0
  219. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/optim.py +0 -0
  220. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/training.py +0 -0
  221. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/nlp/viz.py +0 -0
  222. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/numerical_integration/__init__.py +0 -0
  223. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/numerical_integration/quadrature.py +0 -0
  224. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/optimization/__init__.py +0 -0
  225. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/optimization/_metaheuristics.py +0 -0
  226. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/optimization/constrained.py +0 -0
  227. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/pde/__init__.py +0 -0
  228. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/plot/__init__.py +0 -0
  229. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/plot/_backend.py +0 -0
  230. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/plot/charts.py +0 -0
  231. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/probability/__init__.py +0 -0
  232. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/probability/_advanced.py +0 -0
  233. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/probability/distributions.py +0 -0
  234. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/probability/extra_distributions.py +0 -0
  235. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/provenance/__init__.py +0 -0
  236. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/provenance/manifest.py +0 -0
  237. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/py.typed +0 -0
  238. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/quantum/__init__.py +0 -0
  239. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/quantum/circuit.py +0 -0
  240. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/quantum/multi_qubit.py +0 -0
  241. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/quantum/simulator.py +0 -0
  242. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/scientific/__init__.py +0 -0
  243. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/scientific/constants.py +0 -0
  244. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/scientific/formulas.py +0 -0
  245. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/sensitivity.py +0 -0
  246. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/signals/__init__.py +0 -0
  247. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/signals/filters.py +0 -0
  248. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/signals/processing.py +0 -0
  249. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/signals/stft.py +0 -0
  250. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/signals/wavelet.py +0 -0
  251. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/__init__.py +0 -0
  252. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/_distributions.py +0 -0
  253. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/bootstrap.py +0 -0
  254. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/descriptive.py +0 -0
  255. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/hypothesis_tests.py +0 -0
  256. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/multiple_testing.py +0 -0
  257. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/nonparametric.py +0 -0
  258. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/power.py +0 -0
  259. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/regression.py +0 -0
  260. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/stats/time_series.py +0 -0
  261. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/tools/__init__.py +0 -0
  262. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/tools/adapters.py +0 -0
  263. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/tools/registry.py +0 -0
  264. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/uncertainty/__init__.py +0 -0
  265. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/uncertainty/propagation.py +0 -0
  266. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/units/__init__.py +0 -0
  267. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/units/core.py +0 -0
  268. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/validation/__init__.py +0 -0
  269. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/validation/adequacy.py +0 -0
  270. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/validation/checks.py +0 -0
  271. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/validation/drift.py +0 -0
  272. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/validation/report.py +0 -0
  273. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/wavelets/__init__.py +0 -0
  274. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/wavelets/haar.py +0 -0
  275. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/__init__.py +0 -0
  276. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/engine.py +0 -0
  277. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/gates.py +0 -0
  278. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/orchestrator.py +0 -0
  279. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/selection.py +0 -0
  280. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/tooling.py +0 -0
  281. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/src/cds/workflow/types.py +0 -0
  282. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/__init__.py +0 -0
  283. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/conftest.py +0 -0
  284. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_advanced_fitting.py +0 -0
  285. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_completion_coverage.py +0 -0
  286. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_guard_coverage.py +0 -0
  287. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening.py +0 -0
  288. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_c1.py +0 -0
  289. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_c2.py +0 -0
  290. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_c3.py +0 -0
  291. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_c4.py +0 -0
  292. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_coverage.py +0 -0
  293. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_audit_hardening_h1.py +0 -0
  294. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_bayes_v2.py +0 -0
  295. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_benchmarks.py +0 -0
  296. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_bootstrap.py +0 -0
  297. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_causal.py +0 -0
  298. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_cli.py +0 -0
  299. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_cli_color.py +0 -0
  300. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_cli_exit_codes.py +0 -0
  301. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_cli_extended.py +0 -0
  302. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_cli_system_info.py +0 -0
  303. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_codemeta_version_lockstep.py +0 -0
  304. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_constrained_opt.py +0 -0
  305. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_core.py +0 -0
  306. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_analysis.py +0 -0
  307. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_analysis_lazy_bridge.py +0 -0
  308. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_analysis_pandas_io.py +0 -0
  309. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_io.py +0 -0
  310. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_io_optional_backends.py +0 -0
  311. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_data_io_scientific.py +0 -0
  312. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_dataset.py +0 -0
  313. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_dev_numpy_pin_contract.py +0 -0
  314. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_diffeq.py +0 -0
  315. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_diffeq_implicit.py +0 -0
  316. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_domain_validation.py +0 -0
  317. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_edge_misc_numerical.py +0 -0
  318. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_edge_ml_quantum_linalg.py +0 -0
  319. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_edge_nlp.py +0 -0
  320. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_edge_quantum_evaluator_cli.py +0 -0
  321. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_edge_stats_optimization_signals.py +0 -0
  322. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_extra_distributions.py +0 -0
  323. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_fft2.py +0 -0
  324. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_fitting_bootstrap.py +0 -0
  325. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_fractals.py +0 -0
  326. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_genetics.py +0 -0
  327. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_graph.py +0 -0
  328. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_hardening_privacy_provenance.py +0 -0
  329. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_hypothesis.py +0 -0
  330. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_hypothesis_engine.py +0 -0
  331. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_hypothesis_mining.py +0 -0
  332. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_hypothesis_tests.py +0 -0
  333. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_infotheory.py +0 -0
  334. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_interpolate.py +0 -0
  335. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_knowledge.py +0 -0
  336. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_layering.py +0 -0
  337. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_linalg_extended.py +0 -0
  338. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_linalg_qr_cholesky.py +0 -0
  339. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_markov.py +0 -0
  340. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_math_utils.py +0 -0
  341. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_boosting.py +0 -0
  342. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_clustering.py +0 -0
  343. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_ensemble.py +0 -0
  344. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_knn.py +0 -0
  345. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_linreg.py +0 -0
  346. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_logreg.py +0 -0
  347. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_metrics.py +0 -0
  348. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_model_selection.py +0 -0
  349. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_naive_bayes.py +0 -0
  350. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_pca.py +0 -0
  351. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_preprocessing.py +0 -0
  352. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_tree.py +0 -0
  353. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_viz.py +0 -0
  354. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_ml_voting.py +0 -0
  355. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_modeling.py +0 -0
  356. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_modeling_fit_validation.py +0 -0
  357. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_montecarlo.py +0 -0
  358. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_multi_qubit.py +0 -0
  359. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_attention.py +0 -0
  360. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_autograd.py +0 -0
  361. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_bpe.py +0 -0
  362. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_embed.py +0 -0
  363. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_layers.py +0 -0
  364. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_model.py +0 -0
  365. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_training.py +0 -0
  366. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_nlp_viz.py +0 -0
  367. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_numerical_integration.py +0 -0
  368. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_numerical_invariants.py +0 -0
  369. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_numerical_oracles.py +0 -0
  370. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_optimization.py +0 -0
  371. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_optimization_metaheuristics.py +0 -0
  372. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_path_confinement.py +0 -0
  373. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_pde.py +0 -0
  374. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_plot_charts.py +0 -0
  375. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_plot_lazy.py +0 -0
  376. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_power.py +0 -0
  377. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_probability.py +0 -0
  378. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_probability_advanced.py +0 -0
  379. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_property_invariants.py +0 -0
  380. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_protocol_placeholders.py +0 -0
  381. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_provenance.py +0 -0
  382. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_provenance_audit_hardening.py +0 -0
  383. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_provenance_claims.py +0 -0
  384. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_public_api.py +0 -0
  385. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_quantum.py +0 -0
  386. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_readme_badges.py +0 -0
  387. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_readme_surface.py +0 -0
  388. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_release_toolchain.py +0 -0
  389. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_retrieval.py +0 -0
  390. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_runtime_dependency_graph.py +0 -0
  391. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_scientific.py +0 -0
  392. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_seed_hygiene.py +0 -0
  393. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_selection_audit_hardening.py +0 -0
  394. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_sensitivity.py +0 -0
  395. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_sensitivity_global.py +0 -0
  396. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_signals.py +0 -0
  397. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_signals_filters.py +0 -0
  398. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_special_invariants.py +0 -0
  399. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_special_numerics.py +0 -0
  400. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_statistical_audit.py +0 -0
  401. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stats.py +0 -0
  402. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stats_audit_coverage.py +0 -0
  403. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stats_multiple_testing.py +0 -0
  404. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stats_nonparametric.py +0 -0
  405. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stats_time_series.py +0 -0
  406. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_stft.py +0 -0
  407. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_streaming_analytics.py +0 -0
  408. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_svd.py +0 -0
  409. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_symplectic.py +0 -0
  410. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_tool_adapters.py +0 -0
  411. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_tools_registry.py +0 -0
  412. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_uncertainty.py +0 -0
  413. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_units.py +0 -0
  414. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation.py +0 -0
  415. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_adequacy.py +0 -0
  416. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_advanced.py +0 -0
  417. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_bounds_nonfinite_regression.py +0 -0
  418. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_derived_moments_overflow.py +0 -0
  419. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_derived_tolerance_overflow.py +0 -0
  420. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_drift.py +0 -0
  421. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_nonfinite_thresholds_regression.py +0 -0
  422. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_validation_ood_stable_and_coverage.py +0 -0
  423. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_verify_release_integrity.py +0 -0
  424. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_wavelet.py +0 -0
  425. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_wavelets_v2.py +0 -0
  426. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow.py +0 -0
  427. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_gates.py +0 -0
  428. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_orchestrator.py +0 -0
  429. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_orchestrator_blocked_review.py +0 -0
  430. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_selection.py +0 -0
  431. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_selection_coverage.py +0 -0
  432. {scientific_computing_system-2.2.13 → scientific_computing_system-2.2.15}/tests/test_workflow_tooling.py +0 -0
@@ -9,7 +9,6 @@ env:
9
9
 
10
10
  permissions:
11
11
  contents: read
12
- pull-requests: write
13
12
 
14
13
  jobs:
15
14
  approve:
@@ -29,8 +29,7 @@ on:
29
29
  type: string
30
30
 
31
31
  permissions:
32
- contents: write
33
- pull-requests: write
32
+ contents: read
34
33
 
35
34
  # Serialize dispatches: two concurrent runs would both regenerate CHANGELOG.md
36
35
  # and force-push the single shared branch, racing each other. The fixed
@@ -26,13 +26,15 @@ concurrency:
26
26
 
27
27
  permissions:
28
28
  contents: read
29
- security-events: write
30
29
 
31
30
  jobs:
32
31
  analyze:
33
32
  name: Analyze (${{ matrix.language }})
34
33
  runs-on: ubuntu-latest
35
34
  timeout-minutes: 30
35
+ permissions:
36
+ contents: read
37
+ security-events: write
36
38
  strategy:
37
39
  fail-fast: false
38
40
  matrix:
@@ -0,0 +1,21 @@
1
+ name: Dependency review
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ dependency-review:
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: read
15
+ pull-requests: write
16
+ steps:
17
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
18
+ - uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
19
+ with:
20
+ fail-on-severity: high
21
+ comment-summary-in-pr: on-failure
@@ -99,18 +99,29 @@ jobs:
99
99
  actions: read
100
100
  outputs:
101
101
  published: ${{ steps.check.outputs.published }}
102
+ head_sha: ${{ steps.check.outputs.head_sha }}
102
103
  steps:
103
104
  - name: Check the triggering Release run published
104
105
  id: check
106
+ shell: bash
105
107
  env:
106
108
  GH_TOKEN: ${{ github.token }}
107
109
  RUN_ID: ${{ github.event.workflow_run.id }}
108
110
  run: |
109
111
  set -euo pipefail
110
- conclusion="$(gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}/jobs?per_page=100" \
112
+ data="$(gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}" \
113
+ --jq '[.head_sha, .event, .head_branch, .conclusion, .repository.full_name] | @tsv')"
114
+ IFS=$'\t' read -r sha event branch conclusion repo <<<"${data}"
115
+ echo "head_sha=${sha}" >> "$GITHUB_OUTPUT"
116
+ if [ "${event}" != "push" ] || [ "${branch}" != "main" ] || \
117
+ [ "${conclusion}" != "success" ] || [ "${repo}" != "${GITHUB_REPOSITORY}" ]; then
118
+ echo "::error::Run ${RUN_ID} is not a successful push on ${GITHUB_REPOSITORY} main."
119
+ exit 1
120
+ fi
121
+ publish_conclusion="$(gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}/jobs?per_page=100" \
111
122
  --jq '[.jobs[] | select(.name == "Build + verify + publish to PyPI + metadata-only GitHub Release") | .conclusion] | first // "missing"')"
112
- echo "Release publish job: ${conclusion}"
113
- if [ "${conclusion}" = "success" ]; then
123
+ echo "Release publish job: ${publish_conclusion}"
124
+ if [ "${publish_conclusion}" = "success" ]; then
114
125
  echo "published=true" >> "$GITHUB_OUTPUT"
115
126
  else
116
127
  echo "published=false" >> "$GITHUB_OUTPUT"
@@ -140,7 +151,7 @@ jobs:
140
151
  persist-credentials: false
141
152
  # Release-triggered runs must publish the exact commit that was released,
142
153
  # not whatever main points at when the follow-up workflow starts.
143
- ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.ref }}
154
+ ref: ${{ github.event_name == 'workflow_run' && needs.release_gate.outputs.head_sha || github.ref }}
144
155
 
145
156
  # GATE: bind each trigger to the version it is allowed to publish.
146
157
  #
@@ -37,11 +37,35 @@ jobs:
37
37
  timeout-minutes: 15
38
38
  permissions:
39
39
  contents: write
40
+ actions: read
40
41
  steps:
42
+ - name: Resolve the source commit
43
+ id: target
44
+ shell: bash
45
+ env:
46
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47
+ EVENT_NAME: ${{ github.event_name }}
48
+ RUN_ID: ${{ github.event.workflow_run.id }}
49
+ run: |
50
+ set -euo pipefail
51
+ if [ "${EVENT_NAME}" = "workflow_run" ]; then
52
+ data="$(gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}" \
53
+ --jq '[.head_sha, .event, .head_branch, .conclusion, .repository.full_name] | @tsv')"
54
+ IFS=$'\t' read -r sha event branch conclusion repo <<<"${data}"
55
+ if [ "${event}" != "push" ] || [ "${branch}" != "main" ] || \
56
+ [ "${conclusion}" != "success" ] || [ "${repo}" != "${GITHUB_REPOSITORY}" ]; then
57
+ echo "::error::Run ${RUN_ID} is not a successful push on ${GITHUB_REPOSITORY} main."
58
+ exit 1
59
+ fi
60
+ else
61
+ sha="${GITHUB_SHA}"
62
+ fi
63
+ echo "sha=${sha}" >> "$GITHUB_OUTPUT"
64
+
41
65
  - name: Check out released source
42
66
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
43
67
  with:
44
- ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }}
68
+ ref: ${{ steps.target.outputs.sha }}
45
69
 
46
70
  - name: Set up Python
47
71
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
@@ -64,18 +88,41 @@ jobs:
64
88
  echo "version=$version" >> "$GITHUB_OUTPUT"
65
89
  echo "tag=v$version" >> "$GITHUB_OUTPUT"
66
90
 
91
+ # The policy check also runs on a push that touches the release
92
+ # workflow, which can land before the version has been released (the
93
+ # 2.2.13 merge did exactly that). A missing release is not a policy
94
+ # violation: there is nothing to check yet, and the workflow_run trigger
95
+ # re-runs this job after the Release workflow creates it.
96
+ - name: Resolve matching GitHub Release
97
+ id: release_state
98
+ env:
99
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
100
+ RELEASE_TAG: ${{ steps.release.outputs.tag }}
101
+ shell: bash
102
+ run: |
103
+ set -euo pipefail
104
+ if release_id="$(gh api "repos/$GITHUB_REPOSITORY/releases/tags/$RELEASE_TAG" --jq '.id' 2>&1)"; then
105
+ echo "exists=true" >> "$GITHUB_OUTPUT"
106
+ echo "release_id=$release_id" >> "$GITHUB_OUTPUT"
107
+ elif grep -q "HTTP 404" <<<"$release_id"; then
108
+ echo "exists=false" >> "$GITHUB_OUTPUT"
109
+ echo "GitHub Release $RELEASE_TAG does not exist yet; nothing to enforce."
110
+ else
111
+ echo "::error::Could not resolve GitHub Release $RELEASE_TAG: $release_id"
112
+ exit 1
113
+ fi
114
+
67
115
  - name: Remove forbidden wheel and sdist assets from matching GitHub Release
116
+ if: steps.release_state.outputs.exists == 'true'
68
117
  env:
69
118
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70
119
  RELEASE_TAG: ${{ steps.release.outputs.tag }}
120
+ RELEASE_ID: ${{ steps.release_state.outputs.release_id }}
71
121
  shell: bash
72
122
  run: |
73
123
  set -euo pipefail
74
- release_id="$(
75
- gh api "repos/$GITHUB_REPOSITORY/releases/tags/$RELEASE_TAG" --jq '.id'
76
- )"
77
124
  asset_ids="$(
78
- gh api --paginate "repos/$GITHUB_REPOSITORY/releases/$release_id/assets" \
125
+ gh api --paginate "repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets" \
79
126
  --jq '.[] | select((.name | endswith(".whl")) or (.name | endswith(".tar.gz"))) | .id'
80
127
  )"
81
128
  if [ -z "$asset_ids" ]; then
@@ -88,6 +135,7 @@ jobs:
88
135
  fi
89
136
 
90
137
  - name: Verify public PyPI and asset-free GitHub Release policy
138
+ if: steps.release_state.outputs.exists == 'true'
91
139
  env:
92
140
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93
141
  RELEASE_VERSION: ${{ steps.release.outputs.version }}
@@ -50,13 +50,32 @@ jobs:
50
50
  timeout-minutes: 15
51
51
  permissions:
52
52
  contents: read
53
+ actions: read
53
54
  outputs:
54
55
  release_sha: ${{ steps.candidate.outputs.release_sha }}
55
56
  should_release: ${{ steps.candidate.outputs.should_release }}
56
57
  steps:
58
+ - name: Resolve and verify the triggering CI run
59
+ id: target
60
+ shell: bash
61
+ env:
62
+ GH_TOKEN: ${{ github.token }}
63
+ RUN_ID: ${{ github.event.workflow_run.id }}
64
+ run: |
65
+ set -euo pipefail
66
+ data="$(gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${RUN_ID}" \
67
+ --jq '[.head_sha, .event, .head_branch, .conclusion, .repository.full_name] | @tsv')"
68
+ IFS=$'\t' read -r sha event branch conclusion repo <<<"${data}"
69
+ if [ "${event}" != "push" ] || [ "${branch}" != "main" ] || \
70
+ [ "${conclusion}" != "success" ] || [ "${repo}" != "${GITHUB_REPOSITORY}" ]; then
71
+ echo "::error::Run ${RUN_ID} is not a successful push on ${GITHUB_REPOSITORY} main."
72
+ exit 1
73
+ fi
74
+ echo "sha=${sha}" >> "$GITHUB_OUTPUT"
75
+
57
76
  - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
58
77
  with:
59
- ref: ${{ github.event.workflow_run.head_sha }}
78
+ ref: ${{ steps.target.outputs.sha }}
60
79
  fetch-depth: 2
61
80
 
62
81
  - name: Bind release to the exact CI-tested commit
@@ -167,7 +186,10 @@ jobs:
167
186
  previous_tag="$tag"
168
187
  break
169
188
  fi
170
- done < <(git tag --merged HEAD --sort=-creatordate --list 'v*')
189
+ # Sort by version, not tag creation date: tags backfilled for older
190
+ # versions are created later, so -creatordate would pick e.g. v2.2.6
191
+ # as the base for v2.2.13 and weaken the version-discipline diff.
192
+ done < <(git tag --merged HEAD --sort=-v:refname --list 'v*')
171
193
  if [ -n "$previous_tag" ]; then
172
194
  base="$(git rev-list -n 1 "$previous_tag")"
173
195
  echo "Previous release: $previous_tag ($base)"
@@ -0,0 +1,37 @@
1
+ name: OpenSSF Scorecard
2
+
3
+ on:
4
+ branch_protection_rule:
5
+ schedule:
6
+ - cron: "30 1 * * 6"
7
+ push:
8
+ branches: [main]
9
+
10
+ permissions: read-all
11
+
12
+ jobs:
13
+ analysis:
14
+ name: Scorecard analysis
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ security-events: write
18
+ id-token: write
19
+ contents: read
20
+ actions: read
21
+ steps:
22
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23
+ with:
24
+ persist-credentials: false
25
+ - uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
26
+ with:
27
+ results_file: results.sarif
28
+ results_format: sarif
29
+ publish_results: true
30
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
31
+ with:
32
+ name: scorecard-sarif
33
+ path: results.sarif
34
+ retention-days: 5
35
+ - uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
36
+ with:
37
+ sarif_file: results.sarif
@@ -13,7 +13,9 @@ on:
13
13
  - 'CONTRIBUTING.md'
14
14
  - 'LICENSE'
15
15
  - 'SECURITY.md'
16
- - 'docs/**'
16
+ # No 'docs/**' here: deploy-docs runs inside this workflow on main
17
+ # pushes, so ignoring docs-only pushes meant documentation changes
18
+ # merged to main were never deployed.
17
19
  pull_request:
18
20
  branches: [main]
19
21
 
@@ -19,6 +19,23 @@ a git tag in this repository or on `origin` (checked with `git ls-remote --tags`
19
19
  Any retroactive `v2.2.6` or `v2.2.7` tag should point at those commits. This note records
20
20
  what the history supports; it does not claim that a tag exists.
21
21
 
22
+ ## [v2.2.15] - 2026-10-23
23
+
24
+ ### Dependency security floors
25
+
26
+ - Raise the test and documentation dependency floors to versions that carry security fixes: `pytest>=9.0.3` (PYSEC-2026-1845) and `mkdocs-material>=9.7.7` (PYSEC-2026-3864). The locked development environment already resolved these versions; the manifests now state the same minimum.
27
+ - Bump synchronized package metadata to 2.2.15 as required by the version-discipline gate for the `[project]` dependency change.
28
+
29
+ ## [v2.2.14] - 2026-10-23
30
+
31
+ ### Input validation and supply-chain transparency
32
+
33
+ - Reject non-square and non-rectangular matrices in `determinant` with a normalised `ValueError` instead of leaking an index error from the elimination loop.
34
+ - Report a vanishing Newton gradient as `converged=False` instead of silently returning success.
35
+ - Require every ODE right-hand-side derivative to match the initial-state length, and report the expected and actual lengths instead of letting an implicit broadcast hide the bug.
36
+ - Add Dependabot, OpenSSF Scorecard and dependency review workflows with SHA-pinned actions, and add a citation file so tooling can resolve package metadata.
37
+ - Bump synchronized package metadata to 2.2.14 as required by the version-discipline gate for `src/cds/` changes.
38
+
22
39
  ## [v2.2.13] - 2026-10-21
23
40
 
24
41
  ### Release packaging, CI and documentation accuracy
@@ -5,7 +5,7 @@ title: "scientific-computing-system"
5
5
  # Keep `version` in lockstep with pyproject.toml [project].version and
6
6
  # src/cds/_version.py. scripts/check_version_discipline.py and
7
7
  # scripts/check_version_lockstep.py enforce this.
8
- version: 2.2.13
8
+ version: 2.2.15
9
9
  authors:
10
10
  - name: "Furox-Art"
11
11
  email: "furkanarkn1451@gmail.com"
@@ -50,5 +50,5 @@ preferred-citation:
50
50
  authors:
51
51
  - name: "Furox-Art"
52
52
  year: 2026
53
- version: 2.2.13
53
+ version: 2.2.15
54
54
  url: "https://github.com/Furox-Art/scientific-computing-system"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: scientific-computing-system
3
- Version: 2.2.13
3
+ Version: 2.2.15
4
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
5
  Project-URL: Homepage, https://github.com/Furox-Art/scientific-computing-system
6
6
  Project-URL: Repository, https://github.com/Furox-Art/scientific-computing-system
@@ -34,7 +34,7 @@ Requires-Dist: h5py>=3.10; extra == 'all'
34
34
  Requires-Dist: hypothesis>=6.100; extra == 'all'
35
35
  Requires-Dist: ipykernel; extra == 'all'
36
36
  Requires-Dist: matplotlib>=3.8.0; extra == 'all'
37
- Requires-Dist: mkdocs-material>=9.0.0; extra == 'all'
37
+ Requires-Dist: mkdocs-material>=9.7.7; extra == 'all'
38
38
  Requires-Dist: mkdocs>=1.5.0; extra == 'all'
39
39
  Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'all'
40
40
  Requires-Dist: mypy>=1.10; extra == 'all'
@@ -44,7 +44,7 @@ Requires-Dist: numpy>=1.26; extra == 'all'
44
44
  Requires-Dist: pandas>=2.0; extra == 'all'
45
45
  Requires-Dist: pre-commit; extra == 'all'
46
46
  Requires-Dist: pytest-cov; extra == 'all'
47
- Requires-Dist: pytest>=8.0; extra == 'all'
47
+ Requires-Dist: pytest>=9.0.3; extra == 'all'
48
48
  Requires-Dist: ruff==0.15.17; extra == 'all'
49
49
  Requires-Dist: scikit-learn>=1.4; extra == 'all'
50
50
  Requires-Dist: scipy>=1.11; extra == 'all'
@@ -65,7 +65,7 @@ Requires-Dist: pandas-stubs>=2.0; extra == 'dev'
65
65
  Requires-Dist: pre-commit; extra == 'dev'
66
66
  Requires-Dist: ruff==0.15.17; extra == 'dev'
67
67
  Provides-Extra: docs
68
- Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
68
+ Requires-Dist: mkdocs-material>=9.7.7; extra == 'docs'
69
69
  Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
70
70
  Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
71
71
  Provides-Extra: io
@@ -91,7 +91,7 @@ Requires-Dist: sympy>=1.12; extra == 'scientific'
91
91
  Requires-Dist: z3-solver>=4.12.2; extra == 'scientific'
92
92
  Provides-Extra: test
93
93
  Requires-Dist: pytest-cov; extra == 'test'
94
- Requires-Dist: pytest>=8.0; extra == 'test'
94
+ Requires-Dist: pytest>=9.0.3; extra == 'test'
95
95
  Description-Content-Type: text/markdown
96
96
 
97
97
  <p align="center">
@@ -145,21 +145,21 @@ The import name is **`cds`** (the distribution is `scientific-computing-system`)
145
145
  | **PyPI** (the library) | `pip install scientific-computing-system` | The actual Python package. Zero runtime dependencies. This is what you want. |
146
146
  | **npm** (a launcher shim) | `npm i -g scientific-computing-system` | A thin Node wrapper that runs `python -m cds`. It ships no Python and needs the Python distribution installed so that `python -m cds` resolves. |
147
147
 
148
- At the time of writing (2026-10-22), both registries' latest versions are 2.2.12,
148
+ At the time of writing (2026-10-22), both registries' latest versions are 2.2.13,
149
149
  but they are not published in lockstep and are **not** equally verifiable:
150
150
 
151
151
  - **PyPI** — carries a **PEP 740 provenance attestation** (Sigstore-signed,
152
152
  binding the file digest to the publishing workflow). Verified on 2.2.3,
153
- 2.2.4, 2.2.5, 2.2.6, 2.2.8, 2.2.11 and 2.2.12. The 2.2.7 wheel and sdist
154
- return 404 from the per-file provenance endpoint, so "every release since
155
- attestations were enabled" would be false.
153
+ 2.2.4, 2.2.5, 2.2.6, 2.2.8, 2.2.11, 2.2.12 and 2.2.13. The 2.2.7 wheel and
154
+ sdist return 404 from the per-file provenance endpoint, so "every release
155
+ since attestations were enabled" would be false.
156
156
  - **npm** — carries a **Sigstore attestation as of 2.2.3**, minted by npm's
157
157
  OIDC trusted publisher (the registry serves both an npm publish attestation
158
158
  and a SLSA provenance v1 bundle for that tarball). 1.0.0 through 2.2.2
159
159
  predate the publisher registration and have none, so pin 2.2.3 or newer. npm
160
160
  has no 2.2.7, 2.2.8 or 2.2.11 at all: its 2.2.x line is 2.2.0 through 2.2.6
161
- plus 2.2.12, which is how the latest versions can match while the histories
162
- do not. npm also exposes `dist.integrity` (sha512), which is a content pin,
161
+ plus 2.2.12 and 2.2.13, which is how the latest versions can match while the
162
+ histories do not. npm also exposes `dist.integrity` (sha512), which is a content pin,
163
163
  not proof of origin, and `dist.signatures`, which is npm's registry transport
164
164
  signature, not build provenance.
165
165
 
@@ -211,7 +211,7 @@ The authoritative per-module list is the [API reference](https://furox-art.githu
211
211
 
212
212
  ### Runnable examples and the dashboard
213
213
 
214
- - **[`examples/`](examples/)** — 35 runnable scripts and notebooks (33 `.py`, 2
214
+ - **[`examples/`](examples/)** — 34 runnable scripts and notebooks (32 `.py`, 2
215
215
  `.ipynb`), each self-contained and dependency-free unless noted. Every tutorial
216
216
  page in the docs has a matching example.
217
217
  - **[`dashboard/app.py`](dashboard/app.py)** — a Streamlit dashboard:
@@ -277,7 +277,7 @@ The package installs a `cds` command with 13 subcommands:
277
277
 
278
278
  ```console
279
279
  $ cds --version
280
- System version 2.2.13
280
+ System version 2.2.15
281
281
  $ cds constants # physical constants table
282
282
  ```
283
283
 
@@ -49,21 +49,21 @@ The import name is **`cds`** (the distribution is `scientific-computing-system`)
49
49
  | **PyPI** (the library) | `pip install scientific-computing-system` | The actual Python package. Zero runtime dependencies. This is what you want. |
50
50
  | **npm** (a launcher shim) | `npm i -g scientific-computing-system` | A thin Node wrapper that runs `python -m cds`. It ships no Python and needs the Python distribution installed so that `python -m cds` resolves. |
51
51
 
52
- At the time of writing (2026-10-22), both registries' latest versions are 2.2.12,
52
+ At the time of writing (2026-10-22), both registries' latest versions are 2.2.13,
53
53
  but they are not published in lockstep and are **not** equally verifiable:
54
54
 
55
55
  - **PyPI** — carries a **PEP 740 provenance attestation** (Sigstore-signed,
56
56
  binding the file digest to the publishing workflow). Verified on 2.2.3,
57
- 2.2.4, 2.2.5, 2.2.6, 2.2.8, 2.2.11 and 2.2.12. The 2.2.7 wheel and sdist
58
- return 404 from the per-file provenance endpoint, so "every release since
59
- attestations were enabled" would be false.
57
+ 2.2.4, 2.2.5, 2.2.6, 2.2.8, 2.2.11, 2.2.12 and 2.2.13. The 2.2.7 wheel and
58
+ sdist return 404 from the per-file provenance endpoint, so "every release
59
+ since attestations were enabled" would be false.
60
60
  - **npm** — carries a **Sigstore attestation as of 2.2.3**, minted by npm's
61
61
  OIDC trusted publisher (the registry serves both an npm publish attestation
62
62
  and a SLSA provenance v1 bundle for that tarball). 1.0.0 through 2.2.2
63
63
  predate the publisher registration and have none, so pin 2.2.3 or newer. npm
64
64
  has no 2.2.7, 2.2.8 or 2.2.11 at all: its 2.2.x line is 2.2.0 through 2.2.6
65
- plus 2.2.12, which is how the latest versions can match while the histories
66
- do not. npm also exposes `dist.integrity` (sha512), which is a content pin,
65
+ plus 2.2.12 and 2.2.13, which is how the latest versions can match while the
66
+ histories do not. npm also exposes `dist.integrity` (sha512), which is a content pin,
67
67
  not proof of origin, and `dist.signatures`, which is npm's registry transport
68
68
  signature, not build provenance.
69
69
 
@@ -115,7 +115,7 @@ The authoritative per-module list is the [API reference](https://furox-art.githu
115
115
 
116
116
  ### Runnable examples and the dashboard
117
117
 
118
- - **[`examples/`](examples/)** — 35 runnable scripts and notebooks (33 `.py`, 2
118
+ - **[`examples/`](examples/)** — 34 runnable scripts and notebooks (32 `.py`, 2
119
119
  `.ipynb`), each self-contained and dependency-free unless noted. Every tutorial
120
120
  page in the docs has a matching example.
121
121
  - **[`dashboard/app.py`](dashboard/app.py)** — a Streamlit dashboard:
@@ -181,7 +181,7 @@ The package installs a `cds` command with 13 subcommands:
181
181
 
182
182
  ```console
183
183
  $ cds --version
184
- System version 2.2.13
184
+ System version 2.2.15
185
185
  $ cds constants # physical constants table
186
186
  ```
187
187
 
@@ -128,7 +128,7 @@ repository's publish workflows mints an attestation on each channel:
128
128
  - **PyPI** — Trusted Publisher: owner `Furox-Art`, repository
129
129
  `scientific-computing-system`, workflow `release.yml`, environment `pypi`.
130
130
  Exercised since 2.2.1. The per-file provenance endpoint returned 200 for the
131
- published files of 2.2.1–2.2.6, 2.2.8, 2.2.11 and 2.2.12 on 2026-10-22;
131
+ published files of 2.2.1–2.2.6, 2.2.8, 2.2.11, 2.2.12 and 2.2.13 on 2026-10-22;
132
132
  2.2.7 returns 404 for both its wheel and sdist.
133
133
  - **npm** — Trusted Publisher: owner `Furox-Art`, repository
134
134
  `scientific-computing-system`, workflow `npm-publish.yml`, environment `npm`.
@@ -191,7 +191,7 @@ In particular, `sympy_verify_identity()` passes caller-provided symbolic strings
191
191
 
192
192
  1. **Pin the package version** in reproducible environments, for example `pip install "scientific-computing-system==X.Y.Z"` with the exact release you have evaluated, rather than an unconstrained range. Deliberately no concrete version is written here: a pinned example goes stale at the next release and readers copy it regardless, so take the number from the [release notes](https://github.com/Furox-Art/scientific-computing-system/releases) for the release you are deploying, and record it in your own lockfile or constraints file.
193
193
  2. **Install only the optional extras you need.** Fewer third-party packages reduce supply-chain and compatibility surface.
194
- 3. **Verify provenance for high-assurance use.** For PyPI, fetch the PEP 740 bundle from `/integrity/<project>/<version>/<filename>/provenance` and confirm its `subject` digest equals the `sha256` PyPI publishes for that file. There is currently **no** attestation for the npm package; its `dist.integrity` is an integrity pin, not provenance. See [Distribution channels and provenance](#distribution-channels-and-provenance).
194
+ 3. **Verify provenance for high-assurance use.** For PyPI, fetch the PEP 740 bundle from `/integrity/<project>/<version>/<filename>/provenance` and confirm its `subject` digest equals the `sha256` PyPI publishes for that file. npm publishes are attested from `2.2.3` onward; for versions without an attestation, `dist.integrity` is an integrity pin, not provenance. See [Distribution channels and provenance](#distribution-channels-and-provenance).
195
195
  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.
196
196
  5. **Keep the environment current.** Review dependency updates and run vulnerability auditing against the exact environment deployed.
197
197
  6. **Do not use the library as the sole validation layer for safety-critical conclusions.** Independent domain validation remains necessary.
@@ -2,7 +2,7 @@
2
2
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
3
3
  "@type": "SoftwareSourceCode",
4
4
  "name": "scientific-computing-system",
5
- "version": "2.2.13",
5
+ "version": "2.2.15",
6
6
  "description": "Pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, and scientific workflows. Zero runtime dependencies. This is the front door; scientific-computing-system-2.0 is the NumPy build of the same work.",
7
7
  "license": "https://spdx.org/licenses/MIT",
8
8
  "codeRepository": "https://github.com/Furox-Art/scientific-computing-system",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scientific-computing-system",
3
- "version": "2.2.13",
3
+ "version": "2.2.15",
4
4
  "description": "Scientific Computing System launcher - a thin Node wrapper that forwards to the pure-Python `cds` CLI. This npm package ships NO Python code: it requires the Python distribution to be installed (`pip install scientific-computing-system`), otherwise `scs` exits non-zero with an actionable message.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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.2.13"
5
+ version = "2.2.15"
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"
@@ -38,7 +38,7 @@ dependencies = []
38
38
  all = [
39
39
  "streamlit>=1.30.0",
40
40
  "matplotlib>=3.8.0",
41
- "pytest>=8.0",
41
+ "pytest>=9.0.3",
42
42
  "pytest-cov",
43
43
  "ruff==0.15.17",
44
44
  "mypy>=1.10",
@@ -47,7 +47,7 @@ all = [
47
47
  "ipykernel",
48
48
  "notebook",
49
49
  "mkdocs>=1.5.0",
50
- "mkdocs-material>=9.0.0",
50
+ "mkdocs-material>=9.7.7",
51
51
  "mkdocstrings[python]>=0.24.0",
52
52
  "hypothesis>=6.100",
53
53
  "pandas>=2.0",
@@ -93,7 +93,7 @@ plot = [
93
93
  "matplotlib>=3.8.0",
94
94
  ]
95
95
  test = [
96
- "pytest>=8.0",
96
+ "pytest>=9.0.3",
97
97
  "pytest-cov",
98
98
  ]
99
99
  # Property-based testing. Used only by tests/test_property_invariants.py and
@@ -127,7 +127,7 @@ dev = [
127
127
  ]
128
128
  docs = [
129
129
  "mkdocs>=1.5.0",
130
- "mkdocs-material>=9.0.0",
130
+ "mkdocs-material>=9.7.7",
131
131
  "mkdocstrings[python]>=0.24.0",
132
132
  ]
133
133
  # Promo/asset build tooling. Used only by scripts/build_gif.py,
@@ -5,5 +5,5 @@ from __future__ import annotations
5
5
 
6
6
  __all__ = ["__version__", "version", "__version_tuple__", "version_tuple"]
7
7
 
8
- __version__ = version = "2.2.13"
9
- __version_tuple__ = version_tuple = (2, 2, 13)
8
+ __version__ = version = "2.2.15"
9
+ __version_tuple__ = version_tuple = (2, 2, 14)
@@ -267,6 +267,17 @@ def rk45(
267
267
  return ODESolution(t=t_vals, y=y_vals, method="rk45", steps=steps)
268
268
 
269
269
 
270
+ def _checked_derivative(
271
+ f: Callable[[float, list[float]], list[float]], t: float, y: list[float], n: int
272
+ ) -> list[float]:
273
+ dy = f(t, y)
274
+ if len(dy) != n:
275
+ raise ValueError(
276
+ f"ODE right-hand side returned {len(dy)} derivative(s) for a state of length {n}"
277
+ )
278
+ return dy
279
+
280
+
270
281
  def solve_system(
271
282
  f: Callable[[float, list[float]], list[float]],
272
283
  t0: float,
@@ -296,13 +307,13 @@ def solve_system(
296
307
  while (t_end - t) * direction > LOOP_EPSILON:
297
308
  h = direction * min(dt, abs(t_end - t))
298
309
 
299
- k1 = f(t, y)
310
+ k1 = _checked_derivative(f, t, y, n)
300
311
  y_tmp = [y[i] + h * k1[i] / 2 for i in range(n)]
301
- k2 = f(t + h / 2, y_tmp)
312
+ k2 = _checked_derivative(f, t + h / 2, y_tmp, n)
302
313
  y_tmp = [y[i] + h * k2[i] / 2 for i in range(n)]
303
- k3 = f(t + h / 2, y_tmp)
314
+ k3 = _checked_derivative(f, t + h / 2, y_tmp, n)
304
315
  y_tmp = [y[i] + h * k3[i] for i in range(n)]
305
- k4 = f(t + h, y_tmp)
316
+ k4 = _checked_derivative(f, t + h, y_tmp, n)
306
317
 
307
318
  y = [y[i] + (h / 6) * (k1[i] + 2 * k2[i] + 2 * k3[i] + k4[i]) for i in range(n)]
308
319
  t = t + h
@@ -120,6 +120,9 @@ def determinant(m: Matrix) -> float:
120
120
  n = len(m)
121
121
  if n == 0:
122
122
  return 1.0
123
+ rows, cols = _require_rectangular(m, "matrix")
124
+ if rows != cols:
125
+ raise ValueError(f"determinant requires a square matrix (got {rows}x{cols})")
123
126
  if n == 1:
124
127
  return m[0][0]
125
128
 
@@ -226,7 +226,12 @@ def newton_method(
226
226
  dfx = _compute_gradient(f, x, h_base)
227
227
 
228
228
  if abs(dfx) < NEAR_ZERO:
229
- break
229
+ return OptResult(
230
+ x=x,
231
+ value=f(x),
232
+ iterations=i,
233
+ converged=False,
234
+ )
230
235
  x -= fx / dfx
231
236
  return OptResult(
232
237
  x=x,
@@ -401,6 +406,8 @@ def line_search(
401
406
  max_iter: iteration limit
402
407
  """
403
408
  phi = (math.sqrt(5) - 1) / 2
409
+ if a > b:
410
+ raise ValueError(f"line_search requires a <= b (got a={a}, b={b})")
404
411
  for i in range(max_iter):
405
412
  if abs(b - a) < tol:
406
413
  mid = (a + b) / 2