easyscience 2.4.0__tar.gz → 3.0.2__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 (255) hide show
  1. {easyscience-2.4.0 → easyscience-3.0.2}/.copier-answers.yml +1 -1
  2. easyscience-3.0.2/.github/workflows/pypi-publish-check.yml +77 -0
  3. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/pypi-publish.yml +3 -1
  4. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/pypi-test.yml +0 -4
  5. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/test.yml +0 -34
  6. {easyscience-2.4.0 → easyscience-3.0.2}/PKG-INFO +3 -3
  7. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/index.md +7 -10
  8. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/introduction/index.md +1 -1
  9. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/tutorials/fitting-bayesian.ipynb +251 -62
  10. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/tutorials/fitting-qens.ipynb +6 -6
  11. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/tutorials/fitting-sans.ipynb +6 -6
  12. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/tutorials/progress-callback.ipynb +20 -28
  13. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/user-guide/controlling-log-output.md +1 -5
  14. easyscience-3.0.2/docs/docs/user-guide/external-calculators.md +332 -0
  15. easyscience-3.0.2/docs/docs/user-guide/index.md +17 -0
  16. easyscience-3.0.2/docs/docs/user-guide/parameter-dependency-serialization.md +179 -0
  17. {easyscience-2.4.0 → easyscience-3.0.2}/docs/mkdocs.yml +3 -2
  18. {easyscience-2.4.0 → easyscience-3.0.2}/pixi.lock +6535 -5988
  19. {easyscience-2.4.0 → easyscience-3.0.2}/pixi.toml +9 -12
  20. easyscience-3.0.2/prettierrc.toml +24 -0
  21. {easyscience-2.4.0 → easyscience-3.0.2}/pyproject.toml +82 -85
  22. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/__init__.py +6 -8
  23. easyscience-3.0.2/src/easyscience/base_classes/__init__.py +7 -0
  24. easyscience-2.4.0/src/easyscience/base_classes/new_base.py → easyscience-3.0.2/src/easyscience/base_classes/easy_base.py +36 -36
  25. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/base_classes/easy_list.py +54 -30
  26. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/base_classes/model_base.py +5 -14
  27. {easyscience-2.4.0/src/easyscience/io → easyscience-3.0.2/src/easyscience/base_classes}/serializer_base.py +48 -83
  28. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/__init__.py +2 -3
  29. easyscience-3.0.2/src/easyscience/fitting/engine_base.py +241 -0
  30. easyscience-3.0.2/src/easyscience/fitting/fitter.py +328 -0
  31. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/__init__.py +1 -2
  32. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/bumps_utils/__init__.py +4 -2
  33. easyscience-3.0.2/src/easyscience/fitting/minimizers/bumps_utils/problem.py +134 -0
  34. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/factory.py +6 -8
  35. easyscience-3.0.2/src/easyscience/fitting/minimizers/minimizer_base.py +139 -0
  36. easyscience-3.0.2/src/easyscience/fitting/minimizers/minimizer_bumps.py +439 -0
  37. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/minimizer_dfo.py +24 -96
  38. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/minimizer_lmfit.py +34 -116
  39. easyscience-2.4.0/src/easyscience/fitting/available_minimizers.py → easyscience-3.0.2/src/easyscience/fitting/minimizers/minimizers.py +3 -37
  40. easyscience-3.0.2/src/easyscience/fitting/multi_fitter.py +146 -0
  41. easyscience-3.0.2/src/easyscience/fitting/reshaping.py +216 -0
  42. easyscience-3.0.2/src/easyscience/fitting/sampler.py +854 -0
  43. easyscience-3.0.2/src/easyscience/fitting/samplers/__init__.py +5 -0
  44. easyscience-3.0.2/src/easyscience/fitting/samplers/sampler_bumps.py +367 -0
  45. easyscience-3.0.2/src/easyscience/fitting/samplers/validation.py +33 -0
  46. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/global_object/__init__.py +1 -3
  47. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/global_object/global_object.py +5 -23
  48. easyscience-3.0.2/src/easyscience/global_object/object_registry.py +77 -0
  49. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/job/analysis.py +12 -20
  50. easyscience-3.0.2/src/easyscience/job/experiment.py +20 -0
  51. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/job/job.py +5 -5
  52. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/job/theoreticalmodel.py +6 -9
  53. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/__init__.py +6 -8
  54. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/descriptor_array.py +54 -67
  55. easyscience-3.0.2/src/easyscience/variable/descriptor_base.py +156 -0
  56. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/descriptor_bool.py +26 -11
  57. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/descriptor_number.py +55 -69
  58. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/descriptor_str.py +26 -9
  59. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/parameter.py +35 -171
  60. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/variable/parameter_dependency_resolver.py +2 -2
  61. {easyscience-2.4.0 → easyscience-3.0.2}/tests/conftest.py +6 -3
  62. easyscience-3.0.2/tests/helpers/easy_test_models.py +111 -0
  63. {easyscience-2.4.0 → easyscience-3.0.2}/tests/integration/fitting/test_fitter.py +193 -105
  64. easyscience-3.0.2/tests/integration/fitting/test_multi_fitter.py +304 -0
  65. easyscience-3.0.2/tests/integration/fitting/test_sampler.py +450 -0
  66. easyscience-3.0.2/tests/integration/fitting/test_stateless_calculator.py +139 -0
  67. easyscience-2.4.0/tests/unit/base_classes/test_new_base.py → easyscience-3.0.2/tests/unit/base_classes/test_easy_base.py +126 -49
  68. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/base_classes/test_easy_list.py +253 -31
  69. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/base_classes/test_model_base.py +19 -28
  70. easyscience-3.0.2/tests/unit/base_classes/test_model_with_easy_list.py +112 -0
  71. {easyscience-2.4.0/tests/unit/io → easyscience-3.0.2/tests/unit/base_classes}/test_serializer_base.py +106 -77
  72. easyscience-3.0.2/tests/unit/fitting/minimizers/bumps_utils/__init__.py +2 -0
  73. easyscience-3.0.2/tests/unit/fitting/minimizers/bumps_utils/test_problem.py +166 -0
  74. easyscience-3.0.2/tests/unit/fitting/minimizers/test_factory.py +57 -0
  75. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/minimizers/test_minimizer_base.py +5 -5
  76. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/minimizers/test_minimizer_bumps.py +247 -469
  77. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/minimizers/test_minimizer_dfo.py +10 -127
  78. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/minimizers/test_minimizer_lmfit.py +50 -114
  79. easyscience-3.0.2/tests/unit/fitting/samplers/__init__.py +2 -0
  80. easyscience-3.0.2/tests/unit/fitting/samplers/test_sampler_bumps.py +486 -0
  81. easyscience-3.0.2/tests/unit/fitting/samplers/test_validation.py +36 -0
  82. easyscience-3.0.2/tests/unit/fitting/test_engine_base.py +47 -0
  83. easyscience-3.0.2/tests/unit/fitting/test_fitter.py +224 -0
  84. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/test_multi_fitter.py +143 -8
  85. easyscience-3.0.2/tests/unit/fitting/test_reshaping.py +100 -0
  86. easyscience-3.0.2/tests/unit/fitting/test_sampler.py +682 -0
  87. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/global_object/test_global_object.py +22 -48
  88. easyscience-3.0.2/tests/unit/global_object/test_integration_comprehensive.py +293 -0
  89. easyscience-3.0.2/tests/unit/global_object/test_object_registry.py +262 -0
  90. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/io/test_serializer_component.py +2 -4
  91. easyscience-3.0.2/tests/unit/job/__init__.py +2 -0
  92. easyscience-3.0.2/tests/unit/job/test_job.py +141 -0
  93. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_descriptor_array.py +434 -318
  94. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_descriptor_base.py +22 -50
  95. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_descriptor_bool.py +2 -7
  96. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_descriptor_number.py +58 -97
  97. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_descriptor_str.py +2 -7
  98. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_parameter.py +497 -314
  99. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/variable/test_parameter_dependency_serialization.py +97 -99
  100. easyscience-2.4.0/docs/docs/api-reference/io.md +0 -1
  101. easyscience-2.4.0/docs/docs/api-reference/models.md +0 -1
  102. easyscience-2.4.0/docs/docs/user-guide/index.md +0 -10
  103. easyscience-2.4.0/legacy/Examples/README.rst +0 -4
  104. easyscience-2.4.0/legacy/Examples/base/README.rst +0 -6
  105. easyscience-2.4.0/legacy/Examples/base/plot_baseclass1.py +0 -97
  106. easyscience-2.4.0/legacy/Examples/fitting/README.rst +0 -6
  107. easyscience-2.4.0/legacy/PARAMETER_DEPENDENCY_SERIALIZATION.md +0 -259
  108. easyscience-2.4.0/legacy/examples_old/dataset_examples.ipynb +0 -1254
  109. easyscience-2.4.0/legacy/examples_old/dimer_example.ipynb +0 -1144
  110. easyscience-2.4.0/legacy/examples_old/example1.py +0 -30
  111. easyscience-2.4.0/legacy/examples_old/example1_dream.py +0 -45
  112. easyscience-2.4.0/legacy/examples_old/example2.py +0 -53
  113. easyscience-2.4.0/legacy/examples_old/example3.py +0 -101
  114. easyscience-2.4.0/legacy/examples_old/example4.py +0 -448
  115. easyscience-2.4.0/legacy/examples_old/example5_broken.py +0 -367
  116. easyscience-2.4.0/legacy/examples_old/example6_broken.py +0 -446
  117. easyscience-2.4.0/legacy/examples_old/example_dataset.py +0 -56
  118. easyscience-2.4.0/legacy/examples_old/example_dataset2.py +0 -50
  119. easyscience-2.4.0/legacy/examples_old/example_dataset2pt2.py +0 -57
  120. easyscience-2.4.0/legacy/examples_old/example_dataset2pt2_broken.py +0 -57
  121. easyscience-2.4.0/legacy/examples_old/example_dataset3.py +0 -92
  122. easyscience-2.4.0/legacy/examples_old/example_dataset3pt2.py +0 -62
  123. easyscience-2.4.0/legacy/examples_old/example_dataset4.py +0 -49
  124. easyscience-2.4.0/legacy/examples_old/example_dataset4_2.py +0 -67
  125. easyscience-2.4.0/prettierrc.toml +0 -22
  126. easyscience-2.4.0/src/easyscience/base_classes/__init__.py +0 -11
  127. easyscience-2.4.0/src/easyscience/base_classes/based_base.py +0 -269
  128. easyscience-2.4.0/src/easyscience/base_classes/collection_base.py +0 -18
  129. easyscience-2.4.0/src/easyscience/base_classes/obj_base.py +0 -18
  130. easyscience-2.4.0/src/easyscience/fitting/calculators/__init__.py +0 -6
  131. easyscience-2.4.0/src/easyscience/fitting/calculators/interface_factory.py +0 -268
  132. easyscience-2.4.0/src/easyscience/fitting/fitter.py +0 -529
  133. easyscience-2.4.0/src/easyscience/fitting/minimizers/minimizer_base.py +0 -340
  134. easyscience-2.4.0/src/easyscience/fitting/minimizers/minimizer_bumps.py +0 -694
  135. easyscience-2.4.0/src/easyscience/fitting/multi_fitter.py +0 -191
  136. easyscience-2.4.0/src/easyscience/global_object/hugger/hugger.py +0 -221
  137. easyscience-2.4.0/src/easyscience/global_object/hugger/property.py +0 -281
  138. easyscience-2.4.0/src/easyscience/global_object/map.py +0 -337
  139. easyscience-2.4.0/src/easyscience/global_object/undo_redo.py +0 -472
  140. easyscience-2.4.0/src/easyscience/io/__init__.py +0 -12
  141. easyscience-2.4.0/src/easyscience/io/serializer_component.py +0 -123
  142. easyscience-2.4.0/src/easyscience/io/serializer_dict.py +0 -78
  143. easyscience-2.4.0/src/easyscience/job/experiment.py +0 -19
  144. easyscience-2.4.0/src/easyscience/legacy/__init__.py +0 -7
  145. easyscience-2.4.0/src/easyscience/legacy/collection_base.py +0 -338
  146. easyscience-2.4.0/src/easyscience/legacy/dict.py +0 -179
  147. easyscience-2.4.0/src/easyscience/legacy/json.py +0 -139
  148. easyscience-2.4.0/src/easyscience/legacy/legacy_core.py +0 -220
  149. easyscience-2.4.0/src/easyscience/legacy/obj_base.py +0 -171
  150. easyscience-2.4.0/src/easyscience/legacy/xml.py +0 -197
  151. easyscience-2.4.0/src/easyscience/models/__init__.py +0 -4
  152. easyscience-2.4.0/src/easyscience/models/polynomial.py +0 -78
  153. easyscience-2.4.0/src/easyscience/utils/classTools.py +0 -66
  154. easyscience-2.4.0/src/easyscience/variable/descriptor_any_type.py +0 -105
  155. easyscience-2.4.0/src/easyscience/variable/descriptor_base.py +0 -289
  156. easyscience-2.4.0/tests/functional/test_smoke.py +0 -20
  157. easyscience-2.4.0/tests/integration/fitting/test_multi_fitter.py +0 -500
  158. easyscience-2.4.0/tests/unit/base_classes/test_collection_base.py +0 -545
  159. easyscience-2.4.0/tests/unit/base_classes/test_deprecated_wrappers.py +0 -87
  160. easyscience-2.4.0/tests/unit/base_classes/test_obj_base.py +0 -498
  161. easyscience-2.4.0/tests/unit/fitting/calculators/test_interface_factory.py +0 -563
  162. easyscience-2.4.0/tests/unit/fitting/minimizers/test_factory.py +0 -110
  163. easyscience-2.4.0/tests/unit/fitting/test_fitter.py +0 -413
  164. easyscience-2.4.0/tests/unit/global_object/__init__.py +0 -3
  165. easyscience-2.4.0/tests/unit/global_object/test_entry_list_comprehensive.py +0 -320
  166. easyscience-2.4.0/tests/unit/global_object/test_integration_comprehensive.py +0 -456
  167. easyscience-2.4.0/tests/unit/global_object/test_map.py +0 -757
  168. easyscience-2.4.0/tests/unit/global_object/test_undo_redo.py +0 -449
  169. easyscience-2.4.0/tests/unit/global_object/test_undo_redo_comprehensive.py +0 -705
  170. easyscience-2.4.0/tests/unit/io/test_serializer_dict.py +0 -121
  171. easyscience-2.4.0/tests/unit/legacy/__init__.py +0 -3
  172. easyscience-2.4.0/tests/unit/legacy/test_collection_base.py +0 -155
  173. easyscience-2.4.0/tests/unit/legacy/test_dict.py +0 -3
  174. easyscience-2.4.0/tests/unit/legacy/test_json.py +0 -3
  175. easyscience-2.4.0/tests/unit/legacy/test_obj_base.py +0 -119
  176. easyscience-2.4.0/tests/unit/legacy/test_xml.py +0 -3
  177. easyscience-2.4.0/tests/unit/models/__init__.py +0 -3
  178. easyscience-2.4.0/tests/unit/models/test_polynomial.py +0 -192
  179. easyscience-2.4.0/tests/unit/variable/__init__.py +0 -3
  180. easyscience-2.4.0/tests/unit/variable/test_descriptor_any_type.py +0 -83
  181. {easyscience-2.4.0 → easyscience-3.0.2}/.badgery.yaml +0 -0
  182. {easyscience-2.4.0 → easyscience-3.0.2}/.codecov.yml +0 -0
  183. {easyscience-2.4.0 → easyscience-3.0.2}/.coveragerc +0 -0
  184. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/download-artifact/action.yml +0 -0
  185. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/github-script/action.yml +0 -0
  186. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/setup-easyscience-bot/action.yml +0 -0
  187. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/setup-pixi/action.yml +0 -0
  188. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/upload-artifact/action.yml +0 -0
  189. {easyscience-2.4.0 → easyscience-3.0.2}/.github/actions/upload-codecov/action.yml +0 -0
  190. {easyscience-2.4.0 → easyscience-3.0.2}/.github/configs/pages-deployment.json +0 -0
  191. {easyscience-2.4.0 → easyscience-3.0.2}/.github/configs/rulesets-develop.json +0 -0
  192. {easyscience-2.4.0 → easyscience-3.0.2}/.github/configs/rulesets-gh-pages.json +0 -0
  193. {easyscience-2.4.0 → easyscience-3.0.2}/.github/configs/rulesets-master.json +0 -0
  194. {easyscience-2.4.0 → easyscience-3.0.2}/.github/scripts/backmerge-conflict-issue.js +0 -0
  195. {easyscience-2.4.0 → easyscience-3.0.2}/.github/scripts/publish-dashboard.sh +0 -0
  196. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/backmerge.yml +0 -0
  197. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/cleanup.yml +0 -0
  198. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/coverage.yml +0 -0
  199. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/dashboard.yml +0 -0
  200. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/docs.yml +0 -0
  201. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/issues-labels.yml +0 -0
  202. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/lint-format.yml +0 -0
  203. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/pr-labels.yml +0 -0
  204. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/release-notes.yml +0 -0
  205. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/release-pr.yml +0 -0
  206. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/security.yml +0 -0
  207. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/test-trigger.yml +0 -0
  208. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/tutorial-tests-trigger.yml +0 -0
  209. {easyscience-2.4.0 → easyscience-3.0.2}/.github/workflows/tutorial-tests.yml +0 -0
  210. {easyscience-2.4.0 → easyscience-3.0.2}/.gitignore +0 -0
  211. {easyscience-2.4.0 → easyscience-3.0.2}/.pre-commit-config.yaml +0 -0
  212. {easyscience-2.4.0 → easyscience-3.0.2}/.prettierignore +0 -0
  213. {easyscience-2.4.0 → easyscience-3.0.2}/CONTRIBUTING.md +0 -0
  214. {easyscience-2.4.0 → easyscience-3.0.2}/LICENSE +0 -0
  215. {easyscience-2.4.0 → easyscience-3.0.2}/README.md +0 -0
  216. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/base_classes.md +0 -0
  217. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/fitting.md +0 -0
  218. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/global_object.md +0 -0
  219. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/job.md +0 -0
  220. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/utils.md +0 -0
  221. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/api-reference/variable.md +0 -0
  222. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/images/favicon.png +0 -0
  223. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/images/logo_dark.svg +0 -0
  224. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/images/logo_light.svg +0 -0
  225. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/javascripts/extra.js +0 -0
  226. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/javascripts/mathjax.js +0 -0
  227. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/assets/stylesheets/extra.css +0 -0
  228. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/index.md +0 -0
  229. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/installation-and-setup/index.md +0 -0
  230. {easyscience-2.4.0 → easyscience-3.0.2}/docs/docs/tutorials/index.md +0 -0
  231. {easyscience-2.4.0 → easyscience-3.0.2}/docs/includes/abbreviations.md +0 -0
  232. {easyscience-2.4.0 → easyscience-3.0.2}/docs/overrides/.icons/app.svg +0 -0
  233. {easyscience-2.4.0 → easyscience-3.0.2}/docs/overrides/.icons/easyscience.svg +0 -0
  234. {easyscience-2.4.0 → easyscience-3.0.2}/docs/overrides/.icons/google-colab.svg +0 -0
  235. {easyscience-2.4.0 → easyscience-3.0.2}/docs/overrides/main.html +0 -0
  236. {easyscience-2.4.0 → easyscience-3.0.2}/docs/overrides/partials/logo.html +0 -0
  237. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/bumps_utils/eval_counter.py +0 -0
  238. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/bumps_utils/progress_monitor.py +0 -0
  239. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/fitting/minimizers/utils.py +0 -0
  240. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/global_object/logger.py +0 -0
  241. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/job/__init__.py +0 -0
  242. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/utils/__init__.py +0 -0
  243. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/utils/classUtils.py +0 -0
  244. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/utils/decorators.py +0 -0
  245. {easyscience-2.4.0 → easyscience-3.0.2}/src/easyscience/utils/string.py +0 -0
  246. {easyscience-2.4.0/src/easyscience/global_object/hugger → easyscience-3.0.2/tests/unit/base_classes}/__init__.py +0 -0
  247. {easyscience-2.4.0/tests/unit/base_classes → easyscience-3.0.2/tests/unit/fitting}/__init__.py +0 -0
  248. {easyscience-2.4.0/tests/unit/fitting → easyscience-3.0.2/tests/unit/fitting/minimizers}/__init__.py +0 -0
  249. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/fitting/minimizers/test_utils.py +0 -0
  250. {easyscience-2.4.0/tests/unit/fitting/calculators → easyscience-3.0.2/tests/unit/global_object}/__init__.py +0 -0
  251. {easyscience-2.4.0 → easyscience-3.0.2}/tests/unit/global_object/test_logger.py +0 -0
  252. {easyscience-2.4.0/tests/unit/fitting/minimizers → easyscience-3.0.2/tests/unit/variable}/__init__.py +0 -0
  253. {easyscience-2.4.0 → easyscience-3.0.2}/tools/license_headers.py +0 -0
  254. {easyscience-2.4.0 → easyscience-3.0.2}/tools/update_docs_assets.py +0 -0
  255. {easyscience-2.4.0 → easyscience-3.0.2}/tools/update_github_labels.py +0 -0
