calkit-python 0.20.5__tar.gz → 0.20.7__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 (141) hide show
  1. {calkit_python-0.20.5 → calkit_python-0.20.7}/PKG-INFO +1 -1
  2. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/__init__.py +1 -1
  3. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/main.py +2 -1
  4. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/conda.py +10 -5
  5. {calkit_python-0.20.5 → calkit_python-0.20.7}/.github/FUNDING.yml +0 -0
  6. {calkit_python-0.20.5 → calkit_python-0.20.7}/.github/workflows/docs.yml +0 -0
  7. {calkit_python-0.20.5 → calkit_python-0.20.7}/.github/workflows/publish-test.yml +0 -0
  8. {calkit_python-0.20.5 → calkit_python-0.20.7}/.github/workflows/publish.yml +0 -0
  9. {calkit_python-0.20.5 → calkit_python-0.20.7}/.gitignore +0 -0
  10. {calkit_python-0.20.5 → calkit_python-0.20.7}/.pre-commit-config.yaml +0 -0
  11. {calkit_python-0.20.5 → calkit_python-0.20.7}/CONTRIBUTING.md +0 -0
  12. {calkit_python-0.20.5 → calkit_python-0.20.7}/LICENSE +0 -0
  13. {calkit_python-0.20.5 → calkit_python-0.20.7}/Makefile +0 -0
  14. {calkit_python-0.20.5 → calkit_python-0.20.7}/README.md +0 -0
  15. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/__main__.py +0 -0
  16. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/calc.py +0 -0
  17. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/check.py +0 -0
  18. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/__init__.py +0 -0
  19. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/check.py +0 -0
  20. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/config.py +0 -0
  21. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/core.py +0 -0
  22. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/import_.py +0 -0
  23. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/list.py +0 -0
  24. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/new.py +0 -0
  25. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/notebooks.py +0 -0
  26. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/office.py +0 -0
  27. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cli/update.py +0 -0
  28. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/cloud.py +0 -0
  29. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/config.py +0 -0
  30. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/core.py +0 -0
  31. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/datasets.py +0 -0
  32. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/docker.py +0 -0
  33. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/dvc.py +0 -0
  34. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/git.py +0 -0
  35. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/github.py +0 -0
  36. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/gui.py +0 -0
  37. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/jupyter.py +0 -0
  38. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/magics.py +0 -0
  39. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/models.py +0 -0
  40. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/office.py +0 -0
  41. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/ops.py +0 -0
  42. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/releases.py +0 -0
  43. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/server.py +0 -0
  44. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/__init__.py +0 -0
  45. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/core.py +0 -0
  46. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/__init__.py +0 -0
  47. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/article/paper.tex +0 -0
  48. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/core.py +0 -0
  49. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/jfm/jfm.bst +0 -0
  50. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/jfm/jfm.cls +0 -0
  51. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  52. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/jfm/paper.tex +0 -0
  53. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/templates/latex/jfm/upmath.sty +0 -0
  54. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/__init__.py +0 -0
  55. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/cli/__init__.py +0 -0
  56. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/cli/test_list.py +0 -0
  57. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/cli/test_main.py +0 -0
  58. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/cli/test_new.py +0 -0
  59. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_calc.py +0 -0
  60. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_check.py +0 -0
  61. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_conda.py +0 -0
  62. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_core.py +0 -0
  63. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_dvc.py +0 -0
  64. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_jupyter.py +0 -0
  65. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_magics.py +0 -0
  66. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/tests/test_templates.py +0 -0
  67. {calkit_python-0.20.5 → calkit_python-0.20.7}/calkit/zenodo.py +0 -0
  68. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/CNAME +0 -0
  69. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/apps.md +0 -0
  70. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/calculations.md +0 -0
  71. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/calkit-yaml.md +0 -0
  72. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/cli-reference.md +0 -0
  73. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/cloud-integration.md +0 -0
  74. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/datasets.md +0 -0
  75. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/environments.md +0 -0
  76. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/examples.md +0 -0
  77. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/help.md +0 -0
  78. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/img/c-to-the-k-white.svg +0 -0
  79. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/img/calkit-no-bg.png +0 -0
  80. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/img/connect-zenodo.png +0 -0
  81. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/index.md +0 -0
  82. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/installation.md +0 -0
  83. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/local-server.md +0 -0
  84. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/pipeline/index.md +0 -0
  85. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/pipeline/manual-steps.md +0 -0
  86. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/references.md +0 -0
  87. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/releases.md +0 -0
  88. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  89. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/conda-envs.md +0 -0
  90. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/existing-project.md +0 -0
  91. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/first-project.md +0 -0
  92. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  93. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  94. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  95. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  96. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  97. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  98. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  99. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  100. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  101. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  102. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  103. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  104. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  105. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  106. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/create-project.png +0 -0
  107. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  108. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/excel-chart.png +0 -0
  109. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/excel-data.png +0 -0
  110. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  111. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/needs-clone.png +0 -0
  112. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/new-stage.png +0 -0
  113. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  114. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  115. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/status-more-rows.png +0 -0
  116. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  117. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/untracked-data.png +0 -0
  118. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/updated-publication.png +0 -0
  119. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  120. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/office/workflow-page.png +0 -0
  121. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/clone.png +0 -0
  122. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/create-project.png +0 -0
  123. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  124. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  125. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  126. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/new-token.png +0 -0
  127. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/reclone.png +0 -0
  128. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  129. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/img/run-proc.png +0 -0
  130. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/index.md +0 -0
  131. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/latex-codespaces.md +0 -0
  132. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/matlab.md +0 -0
  133. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/notebook-pipeline.md +0 -0
  134. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/office.md +0 -0
  135. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/openfoam.md +0 -0
  136. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/tutorials/procedures.md +0 -0
  137. {calkit_python-0.20.5 → calkit_python-0.20.7}/docs/version-control.md +0 -0
  138. {calkit_python-0.20.5 → calkit_python-0.20.7}/mkdocs.yml +0 -0
  139. {calkit_python-0.20.5 → calkit_python-0.20.7}/pyproject.toml +0 -0
  140. {calkit_python-0.20.5 → calkit_python-0.20.7}/test/pipeline.ipynb +0 -0
  141. {calkit_python-0.20.5 → calkit_python-0.20.7}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: calkit-python
