dirigent-examples 0.17.3__tar.gz → 0.18.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 (217) hide show
  1. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/PKG-INFO +3 -3
  2. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/pyproject.toml +3 -3
  3. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/pyproject.toml.orig +3 -3
  4. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-remote-daemon.yaml +3 -2
  5. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/references-cheat-sheet.yaml +7 -3
  6. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/README.md +1 -0
  7. dirigent_examples-0.18.0/src/dirigent_examples/shelves/recipes/storage-keep-past-the-run.yaml +116 -0
  8. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/LICENSE +0 -0
  9. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/README.md +0 -0
  10. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/__init__.py +0 -0
  11. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/py.typed +0 -0
  12. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/README.md +0 -0
  13. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/composition/README.md +0 -0
  14. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/composition/chained-instances.yaml +0 -0
  15. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/composition/composition-child.yaml +0 -0
  16. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/composition/composition-parent.yaml +0 -0
  17. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/connections.yaml +0 -0
  18. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/README.md +0 -0
  19. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/markdown-showcase.yaml +0 -0
  20. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/params-showcase.yaml +0 -0
  21. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/requires.yaml +0 -0
  22. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/weekly-import-malawi.yaml +0 -0
  23. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/demo/weekly-import-nepal.yaml +0 -0
  24. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/README.md +0 -0
  25. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-build-push.yaml +0 -0
  26. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-build-run.yaml +0 -0
  27. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-compose-database.yaml +0 -0
  28. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-compose-failing-up.yaml +0 -0
  29. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-compose-file.yaml +0 -0
  30. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-compose-profiles-env.yaml +0 -0
  31. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-compose-stack.yaml +0 -0
  32. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-hello.yaml +0 -0
  33. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-run-failing-teardown.yaml +0 -0
  34. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/docker/docker-ticker.yaml +0 -0
  35. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/execute/README.md +0 -0
  36. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/execute/long-log.yaml +0 -0
  37. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/README.md +0 -0
  38. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/error-handler.yaml +0 -0
  39. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/optional-step.yaml +0 -0
  40. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/retries.yaml +0 -0
  41. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/retry-budget.yaml +0 -0
  42. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/failure/step-timeout.yaml +0 -0
  43. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/git/README.md +0 -0
  44. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/git/git-checkout-build.yaml +0 -0
  45. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/git/git-checkout-compose.yaml +0 -0
  46. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/git/git-checkout-public.yaml +0 -0
  47. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/README.md +0 -0
  48. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/deep-chain.yaml +0 -0
  49. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/fan-in.yaml +0 -0
  50. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/fan-out.yaml +0 -0
  51. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/linear.yaml +0 -0
  52. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/parallel-branches.yaml +0 -0
  53. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/parallel-sleep.yaml +0 -0
  54. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/skip-diamond.yaml +0 -0
  55. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/graph/wide-fan.yaml +0 -0
  56. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/hello-world.yaml +0 -0
  57. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/README.md +0 -0
  58. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/feeds-composition.yaml +0 -0
  59. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/gdacs-disaster-updates.yaml +0 -0
  60. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/github-releases-relay.yaml +0 -0
  61. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/hdx-dataset-watch.yaml +0 -0
  62. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/kobo-submissions-to-csv.yaml +0 -0
  63. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/nominatim-geocode-facilities.yaml +0 -0
  64. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/odk-central-submissions.yaml +0 -0
  65. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/open-meteo-weekly-report.yaml +0 -0
  66. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/overpass-health-facilities.yaml +0 -0
  67. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/usgs-earthquakes-alert.yaml +0 -0
  68. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/who-gho-indicators-to-parquet.yaml +0 -0
  69. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/wikidata-country-reference.yaml +0 -0
  70. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/open-data/world-bank-population-trend.yaml +0 -0
  71. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/README.md +0 -0
  72. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/concurrency-queue.yaml +0 -0
  73. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/concurrency-replace.yaml +0 -0
  74. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/concurrency-skip.yaml +0 -0
  75. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/connections-referenced-vs-carried.yaml +0 -0
  76. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/deadline-on-a-sensor.yaml +0 -0
  77. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-continue.yaml +0 -0
  78. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-fail-fast.yaml +0 -0
  79. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-from-params.yaml +0 -0
  80. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-item-wise.yaml +0 -0
  81. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-literal-list.yaml +0 -0
  82. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-nested-objects.yaml +0 -0
  83. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/fan-out-then-join.yaml +0 -0
  84. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/log-levels.yaml +0 -0
  85. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/outputs-inline-vs-storage.yaml +0 -0
  86. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/params-every-type.yaml +0 -0
  87. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/params-validation-refuses.yaml +0 -0
  88. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/pipeline-run-child.yaml +0 -0
  89. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/pipeline-run-fire-and-forget.yaml +0 -0
  90. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/pipeline-run-strict.yaml +0 -0
  91. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/pipeline-run-wait.yaml +0 -0
  92. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/pipeline-run-with-params.yaml +0 -0
  93. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/poll-cadence.yaml +0 -0
  94. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/priority-layered.yaml +0 -0
  95. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/retry-budget-exhausted.yaml +0 -0
  96. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/retry-exponential-backoff.yaml +0 -0
  97. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/retry-only-transient.yaml +0 -0
  98. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/retry-with-jitter.yaml +0 -0
  99. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/rule-all-done.yaml +0 -0
  100. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/rule-all-success.yaml +0 -0
  101. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/rule-always.yaml +0 -0
  102. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/rule-one-failed.yaml +0 -0
  103. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/schedule-at-once.yaml +0 -0
  104. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/schedule-cron-timezone.yaml +0 -0
  105. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/schedule-interval.yaml +0 -0
  106. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/schedule-window-half-open.yaml +0 -0
  107. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/sensor-http-ready.yaml +0 -0
  108. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/sensor-storage-exists.yaml +0 -0
  109. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/step-names-and-keys.yaml +0 -0
  110. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/timeout-fails-the-step.yaml +0 -0
  111. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/timeout-skips-the-step.yaml +0 -0
  112. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/webhook-mapping-nested-payload.yaml +0 -0
  113. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/patterns/webhook-signed.yaml +0 -0
  114. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/preview/s3-parquet-to-ingestion.yaml +0 -0
  115. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/README.md +0 -0
  116. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/apply_and_run.py +0 -0
  117. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/ci_gate.py +0 -0
  118. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/connections.py +0 -0
  119. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/error_handling.py +0 -0
  120. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/follow_logs.py +0 -0
  121. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/python/list_and_filter.py +0 -0
  122. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/README.md +0 -0
  123. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/kafka-consume-then-transform.yaml +0 -0
  124. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/kafka-produce-then-consume.yaml +0 -0
  125. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/rabbitmq-consume-ack-on-success.yaml +0 -0
  126. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/report-to-kafka.yaml +0 -0
  127. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/queues/report-to-rabbitmq.yaml +0 -0
  128. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/csv-header-rules.yaml +0 -0
  129. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/csv-to-ndjson.yaml +0 -0
  130. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/etl-csv-clean-validate-parquet.yaml +0 -0
  131. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/filter-by-predicate.yaml +0 -0
  132. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/filter-then-map-then-reduce.yaml +0 -0
  133. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-fetch-validate-post.yaml +0 -0
  134. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-follow-redirects.yaml +0 -0
  135. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-get-with-query.yaml +0 -0
  136. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-headers-and-auth-connection.yaml +0 -0
  137. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-post-file-from-storage.yaml +0 -0
  138. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-post-json-echo.yaml +0 -0
  139. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-post-report.yaml +0 -0
  140. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-save-body-to-storage.yaml +0 -0
  141. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-success-status-list.yaml +0 -0
  142. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/http-timeout-override.yaml +0 -0
  143. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-dedupe-by-key.yaml +0 -0
  144. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-defaults-and-nulls.yaml +0 -0
  145. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-group-by-and-sum.yaml +0 -0
  146. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-join-two-lists.yaml +0 -0
  147. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-long-to-wide.yaml +0 -0
  148. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-nested-to-flat.yaml +0 -0
  149. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-pivot-wide-to-long.yaml +0 -0
  150. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-running-totals.yaml +0 -0
  151. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-string-cleaning.yaml +0 -0
  152. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-top-n.yaml +0 -0
  153. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-validate-in-jq-vs-schema.yaml +0 -0
  154. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/jq-window-dates.yaml +0 -0
  155. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/json-to-csv-flattening.yaml +0 -0
  156. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/large-output-to-storage.yaml +0 -0
  157. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/map-enrich-with-lookup.yaml +0 -0
  158. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/ndjson-to-parquet.yaml +0 -0
  159. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/pagination-by-fan-out.yaml +0 -0
  160. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/parquet-round-trip-types.yaml +0 -0
  161. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/reconcile-two-sources.yaml +0 -0
  162. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/report-built-in.yaml +0 -0
  163. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/report-daily-digest.yaml +0 -0
  164. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/report-to-file.yaml +0 -0
  165. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/report-to-webhook.yaml +0 -0
  166. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/schema-carried.yaml +0 -0
  167. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/schema-formats.yaml +0 -0
  168. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/schema-referenced.yaml +0 -0
  169. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/schema-refuses-then-rule.yaml +0 -0
  170. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/storage-copy-dated-archive.yaml +0 -0
  171. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/storage-exists-gate.yaml +0 -0
  172. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/storage-manifest-of-a-fan-out.yaml +0 -0
  173. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/storage-write-then-read.yaml +0 -0
  174. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/webhook-post-hmac.yaml +0 -0
  175. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/recipes/webhook-post-summary.yaml +0 -0
  176. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/README.md +0 -0
  177. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/report-to-s3.yaml +0 -0
  178. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/s3-copy-and-verify.yaml +0 -0
  179. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/s3-csv-report.yaml +0 -0
  180. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/s3-parquet-report.yaml +0 -0
  181. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/s3/s3-round-trip.yaml +0 -0
  182. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/schemas/README.md +0 -0
  183. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/schemas/echo-reading.json +0 -0
  184. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/schemas/ou-record.json +0 -0
  185. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/schemas/station-reading.json +0 -0
  186. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sensors/README.md +0 -0
  187. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sensors/sensor-gate.yaml +0 -0
  188. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sensors/time-window.yaml +0 -0
  189. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/README.md +0 -0
  190. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/duckdb-parquet-to-report.yaml +0 -0
  191. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/sql-postgres-readonly.yaml +0 -0
  192. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/sql-query-to-storage.yaml +0 -0
  193. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/sql-sqlite-roundtrip.yaml +0 -0
  194. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/sql/warehouse.sql +0 -0
  195. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/README.md +0 -0
  196. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/csv-report.yaml +0 -0
  197. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/jq-filter-and-map.yaml +0 -0
  198. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/jq-group-and-aggregate.yaml +0 -0
  199. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/jq-join-two-sources.yaml +0 -0
  200. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/jq-reshape.yaml +0 -0
  201. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/jq-stream-through-storage.yaml +0 -0
  202. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/ndjson-round-trip.yaml +0 -0
  203. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/parquet-round-trip.yaml +0 -0
  204. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/std-convert-fan-out.yaml +0 -0
  205. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/xml-feed-to-ndjson.yaml +0 -0
  206. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/transform/yaml-config-to-json.yaml +0 -0
  207. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/README.md +0 -0
  208. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/at-one-time.yaml +0 -0
  209. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/cron-nightly.yaml +0 -0
  210. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/cron-windowed.yaml +0 -0
  211. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/document-nightly.yaml +0 -0
  212. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/interval-rolling.yaml +0 -0
  213. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/managed-and-manual.yaml +0 -0
  214. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/triggers/webhook-trigger.yaml +0 -0
  215. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/validate/README.md +0 -0
  216. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/validate/expects-a-shape.yaml +0 -0
  217. {dirigent_examples-0.17.3 → dirigent_examples-0.18.0}/src/dirigent_examples/shelves/validate/the-shape-is-wrong.yaml +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirigent-examples
