roman-snpit-snappl 0.22.0__tar.gz → 0.23.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.

Potentially problematic release.


This version of roman-snpit-snappl might be problematic. Click here for more details.

Files changed (154) hide show
  1. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/workflows/changelog.yml +4 -1
  2. {roman_snpit_snappl-0.22.0/roman_snpit_snappl.egg-info → roman_snpit_snappl-0.23.0}/PKG-INFO +1 -1
  3. roman_snpit_snappl-0.23.0/changes/109.bugfix.rst +1 -0
  4. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0/roman_snpit_snappl.egg-info}/PKG-INFO +1 -1
  5. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/roman_snpit_snappl.egg-info/SOURCES.txt +1 -0
  6. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/_version.py +3 -3
  7. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/webserver.py +1 -1
  8. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/provenance.py +24 -7
  9. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.cruft.json +0 -0
  10. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/CODEOWNERS +0 -0
  11. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +0 -0
  12. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md +0 -0
  13. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/ISSUE_TEMPLATE/PR_TEMPLATE.md +0 -0
  14. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/dependabot.yml +0 -0
  15. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/labeler.yml +0 -0
  16. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/workflows/run_labeler.yml +0 -0
  17. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/workflows/run_snappl_tests.yml +0 -0
  18. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/workflows/sphinx-deploy.yml +0 -0
  19. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.github/workflows/sub_package_update.yml +0 -0
  20. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.gitignore +0 -0
  21. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/.pre-commit-config.yaml +0 -0
  22. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/CHANGES.rst +0 -0
  23. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/CITATION.cff +0 -0
  24. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/CODE_OF_CONDUCT.md +0 -0
  25. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/CONTRIBUTING.md +0 -0
  26. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/LICENSE +0 -0
  27. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/MANIFEST.in +0 -0
  28. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/README.rst +0 -0
  29. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/.gitkeep +0 -0
  30. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/10.snappl.rst +0 -0
  31. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/103.snappl.rst +0 -0
  32. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/105.docs.rst +0 -0
  33. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/106.docs.rst +0 -0
  34. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/107.feature.rst +0 -0
  35. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/13.bugfix.rst +0 -0
  36. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/14.snappl.rst +0 -0
  37. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/15.feature.rst +0 -0
  38. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/16.feature.rst +0 -0
  39. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/18.feature.rst +0 -0
  40. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/20.bugfix.rst +0 -0
  41. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/23.snappl.rst +0 -0
  42. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/26.feature.rst +0 -0
  43. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/29.feature.rst +0 -0
  44. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/3.snappl.rst +0 -0
  45. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/31.feature.rst +0 -0
  46. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/35.snappl.rst +0 -0
  47. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/36.snappl.rst +0 -0
  48. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/37.snappl.rst +0 -0
  49. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/40.snappl.rst +0 -0
  50. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/41.snappl.rst +0 -0
  51. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/43.snappl.rst +0 -0
  52. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/47.feature.rst +0 -0
  53. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/49.docs.rst +0 -0
  54. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/5.snappl.rst +0 -0
  55. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/54.snappl.rst +0 -0
  56. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/57.snappl.rst +0 -0
  57. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/58.snappl.rst +0 -0
  58. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/61.bugfix.rst +0 -0
  59. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/62.snappl.rst +0 -0
  60. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/63.snappl.rst +0 -0
  61. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/65.bugfix.rst +0 -0
  62. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/68.feature.rst +0 -0
  63. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/72.snappl.rst +0 -0
  64. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/73.feature.rst +0 -0
  65. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/74.bugfix.rst +0 -0
  66. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/79.snappl.rst +0 -0
  67. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/8.snappl.rst +0 -0
  68. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/81.snappl.rst +0 -0
  69. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/82.snappl.rst +0 -0
  70. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/83.snappl.rst +0 -0
  71. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/84.feature.rst +0 -0
  72. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/85.feature.rst +0 -0
  73. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/86.snappl.rst +0 -0
  74. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/87.docs.rst +0 -0
  75. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/89.feature.rst +0 -0
  76. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/9.snappl.rst +0 -0
  77. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/91.feature.rst +0 -0
  78. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/92.docs.rst +0 -0
  79. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/94.snappl.rst +0 -0
  80. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/98.docs.rst +0 -0
  81. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/changes/99.feature.rst +0 -0
  82. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/codespell-ignore.txt +0 -0
  83. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/postgres/Dockerfile +0 -0
  84. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/postgres/postgresql.conf +0 -0
  85. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/postgres/run_postgres.sh +0 -0
  86. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/webserver/Dockerfile +0 -0
  87. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/webserver/cert.pem +0 -0
  88. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/webserver/config-test.yaml +0 -0
  89. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/webserver/key.pem +0 -0
  90. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docker/webserver/roman-snpit-server.py +0 -0
  91. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/Makefile +0 -0
  92. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/_static/logo_black_filled.png +0 -0
  93. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/api.rst +0 -0
  94. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/changes.rst +0 -0
  95. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/conf.py +0 -0
  96. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/database_schema.rst +0 -0
  97. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/index.rst +0 -0
  98. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/installation.rst +0 -0
  99. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/make.bat +0 -0
  100. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/docs/usage.rst +0 -0
  101. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/experimentation/README.md +0 -0
  102. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/experimentation/ap_phot_simulated_images.py +0 -0
  103. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/experimentation/play_with_photutils.py +0 -0
  104. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/licenses/.DS_Store +0 -0
  105. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/licenses/LICENSE.rst +0 -0
  106. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/licenses/README.rst +0 -0
  107. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/licenses/TEMPLATE_LICENSE.rst +0 -0
  108. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/pyproject.toml +0 -0
  109. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/roman_snpit_snappl.egg-info/dependency_links.txt +0 -0
  110. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/roman_snpit_snappl.egg-info/not-zip-safe +0 -0
  111. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/roman_snpit_snappl.egg-info/requires.txt +0 -0
  112. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/roman_snpit_snappl.egg-info/top_level.txt +0 -0
  113. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/setup.cfg +0 -0
  114. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/setup.py +0 -0
  115. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/__init__.py +0 -0
  116. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/_dev/__init__.py +0 -0
  117. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/_dev/scm_version.py +0 -0
  118. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/admin/load_nov2025_truth_diaobjects.py +0 -0
  119. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/admin/load_ou2024_l2images.py +0 -0
  120. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/admin/load_ou2024_nov2025_segmaps.py +0 -0
  121. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/admin/load_snana_ou2024_diaobject.py +0 -0
  122. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/config.py +0 -0
  123. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/data/README.rst +0 -0
  124. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/baseview.py +0 -0
  125. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/db.py +0 -0
  126. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251008_init.sql +0 -0
  127. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251017_objdetcount.sql +0 -0
  128. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251024_l2image_mjd.sql +0 -0
  129. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251025_lightcurve.sql +0 -0
  130. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251028_segmap.sql +0 -0
  131. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/20251031_posang.sql +0 -0
  132. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/apply_migrations.py +0 -0
  133. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/schema_to_rst.py +0 -0
  134. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/scorched_earth.py +0 -0
  135. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/migrations/wipe_all_data.py +0 -0
  136. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/static/romansnpit.css +0 -0
  137. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/static/romansnpit.js +0 -0
  138. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/static/romansnpit_start.js +0 -0
  139. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/templates/base.html +0 -0
  140. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/db/templates/romansnpitdb.html +0 -0
  141. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/dbclient.py +0 -0
  142. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/diaobject.py +0 -0
  143. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/http.py +0 -0
  144. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/image.py +0 -0
  145. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/image_simulator.py +0 -0
  146. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/imagecollection.py +0 -0
  147. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/lightcurve.py +0 -0
  148. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/logger.py +0 -0
  149. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/psf.py +0 -0
  150. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/sed.py +0 -0
  151. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/segmap.py +0 -0
  152. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/utils.py +0 -0
  153. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/snappl/wcs.py +0 -0
  154. {roman_snpit_snappl-0.22.0 → roman_snpit_snappl-0.23.0}/tox.ini +0 -0