3
- Version: 0.20.5
3
+ Version: 0.20.7
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -1,4 +1,4 @@
1
- __version__ = "0.20.5"
1
+ __version__ = "0.20.7"
2
2
 
3
3
  from .core import *
4
4
  from . import git
@@ -6,6 +6,7 @@ import csv
6
6
  import glob
7
7
  import os
8
8
  import platform as _platform
9
+ import posixpath
9
10
  import subprocess
10
11
  import sys
11
12
  import time
@@ -835,7 +836,7 @@ def run_in_env(
835
836
  docker_wdir = env.get("wdir", "/work")
836
837
  docker_wdir_mount = docker_wdir
837
838
  if wdir is not None:
838
- docker_wdir = os.path.join(docker_wdir, wdir)
839
+ docker_wdir = posixpath.join(docker_wdir, wdir)
839
840
  shell = env.get("shell", "sh")
840
841
  platform = env.get("platform")
841
842
  if env["kind"] == "docker":
@@ -56,7 +56,6 @@ class EnvCheckResult(BaseModel):
56
56
 
57
57
  def check_env(
58
58
  env_fpath: str = "environment.yml",
59
- use_mamba=True,
60
59
  log_func=None,
61
60
  output_fpath: str = None,
62
61
  relaxed: bool = False,
@@ -71,13 +70,13 @@ def check_env(
71
70
  If ``relaxed`` is enabled, dependencies can exist in either the conda or
72
71
  pip category.
73
72
  """
74
- conda = "mamba" if use_mamba else "conda"
75
73
  if log_func is None:
76
74
  log_func = calkit.logger.info
77
75
  log_func(f"Checking conda env defined in {env_fpath}")
78
76
  res = EnvCheckResult()
77
+ # Use mamba here because it's faster and produces less output
79
78
  envs = json.loads(
80
- subprocess.check_output([conda, "env", "list", "--json"]).decode()
79
+ subprocess.check_output(["mamba", "env", "list", "--json"]).decode()
81
80
  )["envs"]
82
81
  # Get existing env names, but skip the base environment
83
82
  # Note that this could fail for environments with non-default prefixes
@@ -100,7 +99,11 @@ def check_env(
100
99
  log_func(f"Environment {env_name} doesn't exist; creating")
101
100
  res.env_exists = False
102
101
  # Environment doesn't exist, so create it
103
- subprocess.check_call([conda, "env", "create", "-y", "-f", env_fpath])
102
+ # Create with conda since newer mamba versions create a strange
103
+ # "Library" subdirectory, at least on Windows
104
+ subprocess.check_call(
105
+ ["conda", "env", "create", "-y", "-f", env_fpath]
106
+ )
104
107
  env_needs_rebuild = False
105
108
  env_needs_export = True
106
109
  else:
@@ -185,7 +188,9 @@ def check_env(
185
188
  if env_needs_rebuild:
186
189
  res.env_needs_rebuild = True
187
190
  log_func(f"Rebuilding {env_name} since it does not match spec")
188
- subprocess.check_call([conda, "env", "create", "-y", "-f", env_fpath])
191
+ subprocess.check_call(
192
+ ["conda", "env", "create", "-y", "-f", env_fpath]
193
+ )
189
194
  env_needs_export = True
190
195
  else:
191
196
  log_func(f"Environment {env_name} matches spec")
File without changes
File without changes
File without changes
File without changes