scientific-computing-system 2.0.1__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 (384) hide show
  1. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/CITATION.cff +9 -9
  2. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/PKG-INFO +35 -2
  3. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/README.md +33 -0
  4. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/index.md +8 -0
  5. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/mkdocs.yml +4 -3
  6. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/pyproject.toml +9 -8
  7. scientific_computing_system-2.1.0/requirements-build.lock +17 -0
  8. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/requirements-dev.lock +7 -7
  9. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/__init__.py +6 -2
  10. scientific_computing_system-2.1.0/src/cds/_version.py +9 -0
  11. scientific_computing_system-2.1.0/src/cds/causal.py +210 -0
  12. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_io/__init__.py +16 -0
  13. scientific_computing_system-2.1.0/src/cds/data_io/scientific.py +228 -0
  14. scientific_computing_system-2.1.0/src/cds/sensitivity.py +425 -0
  15. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/__init__.py +18 -0
  16. scientific_computing_system-2.1.0/src/cds/stats/multiple_testing.py +189 -0
  17. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/validation/__init__.py +20 -0
  18. scientific_computing_system-2.1.0/src/cds/validation/drift.py +217 -0
  19. scientific_computing_system-2.1.0/tests/test_causal.py +150 -0
  20. scientific_computing_system-2.1.0/tests/test_data_io_optional_backends.py +44 -0
  21. scientific_computing_system-2.1.0/tests/test_data_io_scientific.py +197 -0
  22. scientific_computing_system-2.1.0/tests/test_dev_numpy_pin_contract.py +193 -0
  23. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_release_contract.py +77 -0
  24. scientific_computing_system-2.1.0/tests/test_sensitivity.py +166 -0
  25. scientific_computing_system-2.1.0/tests/test_stats_multiple_testing.py +85 -0
  26. scientific_computing_system-2.1.0/tests/test_validation_drift.py +116 -0
  27. scientific_computing_system-2.0.1/src/cds/_version.py +0 -12
  28. scientific_computing_system-2.0.1/src/cds/sensitivity.py +0 -204
  29. scientific_computing_system-2.0.1/tests/test_sensitivity.py +0 -59
  30. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/.gitignore +0 -0
  31. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/CHANGELOG.md +0 -0
  32. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/CONTRIBUTING.md +0 -0
  33. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/LICENSE +0 -0
  34. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/SECURITY.md +0 -0
  35. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/benchmarks/results.json +0 -0
  36. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/benchmarks/robust_runner.py +0 -0
  37. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/benchmarks/run_benchmarks.py +0 -0
  38. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/dashboard/app.py +0 -0
  39. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/ARCHITECTURE.md +0 -0
  40. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/CASE_STUDY_HUBBLE.md +0 -0
  41. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/CASE_STUDY_QUANTUM_ML.md +0 -0
  42. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/api.md +0 -0
  43. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/assets/icon.svg +0 -0
  44. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/assets/logo.svg +0 -0
  45. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/benchmarks.md +0 -0
  46. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/cookbook.md +0 -0
  47. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/getting-started.md +0 -0
  48. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/maintenance.md +0 -0
  49. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/ml_reference.md +0 -0
  50. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/research-workflows.md +0 -0
  51. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/stylesheets/extra.css +0 -0
  52. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tour_of_numerical_methods.md +0 -0
  53. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/core_demo.md +0 -0
  54. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/data_analysis_demo.md +0 -0
  55. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/diffeq_demo.md +0 -0
  56. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/fft2_demo.md +0 -0
  57. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/graph_demo.md +0 -0
  58. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_demo.md +0 -0
  59. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_tests_demo.md +0 -0
  60. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/hypothesis_with_stats_demo.md +0 -0
  61. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/knowledge_demo.md +0 -0
  62. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/linalg_demo.md +0 -0
  63. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/math_utils_demo.md +0 -0
  64. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/ml_advanced_demo.md +0 -0
  65. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/ml_and_viz_demo.md +0 -0
  66. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/ml_demo.md +0 -0
  67. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/modeling_demo.md +0 -0
  68. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/montecarlo_demo.md +0 -0
  69. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_attention_demo.md +0 -0
  70. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_bpe_demo.md +0 -0
  71. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_mini_gpt_demo.md +0 -0
  72. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/nlp_viz.md +0 -0
  73. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/numerical_integration_demo.md +0 -0
  74. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/optimization_demo.md +0 -0
  75. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/pandas_io_demo.md +0 -0
  76. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/pca_demo.md +0 -0
  77. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/probability_demo.md +0 -0
  78. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/quantum_demo.md +0 -0
  79. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/quick_start.md +0 -0
  80. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/scientific_demo.md +0 -0
  81. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/signals_demo.md +0 -0
  82. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/stats_demo.md +0 -0
  83. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/stiff_ode_demo.md +0 -0
  84. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/tutorials/time_series_demo.md +0 -0
  85. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/docs/why-pure-python.md +0 -0
  86. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/core_demo.py +0 -0
  87. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/data_analysis_demo.py +0 -0
  88. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/diffeq_demo.py +0 -0
  89. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/discovery_pipeline_demo.py +0 -0
  90. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/ensemble_showcase.py +0 -0
  91. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/fft2_demo.py +0 -0
  92. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/graph_demo.py +0 -0
  93. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/hypothesis_custom_generator.py +0 -0
  94. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/hypothesis_demo.py +0 -0
  95. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/hypothesis_tests_demo.py +0 -0
  96. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/hypothesis_with_stats_demo.py +0 -0
  97. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/interpolate_demo.py +0 -0
  98. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/knowledge_demo.py +0 -0
  99. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/linalg_demo.py +0 -0
  100. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/math_utils_demo.py +0 -0
  101. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/ml_and_viz_demo.py +0 -0
  102. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/modeling_demo.py +0 -0
  103. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/montecarlo_demo.py +0 -0
  104. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/nlp_attention_demo.py +0 -0
  105. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/nlp_bpe_demo.py +0 -0
  106. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/nlp_mini_gpt_demo.py +0 -0
  107. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/nlp_viz_demo.py +0 -0
  108. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/numerical_integration_demo.py +0 -0
  109. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/optimization_demo.py +0 -0
  110. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/pca_demo.py +0 -0
  111. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/pde_demo.py +0 -0
  112. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/plot_demo.py +0 -0
  113. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/plotting_notebook.ipynb +0 -0
  114. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/probability_demo.py +0 -0
  115. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/quantum_demo.py +0 -0
  116. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/scientific_demo.py +0 -0
  117. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/signals_demo.py +0 -0
  118. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/stats_demo.py +0 -0
  119. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/examples/tour_of_numerical_methods.ipynb +0 -0
  120. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/requirements.lock +0 -0
  121. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/scripts/publish.py +0 -0
  122. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/scripts/verify_cli_install.py +0 -0
  123. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/__main__.py +0 -0
  124. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/bayes/__init__.py +0 -0
  125. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/bayes/conjugate.py +0 -0
  126. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/__init__.py +0 -0
  127. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/__main__.py +0 -0
  128. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/_handlers.py +0 -0
  129. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/_parser.py +0 -0
  130. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/_style.py +0 -0
  131. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/cli/_system_info.py +0 -0
  132. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/core/__init__.py +0 -0
  133. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/core/_numeric.py +0 -0
  134. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/core/models.py +0 -0
  135. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/__init__.py +0 -0
  136. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/dataset.py +0 -0
  137. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/loader.py +0 -0
  138. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/pandas_io.py +0 -0
  139. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/transform.py +0 -0
  140. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_analysis/viz.py +0 -0
  141. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/data_io/streaming.py +0 -0
  142. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/diffeq/__init__.py +0 -0
  143. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/diffeq/_implicit.py +0 -0
  144. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/diffeq/solvers.py +0 -0
  145. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/diffeq/symplectic.py +0 -0
  146. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/fractals/__init__.py +0 -0
  147. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/fractals/sets.py +0 -0
  148. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/genetics/__init__.py +0 -0
  149. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/genetics/sequence.py +0 -0
  150. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/graph/__init__.py +0 -0
  151. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/graph/algorithms.py +0 -0
  152. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/hypothesis/__init__.py +0 -0
  153. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/hypothesis/evaluator.py +0 -0
  154. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/hypothesis/generator.py +0 -0
  155. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/hypothesis/mining.py +0 -0
  156. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/infotheory/__init__.py +0 -0
  157. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/infotheory/measures.py +0 -0
  158. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/interpolate/__init__.py +0 -0
  159. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/knowledge/__init__.py +0 -0
  160. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/knowledge/graph.py +0 -0
  161. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/knowledge/notes.py +0 -0
  162. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/knowledge/retrieval.py +0 -0
  163. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/math_utils/__init__.py +0 -0
  164. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/math_utils/calculus.py +0 -0
  165. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/math_utils/linalg.py +0 -0
  166. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/math_utils/special.py +0 -0
  167. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/math_utils/svd.py +0 -0
  168. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/__init__.py +0 -0
  169. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/boosting.py +0 -0
  170. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/clustering.py +0 -0
  171. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/decomposition.py +0 -0
  172. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/ensemble.py +0 -0
  173. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/linear_models.py +0 -0
  174. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/metrics.py +0 -0
  175. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/model_selection.py +0 -0
  176. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/naive_bayes.py +0 -0
  177. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/neighbors.py +0 -0
  178. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/neural.py +0 -0
  179. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/preprocessing.py +0 -0
  180. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/tree.py +0 -0
  181. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/ml/voting.py +0 -0
  182. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/__init__.py +0 -0
  183. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/_base.py +0 -0
  184. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/_nodes.py +0 -0
  185. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/expression.py +0 -0
  186. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/fitting.py +0 -0
  187. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/model.py +0 -0
  188. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/modeling/solver.py +0 -0
  189. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/montecarlo/__init__.py +0 -0
  190. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/montecarlo/markov.py +0 -0
  191. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/montecarlo/methods.py +0 -0
  192. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/__init__.py +0 -0
  193. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/attention.py +0 -0
  194. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/__init__.py +0 -0
  195. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/_grad.py +0 -0
  196. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/ops.py +0 -0
  197. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/autograd/tensor.py +0 -0
  198. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/bpe.py +0 -0
  199. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/data.py +0 -0
  200. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/embed.py +0 -0
  201. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/layers.py +0 -0
  202. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/model.py +0 -0
  203. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/optim.py +0 -0
  204. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/training.py +0 -0
  205. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/nlp/viz.py +0 -0
  206. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/numerical_integration/__init__.py +0 -0
  207. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/numerical_integration/quadrature.py +0 -0
  208. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/optimization/__init__.py +0 -0
  209. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/optimization/_metaheuristics.py +0 -0
  210. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/optimization/constrained.py +0 -0
  211. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/optimization/minimize.py +0 -0
  212. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/pde/__init__.py +0 -0
  213. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/plot/__init__.py +0 -0
  214. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/plot/_backend.py +0 -0
  215. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/plot/charts.py +0 -0
  216. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/probability/__init__.py +0 -0
  217. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/probability/_advanced.py +0 -0
  218. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/probability/distributions.py +0 -0
  219. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/probability/extra_distributions.py +0 -0
  220. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/provenance/__init__.py +0 -0
  221. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/provenance/manifest.py +0 -0
  222. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/py.typed +0 -0
  223. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/quantum/__init__.py +0 -0
  224. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/quantum/circuit.py +0 -0
  225. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/quantum/multi_qubit.py +0 -0
  226. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/quantum/simulator.py +0 -0
  227. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/scientific/__init__.py +0 -0
  228. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/scientific/constants.py +0 -0
  229. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/scientific/formulas.py +0 -0
  230. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/signals/__init__.py +0 -0
  231. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/signals/filters.py +0 -0
  232. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/signals/processing.py +0 -0
  233. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/signals/stft.py +0 -0
  234. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/signals/wavelet.py +0 -0
  235. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/_distributions.py +0 -0
  236. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/bootstrap.py +0 -0
  237. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/descriptive.py +0 -0
  238. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/hypothesis_tests.py +0 -0
  239. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/nonparametric.py +0 -0
  240. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/power.py +0 -0
  241. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/regression.py +0 -0
  242. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/stats/time_series.py +0 -0
  243. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/tools/__init__.py +0 -0
  244. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/tools/adapters.py +0 -0
  245. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/tools/registry.py +0 -0
  246. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/uncertainty/__init__.py +0 -0
  247. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/uncertainty/propagation.py +0 -0
  248. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/units/__init__.py +0 -0
  249. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/units/core.py +0 -0
  250. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/validation/adequacy.py +0 -0
  251. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/validation/checks.py +0 -0
  252. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/validation/report.py +0 -0
  253. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/wavelets/__init__.py +0 -0
  254. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/wavelets/haar.py +0 -0
  255. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/__init__.py +0 -0
  256. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/engine.py +0 -0
  257. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/gates.py +0 -0
  258. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/orchestrator.py +0 -0
  259. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/selection.py +0 -0
  260. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/tooling.py +0 -0
  261. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/src/cds/workflow/types.py +0 -0
  262. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/__init__.py +0 -0
  263. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/conftest.py +0 -0
  264. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_advanced_fitting.py +0 -0
  265. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_audit_completion_coverage.py +0 -0
  266. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_audit_guard_coverage.py +0 -0
  267. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_audit_hardening.py +0 -0
  268. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_audit_hardening_coverage.py +0 -0
  269. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_bayes_v2.py +0 -0
  270. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_benchmarks.py +0 -0
  271. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_bootstrap.py +0 -0
  272. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_cli.py +0 -0
  273. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_cli_color.py +0 -0
  274. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_cli_extended.py +0 -0
  275. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_cli_system_info.py +0 -0
  276. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_constrained_opt.py +0 -0
  277. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_core.py +0 -0
  278. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_data_analysis.py +0 -0
  279. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_data_analysis_lazy_bridge.py +0 -0
  280. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_data_analysis_pandas_io.py +0 -0
  281. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_data_io.py +0 -0
  282. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_dataset.py +0 -0
  283. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_diffeq.py +0 -0
  284. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_diffeq_implicit.py +0 -0
  285. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_domain_validation.py +0 -0
  286. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_edge_misc_numerical.py +0 -0
  287. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_edge_ml_quantum_linalg.py +0 -0
  288. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_edge_nlp.py +0 -0
  289. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_edge_quantum_evaluator_cli.py +0 -0
  290. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_edge_stats_optimization_signals.py +0 -0
  291. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_extra_distributions.py +0 -0
  292. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_fft2.py +0 -0
  293. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_fitting_bootstrap.py +0 -0
  294. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_fractals.py +0 -0
  295. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_genetics.py +0 -0
  296. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_graph.py +0 -0
  297. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_hardening_privacy_provenance.py +0 -0
  298. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_hypothesis.py +0 -0
  299. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_hypothesis_engine.py +0 -0
  300. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_hypothesis_mining.py +0 -0
  301. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_hypothesis_tests.py +0 -0
  302. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_infotheory.py +0 -0
  303. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_interpolate.py +0 -0
  304. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_knowledge.py +0 -0
  305. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_layering.py +0 -0
  306. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_linalg_extended.py +0 -0
  307. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_linalg_qr_cholesky.py +0 -0
  308. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_markov.py +0 -0
  309. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_math_utils.py +0 -0
  310. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_boosting.py +0 -0
  311. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_clustering.py +0 -0
  312. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_ensemble.py +0 -0
  313. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_knn.py +0 -0
  314. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_linreg.py +0 -0
  315. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_logreg.py +0 -0
  316. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_metrics.py +0 -0
  317. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_model_selection.py +0 -0
  318. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_naive_bayes.py +0 -0
  319. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_pca.py +0 -0
  320. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_preprocessing.py +0 -0
  321. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_tree.py +0 -0
  322. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_viz.py +0 -0
  323. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_ml_voting.py +0 -0
  324. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_modeling.py +0 -0
  325. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_modeling_fit_validation.py +0 -0
  326. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_montecarlo.py +0 -0
  327. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_multi_qubit.py +0 -0
  328. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_attention.py +0 -0
  329. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_autograd.py +0 -0
  330. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_bpe.py +0 -0
  331. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_embed.py +0 -0
  332. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_layers.py +0 -0
  333. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_model.py +0 -0
  334. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_training.py +0 -0
  335. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_nlp_viz.py +0 -0
  336. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_numerical_integration.py +0 -0
  337. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_numerical_invariants.py +0 -0
  338. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_numerical_oracles.py +0 -0
  339. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_optimization.py +0 -0
  340. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_optimization_metaheuristics.py +0 -0
  341. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_pde.py +0 -0
  342. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_plot_charts.py +0 -0
  343. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_plot_lazy.py +0 -0
  344. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_power.py +0 -0
  345. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_probability.py +0 -0
  346. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_probability_advanced.py +0 -0
  347. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_property_invariants.py +0 -0
  348. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_provenance.py +0 -0
  349. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_provenance_audit_hardening.py +0 -0
  350. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_public_api.py +0 -0
  351. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_quantum.py +0 -0
  352. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_retrieval.py +0 -0
  353. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_scientific.py +0 -0
  354. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_selection_audit_hardening.py +0 -0
  355. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_sensitivity_global.py +0 -0
  356. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_signals.py +0 -0
  357. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_signals_filters.py +0 -0
  358. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_special_invariants.py +0 -0
  359. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_special_numerics.py +0 -0
  360. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_statistical_audit.py +0 -0
  361. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_stats.py +0 -0
  362. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_stats_audit_coverage.py +0 -0
  363. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_stats_nonparametric.py +0 -0
  364. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_stats_time_series.py +0 -0
  365. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_stft.py +0 -0
  366. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_streaming_analytics.py +0 -0
  367. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_svd.py +0 -0
  368. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_symplectic.py +0 -0
  369. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_tool_adapters.py +0 -0
  370. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_tools_registry.py +0 -0
  371. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_uncertainty.py +0 -0
  372. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_units.py +0 -0
  373. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_validation.py +0 -0
  374. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_validation_adequacy.py +0 -0
  375. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_validation_advanced.py +0 -0
  376. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_wavelet.py +0 -0
  377. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_wavelets_v2.py +0 -0
  378. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow.py +0 -0
  379. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_gates.py +0 -0
  380. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_orchestrator.py +0 -0
  381. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_orchestrator_blocked_review.py +0 -0
  382. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_selection.py +0 -0
  383. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_selection_coverage.py +0 -0
  384. {scientific_computing_system-2.0.1 → scientific_computing_system-2.1.0}/tests/test_workflow_tooling.py +0 -0
