gen3-dataops-toolkit 3.7.2__tar.gz → 3.7.4__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 (56) hide show
  1. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/PKG-INFO +1 -1
  2. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/pyproject.toml +1 -1
  3. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/synth.py +6 -2
  4. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/upload/metadata_submitter.py +20 -1
  5. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/README.md +0 -0
  6. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/__init__.py +0 -0
  7. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/__init__.py +0 -0
  8. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/__init__.py +0 -0
  9. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/dispatch.py +0 -0
  10. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/registry.py +0 -0
  11. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/resolve.py +0 -0
  12. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/runner.py +0 -0
  13. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/_internal/safety.py +0 -0
  14. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/config_cmds.py +0 -0
  15. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/delete_cmds.py +0 -0
  16. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/dict_cmds.py +0 -0
  17. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/ec2_cmds.py +0 -0
  18. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/indexd_cmds.py +0 -0
  19. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/jobs.py +0 -0
  20. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/k8s.py +0 -0
  21. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/main.py +0 -0
  22. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/metadata.py +0 -0
  23. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/pipeline_cmds.py +0 -0
  24. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/cli/release_cmds.py +0 -0
  25. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/config.py +0 -0
  26. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/indexd/__init__.py +0 -0
  27. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/indexd/file_access.py +0 -0
  28. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/indexd/indexd_registrar.py +0 -0
  29. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/ingest/ingest.py +0 -0
  30. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/resolver.py +0 -0
  31. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/delete/delete_all_metadata_for_project.py +0 -0
  32. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/delete/delete_metadata.sh +0 -0
  33. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/delete/delete_metadata_by_guid.py +0 -0
  34. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/dictionary/deploy_dd.sh +0 -0
  35. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/dictionary/pull_dict.sh +0 -0
  36. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/dictionary/upload_dictionary.py +0 -0
  37. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/indexd/register_indexd.py +0 -0
  38. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/indexd/verify_file_access.py +0 -0
  39. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/k8s_ops/argocd_restart_etl.sh +0 -0
  40. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/k8s_ops/argocd_restart_ms.sh +0 -0
  41. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/k8s_ops/argocd_restart_schema.sh +0 -0
  42. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/k8s_ops/login_to_pod.sh +0 -0
  43. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/k8s_ops/restart_etl_and_ms.sh +0 -0
  44. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/synthetic_data/delete_synth_metadata_sheepdog.py +0 -0
  45. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/synthetic_data/full_deploy_dd_and_synth.sh +0 -0
  46. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/synthetic_data/generate_synth_metadata.sh +0 -0
  47. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/synthetic_data/upload_synth_metadata_sheepdog.py +0 -0
  48. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/upload/metadata/upload_all_studies.sh +0 -0
  49. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/services/upload/metadata/upload_metadata.py +0 -0
  50. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/upload/__init__.py +0 -0
  51. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/upload/metadata_deleter.py +0 -0
  52. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/upload/upload_synthdata_s3.py +0 -0
  53. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/utils/athena_utils.py +0 -0
  54. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/utils/dbt_utils.py +0 -0
  55. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/utils/release_writer.py +0 -0
  56. {gen3_dataops_toolkit-3.7.2 → gen3_dataops_toolkit-3.7.4}/src/g3dt/validate/validate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gen3-dataops-toolkit
3
- Version: 3.7.2
3
+ Version: 3.7.4
4
4
  Summary: Gen3 DataOps toolkit (g3dt): operate SSM-published Gen3 data pipeline environments
5
5
  License: Apache-2.0
6
6
  Author: JoshuaHarris391
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "gen3-dataops-toolkit"
3
- version = "3.7.2"
3
+ version = "3.7.4"
4
4
  description = "Gen3 DataOps toolkit (g3dt): operate SSM-published Gen3 data pipeline environments"
5
5
  authors = ["JoshuaHarris391 <harjo391@gmail.com>"]
6
6
  readme = "README.md"
@@ -503,7 +503,11 @@ def delete(
503
503
 
504
504
  @app.command(name="install-simulator")
505
505
  def install_simulator() -> None:
506
- """Install the gen3-metadata-simulator generator (the 'synth' extra)."""
506
+ """Install or upgrade the gen3-metadata-simulator generator (the 'synth' extra)."""
507
507
  import sys
508
508
 
509
- runner.run([sys.executable, "-m", "pip", "install", "gen3-metadata-simulator"])
509
+ # --upgrade so re-running after a simulator release actually updates it;
510
+ # without it pip leaves an existing (stale) install untouched.
511
+ runner.run(
512
+ [sys.executable, "-m", "pip", "install", "--upgrade", "gen3-metadata-simulator"]
513
+ )
@@ -866,8 +866,27 @@ class MetadataSubmitter:
866
866
  athena_s3_output (str): S3 path for Athena query results output.
867
867
  workgroup (str): Athena workgroup to use.
868
868
  table_location (str): S3 location for the Iceberg table.
869
+
870
+ Raises:
871
+ RuntimeError: Immediately (no retries) when there are no
872
+ submission results to record — retrying an empty receipts
873
+ write can never succeed and its terminal error
874
+ ("DataFrame cannot be empty" after N attempts) buries the
875
+ real cause, which is whatever made every chunk fail
876
+ (observed live: sheepdog 403s on acdc/staging).
869
877
  """
870
-
878
+
879
+ if not submission_results:
880
+ msg = (
881
+ "No submission results to record: 0 entities were accepted by "
882
+ "sheepdog, so the receipts write is skipped. The real cause is "
883
+ "whatever failed the submission chunks — see the "
884
+ "[SUBMIT]/[RETRY] errors above (e.g. 403 authorization "
885
+ "failures)."
886
+ )
887
+ logger.critical(msg)
888
+ raise RuntimeError(msg)
889
+
871
890
  @retry(
872
891
  stop=stop_after_attempt(self.max_retries),
873
892
  wait=wait_exponential(multiplier=1, max=10)