prefect 3.7.9.dev2__py3-none-any.whl → 3.7.9.dev3__py3-none-any.whl

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.
prefect/_build_info.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # Generated by versioningit
2
- __version__ = "3.7.9.dev2"
3
- __build_date__ = "2026-07-15 08:52:54.199011+00:00"
4
- __git_commit__ = "4e685996b4633ab80f77d5ec98249fffeb39d36f"
2
+ __version__ = "3.7.9.dev3"
3
+ __build_date__ = "2026-07-16 08:53:06.906784+00:00"
4
+ __git_commit__ = "b749a6732bccbdcee1351e9afa806d32fb530d99"
5
5
  __dirty__ = False
@@ -158,7 +158,9 @@ def _load_deploy_configs_and_actions(
158
158
  actions: dict[str, Any] = {
159
159
  "build": model.build or [],
160
160
  "push": model.push or [],
161
- "pull": model.pull or [],
161
+ # Preserve the distinction between an omitted/`null` pull (auto-generate a
162
+ # default pull action) and an explicit empty `pull: []` (no pull steps).
163
+ "pull": model.pull,
162
164
  }
163
165
  # Convert Pydantic models to plain dicts for downstream consumption,
164
166
  # excluding keys that were not provided by users to preserve legacy semantics
@@ -90,6 +90,14 @@ async def _run_single_deploy(
90
90
  push_steps = deploy_config.get("push", actions.get("push")) or []
91
91
  pull_steps = deploy_config.get("pull", actions.get("pull")) or []
92
92
 
93
+ # An explicit empty `pull: []` (deployment-level takes precedence over the
94
+ # top-level definition) means "no pull steps". This differs from an
95
+ # omitted/`null` pull, which triggers default pull-action generation.
96
+ effective_pull = (
97
+ deploy_config["pull"] if "pull" in deploy_config else actions.get("pull")
98
+ )
99
+ explicit_no_pull = effective_pull == []
100
+
93
101
  deploy_config = await resolve_block_document_references(deploy_config)
94
102
  deploy_config = await resolve_variables(deploy_config)
95
103
 
@@ -237,6 +245,7 @@ async def _run_single_deploy(
237
245
  ## CONFIGURE PUSH and/or PULL STEPS FOR REMOTE FLOW STORAGE
238
246
  if (
239
247
  is_interactive()
248
+ and not explicit_no_pull
240
249
  and not (deploy_config.get("pull") or actions.get("pull"))
241
250
  and not docker_push_step_exists
242
251
  and confirm(
@@ -255,18 +264,23 @@ async def _run_single_deploy(
255
264
 
256
265
  # Prefer the originally captured pull_steps (taken before resolution) to
257
266
  # preserve unresolved block placeholders in the deployment spec. Only fall
258
- # back to the config/actions/default if no pull steps were provided.
259
- pull_steps = (
260
- pull_steps
261
- or deploy_config.get("pull")
262
- or actions.get("pull")
263
- or await _generate_default_pull_action(
264
- console,
265
- deploy_config=deploy_config,
266
- actions=actions,
267
- is_interactive=is_interactive,
267
+ # back to the config/actions/default if no pull steps were provided. An
268
+ # explicit empty `pull: []` disables pull steps entirely and skips default
269
+ # pull-action generation.
270
+ if explicit_no_pull:
271
+ pull_steps = []
272
+ else:
273
+ pull_steps = (
274
+ pull_steps
275
+ or deploy_config.get("pull")
276
+ or actions.get("pull")
277
+ or await _generate_default_pull_action(
278
+ console,
279
+ deploy_config=deploy_config,
280
+ actions=actions,
281
+ is_interactive=is_interactive,
282
+ )
268
283
  )
269
- )
270
284
 
271
285
  ## RUN BUILD AND PUSH STEPS
272
286
  step_outputs: dict[str, Any] = {}
@@ -438,7 +452,9 @@ async def _run_single_deploy(
438
452
  deploy_config_before_templating,
439
453
  build_steps=build_steps or None,
440
454
  push_steps=push_steps or None,
441
- pull_steps=pull_steps or None,
455
+ # Preserve an explicit empty `pull: []` when saving so the
456
+ # no-pull setting survives; otherwise collapse falsey pull to None.
457
+ pull_steps=pull_steps if explicit_no_pull else (pull_steps or None),
442
458
  triggers=trigger_specs or None,
443
459
  sla=sla_specs or None,
444
460
  prefect_file=prefect_file,
@@ -815,6 +815,7 @@
815
815
  "enum": [
816
816
  "IfNotPresent",
817
817
  "Always",
818
+ "IfPossible",
818
819
  "Never"
819
820
  ],
820
821
  "type": "string"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect
3
- Version: 3.7.9.dev2
3
+ Version: 3.7.9.dev3
4
4
  Summary: Workflow orchestration and management.
5
5
  Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
6
6
  Project-URL: Documentation, https://docs.prefect.io
@@ -2,7 +2,7 @@ prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
2
2
  prefect/AGENTS.md,sha256=H7j73ZMACxsIfHXO6pTAdyQy2yi7XGnADtgwcMqMVO4,11049
3
3
  prefect/__init__.py,sha256=Z8rwfLbEOLh-5WcznTZP3FG2-9UgGZxY-prj8sL0-Qk,6828
4
4
  prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
5
- prefect/_build_info.py,sha256=ScAS7VchF7hyM_2bFqBZJ3lUa1i45rMi1nOtwHErdGY,185
5
+ prefect/_build_info.py,sha256=I_0l54xoMM1cZhDbv9DR_pB6tBdSmflUkoX4dUw6e9c,185
6
6
  prefect/_flow_run_suspension.py,sha256=5zTTB7ZIBHzoS0pVrhNn23-9hK51qZ3CQA6C-azluC0,4144
7
7
  prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
8
8
  prefect/artifacts.py,sha256=ZdMLJeJGK82hibtRzbsVa-g95dMa0D2UP1LiESoXmf4,23951
@@ -195,8 +195,8 @@ prefect/cli/cloud/webhook.py,sha256=j0nzupRem5gr1cLutrO5ALhDaiTeNWTBusq1c-UBArI,
195
195
  prefect/cli/deploy/__init__.py,sha256=plVbJQ0ZDPsTFCRL7SYZXUhXaUi0KNU86dlydBeKGjs,121
196
196
  prefect/cli/deploy/_actions.py,sha256=5ORSReuDpdttxsNQTRNyXYl1HxRnCpEut-LVrlaiJ1U,10659
197
197
  prefect/cli/deploy/_commands.py,sha256=ofKDJ0KVTdEZy3BraJoaltKjxhZbDgTrq8xg4dk4IGg,16280
198
- prefect/cli/deploy/_config.py,sha256=d1LEuz1tWmYNqYTp3Gwdly0Pg-Wg-RsEmN5AiiF8jG0,19245
199
- prefect/cli/deploy/_core.py,sha256=cpYKtPiz9imWNhcrlJIT_pHzJdluHHr98AAPMjcUeEg,20554
198
+ prefect/cli/deploy/_config.py,sha256=T9525VOvUT8GP1-If3nGq8NPjToFCm2kW8q4kYEG0bA,19403
199
+ prefect/cli/deploy/_core.py,sha256=Cs9DMBnzlmzfu9cvuNX8qIWy46nnqsTixgyCpBGoHos,21380
200
200
  prefect/cli/deploy/_models.py,sha256=nkS85-OTz4wCzrlKkGqUKwXqHtzyfwbv-0MSC7eHnmE,6102
201
201
  prefect/cli/deploy/_schedules.py,sha256=10uB_aHM-wdWKmHosAm3ycMSRaOshgeF3kr1A0YaZ74,3236
202
202
  prefect/cli/deploy/_sla.py,sha256=1-D0t30kGzs1Jq2hTu2h1kNXS6JKq5t71I_7INI9_bE,1903
@@ -413,7 +413,7 @@ prefect/server/api/validation.py,sha256=DPofXjLFejs_qusUQgzRkG89X2EFoviAy9J08pnN
413
413
  prefect/server/api/variables.py,sha256=8Ursuf20R5zXUS015ZexCH72K7R6Yv76ehkr_l3Xt0k,6186
414
414
  prefect/server/api/work_queues.py,sha256=wEb_Hx1MlTrg5juOguk5nvGKwLmTGSIHEUyt_-2GJiE,11957
415
415
  prefect/server/api/workers.py,sha256=zUxF-ilf-Z9EuXZcqEk-IIbUmZI2v8dpGzhwXayg53Y,46264
416
- prefect/server/api/collections_data/views/aggregate-worker-metadata.json,sha256=otKGMKJUh_ySkQyNBFCe84E6VRbuR-Z7_676D21YKsw,81525
416
+ prefect/server/api/collections_data/views/aggregate-worker-metadata.json,sha256=u5zqD8sY2BNrNoMohlr5Z9xMG0gcwqc5yi_Py4vPO_s,81555
417
417
  prefect/server/api/static/prefect-logo-mark-gradient.png,sha256=ylRjJkI_JHCw8VbQasNnXQHwZW-sH-IQiUGSD3aWP1E,73430
418
418
  prefect/server/api/ui/__init__.py,sha256=TCXO4ZUZCqCbm2QoNvWNTErkzWiX2nSACuO-0Tiomvg,93
419
419
  prefect/server/api/ui/flow_runs.py,sha256=ALmUFY4WrJggN1ha0z-tqXeddG2GptswbPnB7iYixUM,4172
@@ -1470,8 +1470,8 @@ prefect/workers/_worker_channel/_protocol.py,sha256=GpCNh1o3qmmqHA_UOOTge1QVC6IR
1470
1470
  prefect/workers/_worker_channel/_state.py,sha256=eQTFZtAVDZH1vVWps3SdeY6aW3qu2wx1UKYQXK3AyuE,5369
1471
1471
  prefect/workers/_worker_channel/_sync.py,sha256=G5G8_UaQYbeLebi5Mb1Z_KgGfXfyjXo5uT9la5_zwqY,14984
1472
1472
  prefect/workers/_worker_channel/_transport.py,sha256=6VXxiZKIu0rqImlif14ojoAL3UGOBTmNpnlYxNggaLE,9423
1473
- prefect-3.7.9.dev2.dist-info/METADATA,sha256=GhBOuGI35nUatpuGsfvG53G91lU1HUN3Nfjli97KdSU,14030
1474
- prefect-3.7.9.dev2.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
1475
- prefect-3.7.9.dev2.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
1476
- prefect-3.7.9.dev2.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
1477
- prefect-3.7.9.dev2.dist-info/RECORD,,
1473
+ prefect-3.7.9.dev3.dist-info/METADATA,sha256=1bxOdisSDcKwJibVYV5Z4JmvetVIIW0CJP2AQzn8Goc,14030
1474
+ prefect-3.7.9.dev3.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
1475
+ prefect-3.7.9.dev3.dist-info/entry_points.txt,sha256=HlY8up83iIq2vU2r33a0qSis4eOFSyb1mRH4l7Xt9X8,126
1476
+ prefect-3.7.9.dev3.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
1477
+ prefect-3.7.9.dev3.dist-info/RECORD,,