@@ -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: 2.0.1
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-09-29"
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: 2.0.1
28
+ version: 2.1.0
29
29
  url: "https://github.com/Furox-Art/scientific-computing-system"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.5
1
+ Metadata-Version: 2.4
2
2
  Name: scientific-computing-system
3
- Version: 2.0.1
3
+ Version: 2.1.0
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
@@ -128,6 +128,39 @@ This is a from-scratch rethinking of what scientific computing in Python could l
128
128
  - **Signal processing**: filters, wavelets, STFT
129
129
  - **ODE/PDE solvers**: stiff and non-stiff, symplectic integrators
130
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
+
131
164
  ## The catch
132
165
 
133
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.
@@ -32,6 +32,39 @@ This is a from-scratch rethinking of what scientific computing in Python could l
32
32
  - **Signal processing**: filters, wavelets, STFT
33
33
  - **ODE/PDE solvers**: stiff and non-stiff, symplectic integrators
34
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
+
35
68
  ## The catch
36
69
 
37
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.
@@ -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.
@@ -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.1"
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"
@@ -153,7 +153,7 @@ Issues = "https://github.com/Furox-Art/scientific-computing-system/issues"
153
153
  Changelog = "https://github.com/Furox-Art/scientific-computing-system/releases"
154
154
 