3
- Version: 0.17.3
3
+ Version: 0.18.0
4
4
  Summary: The dirigent example corpus: the shelves of runnable documents, installed.
5
5
  License-Expression: LicenseRef-Proprietary
6
6
  License-File: LICENSE
7
7
  Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Programming Language :: Python :: 3.13
9
- Requires-Dist: dirigent-client==0.17.3
10
- Requires-Dist: dirigent-plugin==0.17.3
9
+ Requires-Dist: dirigent-client==0.18.0
10
+ Requires-Dist: dirigent-plugin==0.18.0
11
11
  Requires-Python: >=3.13
12
12
  Description-Content-Type: text/markdown
13
13
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-examples"
3
- version = "0.17.3"
3
+ version = "0.18.0"
4
4
  description = "The dirigent example corpus: the shelves of runnable documents, installed."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -11,8 +11,8 @@ classifiers = [
11
11
  "Programming Language :: Python :: 3.13",
12
12
  ]
13
13
  dependencies = [
14
- "dirigent-client==0.17.3",
15
- "dirigent-plugin==0.17.3",
14
+ "dirigent-client==0.18.0",
15
+ "dirigent-plugin==0.18.0",
16
16
  ]
17
17
 
18
18
  [project.entry-points."dirigent.plugins.v1"]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dirigent-examples"