@@ -23,6 +23,9 @@ jobs:
23
23
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
24
24
  with:
25
25
  fetch-depth: 0
26
+ - run: sudo apt-get -y update && sudo apt-get install -y libfftw3-double3
27
+ - run: sudo ln -s /usr/lib/x86_64-linux-gnu/libfftw3.so.3 /usr/lib/libfftw3.so
28
+ - run: ls -l /usr/lib/libff*
26
29
  - run: pip install .
27
30
  - run: pip install towncrier
28
31
  - run: towncrier check
@@ -34,4 +37,4 @@ jobs:
34
37
  with:
35
38
  fetch-depth: 0
36
39
  - name: prevent direct changes to `CHANGES.rst`
37
- run: git diff HEAD ${{ github.event.pull_request.base.sha }} --no-patch --exit-code CHANGES.rst
40
+ run: git diff HEAD ${{ github.event.pull_request.base.sha }} --no-patch --exit-code CHANGES.rst
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roman_snpit_snappl
3
- Version: 0.22.0
3
+ Version: 0.23.0
4
4
  Summary: General, database, and photometry utilities for the Roman SNPIT
5
5
  Author: Roman Supernova Project Infrastructure Team
6
6
  Maintainer-email: Roman SN PIT <raknop@lbl.gov>