155
155
  [build-system]
156
- requires = ["hatchling"]
156
+ requires = ["hatchling==1.31.0"]
157
157
  build-backend = "hatchling.build"
158
158
 
159
159
  [tool.hatch.build.targets.wheel]
@@ -190,19 +190,20 @@ only-include = [
190
190
  "pyproject.toml",
191
191
  "requirements.lock",
192
192
  "requirements-dev.lock",
193
+ "requirements-build.lock",
193
194
  "mkdocs.yml",
194
195
  ]
195
196
 
196
- # Static versioning: `version` above and `src/cds/_version.py` are the package
197
- # version sources and must stay in lockstep. The release workflow additionally
198
- # rejects any `vX.Y.Z` tag whose X.Y.Z does not exactly match the built wheel
199
- # 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.
200
201
  #
201
202
  # Release checklist:
202
- # 1. Bump `version` above AND `__version__` in `src/cds/_version.py`
203
+ # 1. Bump all three version metadata sources together
203
204
  # 2. Commit, push, and wait for CI + Installed CLI Smoke to be green
204
205
  # 3. Merge the verified version bump to `main`; release.yml builds the wheel
205
- # and creates the matching `vX.Y.Z` tag automatically
206
+ # from a hash-locked, non-isolated build toolchain
206
207
  # 4. Trusted Publishing uploads the verified build to PyPI; the GitHub Release
