sciris 3.3.0__tar.gz → 3.4.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 (179) hide show
  1. sciris-3.4.0/.github/workflows/test_downstream.yaml +73 -0
  2. sciris-3.4.0/CHANGELOG.md +1115 -0
  3. {sciris-3.3.0 → sciris-3.4.0}/CLAUDE.md +17 -18
  4. {sciris-3.3.0/sciris.egg-info → sciris-3.4.0}/PKG-INFO +1 -1
  5. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-advanced/SKILL.md +1 -1
  6. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-files/SKILL.md +1 -0
  7. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-intro/SKILL.md +1 -1
  8. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-parallel/SKILL.md +1 -1
  9. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-printing/SKILL.md +1 -1
  10. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-utils/SKILL.md +2 -1
  11. sciris-3.4.0/docs/_variables.yml +2 -0
  12. {sciris-3.3.0 → sciris-3.4.0}/docs/api.json +46 -36
  13. {sciris-3.3.0 → sciris-3.4.0}/docs/llms-full.txt +45 -37
  14. {sciris-3.3.0 → sciris-3.4.0}/docs/llms.txt +19 -18
  15. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_arrays.qmd +1 -0
  16. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_files.qmd +1 -1
  17. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_parallel.qmd +2 -1
  18. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_utils.qmd +20 -5
  19. sciris-3.4.0/sciris/_extras/README.md +5 -0
  20. {sciris-3.3.0 → sciris-3.4.0}/sciris/_extras/ansicolors.py +4 -1
  21. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_asd.py +46 -26
  22. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_colors.py +74 -89
  23. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_dataframe.py +72 -62
  24. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_datetime.py +69 -58
  25. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_fileio.py +154 -160
  26. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_math.py +157 -94
  27. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_nested.py +133 -103
  28. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_odict.py +213 -102
  29. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_parallel.py +180 -77
  30. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_plotting.py +161 -140
  31. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_printing.py +61 -53
  32. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_profiling.py +126 -74
  33. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_settings.py +117 -77
  34. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_utils.py +231 -133
  35. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_version.py +2 -2
  36. {sciris-3.3.0 → sciris-3.4.0}/sciris/sc_versioning.py +45 -52
  37. {sciris-3.3.0 → sciris-3.4.0/sciris.egg-info}/PKG-INFO +1 -1
  38. {sciris-3.3.0 → sciris-3.4.0}/sciris.egg-info/SOURCES.txt +0 -3
  39. {sciris-3.3.0 → sciris-3.4.0}/tests/.coveragerc +0 -1
  40. {sciris-3.3.0 → sciris-3.4.0}/tests/requirements.txt +2 -1
  41. {sciris-3.3.0 → sciris-3.4.0}/tests/test_asd.py +47 -0
  42. {sciris-3.3.0 → sciris-3.4.0}/tests/test_colors.py +41 -3
  43. {sciris-3.3.0 → sciris-3.4.0}/tests/test_dataframe.py +7 -0
  44. {sciris-3.3.0 → sciris-3.4.0}/tests/test_datetime.py +2 -0
  45. {sciris-3.3.0 → sciris-3.4.0}/tests/test_fileio.py +17 -1
  46. {sciris-3.3.0 → sciris-3.4.0}/tests/test_math.py +28 -5
  47. {sciris-3.3.0 → sciris-3.4.0}/tests/test_nested.py +19 -1
  48. {sciris-3.3.0 → sciris-3.4.0}/tests/test_odict.py +44 -1
  49. {sciris-3.3.0 → sciris-3.4.0}/tests/test_parallel.py +63 -1
  50. {sciris-3.3.0 → sciris-3.4.0}/tests/test_plotting.py +82 -2
  51. {sciris-3.3.0 → sciris-3.4.0}/tests/test_printing.py +65 -4
  52. {sciris-3.3.0 → sciris-3.4.0}/tests/test_profiling.py +110 -7
  53. {sciris-3.3.0 → sciris-3.4.0}/tests/test_settings.py +40 -0
  54. {sciris-3.3.0 → sciris-3.4.0}/tests/test_utils.py +103 -3
  55. {sciris-3.3.0 → sciris-3.4.0}/tests/test_versioning.py +27 -3
  56. sciris-3.3.0/.github/workflows/test_downstream.yaml +0 -188
  57. sciris-3.3.0/CHANGELOG.md +0 -873
  58. sciris-3.3.0/code_audit.md +0 -162
  59. sciris-3.3.0/docs/_variables.yml +0 -2
  60. sciris-3.3.0/sciris/_extras/README.md +0 -8
  61. sciris-3.3.0/sciris/_extras/legacy.py +0 -572
  62. sciris-3.3.0/sciris_suggestions.md +0 -175
  63. {sciris-3.3.0 → sciris-3.4.0}/.claude-plugin/marketplace.json +0 -0
  64. {sciris-3.3.0 → sciris-3.4.0}/.github/workflows/publish_docs.yaml +0 -0
  65. {sciris-3.3.0 → sciris-3.4.0}/.github/workflows/pypi_release.yaml +0 -0
  66. {sciris-3.3.0 → sciris-3.4.0}/.github/workflows/schedule_tests.yaml +0 -0
  67. {sciris-3.3.0 → sciris-3.4.0}/.github/workflows/test_docs.yaml +0 -0
  68. {sciris-3.3.0 → sciris-3.4.0}/.github/workflows/test_sciris.yaml +0 -0
  69. {sciris-3.3.0 → sciris-3.4.0}/.gitignore +0 -0
  70. {sciris-3.3.0 → sciris-3.4.0}/.pylintrc +0 -0
  71. {sciris-3.3.0 → sciris-3.4.0}/.pytest_cache/README.md +0 -0
  72. {sciris-3.3.0 → sciris-3.4.0}/CODE_OF_CONDUCT.md +0 -0
  73. {sciris-3.3.0 → sciris-3.4.0}/CONTRIBUTING.md +0 -0
  74. {sciris-3.3.0 → sciris-3.4.0}/LICENSE +0 -0
  75. {sciris-3.3.0 → sciris-3.4.0}/MANIFEST.in +0 -0
  76. {sciris-3.3.0 → sciris-3.4.0}/README.md +0 -0
  77. {sciris-3.3.0 → sciris-3.4.0}/STYLE_GUIDE.md +0 -0
  78. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/.claude-plugin/plugin.json +0 -0
  79. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/README.md +0 -0
  80. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-arrays/SKILL.md +0 -0
  81. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-dates/SKILL.md +0 -0
  82. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-dicts/SKILL.md +0 -0
  83. {sciris-3.3.0 → sciris-3.4.0}/claude_plugin/skills/sciris-plotting/SKILL.md +0 -0
  84. {sciris-3.3.0 → sciris-3.4.0}/context7.json +0 -0
  85. {sciris-3.3.0 → sciris-3.4.0}/docs/.gitignore +0 -0
  86. {sciris-3.3.0 → sciris-3.4.0}/docs/404.qmd +0 -0
  87. {sciris-3.3.0 → sciris-3.4.0}/docs/CNAME +0 -0
  88. {sciris-3.3.0 → sciris-3.4.0}/docs/README.md +0 -0
  89. {sciris-3.3.0 → sciris-3.4.0}/docs/_extensions/machow/interlinks/objects.txt +0 -0
  90. {sciris-3.3.0 → sciris-3.4.0}/docs/_quarto.yml +0 -0
  91. {sciris-3.3.0 → sciris-3.4.0}/docs/_site/llms-full.txt +0 -0
  92. {sciris-3.3.0 → sciris-3.4.0}/docs/_site/llms.txt +0 -0
  93. {sciris-3.3.0 → sciris-3.4.0}/docs/_site/robots.txt +0 -0
  94. {sciris-3.3.0 → sciris-3.4.0}/docs/api/index.qmd +0 -0
  95. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/favicon.ico +0 -0
  96. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-logo-dark.png +0 -0
  97. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-logo-grey.png +0 -0
  98. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-logo-large.png +0 -0
  99. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-logo.png +0 -0
  100. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-showcase-code.png +0 -0
  101. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/sciris-showcase-output.png +0 -0
  102. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/styles-dark.scss +0 -0
  103. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/styles-light.scss +0 -0
  104. {sciris-3.3.0 → sciris-3.4.0}/docs/assets/styles.css +0 -0
  105. {sciris-3.3.0 → sciris-3.4.0}/docs/check_notebooks.py +0 -0
  106. {sciris-3.3.0 → sciris-3.4.0}/docs/clean_all +0 -0
  107. {sciris-3.3.0 → sciris-3.4.0}/docs/clean_outputs.py +0 -0
  108. {sciris-3.3.0 → sciris-3.4.0}/docs/conduct.qmd +0 -0
  109. {sciris-3.3.0 → sciris-3.4.0}/docs/contributing.qmd +0 -0
  110. {sciris-3.3.0 → sciris-3.4.0}/docs/index.qmd +0 -0
  111. {sciris-3.3.0 → sciris-3.4.0}/docs/make_api.py +0 -0
  112. {sciris-3.3.0 → sciris-3.4.0}/docs/overview.qmd +0 -0
  113. {sciris-3.3.0 → sciris-3.4.0}/docs/preview +0 -0
  114. {sciris-3.3.0 → sciris-3.4.0}/docs/publish +0 -0
  115. {sciris-3.3.0 → sciris-3.4.0}/docs/quarto_utils.py +0 -0
  116. {sciris-3.3.0 → sciris-3.4.0}/docs/render +0 -0
  117. {sciris-3.3.0 → sciris-3.4.0}/docs/requirements.txt +0 -0
  118. {sciris-3.3.0 → sciris-3.4.0}/docs/sciris-citation.bib +0 -0
  119. {sciris-3.3.0 → sciris-3.4.0}/docs/style_guide.qmd +0 -0
  120. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/.jupyter_cache/__version__.txt +0 -0
  121. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/README.md +0 -0
  122. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/convert_notebooks +0 -0
  123. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/dancing_lines.gif +0 -0
  124. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-advanced.gif +0 -0
  125. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-arrays.png +0 -0
  126. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-dates.png +0 -0
  127. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-dicts.png +0 -0
  128. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-files.png +0 -0
  129. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-intro.png +0 -0
  130. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-parallel.png +0 -0
  131. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-plotting.png +0 -0
  132. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-printing.png +0 -0
  133. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/img-utils.png +0 -0
  134. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/sim1/sim.py +0 -0
  135. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/sim2/sim.py +0 -0
  136. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_advanced.qmd +0 -0
  137. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_dates.qmd +0 -0
  138. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_dicts.qmd +0 -0
  139. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_intro.qmd +0 -0
  140. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_plotting.qmd +0 -0
  141. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials/tut_printing.qmd +0 -0
  142. {sciris-3.3.0 → sciris-3.4.0}/docs/tutorials.qmd +0 -0
  143. {sciris-3.3.0 → sciris-3.4.0}/docs/whatsnew.qmd +0 -0
  144. {sciris-3.3.0 → sciris-3.4.0}/pyproject.toml +0 -0
  145. {sciris-3.3.0 → sciris-3.4.0}/sciris/README.md +0 -0
  146. {sciris-3.3.0 → sciris-3.4.0}/sciris/__init__.py +0 -0
  147. {sciris-3.3.0 → sciris-3.4.0}/sciris/_extras/__init__.py +0 -0
  148. {sciris-3.3.0 → sciris-3.4.0}/sciris/fancy.mplstyle +0 -0
  149. {sciris-3.3.0 → sciris-3.4.0}/sciris/simple.mplstyle +0 -0
  150. {sciris-3.3.0 → sciris-3.4.0}/sciris.egg-info/dependency_links.txt +0 -0
  151. {sciris-3.3.0 → sciris-3.4.0}/sciris.egg-info/requires.txt +0 -0
  152. {sciris-3.3.0 → sciris-3.4.0}/sciris.egg-info/top_level.txt +0 -0
  153. {sciris-3.3.0 → sciris-3.4.0}/setup.cfg +0 -0
  154. {sciris-3.3.0 → sciris-3.4.0}/tests/.pytest_cache/README.md +0 -0
  155. {sciris-3.3.0 → sciris-3.4.0}/tests/README.rst +0 -0
  156. {sciris-3.3.0 → sciris-3.4.0}/tests/check_coverage +0 -0
  157. {sciris-3.3.0 → sciris-3.4.0}/tests/check_style +0 -0
  158. {sciris-3.3.0 → sciris-3.4.0}/tests/files/archive_2023-04-19.zip +0 -0
  159. {sciris-3.3.0 → sciris-3.4.0}/tests/files/deadclass.obj +0 -0
  160. {sciris-3.3.0 → sciris-3.4.0}/tests/files/deadclass.py +0 -0
  161. {sciris-3.3.0 → sciris-3.4.0}/tests/files/exampledata.xlsx +0 -0
  162. {sciris-3.3.0 → sciris-3.4.0}/tests/files/examplefont.ttf +0 -0
  163. {sciris-3.3.0 → sciris-3.4.0}/tests/files/make_archive.py +0 -0
  164. {sciris-3.3.0 → sciris-3.4.0}/tests/files/make_deadclass.py +0 -0
  165. {sciris-3.3.0 → sciris-3.4.0}/tests/files/pickle_2021-01-01.obj +0 -0
  166. {sciris-3.3.0 → sciris-3.4.0}/tests/files/pickle_2022-01-01.obj +0 -0
  167. {sciris-3.3.0 → sciris-3.4.0}/tests/pytest.ini +0 -0
  168. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/README.rst +0 -0
  169. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/run_downstream +0 -0
  170. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/run_regression +0 -0
  171. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/sciris2021-01-01.yml +0 -0
  172. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/sciris2022-01-01.yml +0 -0
  173. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/sciris2023-01-01.yml +0 -0
  174. {sciris-3.3.0 → sciris-3.4.0}/tests/regression/setup_envs +0 -0
  175. {sciris-3.3.0 → sciris-3.4.0}/tests/run_tests +0 -0
  176. {sciris-3.3.0 → sciris-3.4.0}/tests/sc_test_utils.py +0 -0
  177. {sciris-3.3.0 → sciris-3.4.0}/tests/showcase_sciris.py +0 -0
  178. {sciris-3.3.0 → sciris-3.4.0}/tests/showcase_vanilla.py +0 -0
  179. {sciris-3.3.0 → sciris-3.4.0}/tests/test_api.py +0 -0