@@ -3,7 +3,7 @@
3
3
  _commit: v0.13.1
4
4
  _src_path: gh:easyscience/templates
5
5
  lib_docs_url: https://easyscience.github.io/core
6
- lib_doi: 10.5281/zenodo.18163581
6
+ lib_doi: 10.5281/zenodo.19918609
7
7
  lib_package_name: easyscience
8
8
  lib_python_max: '3.14'
9
9
  lib_python_min: '3.11'
@@ -0,0 +1,77 @@
1
+ # Dry run of the PyPI publishing workflow (see pypi-publish.yml).
2
+ # Performs the same setup and build steps on a simulated release tag, but
3
+ # never uploads anything. It fails if:
4
+ # - pixi.lock is out of date for the pixi version used on GitHub runners
5
+ # (pixi commands without --frozen would rewrite it, e.g. the shell-hook
6
+ # run by setup-pixi to activate the environment)
7
+ # - any tracked file is modified before the build, which gives
8
+ # versioningit a '+dirty' local version that PyPI rejects
9
+ # - the built package has a local version or fails 'twine check'
10
+
11
+ name: PyPI publishing check
12
+
13
+ on:
14
+ pull_request:
15
+ branches: [master, develop]
16
+ workflow_dispatch:
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ concurrency:
22
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
23
+ cancel-in-progress: true
24
+
25
+ jobs:
26
+ pypi-publish-check:
27
+ runs-on: ubuntu-latest
28
+
29
+ steps:
30
+ - name: Check-out repository
31
+ uses: actions/checkout@v6
32
+ with:
33
+ fetch-depth: 0
34
+
35
+ # Same setup as in pypi-publish.yml, so any pixi.lock rewrite done by
36
+ # setup-pixi itself is reproduced here
37
+ - name: Set up pixi
38
+ uses: ./.github/actions/setup-pixi
39
+
40
+ # setup-pixi may already have rewritten pixi.lock, so compare it with
41
+ # the committed version as well as running 'pixi lock --check'
42
+ - name: Check pixi.lock is up to date
43
+ run: |
44
+ pixi --version
45
+ if ! git diff --quiet -- pixi.lock || ! pixi lock --check; then
46
+ git diff --stat -- pixi.lock
47
+ echo "::error file=pixi.lock::pixi.lock is out of date for $(pixi --version). Update pixi locally (pixi self-update), run 'pixi lock' and commit pixi.lock."
48
+ exit 1
49
+ fi
50
+
51
+ - name: Check working tree is clean
52
+ run: |
53
+ if [ -n "$(git status --porcelain --untracked-files=no)" ]; then
54
+ echo "::error::Tracked files were modified before the build, so the package version would get a '+dirty' suffix:"
55
+ git status --porcelain --untracked-files=no
56
+ git diff --stat
57
+ exit 1
58
+ fi
59
+
60
+ - name: Simulate release tag
61
+ run: git tag v9999.0.0
62
+
63
+ - name: Create Python package
64
+ run: pixi run --frozen default-build
65
+
66
+ - name: Check package version
67
+ run: |
68
+ ls -l dist/
69
+ for f in dist/*; do
70
+ if [[ "$(basename "$f")" == *+* ]]; then
71
+ echo "::error::$(basename "$f") has a local version, which PyPI rejects."
72
+ exit 1
73
+ fi
74
+ done
75
+
76
+ - name: Check package metadata
77
+ run: pipx run twine check --strict dist/*
@@ -28,8 +28,10 @@ jobs:
28
28
  uses: ./.github/actions/setup-pixi
29
29
 
30
30
  # Build the Python package (to dist/ folder)
31
+ # --frozen stops pixi from rewriting pixi.lock, which would make the
32
+ # tree dirty and give versioningit a '+dirty' version PyPI rejects
31
33
  - name: Create Python package
32
- run: pixi run default-build
34
+ run: pixi run --frozen default-build
33
35
 
34
36
  # Publish the package to PyPI (from dist/ folder)
35
37
  # Instead of publishing with personal access token, we use
@@ -69,10 +69,6 @@ jobs:
69
69
  working-directory: easyscience
70
70
  run: pixi run python -m pytest ../tests/unit/ --color=yes -v
71
71
 
72
- - name: Run functional tests to verify the installation
73
- working-directory: easyscience
74
- run: pixi run python -m pytest ../tests/functional/ --color=yes -v
75
-
76
72
  - name: Run integration tests to verify the installation
77
73
  working-directory: easyscience
78
74
  run: pixi run python -m pytest ../tests/integration/ --color=yes -n auto
@@ -102,21 +102,6 @@ jobs:
102
102
  pixi run --environment $env unit-tests
103
103
  done
104
104
 
105
- - name: Run functional tests
106
- shell: bash
107
- run: |
108
- set -euo pipefail
109
-
110
- for py_ver in $PY_VERSIONS; do
111
- echo
112
- echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
113
-
114
- env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
115
-
116
- echo "Running tests in environment: $env"
117
- pixi run --environment $env functional-tests
118
- done
119
-
120
105
  - name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
121
106
  shell: bash
122
107
  run: |
@@ -258,25 +243,6 @@ jobs:
258
243
  cd ..
259
244
  done
260
245
 
261
- - name: Run functional tests
262
- shell: bash
263
- run: |
264
- set -euo pipefail
265
-
266
- for py_ver in $PY_VERSIONS; do
267
- echo
268
- echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
269
-
270
- echo "Entering pixi project directory easyscience_py$py_ver"
271
- cd easyscience_py$py_ver
272
-
273
- echo "Running tests"
274
- pixi run python -m pytest ../tests/functional/ --color=yes -v
275
-
276
- echo "Exiting pixi project directory"
277
- cd ..
278
- done
279
-
280
246
  - name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
281
247
  shell: bash
282
248
  run: |
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: easyscience
3
- Version: 2.4.0
3
+ Version: 3.0.2
4
4
  Summary: Core building blocks for EasyScience
5
5
  Project-URL: Documentation, https://easyscience.github.io/core
6
6
  Project-URL: Release Notes, https://github.com/easyscience/core/releases
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.14
21
21
  Classifier: Topic :: Scientific/Engineering
22
22
  Requires-Python: >=3.11
23
23
  Requires-Dist: asteval
24
- Requires-Dist: bumps
24
+ Requires-Dist: bumps>=1.0.4
25
25
  Requires-Dist: dfo-ls
26
26
  Requires-Dist: lmfit
27
27
  Requires-Dist: numpy
@@ -8,19 +8,16 @@ This section contains the reference detailing the functions and modules
8
8
  available in EasyScience.
9
9
 
10
10
  - [base_classes](base_classes.md) – Core abstract and helper base
11
- classes used to build EasyScience objects (e.g. `ObjBase`,
12
- `ModelBase`).
13
- - [fitting](fitting.md) – Fitting utilities and interfaces, including
14
- `Fitter` and available minimizers.
11
+ classes used to build EasyScience objects (e.g. `EasyBase`,
12
+ `ModelBase`, `EasyList`, `SerializerBase`).
13
+ - [fitting](fitting.md) – Fitting and sampling, including `Fitter`,
14
+ `Sampler` and the available minimizers.
15
15
  - [global_object](global_object.md) – Global singleton providing shared
16
- services (logger, map, undo/redo stack, script manager).
17
- - [io](io.md) – Serialization and deserialization framework for
18
- persisting EasyScience objects (serializers and components).
16
+ services (logger and object registry).
19
17
  - [job](job.md) – Job and experiment abstractions for running and
20
18
  organizing analyses.
21
- - [models](models.md) – Predefined model implementations (e.g.
22
- polynomial models) used in fitting workflows.
23
19
  - [utils](utils.md) – Miscellaneous utility functions and helpers (class
24
20
  tools, decorators, type helpers).
25
21
  - [variable](variable.md) – Descriptor types and variable abstractions
26
- (e.g. `DescriptorNumber`, `Parameter`, `DescriptorArray`).
22
+ (e.g. `DescriptorNumber`, `Parameter`, `DescriptorArray`). All of them
23
+ are `EasyBase` objects, serialized with `to_dict`/`from_dict`.
@@ -41,7 +41,7 @@ Zenodo, each with a version-specific Digital Object Identifier (DOI).
41
41
 
42
42
  Citation details in various styles (e.g., APA, MLA) and formats (e.g.,
43
43
  BibTeX, JSON) are available on the
44
- [Zenodo archive page](https://doi.org/10.5281/zenodo.18163581).
44
+ [Zenodo archive page](https://doi.org/10.5281/zenodo.19918609).
45
45
 
46
46
  ## Contributing
47
47