207
208
  # contains release metadata only, never wheel/sdist distribution assets
208
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
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # pip-compile --extra=dev --extra=docs --extra=test --output-file=requirements-dev.lock pyproject.toml
6
6
  #
7
- anyio==4.14.2
7
+ anyio==4.15.1
8
8
  # via
9
9
  # httpx
10
10
  # jupyter-server
@@ -143,7 +143,7 @@ jupyter-events==0.12.1
143
143
  # via jupyter-server
144
144
  jupyter-lsp==2.3.1
145
145
  # via jupyterlab
146
- jupyter-server==2.21.0
146
+ jupyter-server==2.21.1
147
147
  # via
148
148
  # jupyter-lsp
149
149
  # jupyterlab
@@ -314,7 +314,7 @@ python-dateutil==2.9.0.post0
314
314
  # arrow
315
315
  # ghp-import
316
316
  # jupyter-client
317
- python-discovery==1.4.2
317
+ python-discovery==1.6.1
318
318
  # via virtualenv
319
319
  python-json-logger==4.1.0
320
320
  # via jupyter-events
@@ -364,7 +364,7 @@ six==1.17.0
364
364
  # via
365
365
  # python-dateutil
366
366
  # rfc3339-validator
367
- soupsieve==2.9.0
367
+ soupsieve==2.9.2
368
368
  # via beautifulsoup4
