prefect-client 3.0.0rc14__py3-none-any.whl → 3.0.0rc16__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.
@@ -16,7 +16,6 @@ import warnings
16
16
  from typing import Any, Callable, List, Optional, Type, TypeVar
17
17
 
18
18
  import pendulum
19
- import wrapt
20
19
  from pydantic import BaseModel
21
20
 
22
21
  from prefect.utilities.callables import get_call_parameters
@@ -273,55 +272,3 @@ def register_renamed_module(old_name: str, new_name: str, start_date: str):
273
272
  DEPRECATED_MODULE_ALIASES.append(
274
273
  AliasedModuleDefinition(old_name, new_name, callback)
275
274
  )
276
-
277
-
278
- class AsyncCompatProxy(wrapt.ObjectProxy):
279
- """
280
- A proxy object that allows for awaiting a method that is no longer async.
281
-
282
- See https://wrapt.readthedocs.io/en/master/wrappers.html#object-proxy for more
283
- """
284
-
285
- def __init__(self, wrapped, class_name: str, method_name: str):
286
- super().__init__(wrapped)
287
- self._self_class_name = class_name
288
- self._self_method_name = method_name
289
- self._self_already_awaited = False
290
-
291
- def __await__(self):
292
- if not self._self_already_awaited:
293
- warnings.warn(
294
- (
295
- f"The {self._self_method_name!r} method on {self._self_class_name!r}"
296
- " is no longer async and awaiting it will raise an error after Dec 2024"
297
- " - please remove the `await` keyword."
298
- ),
299
- DeprecationWarning,
300
- stacklevel=2,
301
- )
302
- self._self_already_awaited = True
303
- yield
304
- return self.__wrapped__
305
-
306
- def __repr__(self):
307
- return repr(self.__wrapped__)
308
-
309
- def __reduce_ex__(self, protocol):
310
- return (
311
- type(self),
312
- (self.__wrapped__,),
313
- {"_self_already_awaited": self._self_already_awaited},
314
- )
315
-
316
-
317
- def deprecated_async_method(wrapped):
318
- """Decorator that wraps a sync method to allow awaiting it even though it is no longer async."""
319
-
320
- @wrapt.decorator
321
- def wrapper(wrapped, instance, args, kwargs):
322
- result = wrapped(*args, **kwargs)
323
- return AsyncCompatProxy(
324
- result, class_name=instance.__class__.__name__, method_name=wrapped.__name__
325
- )
326
-
327
- return wrapper(wrapped)
@@ -7,7 +7,6 @@ This will be subject to consolidation and refactoring over the next few months.
7
7
  """
8
8
 
9
9
  import json
10
- import logging
11
10
  import re
12
11
  import urllib.parse
13
12
  import warnings
@@ -21,7 +20,6 @@ import yaml
21
20
  from pydantic_extra_types.pendulum_dt import DateTime
22
21
 
23
22
  from prefect.exceptions import InvalidRepositoryURLError
24
- from prefect.utilities.annotations import NotSet
25
23
  from prefect.utilities.collections import isiterable
26
24
  from prefect.utilities.dockerutils import get_prefect_image_name
27
25
  from prefect.utilities.filesystem import relative_path_to_current_platform
@@ -219,96 +217,18 @@ def convert_to_strings(value: Union[Any, List[Any]]) -> Union[str, List[str]]:
219
217
  ### SCHEDULE SCHEMA VALIDATORS ###
220
218
 
221
219
 
222
- def validate_deprecated_schedule_fields(values: dict, logger: logging.Logger) -> dict:
223
- """
224
- Validate and log deprecation warnings for deprecated schedule fields.
225
- """
226
- if values.get("schedule") and not values.get("schedules"):
227
- logger.warning(
228
- "The field 'schedule' in 'Deployment' has been deprecated. It will not be "
229
- "available after Sep 2024. Define schedules in the `schedules` list instead."
230
- )
231
- elif values.get("is_schedule_active") and not values.get("schedules"):
232
- logger.warning(
233
- "The field 'is_schedule_active' in 'Deployment' has been deprecated. It will "
234
- "not be available after Sep 2024. Use the `active` flag within a schedule in "
235
- "the `schedules` list instead and the `pause` flag in 'Deployment' to pause "
236
- "all schedules."
237
- )
238
- return values
239
-
240
-
241
- def reconcile_schedules(cls, values: dict) -> dict:
242
- """
243
- Reconcile the `schedule` and `schedules` fields in a deployment.
244
- """
245
-
246
- from prefect.deployments.schedules import (
247
- create_deployment_schedule_create,
248
- normalize_to_deployment_schedule_create,
249
- )
250
-
251
- schedule = values.get("schedule", NotSet)
252
- schedules = values.get("schedules", NotSet)
253
-
254
- if schedules is not NotSet:
255
- values["schedules"] = normalize_to_deployment_schedule_create(schedules)
256
- elif schedule is not NotSet:
257
- values["schedule"] = None
258
-
259
- if schedule is None:
260
- values["schedules"] = []
261
- else:
262
- values["schedules"] = [
263
- create_deployment_schedule_create(
264
- schedule=schedule, active=values.get("is_schedule_active")
265
- )
266
- ]
267
-
268
- for schedule in values.get("schedules", []):
269
- cls._validate_schedule(schedule.schedule)
270
-
271
- return values
272
-
273
-
274
- # TODO: consolidate with above if possible
275
220
  def reconcile_schedules_runner(values: dict) -> dict:
276
- """
277
- Similar to above, we reconcile the `schedule` and `schedules` fields in a deployment.
278
- """
279
221
  from prefect.deployments.schedules import (
280
- create_deployment_schedule_create,
281
222
  normalize_to_deployment_schedule_create,
282
223
  )
283
224
 
284
- schedule = values.get("schedule")
285
225
  schedules = values.get("schedules")
286
-
287
- if schedules is None and schedule is not None:
288
- values["schedules"] = [create_deployment_schedule_create(schedule)]
289
- elif schedules is not None and len(schedules) > 0:
226
+ if schedules is not None and len(schedules) > 0:
290
227
  values["schedules"] = normalize_to_deployment_schedule_create(schedules)
291
228
 
292
229
  return values
293
230
 
294
231
 
295
- def set_deployment_schedules(values: dict) -> dict:
296
- from prefect.server.schemas.actions import DeploymentScheduleCreate
297
-
298
- if not values.get("schedules") and values.get("schedule"):
299
- kwargs = {
300
- key: values[key]
301
- for key in ["schedule", "is_schedule_active"]
302
- if key in values
303
- }
304
- if "is_schedule_active" in kwargs:
305
- kwargs["active"] = kwargs.pop("is_schedule_active")
306
-
307
- values["schedules"] = [DeploymentScheduleCreate(**kwargs)]
308
-
309
- return values
310
-
311
-
312
232
  def validate_schedule_max_scheduled_runs(v: Optional[int], limit: int) -> Optional[int]:
313
233
  if v is not None and v > limit:
314
234
  raise ValueError(f"`max_scheduled_runs` must be less than or equal to {limit}.")
@@ -350,17 +270,9 @@ def remove_old_deployment_fields(values: dict) -> dict:
350
270
 
351
271
  def reconcile_paused_deployment(values):
352
272
  paused = values.get("paused")
353
- is_schedule_active = values.get("is_schedule_active")
354
-
355
- if paused is not None:
356
- values["paused"] = paused
357
- values["is_schedule_active"] = not paused
358
- elif is_schedule_active is not None:
359
- values["paused"] = not is_schedule_active
360
- values["is_schedule_active"] = is_schedule_active
361
- else:
273
+
274
+ if paused is None:
362
275
  values["paused"] = False
363
- values["is_schedule_active"] = True
364
276
 
365
277
  return values
366
278
 
@@ -86,7 +86,6 @@ from prefect.client.schemas.objects import (
86
86
  BlockType,
87
87
  ConcurrencyLimit,
88
88
  Constant,
89
- Deployment,
90
89
  DeploymentSchedule,
91
90
  Flow,
92
91
  FlowRunInput,
@@ -1599,7 +1598,6 @@ class PrefectClient:
1599
1598
  flow_id: UUID,
1600
1599
  name: str,
1601
1600
  version: Optional[str] = None,
1602
- schedule: Optional[SCHEDULE_TYPES] = None,
1603
1601
  schedules: Optional[List[DeploymentScheduleCreate]] = None,
1604
1602
  parameters: Optional[Dict[str, Any]] = None,
1605
1603
  description: Optional[str] = None,
@@ -1611,7 +1609,6 @@ class PrefectClient:
1611
1609
  entrypoint: Optional[str] = None,
1612
1610
  infrastructure_document_id: Optional[UUID] = None,
1613
1611
  parameter_openapi_schema: Optional[Dict[str, Any]] = None,
1614
- is_schedule_active: Optional[bool] = None,
1615
1612
  paused: Optional[bool] = None,
1616
1613
  pull_steps: Optional[List[dict]] = None,
1617
1614
  enforce_parameter_schema: Optional[bool] = None,
@@ -1624,7 +1621,6 @@ class PrefectClient:
1624
1621
  flow_id: the flow ID to create a deployment for
1625
1622
  name: the name of the deployment
1626
1623
  version: an optional version string for the deployment
1627
- schedule: an optional schedule to apply to the deployment
1628
1624
  tags: an optional list of tags to apply to the deployment
1629
1625
  storage_document_id: an reference to the storage block document
1630
1626
  used for the deployed flow
@@ -1658,9 +1654,7 @@ class PrefectClient:
1658
1654
  infrastructure_document_id=infrastructure_document_id,
1659
1655
  job_variables=dict(job_variables or {}),
1660
1656
  parameter_openapi_schema=parameter_openapi_schema,
1661
- is_schedule_active=is_schedule_active,
1662
1657
  paused=paused,
1663
- schedule=schedule,
1664
1658
  schedules=schedules or [],
1665
1659
  pull_steps=pull_steps,
1666
1660
  enforce_parameter_schema=enforce_parameter_schema,
@@ -1676,9 +1670,6 @@ class PrefectClient:
1676
1670
  if field not in deployment_create.model_fields_set
1677
1671
  }
1678
1672
 
1679
- if deployment_create.is_schedule_active is None:
1680
- exclude.add("is_schedule_active")
1681
-
1682
1673
  if deployment_create.paused is None:
1683
1674
  exclude.add("paused")
1684
1675
 
@@ -1699,12 +1690,6 @@ class PrefectClient:
1699
1690
 
1700
1691
  return UUID(deployment_id)
1701
1692
 
1702
- async def update_schedule(self, deployment_id: UUID, active: bool = True):
1703
- path = "set_schedule_active" if active else "set_schedule_inactive"
1704
- await self._client.post(
1705
- f"/deployments/{deployment_id}/{path}",
1706
- )
1707
-
1708
1693
  async def set_deployment_paused_state(self, deployment_id: UUID, paused: bool):
1709
1694
  await self._client.patch(
1710
1695
  f"/deployments/{deployment_id}", json={"paused": paused}
@@ -1712,40 +1697,12 @@ class PrefectClient:
1712
1697
 
1713
1698
  async def update_deployment(
1714
1699
  self,
1715
- deployment: Deployment,
1716
- schedule: SCHEDULE_TYPES = None,
1717
- is_schedule_active: Optional[bool] = None,
1700
+ deployment_id: UUID,
1701
+ deployment: DeploymentUpdate,
1718
1702
  ):
1719
- deployment_update = DeploymentUpdate(
1720
- version=deployment.version,
1721
- schedule=schedule if schedule is not None else deployment.schedule,
1722
- is_schedule_active=(
1723
- is_schedule_active
1724
- if is_schedule_active is not None
1725
- else deployment.is_schedule_active
1726
- ),
1727
- description=deployment.description,
1728
- work_queue_name=deployment.work_queue_name,
1729
- tags=deployment.tags,
1730
- path=deployment.path,
1731
- entrypoint=deployment.entrypoint,
1732
- parameters=deployment.parameters,
1733
- storage_document_id=deployment.storage_document_id,
1734
- infrastructure_document_id=deployment.infrastructure_document_id,
1735
- job_variables=deployment.job_variables,
1736
- enforce_parameter_schema=deployment.enforce_parameter_schema,
1737
- )
1738
-
1739
- if getattr(deployment, "work_pool_name", None) is not None:
1740
- deployment_update.work_pool_name = deployment.work_pool_name
1741
-
1742
- exclude = set()
1743
- if deployment.enforce_parameter_schema is None:
1744
- exclude.add("enforce_parameter_schema")
1745
-
1746
1703
  await self._client.patch(
1747
- f"/deployments/{deployment.id}",
1748
- json=deployment_update.model_dump(mode="json", exclude=exclude),
1704
+ f"/deployments/{deployment_id}",
1705
+ json=deployment.model_dump(mode="json", exclude_unset=True),
1749
1706
  )
1750
1707
 
1751
1708
  async def _create_deployment_from_schema(self, schema: DeploymentCreate) -> UUID:
@@ -11,7 +11,6 @@ from prefect._internal.schemas.bases import ActionBaseModel
11
11
  from prefect._internal.schemas.validators import (
12
12
  convert_to_strings,
13
13
  remove_old_deployment_fields,
14
- return_none_schedule,
15
14
  validate_artifact_key,
16
15
  validate_block_document_name,
17
16
  validate_block_type_slug,
@@ -153,7 +152,6 @@ class DeploymentCreate(ActionBaseModel):
153
152
 
154
153
  name: str = Field(..., description="The name of the deployment.")
155
154
  flow_id: UUID = Field(..., description="The ID of the flow to deploy.")
156
- is_schedule_active: Optional[bool] = Field(None)
157
155
  paused: Optional[bool] = Field(None)
158
156
  schedules: List[DeploymentScheduleCreate] = Field(
159
157
  default_factory=list,
@@ -181,7 +179,6 @@ class DeploymentCreate(ActionBaseModel):
181
179
  )
182
180
  storage_document_id: Optional[UUID] = Field(None)
183
181
  infrastructure_document_id: Optional[UUID] = Field(None)
184
- schedule: Optional[SCHEDULE_TYPES] = Field(None)
185
182
  description: Optional[str] = Field(None)
186
183
  path: Optional[str] = Field(None)
187
184
  version: Optional[str] = Field(None)
@@ -219,19 +216,19 @@ class DeploymentUpdate(ActionBaseModel):
219
216
  def remove_old_fields(cls, values):
220
217
  return remove_old_deployment_fields(values)
221
218
 
222
- @field_validator("schedule")
223
- @classmethod
224
- def validate_none_schedule(cls, v):
225
- return return_none_schedule(v)
226
-
227
219
  version: Optional[str] = Field(None)
228
- schedule: Optional[SCHEDULE_TYPES] = Field(None)
229
220
  description: Optional[str] = Field(None)
230
- is_schedule_active: bool = Field(None)
231
221
  parameters: Optional[Dict[str, Any]] = Field(
232
222
  default=None,
233
223
  description="Parameters for flow runs scheduled by the deployment.",
234
224
  )
225
+ paused: Optional[bool] = Field(
226
+ default=None, description="Whether or not the deployment is paused."
227
+ )
228
+ schedules: Optional[List[DeploymentScheduleCreate]] = Field(
229
+ default=None,
230
+ description="A list of schedules for the deployment.",
231
+ )
235
232
  tags: List[str] = Field(default_factory=list)
236
233
  work_queue_name: Optional[str] = Field(None)
237
234
  work_pool_name: Optional[str] = Field(
@@ -489,15 +489,6 @@ class DeploymentFilterWorkQueueName(PrefectBaseModel):
489
489
  )
490
490
 
491
491
 
492
- class DeploymentFilterIsScheduleActive(PrefectBaseModel):
493
- """Filter by `Deployment.is_schedule_active`."""
494
-
495
- eq_: Optional[bool] = Field(
496
- default=None,
497
- description="Only returns where deployment schedule is/is not active",
498
- )
499
-
500
-
501
492
  class DeploymentFilterTags(PrefectBaseModel, OperatorMixin):
502
493
  """Filter by `Deployment.tags`."""
503
494
 
@@ -523,9 +514,6 @@ class DeploymentFilter(PrefectBaseModel, OperatorMixin):
523
514
  name: Optional[DeploymentFilterName] = Field(
524
515
  default=None, description="Filter criteria for `Deployment.name`"
525
516
  )
526
- is_schedule_active: Optional[DeploymentFilterIsScheduleActive] = Field(
527
- default=None, description="Filter criteria for `Deployment.is_schedule_active`"
528
- )
529
517
  tags: Optional[DeploymentFilterTags] = Field(
530
518
  default=None, description="Filter criteria for `Deployment.tags`"
531
519
  )
@@ -993,12 +993,6 @@ class Deployment(ObjectBaseModel):
993
993
  flow_id: UUID = Field(
994
994
  default=..., description="The flow id associated with the deployment."
995
995
  )
996
- schedule: Optional[SCHEDULE_TYPES] = Field(
997
- default=None, description="A schedule for the deployment."
998
- )
999
- is_schedule_active: bool = Field(
1000
- default=True, description="Whether or not the deployment schedule is active."
1001
- )
1002
996
  paused: bool = Field(
1003
997
  default=False, description="Whether or not the deployment is paused."
1004
998
  )
@@ -9,7 +9,6 @@ from typing_extensions import Literal
9
9
  import prefect.client.schemas.objects as objects
10
10
  from prefect._internal.schemas.bases import ObjectBaseModel, PrefectBaseModel
11
11
  from prefect._internal.schemas.fields import CreatedBy, UpdatedBy
12
- from prefect.client.schemas.schedules import SCHEDULE_TYPES
13
12
  from prefect.utilities.collections import AutoEnum
14
13
  from prefect.utilities.names import generate_slug
15
14
 
@@ -314,12 +313,6 @@ class DeploymentResponse(ObjectBaseModel):
314
313
  flow_id: UUID = Field(
315
314
  default=..., description="The flow id associated with the deployment."
316
315
  )
317
- schedule: Optional[SCHEDULE_TYPES] = Field(
318
- default=None, description="A schedule for the deployment."
319
- )
320
- is_schedule_active: bool = Field(
321
- default=True, description="Whether or not the deployment schedule is active."
322
- )
323
316
  paused: bool = Field(
324
317
  default=False, description="Whether or not the deployment is paused."
325
318
  )
prefect/context.py CHANGED
@@ -91,11 +91,12 @@ def hydrated_context(
91
91
  client = client or get_client(sync_client=True)
92
92
  if flow_run_context := serialized_context.get("flow_run_context"):
93
93
  flow = flow_run_context["flow"]
94
+ task_runner = stack.enter_context(flow.task_runner.duplicate())
94
95
  flow_run_context = FlowRunContext(
95
96
  **flow_run_context,
96
97
  client=client,
97
98
  result_factory=run_coro_as_sync(ResultFactory.from_flow(flow)),
98
- task_runner=flow.task_runner.duplicate(),
99
+ task_runner=task_runner,
99
100
  detached=True,
100
101
  )
101
102
  stack.enter_context(flow_run_context)
@@ -258,15 +258,6 @@ def _format_deployment_for_saving_to_prefect_file(
258
258
  # Only want entrypoint to avoid errors
259
259
  deployment.pop("flow_name", None)
260
260
 
261
- if deployment.get("schedule"):
262
- if isinstance(deployment["schedule"], IntervalSchedule):
263
- deployment["schedule"] = _interval_schedule_to_dict(deployment["schedule"])
264
- else: # all valid SCHEDULE_TYPES are subclasses of BaseModel
265
- deployment["schedule"] = deployment["schedule"].model_dump()
266
-
267
- if "is_schedule_active" in deployment:
268
- deployment["schedule"]["active"] = deployment.pop("is_schedule_active")
269
-
270
261
  if deployment.get("schedules"):
271
262
  schedules = []
272
263
  for deployment_schedule in cast(
@@ -106,7 +106,6 @@ class RunnerDeployment(BaseModel):
106
106
  are used only for organizational purposes. For delegating work to agents,
107
107
  see `work_queue_name`.
108
108
  schedule: A schedule to run this deployment on, once registered
109
- is_schedule_active: Whether or not the schedule is active
110
109
  parameters: A dictionary of parameter values to pass to runs created from this
111
110
  deployment
112
111
  path: The path to the working directory for the workflow, relative to remote
@@ -144,13 +143,9 @@ class RunnerDeployment(BaseModel):
144
143
  default=None,
145
144
  description="The schedules that should cause this deployment to run.",
146
145
  )
147
- schedule: Optional[SCHEDULE_TYPES] = None
148
146
  paused: Optional[bool] = Field(
149
147
  default=None, description="Whether or not the deployment is paused."
150
148
  )
151
- is_schedule_active: Optional[bool] = Field(
152
- default=None, description="DEPRECATED: Whether or not the schedule is active."
153
- )
154
149
  parameters: Dict[str, Any] = Field(default_factory=dict)
155
150
  entrypoint: Optional[str] = Field(
156
151
  default=None,
@@ -383,7 +378,7 @@ class RunnerDeployment(BaseModel):
383
378
  )
384
379
  if num_schedules > 1:
385
380
  raise ValueError(
386
- "Only one of interval, cron, rrule, schedule, or schedules can be provided."
381
+ "Only one of interval, cron, rrule, or schedules can be provided."
387
382
  )
388
383
  elif num_schedules == 0:
389
384
  return []
@@ -437,8 +432,6 @@ class RunnerDeployment(BaseModel):
437
432
  rrule: Optional[Union[Iterable[str], str]] = None,
438
433
  paused: Optional[bool] = None,
439
434
  schedules: Optional["FlexibleScheduleList"] = None,
440
- schedule: Optional[SCHEDULE_TYPES] = None,
441
- is_schedule_active: Optional[bool] = None,
442
435
  parameters: Optional[dict] = None,
443
436
  triggers: Optional[List[Union[DeploymentTriggerTypes, TriggerTypes]]] = None,
444
437
  description: Optional[str] = None,
@@ -463,11 +456,6 @@ class RunnerDeployment(BaseModel):
463
456
  paused: Whether or not to set this deployment as paused.
464
457
  schedules: A list of schedule objects defining when to execute runs of this deployment.
465
458
  Used to define multiple schedules or additional scheduling options like `timezone`.
466
- schedule: A schedule object of when to execute runs of this flow. Used for
467
- advanced scheduling options like timezone.
468
- is_schedule_active: Whether or not to set the schedule for this deployment as active. If
469
- not provided when creating a deployment, the schedule will be set as active. If not
470
- provided when updating a deployment, the schedule's activation will not be changed.
471
459
  triggers: A list of triggers that should kick of a run of this flow.
472
460
  parameters: A dictionary of default parameter values to pass to runs of this flow.
473
461
  description: A description for the created deployment. Defaults to the flow's
@@ -488,7 +476,6 @@ class RunnerDeployment(BaseModel):
488
476
  interval=interval,
489
477
  cron=cron,
490
478
  rrule=rrule,
491
- schedule=schedule,
492
479
  schedules=schedules,
493
480
  )
494
481
 
@@ -497,9 +484,7 @@ class RunnerDeployment(BaseModel):
497
484
  deployment = cls(
498
485
  name=Path(name).stem,
499
486
  flow_name=flow.name,
500
- schedule=schedule,
501
487
  schedules=constructed_schedules,
502
- is_schedule_active=is_schedule_active,
503
488
  paused=paused,
504
489
  tags=tags or [],
505
490
  triggers=triggers or [],
@@ -573,8 +558,6 @@ class RunnerDeployment(BaseModel):
573
558
  rrule: Optional[Union[Iterable[str], str]] = None,
574
559
  paused: Optional[bool] = None,
575
560
  schedules: Optional["FlexibleScheduleList"] = None,
576
- schedule: Optional[SCHEDULE_TYPES] = None,
577
- is_schedule_active: Optional[bool] = None,
578
561
  parameters: Optional[dict] = None,
579
562
  triggers: Optional[List[Union[DeploymentTriggerTypes, TriggerTypes]]] = None,
580
563
  description: Optional[str] = None,
@@ -599,11 +582,6 @@ class RunnerDeployment(BaseModel):
599
582
  paused: Whether or not to set this deployment as paused.
600
583
  schedules: A list of schedule objects defining when to execute runs of this deployment.
601
584
  Used to define multiple schedules or additional scheduling options like `timezone`.
602
- schedule: A schedule object of when to execute runs of this flow. Used for
603
- advanced scheduling options like timezone.
604
- is_schedule_active: Whether or not to set the schedule for this deployment as active. If
605
- not provided when creating a deployment, the schedule will be set as active. If not
606
- provided when updating a deployment, the schedule's activation will not be changed.
607
585
  triggers: A list of triggers that should kick of a run of this flow.
608
586
  parameters: A dictionary of default parameter values to pass to runs of this flow.
609
587
  description: A description for the created deployment. Defaults to the flow's
@@ -629,17 +607,14 @@ class RunnerDeployment(BaseModel):
629
607
  interval=interval,
630
608
  cron=cron,
631
609
  rrule=rrule,
632
- schedule=schedule,
633
610
  schedules=schedules,
634
611
  )
635
612
 
636
613
  deployment = cls(
637
614
  name=Path(name).stem,
638
615
  flow_name=flow.name,
639
- schedule=schedule,
640
616
  schedules=constructed_schedules,
641
617
  paused=paused,
642
- is_schedule_active=is_schedule_active,
643
618
  tags=tags or [],
644
619
  triggers=triggers or [],
645
620
  parameters=parameters or {},
@@ -671,8 +646,6 @@ class RunnerDeployment(BaseModel):
671
646
  rrule: Optional[Union[Iterable[str], str]] = None,
672
647
  paused: Optional[bool] = None,
673
648
  schedules: Optional["FlexibleScheduleList"] = None,
674
- schedule: Optional[SCHEDULE_TYPES] = None,
675
- is_schedule_active: Optional[bool] = None,
676
649
  parameters: Optional[dict] = None,
677
650
  triggers: Optional[List[Union[DeploymentTriggerTypes, TriggerTypes]]] = None,
678
651
  description: Optional[str] = None,
@@ -697,11 +670,6 @@ class RunnerDeployment(BaseModel):
697
670
  or a timedelta object. If a number is given, it will be interpreted as seconds.
698
671
  cron: A cron schedule of when to execute runs of this flow.
699
672
  rrule: An rrule schedule of when to execute runs of this flow.
700
- schedule: A schedule object of when to execute runs of this flow. Used for
701
- advanced scheduling options like timezone.
702
- is_schedule_active: Whether or not to set the schedule for this deployment as active. If
703
- not provided when creating a deployment, the schedule will be set as active. If not
704
- provided when updating a deployment, the schedule's activation will not be changed.
705
673
  triggers: A list of triggers that should kick of a run of this flow.
706
674
  parameters: A dictionary of default parameter values to pass to runs of this flow.
707
675
  description: A description for the created deployment. Defaults to the flow's
@@ -724,7 +692,6 @@ class RunnerDeployment(BaseModel):
724
692
  interval=interval,
725
693
  cron=cron,
726
694
  rrule=rrule,
727
- schedule=schedule,
728
695
  schedules=schedules,
729
696
  )
730
697
 
@@ -742,10 +709,8 @@ class RunnerDeployment(BaseModel):
742
709
  deployment = cls(
743
710
  name=Path(name).stem,
744
711
  flow_name=flow.name,
745
- schedule=schedule,
746
712
  schedules=constructed_schedules,
747
713
  paused=paused,
748
- is_schedule_active=is_schedule_active,
749
714
  tags=tags or [],
750
715
  triggers=triggers or [],
751
716
  parameters=parameters or {},