prefect-client 3.2.6__py3-none-any.whl → 3.2.7__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.2.6"
3
- __build_date__ = "2025-02-19 21:22:47.670607+00:00"
4
- __git_commit__ = "5ceb3ada542c5a752bab431af83fe790252d4dc8"
2
+ __version__ = "3.2.7"
3
+ __build_date__ = "2025-02-21 19:38:38.599741+00:00"
4
+ __git_commit__ = "d4d9001e40eb378ec68a97f7e3bab07d89c7557c"
5
5
  __dirty__ = False
@@ -81,6 +81,7 @@ from prefect.client.orchestration._blocks_types.client import (
81
81
 
82
82
  import prefect
83
83
  import prefect.exceptions
84
+ from prefect.logging.loggers import get_run_logger
84
85
  import prefect.settings
85
86
  import prefect.states
86
87
  from prefect.client.constants import SERVER_API_VERSION
@@ -1182,8 +1183,17 @@ class PrefectClient(
1182
1183
  if api_version.major != client_version.major:
1183
1184
  raise RuntimeError(
1184
1185
  f"Found incompatible versions: client: {client_version}, server: {api_version}. "
1185
- f"Major versions must match."
1186
+ "Major versions must match."
1186
1187
  )
1188
+ if api_version < client_version:
1189
+ warning_message = (
1190
+ "Your Prefect server is running an older version of Prefect than your client which may result in unexpected behavior. "
1191
+ f"Please upgrade your Prefect server from version {api_version} to version {client_version} or higher."
1192
+ )
1193
+ try:
1194
+ get_run_logger().warning(warning_message)
1195
+ except prefect.context.MissingContextError:
1196
+ self.logger.warning(warning_message)
1187
1197
 
1188
1198
  async def __aenter__(self) -> Self:
1189
1199
  """
@@ -1523,8 +1533,17 @@ class SyncPrefectClient(
1523
1533
  if api_version.major != client_version.major:
1524
1534
  raise RuntimeError(
1525
1535
  f"Found incompatible versions: client: {client_version}, server: {api_version}. "
1526
- f"Major versions must match."
1536
+ "Major versions must match."
1527
1537
  )
1538
+ if api_version < client_version:
1539
+ warning_message = (
1540
+ "Your Prefect server is running an older version of Prefect than your client which may result in unexpected behavior. "
1541
+ f"Please upgrade your Prefect server from version {api_version} to version {client_version} or higher."
1542
+ )
1543
+ try:
1544
+ get_run_logger().warning(warning_message)
1545
+ except prefect.context.MissingContextError:
1546
+ self.logger.warning(warning_message)
1528
1547
 
1529
1548
  def set_task_run_name(self, task_run_id: UUID, name: str) -> httpx.Response:
1530
1549
  task_run_data = TaskRunUpdate(name=name)
@@ -84,7 +84,7 @@ class Trigger(PrefectBaseModel, abc.ABC, extra="ignore"): # type: ignore[call-a
84
84
  getattr(self, "name", None)
85
85
  or f"Automation for deployment {self._deployment_id}"
86
86
  ),
87
- description="",
87
+ description=getattr(self, "description", ""),
88
88
  enabled=getattr(self, "enabled", True),
89
89
  trigger=trigger,
90
90
  actions=self.actions(),
prefect/flows.py CHANGED
@@ -2350,9 +2350,15 @@ async def load_flow_from_flow_run(
2350
2350
  f"Running {len(deployment.pull_steps)} deployment pull step(s)"
2351
2351
  )
2352
2352
 
2353
- from prefect.deployments.steps.core import run_steps
2353
+ from prefect.deployments.steps.core import StepExecutionError, run_steps
2354
+
2355
+ try:
2356
+ output = await run_steps(deployment.pull_steps)
2357
+ except StepExecutionError as e:
2358
+ e = e.__cause__ or e
2359
+ run_logger.error(str(e))
2360
+ raise
2354
2361
 
2355
- output = await run_steps(deployment.pull_steps)
2356
2362
  if output.get("directory"):
2357
2363
  run_logger.debug(f"Changing working directory to {output['directory']!r}")
2358
2364
  os.chdir(output["directory"])
@@ -38,7 +38,9 @@ def load_logging_config(path: Path) -> dict[str, Any]:
38
38
  warnings.filterwarnings("ignore", category=DeprecationWarning)
39
39
  config = yaml.safe_load(
40
40
  # Substitute settings into the template in format $SETTING / ${SETTING}
41
- template.substitute(current_settings.to_environment_variables())
41
+ template.substitute(
42
+ current_settings.to_environment_variables(include_aliases=True)
43
+ )
42
44
  )
43
45
 
44
46
  # Load overrides from the environment
@@ -55,6 +55,7 @@ from prefect.settings import (
55
55
  PREFECT_DEBUG_MODE,
56
56
  PREFECT_MEMO_STORE_PATH,
57
57
  PREFECT_MEMOIZE_BLOCK_AUTO_REGISTRATION,
58
+ PREFECT_SERVER_API_BASE_PATH,
58
59
  PREFECT_SERVER_EPHEMERAL_STARTUP_TIMEOUT_SECONDS,
59
60
  PREFECT_UI_SERVE_BASE,
60
61
  get_current_settings,
@@ -356,7 +357,10 @@ def create_api_app(
356
357
  header_token = request.headers.get("Authorization")
357
358
 
358
359
  # used for probes in k8s and such
359
- if request.url.path in ["/api/health", "/api/ready"]:
360
+ if (
361
+ request.url.path.endswith(("health", "ready"))
362
+ and request.method.upper() == "GET"
363
+ ):
360
364
  return await call_next(request)
361
365
  try:
362
366
  if header_token is None:
@@ -691,7 +695,10 @@ def create_app(
691
695
  name="static",
692
696
  )
693
697
  app.api_app = api_app
694
- app.mount("/api", app=api_app, name="api")
698
+ if PREFECT_SERVER_API_BASE_PATH:
699
+ app.mount(PREFECT_SERVER_API_BASE_PATH.value(), app=api_app, name="api")
700
+ else:
701
+ app.mount("/api", app=api_app, name="api")
695
702
  app.mount("/", app=ui_app, name="ui")
696
703
 
697
704
  def openapi():
prefect/settings/base.py CHANGED
@@ -92,6 +92,7 @@ class PrefectBaseSettings(BaseSettings):
92
92
  self,
93
93
  exclude_unset: bool = False,
94
94
  include_secrets: bool = True,
95
+ include_aliases: bool = False,
95
96
  ) -> Dict[str, str]:
96
97
  """Convert the settings object to a dictionary of environment variables."""
97
98
  env: Dict[str, Any] = self.model_dump(
@@ -105,12 +106,26 @@ class PrefectBaseSettings(BaseSettings):
105
106
  child_env = child_settings.to_environment_variables(
106
107
  exclude_unset=exclude_unset,
107
108
  include_secrets=include_secrets,
109
+ include_aliases=include_aliases,
108
110
  )
109
111
  env_variables.update(child_env)
110
112
  elif (value := env.get(key)) is not None:
111
- env_variables[f"{self.model_config.get('env_prefix')}{key.upper()}"] = (
112
- _to_environment_variable_value(value)
113
- )
113
+ validation_alias = self.model_fields[key].validation_alias
114
+ if include_aliases and validation_alias is not None:
115
+ if isinstance(validation_alias, AliasChoices):
116
+ for alias in validation_alias.choices:
117
+ if isinstance(alias, str):
118
+ env_variables[alias.upper()] = (
119
+ _to_environment_variable_value(value)
120
+ )
121
+ elif isinstance(validation_alias, str):
122
+ env_variables[validation_alias.upper()] = (
123
+ _to_environment_variable_value(value)
124
+ )
125
+ else:
126
+ env_variables[
127
+ f"{self.model_config.get('env_prefix')}{key.upper()}"
128
+ ] = _to_environment_variable_value(value)
114
129
  return env_variables
115
130
 
116
131
  @model_serializer(
@@ -381,7 +381,11 @@ def _warn_on_misconfigured_api_url(settings: "Settings"):
381
381
  warnings_list.append(warning)
382
382
 
383
383
  parsed_url = urlparse(api_url)
384
- if parsed_url.path and not parsed_url.path.startswith("/api"):
384
+ if (
385
+ parsed_url.path
386
+ and "api.prefect.cloud" in api_url
387
+ and not parsed_url.path.startswith("/api")
388
+ ):
385
389
  warnings_list.append(
386
390
  "`PREFECT_API_URL` should have `/api` after the base URL."
387
391
  )
@@ -18,7 +18,7 @@ class ServerAPISettings(PrefectBaseSettings):
18
18
 
19
19
  auth_string: Optional[SecretStr] = Field(
20
20
  default=None,
21
- description="A string to use for basic authentication with the API; typically in the form 'user:password' but can be any string.",
21
+ description="A string to use for basic authentication with the API in the form 'user:password'.",
22
22
  )
23
23
 
24
24
  host: str = Field(
@@ -31,6 +31,12 @@ class ServerAPISettings(PrefectBaseSettings):
31
31
  description="The API's port address (defaults to `4200`).",
32
32
  )
33
33
 
34
+ base_path: Optional[str] = Field(
35
+ default=None,
36
+ description="The base URL path to serve the API under.",
37
+ examples=["/v2/api"],
38
+ )
39
+
34
40
  default_limit: int = Field(
35
41
  default=200,
36
42
  description="The default limit applied to queries that can return multiple objects, such as `POST /flow_runs/filter`.",
@@ -30,6 +30,20 @@ class SQLAlchemyConnectArgsSettings(PrefectBaseSettings):
30
30
  description="Controls the application_name field for connections opened from the connection pool when using a PostgreSQL database with the Prefect backend.",
31
31
  )
32
32
 
33
+ statement_cache_size: Optional[int] = Field(
34
+ default=None,
35
+ description="Controls statement cache size for PostgreSQL connections. Setting this to 0 is required when using PgBouncer in transaction mode. Defaults to None.",
36
+ )
37
+
38
+ prepared_statement_cache_size: Optional[int] = Field(
39
+ default=None,
40
+ description=(
41
+ "Controls the size of the statement cache for PostgreSQL connections. "
42
+ "When set to 0, statement caching is disabled. Defaults to None to use "
43
+ "SQLAlchemy's default behavior."
44
+ ),
45
+ )
46
+
33
47
 
34
48
  class SQLAlchemySettings(PrefectBaseSettings):
35
49
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: prefect-client
3
- Version: 3.2.6
3
+ Version: 3.2.7
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
@@ -1,7 +1,7 @@
1
1
  prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
2
2
  prefect/__init__.py,sha256=iCdcC5ZmeewikCdnPEP6YBAjPNV5dvfxpYCTpw30Hkw,3685
3
3
  prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
4
- prefect/_build_info.py,sha256=4oC7HpoKzqi-JGuQXctloFjee21Vq-csRlUUkWKnvI0,180
4
+ prefect/_build_info.py,sha256=v72RCwnunuXLYjqd62c-v91feDIddMeaSrKisnM3Nqc,180
5
5
  prefect/_result_records.py,sha256=S6QmsODkehGVSzbMm6ig022PYbI6gNKz671p_8kBYx4,7789
6
6
  prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
7
7
  prefect/artifacts.py,sha256=dMBUOAWnUamzjb5HSqwB5-GR2Qb-Gxee26XG5NDCUuw,22720
@@ -13,7 +13,7 @@ prefect/exceptions.py,sha256=-nih8qqdxRm6CX-4yrqwePVh8Mcpvla_V6N_KbdJsIU,11593
13
13
  prefect/filesystems.py,sha256=v5YqGB4uXf9Ew2VuB9VCSkawvYMMVvEtZf7w1VmAmr8,18036
14
14
  prefect/flow_engine.py,sha256=gR44YU7aCAbHEqoMDdxL1SDrtS5Xx1Kzg3M7FWjHcvY,58967
15
15
  prefect/flow_runs.py,sha256=MzjfRFgQwOqUSC3Iuu6E0hWkWdn089Urk6BY3qjEwEE,16113
16
- prefect/flows.py,sha256=cp9TF3pSg73jhkL3SkzaUGbdU9hbsieKz95Wgfk-VA4,108408
16
+ prefect/flows.py,sha256=fE94Xxe2BsVwXoNLkrf57gN4rF-EfK5j1HQrwtXJMKo,108574
17
17
  prefect/futures.py,sha256=NYWGeC8uRGe1WWB1MxkUshdvAdYibhc32HdFjffdiW0,17217
18
18
  prefect/main.py,sha256=hFeTTrr01qWKcRwZVEHVipyHEybS0VLTscFV6zG6GtY,2306
19
19
  prefect/plugins.py,sha256=FPRLR2mWVBMuOnlzeiTD9krlHONZH2rtYLD753JQDNQ,2516
@@ -83,7 +83,7 @@ prefect/client/collections.py,sha256=t9XkVU_onQMZ871L21F1oZnAiPSQeeVfd_MuDEBS3iM
83
83
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
84
84
  prefect/client/subscriptions.py,sha256=TZ7Omv8yeQQIkE6EmWYM78e8p7UdvdTDzcQe91dCU4U,3838
85
85
  prefect/client/utilities.py,sha256=UEJD6nwYg2mD8-GSmru-E2ofXaBlmSFZ2-8T_5rIK6c,3472
86
- prefect/client/orchestration/__init__.py,sha256=uKWE1XNiwrOswgZ1JptffksRlji9PDrLcy8T9ZfNw1g,59596
86
+ prefect/client/orchestration/__init__.py,sha256=tP1zxHgrZaICchYM3mcK4zTUpCCihd-0v5V0lTmGivY,60699
87
87
  prefect/client/orchestration/base.py,sha256=HM6ryHBZSzuHoCFQM9u5qR5k1dN9Bbr_ah6z1UPNbZQ,1542
88
88
  prefect/client/orchestration/routes.py,sha256=JFG1OWUBfrxPKW8Q7XWItlhOrSZ67IOySSoFZ6mxzm0,4364
89
89
  prefect/client/orchestration/_artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -155,7 +155,7 @@ prefect/events/worker.py,sha256=HjbibR0_J1W1nnNMZDFTXAbB0cl_cFGaFI87DvNGcnI,4557
155
155
  prefect/events/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  prefect/events/cli/automations.py,sha256=uCX3NnypoI25TmyAoyL6qYhanWjZbJ2watwv1nfQMxs,11513
157
157
  prefect/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
- prefect/events/schemas/automations.py,sha256=KE6tIQul--KdJhixMYSCBCpoPIEGPgkGraeLAl3kCS0,14538
158
+ prefect/events/schemas/automations.py,sha256=5uYx18sVf8Mqx-KtfcSGli8x4GkNPUHC8LZZfsDzeBo,14568
159
159
  prefect/events/schemas/deployment_triggers.py,sha256=OX9g9eHe0nqJ3PtVEzqs9Ub2LaOHMA4afLZSvSukKGU,3191
160
160
  prefect/events/schemas/events.py,sha256=CLh8nHl8zfy0RKvjVzK3qBg_Oe8opu2qyXpMYXqCnHM,9176
161
161
  prefect/events/schemas/labelling.py,sha256=bU-XYaHXhI2MEBIHngth96R9D02m8HHb85KNcHZ_1Gc,3073
@@ -175,7 +175,7 @@ prefect/locking/filesystem.py,sha256=O67Miiz466fQUu3UmHer9dkWpVL1f8GEX8Lv2lDj0Y8
175
175
  prefect/locking/memory.py,sha256=mFUgV750ywEL7aVQuxFjg9gxbjVU4esBQn7bGQYzeMY,7548
176
176
  prefect/locking/protocol.py,sha256=RsfvlaHTTEJ0YvYWSqFGoZuT2w4FPPxyQlHqjoyNGuE,4240
177
177
  prefect/logging/__init__.py,sha256=zx9f5_dWrR4DbcTOFBpNGOPoCZ1QcPFudr7zxb2XRpA,148
178
- prefect/logging/configuration.py,sha256=QIvmktuAZPteVnh8nd9jUb7vwGGkcUbBLyiti6XmbYM,3242
178
+ prefect/logging/configuration.py,sha256=XyHlC31XT00v3hsDg1KKKmKweb8E5fszVKE7BRQ-ebM,3292
179
179
  prefect/logging/filters.py,sha256=NnRYubh9dMmWcCAjuW32cIVQ37rLxdn8ci26wTtQMyU,1136
180
180
  prefect/logging/formatters.py,sha256=BkPykVyOFKdnhDj_1vhhOoWiHiiBeRnWXPcaRIWK3aI,4125
181
181
  prefect/logging/handlers.py,sha256=pIeS6gvuVnuh3lZ-kIC4ijRMSbVPkHo-rYeLMj5P8NA,12240
@@ -217,7 +217,7 @@ prefect/server/api/middleware.py,sha256=WkyuyeJIfo9Q0GAIVU5gO6yIGNVwoHwuBah5AB5o
217
217
  prefect/server/api/root.py,sha256=CeumFYIM_BDvPicJH9ry5PO_02PZTLeMqbLMGGTh90o,942
218
218
  prefect/server/api/run_history.py,sha256=FHepAgo1AYFeuh7rrAVzo_o3hu8Uc8-4DeH5aD5VGgw,5995
219
219
  prefect/server/api/saved_searches.py,sha256=UjoqLLe245QVIs6q5Vk4vdODCOoYzciEEjhi7B8sYCE,3233
220
- prefect/server/api/server.py,sha256=mAAZ_l0tfcpdnNDvP7-uP8w3f5HkjitpKZlyFBhLrYA,31835
220
+ prefect/server/api/server.py,sha256=W85DhOyIyq5_Cf5ep-YrNd8vF2IB-JzKzqMppIox9Fs,32082
221
221
  prefect/server/api/task_run_states.py,sha256=qlMUR4cH943EVgAkHHwTyHznb613VNa4WErEHdwcU60,1568
222
222
  prefect/server/api/task_runs.py,sha256=_rZXe2ZJDnOr3kf2MfBPMUI3N_6lbcVkJxvl-A1IKDQ,12160
223
223
  prefect/server/api/task_workers.py,sha256=TLvw0DckIqAeIaS3jky9zEF3nT2FII2F7oEE5Kf_13U,950
@@ -234,7 +234,7 @@ prefect/server/api/ui/flows.py,sha256=-g1xKHGBwh59CiILvrK3qlSE9g4boupCh4fl8UvF-i
234
234
  prefect/server/api/ui/schemas.py,sha256=moKeBqG9qdCo6yHoxeDnmvHrGoLCerHc4GMEQwzqleU,2050
235
235
  prefect/server/api/ui/task_runs.py,sha256=9zKN96k9GD5uUzKWNq_l-JA8ui4OqRhjyN7B3V8IHXs,6667
236
236
  prefect/settings/__init__.py,sha256=3jDLzExmq9HsRWo1kTSE16BO_3B3JlVsk5pR0s4PWEQ,2136
237
- prefect/settings/base.py,sha256=IWCFoDLKecoSlEtscwVlBwbC6KgzBHHwYODhLlOdWX8,8821
237
+ prefect/settings/base.py,sha256=e5huXB_cWgw_N6QWuRNSWMjW6B-g261RbiQ-6RoWFVE,9667
238
238
  prefect/settings/constants.py,sha256=5NjVLG1Km9J9I-a6wrq-qmi_dTkPdwEk3IrY9bSxWvw,281
239
239
  prefect/settings/context.py,sha256=yKxnaDJHX8e2jmAVtw1RF9o7X4V3AOcz61sVeQyPX2c,2195
240
240
  prefect/settings/legacy.py,sha256=KG00GwaURl1zbwfCKAjwNRdJjB2UdTyo80gYF7U60jk,5693
@@ -252,14 +252,14 @@ prefect/settings/models/flows.py,sha256=kQ_sCA7TUqaEs9wWuGHkGQOuAIEZ5elD4UzeKRe0
252
252
  prefect/settings/models/internal.py,sha256=KUb16dg3lH5gwlnUnVJub6JHFXHRyZf1voINBvC_Ysc,718
253
253
  prefect/settings/models/logging.py,sha256=Sj9GDNr5QMFaP6CN0WJyfpwhpOk4p1yhv45dyQMRzHM,4729
254
254
  prefect/settings/models/results.py,sha256=VWFplQSSJyc0LXnziw1H5b3N_PDS32QBe_q2MWwYni0,1484
255
- prefect/settings/models/root.py,sha256=iExDLqNnaxNYhdWdRWNHUsMX9O_fMXczrGsNInEpmYY,16466
255
+ prefect/settings/models/root.py,sha256=b9ZamM-BcD75Xsk0pZej3o2ix2kHkTP14hhITveFcTo,16549
256
256
  prefect/settings/models/runner.py,sha256=rD8OmNLwILmqnGe9YkM1dWKsulx3clYm4LI5N9vD5yM,1991
257
257
  prefect/settings/models/tasks.py,sha256=3XSMhOsBFoSOL3e-CL36uOuL-zsl9c3buvTNyGubLWg,3482
258
258
  prefect/settings/models/testing.py,sha256=j9YH_WkB14iEzOjUtTmvY978qRSbgCypFSEi_cOs8no,1820
259
259
  prefect/settings/models/worker.py,sha256=zeDU71aR4CEvEOKyH-1jgEyol8XYe29PExjIC6a8Wv0,1378
260
260
  prefect/settings/models/server/__init__.py,sha256=KJmffmlHb8GYnClaeYcerae-IaeNsNMucKKRRS_zG9Q,33
261
- prefect/settings/models/server/api.py,sha256=jNmPqEg96h6Q8VFVZfLcAFLWRzzTqtCm2n8CvoA2QxY,5073
262
- prefect/settings/models/server/database.py,sha256=dJplrENm6f7Wo1XJ7GVKo5hK58vZrEfYXSJ19NCEUfc,10573
261
+ prefect/settings/models/server/api.py,sha256=fhj9pt6RGtUHkyriaTPto4NnOwJD4XWLdIyxuiJ2Dzk,5202
262
+ prefect/settings/models/server/database.py,sha256=Ilw452gS4L1L4tk53JP-G080JblPVdWzdSVxhfuXcXQ,11156
263
263
  prefect/settings/models/server/deployments.py,sha256=LjWQr2U1mjItYhuuLqMT_QQ7P4KHqC-tKFfA-rEKefs,898
264
264
  prefect/settings/models/server/ephemeral.py,sha256=rh8Py5Nxh-gq9KgfB7CDnIgT_nuOuv59OrLGuhMIGmk,1043
265
265
  prefect/settings/models/server/events.py,sha256=s766htbPv2yx7w-09i8BrtAZ_js--AtHYtvXeK7puIk,5578
@@ -317,7 +317,7 @@ prefect/workers/cloud.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
317
317
  prefect/workers/process.py,sha256=6VWon_LK7fQNLlQTjTBFeU4KFUa4faqP4EUuTvrbtbg,20176
318
318
  prefect/workers/server.py,sha256=SEuyScZ5nGm2OotdtbHjpvqJlTRVWCh29ND7FeL_fZA,1974
319
319
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
320
- prefect_client-3.2.6.dist-info/METADATA,sha256=v5sEVFq8xBfcOCWp8dmFcDP7LkvRoV1IPTY7vfWLy64,7192
321
- prefect_client-3.2.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
322
- prefect_client-3.2.6.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
323
- prefect_client-3.2.6.dist-info/RECORD,,
320
+ prefect_client-3.2.7.dist-info/METADATA,sha256=ivVP_miQGh7GYKttza4VAFCOVhdJEK2vd2UQDXE-Kco,7192
321
+ prefect_client-3.2.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
322
+ prefect_client-3.2.7.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
323
+ prefect_client-3.2.7.dist-info/RECORD,,