369
369
  stack-data==0.6.3
370
370
  # via ipython
@@ -395,7 +395,7 @@ traitlets==5.15.1
395
395
  # nbclient
396
396
  # nbconvert
397
397
  # nbformat
398
- typing-extensions==4.15.0
398
+ typing-extensions==4.16.0
399
399
  # via
400
400
  # anyio
401
401
  # beautifulsoup4
@@ -406,9 +406,9 @@ tzdata==2026.2
406
406
  # via arrow
407
407
  uri-template==1.3.0
408
408
  # via jsonschema
409
- urllib3==2.7.0
409
+ urllib3==2.8.0
410
410
  # via requests
411
- virtualenv==21.5.1
411
+ virtualenv==21.7.13
412
412
  # via pre-commit
413
413
  watchdog==6.0.0
414
414
  # via mkdocs
@@ -9,10 +9,12 @@ Key features:
9
9
  - Quantum simulation (single & multi-qubit with entanglement)
10
10
  - Signal processing (FFT, 2D FFT, convolution, filtering)
11
11
  - Optimization, statistics, probability, linear algebra
12
+ - Multiple-testing/FDR corrections and conservative causal estimators
12
13
  - Hypothesis generation for structured research ideas
13
14
  - Workflow orchestration with approval gates and validation