3
- version = "0.17.3"
3
+ version = "0.18.0"
4
4
  description = "The dirigent example corpus: the shelves of runnable documents, installed."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"
@@ -12,8 +12,8 @@ classifiers = [
12
12
  ]
13
13
  dependencies = [
14
14
  # The python/ shelf is SDK scripts a reader runs, so the corpus carries the client.
15
- "dirigent-client==0.17.3",
16
- "dirigent-plugin==0.17.3",
15
+ "dirigent-client==0.18.0",
16
+ "dirigent-plugin==0.18.0",
17
17
  ]
18
18
 
19
19
  [project.entry-points."dirigent.plugins.v1"]
@@ -26,8 +26,9 @@
26
26
  # only as a 0600 file under the run's work directory that goes when the step leaves. A client
27
27
  # key for a docker daemon is a credential for root on whatever that daemon runs on.
28
28
  #
29
- # TO MAKE IT YOURS: point host at your own daemon. A daemon that needs no TLS -- an ssh://
30
- # host, or a unix socket on another path -- takes host alone and none of the three PEMs.
29
+ # TO MAKE IT YOURS: point host at your own daemon. The worker speaks tcp:// and unix://, and
30
+ # a daemon that needs no TLS -- a unix socket on another path -- takes host alone and none of
31
+ # the three PEMs.
31
32
 