@@ -0,0 +1 @@
1
+ Fix issue #90 (spurious error messages when saving a provenance to database)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: roman_snpit_snappl
3
- Version: 0.22.0
3
+ Version: 0.23.0
4
4
  Summary: General, database, and photometry utilities for the Roman SNPIT
5
5
  Author: Roman Supernova Project Infrastructure Team
6
6
  Maintainer-email: Roman SN PIT <raknop@lbl.gov>
@@ -29,6 +29,7 @@ changes/103.snappl.rst
29
29
  changes/105.docs.rst
30
30
  changes/106.docs.rst
31
31
  changes/107.feature.rst
32
+ changes/109.bugfix.rst
32
33
  changes/13.bugfix.rst
33
34
  changes/14.snappl.rst
34
35
  changes/15.feature.rst
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.22.0'
32
- __version_tuple__ = version_tuple = (0, 22, 0)
31
+ __version__ = version = '0.23.0'
32
+ __version_tuple__ = version_tuple = (0, 23, 0)
33
33
 
34
- __commit_id__ = commit_id = 'gb84fe5a43'
34
+ __commit_id__ = commit_id = 'g19a7a9205'
@@ -137,7 +137,7 @@ class GetProvenance( BaseProvenance ):
137
137
  "WHERE t.process=%(process)s AND t.tag=%(tag)s",
138
138
  { 'process': process, 'tag': provid } )
139
139
  if len(rows) == 0:
140
- return f"Unknown provenance {provid}{'' if process is None else f' for process {process}'}", 500
140
+ return { 'status': f'No such provenance {provid}' }
141
141
  if len(rows) > 1:
142
142
  return ( f"Database corruption! More than one provenance {provid}"
143
143
  f"{'' if process is None else f' for process {process}'}!" ), 500
@@ -178,10 +178,7 @@ class Provenance:
178
178
 
179
179
  dbclient = SNPITDBClient() if dbclient is None else dbclient
180
180
  self.update_id()
181
- try:
182
- savedprov = self.get_by_id( self.id, dbclient=dbclient )
183
- except Exception:
184
- savedprov = None
181
+ savedprov = self.get_by_id( self.id, dbclient=dbclient, return_none_if_not_exists=True )
185
182
 
186
183
  if ( savedprov is None ) and ( exists is not None ) and exists:
187
184
  raise RuntimeError( f"Provenance {self.id} doesn't exist in the database, and exists is True; "
@@ -189,7 +186,7 @@ class Provenance:
189
186
  if ( savedprov is not None ) and ( exists is not None ) and ( not exists ):
190
187
  raise RuntimeError( f"Error saving provenance {self.id}; it already exists in the database." )
191
188
 
192
- if savedprov is None:
189
+ if ( savedprov is None ) or ( tag is not None ):
193
190
  res = dbclient.send( "createprovenance",
194
191
  { 'id': str(self.id),
195
192
  'process': self.process,
@@ -201,6 +198,7 @@ class Provenance:
201
198
  'params': self.params,
202
199
  'upstream_ids': [ str(u.id) for u in self.upstreams ],
203
200
  'tag': tag,
201
+ 'exist_ok': True,
204
202
  'replace_tag': replace_tag } )
205
203
  if res['status'] != 'ok':
206
204
  raise RuntimeError( f"Something went wrong saving provenance {self.id} to the databse." )
@@ -283,7 +281,7 @@ class Provenance:
283
281
 
284
282
 
285
283
  @classmethod
286
- def get_by_id( cls, provid, dbclient=None ):
284
+ def get_by_id( cls, provid, dbclient=None, return_none_if_not_exists=False ):
287
285
  """Return a Provenance pulled from the database.
288
286
 
289
287
  Raises an exception if it does not exist.
@@ -297,10 +295,29 @@ class Provenance:
297
295
  This is needed to talk to the Roman SNPIT database web
298
296
  server. If not given, will construct one based on config.
299
297
 
298
+ return_none_if_not_exists : bool, default False
299
+
300
+ Returns
301
+ -------
302
+ Provenance
303
+
304
+ If return_none_if_not_exists is True, then None will be
305
+ returned if the provenance does not exist in the database. If
306
+ return_none_if_not_exists is False (the default), then an
307
+ exception will be raised if the provenance does not exist in
308
+ the database.
309
+
300
310
  """
301
311
 
302
312
  dbclient = SNPITDBClient() if dbclient is None else dbclient
303
- return cls.parse_provenance( dbclient.send( f"getprovenance/{provid}" ) )
313
+ rval = dbclient.send( f"getprovenance/{provid}" )
314
+ if ( 'status' in rval ) and ( rval['status'] == f'No such provenance {provid}' ):
315
+ if return_none_if_not_exists:
316
+ return None
317
+ else:
318
+ raise ValueError( f"No such provenance {provid}" )
319
+ else:
320
+ return cls.parse_provenance( rval )
304
321
 
305
322
 
306
323