@@ -0,0 +1,73 @@
1
+ name: Downstream
2
+ on:
3
+ workflow_dispatch:
4
+ workflow_call:
5
+ push:
6
+ branches:
7
+ - main
8
+ pull_request:
9
+
10
+ jobs:
11
+ test_downstream:
12
+ name: ${{ matrix.name }} tests
13
+ timeout-minutes: 10
14
+ strategy:
15
+ fail-fast: false
16
+ max-parallel: 8
17
+ matrix:
18
+ os: ['ubuntu-latest']
19
+ python-version: ['3.14']
20
+ package: ['covasim', 'hpvsim', 'starsim', 'atomica']
21
+ include:
22
+ - package: covasim
23
+ name: Covasim
24
+ repo: starsimhub/covasim
25
+ install: pip install -e .[test]
26
+ tests: test_*.py
27
+ - package: hpvsim
28
+ name: HPVsim
29
+ repo: starsimhub/hpvsim
30
+ install: pip install -e ".[hiv]" -r tests/requirements.txt && hpvsim-download-data # [hiv] pulls in stisim, which the HIV tests need
31
+ tests: test_*.py
32
+ - package: starsim
33
+ name: Starsim
34
+ repo: starsimhub/starsim
35
+ install: pip install -e .[dev]
36
+ tests: test_*.py
37
+ - package: atomica
38
+ name: Atomica
39
+ repo: atomicateam/atomica
40
+ install: pip install -e . pytest pytest-xdist pytest-cov pytest-env
41
+ tests: test_tox_*.py
42
+ runs-on: ${{ matrix.os }}
43
+
44
+ steps:
45
+ - name: Checkout sources
46
+ uses: actions/checkout@v7
47
+ - uses: actions/setup-python@v7
48
+ with:
49
+ python-version: ${{ matrix.python-version }}
50
+ architecture: x64
51
+
52
+ - name: Install Sciris
53
+ run: pip install -e .
54
+
55
+ - name: Check out ${{ matrix.name }}
56
+ uses: actions/checkout@v7
57
+ with:
58
+ repository: ${{ matrix.repo }}
59
+ path: ${{ matrix.package }}
60
+
61
+ - name: Install ${{ matrix.name }}
62
+ working-directory: ./${{ matrix.package }}
63
+ run: ${{ matrix.install }}
64
+
65
+ - name: Run ${{ matrix.name }} tests
66
+ working-directory: ./${{ matrix.package }}/tests
67
+ run: pytest ${{ matrix.tests }} -n auto --durations=0 --junitxml=${{ matrix.package }}-test-results.xml # Run actual tests
68
+ - name: Upload test results
69
+ uses: mikepenz/action-junit-report@v6
70
+ if: always()
71
+ with:
72
+ report_paths: '${{ matrix.package }}/tests/${{ matrix.package }}-test-results.xml'
73
+ check_name: '${{ matrix.name }} test report'