32
33
  format: dirigent/v1
33
34
  kind: pipeline
@@ -1,6 +1,6 @@
1
1
  # Every ${...} form the reference language allows, each used once, in one document.
2
2
  #
3
- # THERE ARE FOUR NAMESPACES AND NOTHING ELSE. No expressions, no arithmetic, no conditionals,
3
+ # THERE ARE FIVE NAMESPACES AND NOTHING ELSE. No expressions, no arithmetic, no conditionals,
4
4
  # no functions, no defaults, no coalescing. A reference names a value or it does not resolve.
5
5
  #
6
6
  # params.<name> a run parameter
@@ -17,6 +17,7 @@
17
17
  # run.scratch this run's own directory under the artifact root
18
18
  # run.window.start the start of the interval this run covers
19
19
  # run.window.end the end of it, exclusive
20
+ # artifacts the instance's storage root, which no run owns
20
21
  #
21
22
  # TWO RULES ABOUT WHAT A REFERENCE BECOMES:
22
23
  #
@@ -53,8 +54,8 @@ kind: pipeline
53
54
  code: references-cheat-sheet
54
55
  name: The whole reference language
55
56
  description: |
56
- Four namespaces -- `params`, `steps`, `item`, `run` -- and no expressions, conditionals or
57
- functions anywhere.
57
+ Five namespaces -- `params`, `steps`, `item`, `run`, `artifacts` -- and no expressions,
58
+ conditionals or functions anywhere.
58
59
 
59
60
  A whole reference resolves to the typed value; one inside a larger string interpolates as
60
61
  text; an unknown one is rejected rather than resolved to empty. Needs `--window`.
@@ -108,6 +109,9 @@ steps:
108
109
  # run: the two values every run has.
109
110
  run_id: "${run.id}"
110
111
  scratch: "${run.scratch}"
112
+ # artifacts: the storage root itself, which outlives every run written under it.
113
+ # ${run.scratch} is swept when the run is pruned; ${artifacts}/... is not.
114
+ artifacts: "${artifacts}"
111
115
  # run.window: only on a run that carries one. Half-open, so start is included and
112
116
  # end is not.
113
117
  window_start: "${run.window.start}"
@@ -82,6 +82,7 @@ and a parameter away in the others:
82
82
  | File | The question it answers |
83
83
  | --- | --- |
84
84
  | [storage-write-then-read.yaml](storage-write-then-read.yaml) | How do I park a payload in storage and pick it up again a step later? |
85
+ | [storage-keep-past-the-run.yaml](storage-keep-past-the-run.yaml) | How do I keep something past the run that wrote it, without naming a directory or a bucket? |
85
86
  | [storage-copy-dated-archive.yaml](storage-copy-dated-archive.yaml) | How do I keep a dated copy, and what should the key layout be? |
86
87
  | [storage-exists-gate.yaml](storage-exists-gate.yaml) | How do I wait for an object, and what stops me reading a half-written one? |
87
88
  | [large-output-to-storage.yaml](large-output-to-storage.yaml) | What happens to a payload past the inline threshold, and what should I do about it? |