14
- - Uncertainty propagation, sensitivity analysis, and reproducibility provenance
15
- - SI units, dimensional analysis, and scalable local data I/O
15
+ - Uncertainty propagation, local/global sensitivity, and identifiability analysis
16
+ - Distribution-drift and out-of-distribution validation
17
+ - SI units, dimensional analysis, and memory-bounded scientific data I/O
16
18
  - Optional scientific-tool capability discovery and normalized adapters
17
19
  - CLI for quick calculations and discovery workflows
18
20
 
@@ -32,6 +34,7 @@ Usage:
32
34
  # Scientific computing modules
33
35
  from cds import (
34
36
  bayes,
37
+ causal,
35
38
  core,
36
39
  data_analysis,
37
40
  data_io,
@@ -98,6 +101,7 @@ __all__ = [
98
101
  "pendulum_period",
99
102
  "doppler_frequency",
100
103
  "bayes",
104
+ "causal",
101
105
  "core",
102
106
  "data_analysis",
103
107
  "data_io",
@@ -0,0 +1,9 @@
1
+ # Static version source. Kept in lockstep with `version` in pyproject.toml and
2
+ # version metadata in CITATION.cff. Package-affecting changes require a
3
+ # synchronized monotonic bump; scripts/check_version_discipline.py enforces it.
4
+ from __future__ import annotations
5
+
6
+ __all__ = ["__version__", "version", "__version_tuple__", "version_tuple"]
7
+
8
+ __version__ = version = "2.1.0"
9
+ __version_tuple__ = version_tuple = (2, 1, 0)
@@ -0,0 +1,210 @@
1
+ """Conservative, assumption-gated causal effect estimators.
2
+
3
+ This module does not infer causal structure from observational correlations.
4
+ Callers must declare causal assumptions explicitly and, for observational
5
+ back-door adjustment, provide the adjustment covariates themselves.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import math
11
+ from collections.abc import Sequence
12
+ from dataclasses import dataclass
13
+
14
+ from cds.validation import CheckStatus, ValidationCheck, ValidationReport
15
+
16
+
17
+ @dataclass(frozen=True)
18
+ class CausalAssumptions:
19
+ """Core identification assumptions that must be justified outside the estimator."""
20
+
21
+ temporal_order: bool | None
22
+ no_unmeasured_confounding: bool | None
23
+ positivity: bool | None
24
+ consistency: bool | None
25
+
26
+ @property
27
+ def identified(self) -> bool:
28
+ """Whether every required assumption is explicitly declared true."""
29
+ return all(
30
+ value is True
31
+ for value in (
32
+ self.temporal_order,
33
+ self.no_unmeasured_confounding,
34
+ self.positivity,
35
+ self.consistency,
36
+ )
37
+ )
38
+
39
+
40
+ @dataclass(frozen=True)
41
+ class CausalEffectEstimate:
42
+ """Point estimate from an explicitly identified causal design."""
43
+
44
+ effect: float
45
+ method: str
46
+ n_observations: int
47
+ adjustment_count: int
48
+ assumptions: CausalAssumptions | None
49
+
50
+
51
+ def audit_causal_assumptions(assumptions: CausalAssumptions) -> ValidationReport:
52
+ """Convert explicit causal assumptions into PASS/WARNING/FAIL checks."""
53
+ report = ValidationReport()
54
+ for name, value in (
55
+ ("temporal_order", assumptions.temporal_order),
56
+ ("no_unmeasured_confounding", assumptions.no_unmeasured_confounding),
57
+ ("positivity", assumptions.positivity),
58
+ ("consistency", assumptions.consistency),
59
+ ):
60
+ if value is True:
61
+ report.add(ValidationCheck(name, CheckStatus.PASS, f"{name} explicitly supported"))
62
+ elif value is False:
63
+ report.add(ValidationCheck(name, CheckStatus.FAIL, f"{name} explicitly violated"))
64
+ else:
65
+ report.add(ValidationCheck(name, CheckStatus.WARNING, f"{name} not established"))
66
+ return report
67
+
68
+
69
+ def _finite_vector(values: Sequence[float], *, name: str) -> tuple[float, ...]:
70
+ result = tuple(float(value) for value in values)
71
+ if any(not math.isfinite(value) for value in result):
72
+ raise ValueError(f"{name} must contain only finite values")
73
+ return result
74
+
75
+
76
+ def _invert(matrix: Sequence[Sequence[float]], *, tolerance: float = 1e-12) -> list[list[float]]:
77
+ size = len(matrix)
78
+ augmented = [
79
+ [float(value) for value in row]
80
+ + [1.0 if row_index == column else 0.0 for column in range(size)]
81
+ for row_index, row in enumerate(matrix)
82
+ ]
83
+ for column in range(size):
84
+ pivot = max(range(column, size), key=lambda row: abs(augmented[row][column]))
85
+ if abs(augmented[pivot][column]) <= tolerance:
86
+ raise ValueError("causal adjustment design matrix is singular")
87
+ if pivot != column:
88
+ augmented[column], augmented[pivot] = augmented[pivot], augmented[column]
89
+ scale = augmented[column][column]
90
+ augmented[column] = [value / scale for value in augmented[column]]
91
+ for row in range(size):
92
+ if row == column:
93
+ continue
94
+ factor = augmented[row][column]
95
+ if factor == 0.0:
96
+ continue
97
+ augmented[row] = [
98
+ value - factor * pivot_value
99
+ for value, pivot_value in zip(augmented[row], augmented[column], strict=True)
100
+ ]
101
+ return [row[size:] for row in augmented]
102
+
103
+
104
+ def _ols_coefficients(
105
+ design: Sequence[Sequence[float]], outcome: Sequence[float]
106
+ ) -> tuple[float, ...]:
107
+ if not design:
108
+ raise ValueError("causal estimator requires at least one observation")
109
+ columns = len(design[0])
110
+ if columns == 0 or any(len(row) != columns for row in design):
111
+ raise ValueError("causal design matrix must be rectangular and non-empty")
112
+ if len(design) < columns:
113
+ raise ValueError("causal design needs at least as many observations as coefficients")
114
+
115
+ gram = [[0.0] * columns for _ in range(columns)]
116
+ rhs = [0.0] * columns
117
+ for row, target in zip(design, outcome, strict=True):
118
+ for left in range(columns):
119
+ rhs[left] += row[left] * target
120
+ for right in range(columns):
121
+ gram[left][right] += row[left] * row[right]
122
+ inverse = _invert(gram)
123
+ return tuple(
124
+ sum(inverse[row][column] * rhs[column] for column in range(columns))
125
+ for row in range(columns)
126
+ )
127
+
128
+
129
+ def linear_backdoor_effect(
130
+ outcome: Sequence[float],
131
+ treatment: Sequence[float],
132
+ covariates: Sequence[Sequence[float]],
133
+ *,
134
+ assumptions: CausalAssumptions,
135
+ ) -> CausalEffectEstimate:
136
+ """Estimate a linear back-door-adjusted treatment effect.
137
+
138
+ Identification is fail-closed: every assumption must be explicitly true.
139
+ The estimator fits ``outcome ~ 1 + treatment + covariates`` and returns the
140
+ treatment coefficient. The caller remains responsible for supplying a
141
+ causally valid adjustment set; this function never discovers one from data.
142
+ """
143
+ report = audit_causal_assumptions(assumptions)
144
+ if not assumptions.identified:
145
+ failures = [check.name for check in report.failures]
146
+ warnings = [check.name for check in report.warnings]
147
+ unresolved = failures + warnings
148
+ raise ValueError(
149
+ "causal effect is not identified; unresolved assumptions: " + ", ".join(unresolved)
150
+ )
151
+
152
+ y = _finite_vector(outcome, name="outcome")
153
+ treatment_values = _finite_vector(treatment, name="treatment")
154
+ if len(y) != len(treatment_values):
155
+ raise ValueError("outcome and treatment must have equal length")
156
+ if not y:
157
+ raise ValueError("causal estimator requires at least one observation")
158
+ if len(set(treatment_values)) < 2:
159
+ raise ValueError("treatment must vary across observations")
160
+ if len(covariates) != len(y):
161
+ raise ValueError("covariates must have one row per observation")
162
+
163
+ width = len(covariates[0]) if covariates else 0
164
+ rows: list[list[float]] = []
165
+ for index, raw_row in enumerate(covariates):
166
+ if len(raw_row) != width:
167
+ raise ValueError("covariate rows must have equal width")
168
+ row = _finite_vector(raw_row, name=f"covariates row {index}")
169
+ rows.append([1.0, treatment_values[index], *row])
170
+
171
+ coefficients = _ols_coefficients(rows, y)
172
+ return CausalEffectEstimate(
173
+ effect=coefficients[1],
174
+ method="linear-backdoor-adjustment",
175
+ n_observations=len(y),
176
+ adjustment_count=width,
177
+ assumptions=assumptions,
178
+ )
179
+
180
+
181
+ def randomized_mean_effect(
182
+ treated_outcomes: Sequence[float],
183
+ control_outcomes: Sequence[float],
184
+ *,
185
+ randomized: bool,
186
+ ) -> CausalEffectEstimate:
187
+ """Estimate an average treatment effect from a declared randomized design."""
188
+ if not randomized:
189
+ raise ValueError("randomized_mean_effect requires an explicitly randomized design")
190
+ treated = _finite_vector(treated_outcomes, name="treated_outcomes")
191
+ control = _finite_vector(control_outcomes, name="control_outcomes")
192
+ if not treated or not control:
193
+ raise ValueError("treated and control groups must both be non-empty")
194
+ effect = sum(treated) / len(treated) - sum(control) / len(control)
195
+ return CausalEffectEstimate(
196
+ effect=effect,
197
+ method="randomized-difference-in-means",
198
+ n_observations=len(treated) + len(control),
199
+ adjustment_count=0,
200
+ assumptions=None,
201
+ )
202
+
203
+
204
+ __all__ = [
205
+ "CausalAssumptions",
206
+ "CausalEffectEstimate",
207
+ "audit_causal_assumptions",
208
+ "linear_backdoor_effect",
209
+ "randomized_mean_effect",
210
+ ]
@@ -1,5 +1,14 @@
1
1
  """Streaming file I/O and lazy optional scientific data backends."""
2
2
 
3
+ from cds.data_io.scientific import (
4
+ ArrayChunk,
5
+ ScientificArrayProfile,
6
+ iter_array_chunks,
7
+ iter_hdf5_chunks,
8
+ iter_netcdf_chunks,
9
+ profile_scientific_array,
10
+ reduce_chunks,
11
+ )
3
12
  from cds.data_io.streaming import (
4
13
  FileProfile,
5
14
  OnlineMoments,
@@ -14,14 +23,21 @@ from cds.data_io.streaming import (
14
23
  )
15
24
 
16
25
  __all__ = [
26
+ "ArrayChunk",
17
27
  "FileProfile",
18
28
  "OnlineMoments",
29
+ "ScientificArrayProfile",
19
30
  "StreamingLinearAccumulator",
20
31
  "StreamingLinearFit",
21
32
  "fit_linear_csv_streaming",
33
+ "iter_array_chunks",
22
34
  "iter_csv_batches",
23
35
  "iter_file_blocks",
36
+ "iter_hdf5_chunks",
37
+ "iter_netcdf_chunks",
24
38
  "open_hdf5",
25
39
  "open_netcdf",
26
40
  "profile_file",
41
+ "profile_scientific_array",
42
+ "reduce_chunks",
27
43
  ]