@@ -0,0 +1,116 @@
1
+ # Fetch something and keep it, at a location the run does not own.
2
+ #
3
+ # In: a query the echo service reflects back.
4
+ # Out: the same body written twice -- once to the run's scratch, once to a kept location --
5
+ # and a summary naming both URIs side by side.
6
+ #
7
+ # TWO ANCHORS, TWO LIFETIMES. A document never names a directory or a bucket, only one of the
8
+ # two prefixes the engine resolves for it:
9
+ #
10
+ # ${run.scratch} this run's own prefix, <root>/runs/<run id>/... Retention sweeps it when
11
+ # the run is pruned, so it is where a working copy goes: a payload handed
12
+ # to the next step, a captured stream, anything nobody needs next month.
13
+ # ${artifacts} the instance's storage root itself. Retention deletes run prefixes and
14
+ # nothing else under it, so an object written here stays until somebody
15
+ # deletes it. This is where "fetch it and keep it" lands.
16
+ #
17
+ # Both resolve against whichever backend the instance is configured with -- a directory on a
18
+ # single node, a bucket where an s3 connection serves the scheme -- so the two steps below
19
+ # are the same document on either, and neither carries a path a second instance would have to
20
+ # rewrite. A URI naming the root directly cannot do that: file://kept/x.json reads `kept` as
21
+ # a host, file:///kept/x.json is an absolute path, and the backend refuses both for being
22
+ # outside its root.
23
+ #
24
+ # THE KEY IS STABLE, NOT DATED. ${params.name} is one name and a rerun overwrites it, which
25
+ # is what makes this the newest copy rather than a pile nobody prunes. Where a history is
26
+ # wanted instead, the key goes under a date -- storage-copy-dated-archive.yaml is that
27
+ # layout, and the same choice of prefix applies to it.
28
+ #
29
+ # WHAT --local DOES WITH IT. A plain --local run builds a throwaway instance and deletes it at
30
+ # the end, so the kept object outlives the run but not the instance. Give the run a root of
31
+ # its own and it is still there afterwards, and a second run finds the first run's copy:
32
+ #
33
+ # dg run --local --root ./.dirigent-local examples/recipes/storage-keep-past-the-run.yaml
34
+ # ls ./.dirigent-local/artifacts/kept
35
+ #
36
+ # To change it: point DIRIGENT_ARTIFACT_ROOT at s3://<bucket>/<prefix> and the kept object is
37
+ # an object in that bucket, with nothing in this document changed.
38
+ #
39
+ # dg run --local examples/recipes/storage-keep-past-the-run.yaml
40
+ # dg run --local examples/recipes/storage-keep-past-the-run.yaml -p name=stations
41
+
42
+ format: dirigent/v1
43
+ kind: pipeline
44
+ code: storage-keep-past-the-run
45
+ name: Something kept past its run
46
+ description: Fetch a body, write a working copy to the run's scratch and a kept copy under the artifact root, and read the kept one back.
47
+
48
+ tags: [recipes, http, storage, transform, starter]
49
+
50
+ requires:
51
+ blocks:
52
+ - http.request
53
+ - storage.write
54
+ - storage.read
55
+ - transform.jq
56
+
57
+ params:
58
+ type: object
59
+ properties:
60
+ name:
61
+ type: string
62
+ default: latest
63
+ description: The name the kept object carries; stable, so a rerun replaces it.
64
+ station:
65
+ type: string
66
+ default: st-1
67
+ description: A query value, echoed back inside the fetched body.
68
+
69
+ steps:
70
+ fetch:
71
+ block: http.request
72
+ config:
73
+ url: https://postman-echo.com/get
74
+ method: GET
75
+ query:
76
+ station: ${params.station}
77
+ max_response: 1mb
78
+ timeout: 30s
79
+
80
+ working:
81
+ block: storage.write
82
+ depends_on: [fetch]
83
+ config:
84
+ # The run's own prefix: gone when retention prunes the run.
85
+ target: ${run.scratch}/fetched.json
86
+ value: ${steps.fetch.output.body}
87
+
88
+ keep:
89
+ block: storage.write
90
+ depends_on: [fetch]
91
+ config:
92
+ # The root itself: nothing sweeps this, so the object is here until somebody removes it.
93
+ target: ${artifacts}/kept/${params.name}.json
94
+ value: ${steps.fetch.output.body}
95
+
96
+ back:
97
+ block: storage.read
98
+ depends_on: [keep]
99
+ config:
100
+ # Where the write said the object landed, not the same path typed twice.
101
+ source: ${steps.keep.output.uri}
102
+ max_size: 1mb
103
+
104
+ where:
105
+ block: transform.jq
106
+ depends_on: [working, back]
107
+ config:
108
+ input:
109
+ swept: ${steps.working.output.uri}
110
+ kept: ${steps.keep.output.uri}
111
+ station: ${steps.back.output.value.args.station}
112
+ program: |
113
+ {kept, swept, station,
114
+ # The run id is in one of the two URIs and not in the other, which is the whole
115
+ # difference between them.
116
+ kept_is_run_scoped: (.kept | contains("/runs/"))}