Esempio n. 1
0
class ECSRunSchema(RunConfigSchemaBase):
    class Meta:
        object_class = ECSRun

    task_definition_path = fields.String(allow_none=True)
    task_definition = JSONCompatible(allow_none=True)
    image = fields.String(allow_none=True)
    env = fields.Dict(keys=fields.String(), allow_none=True)
    cpu = fields.String(allow_none=True)
    memory = fields.String(allow_none=True)
    task_role_arn = fields.String(allow_none=True)
    run_task_kwargs = JSONCompatible(allow_none=True)
Esempio n. 2
0
class RemoteDaskEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = RemoteDaskEnvironment

    address = fields.String()
    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)
Esempio n. 3
0
class CachedSchema(SuccessSchema):
    class Meta:
        object_class = state.Cached

    cached_parameters = JSONCompatible(allow_none=True)
    cached_result_expiration = fields.DateTime(allow_none=True)
    hashed_inputs = fields.Dict(key=fields.Str(), values=fields.Str(), allow_none=True)
Esempio n. 4
0
class IntervalClockSchema(ObjectSchema):
    class Meta:
        object_class = prefect.schedules.clocks.IntervalClock

    start_date = DateTimeTZ(allow_none=True)
    end_date = DateTimeTZ(allow_none=True)
    interval = fields.TimeDelta(precision="microseconds", required=True)
    parameter_defaults = fields.Dict(keys=fields.Str(),
                                     values=JSONCompatible(),
                                     allow_none=True)
    labels = fields.List(fields.Str(), allow_none=True)

    @post_dump
    def _interval_validation(self, data: dict, **kwargs: Any) -> dict:
        """
        Ensures interval is at least one minute in length
        """
        if data["interval"] / 1e6 < 60:
            raise ValueError(
                "Interval can not be less than one minute when deploying to Prefect Cloud."
            )
        return data

    @post_load
    def create_object(self, data: dict, **kwargs: Any):
        if data["interval"].total_seconds() < 60:
            raise ValueError(
                "Interval can not be less than one minute when deploying to Prefect Cloud."
            )
        base_obj = super().create_object(data)
        return base_obj
Esempio n. 5
0
class DatesClockSchema(ObjectSchema):
    class Meta:
        object_class = prefect.schedules.clocks.DatesClock

    dates = fields.List(DateTimeTZ(), required=True)
    parameter_defaults = fields.Dict(
        key=fields.Str(), values=JSONCompatible(), allow_none=True
    )
Esempio n. 6
0
class RemoteEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = RemoteEnvironment

    executor = fields.String(allow_none=True)
    executor_kwargs = fields.Dict(allow_none=True)
    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)
Esempio n. 7
0
class S3Schema(BaseStorageSchema):
    class Meta:
        object_class = S3

    bucket = fields.String(allow_none=False)
    key = fields.String(allow_none=True)
    stored_as_script = fields.Bool(allow_none=True)
    client_options = fields.Dict(keys=fields.Str(),
                                 values=JSONCompatible(),
                                 allow_none=True)
Esempio n. 8
0
class CronClockSchema(ObjectSchema):
    class Meta:
        object_class = prefect.schedules.clocks.CronClock

    start_date = DateTimeTZ(allow_none=True)
    end_date = DateTimeTZ(allow_none=True)
    cron = fields.String(required=True)
    parameter_defaults = fields.Dict(
        key=fields.Str(), values=JSONCompatible(), allow_none=True
    )
Esempio n. 9
0
class DaskKubernetesEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = DaskKubernetesEnvironment

    docker_secret = fields.String(allow_none=True)
    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)
    private_registry = fields.Boolean(allow_none=False)
    min_workers = fields.Int()
    max_workers = fields.Int()
Esempio n. 10
0
class CodeCommitSchema(BaseStorageSchema):
    class Meta:
        object_class = CodeCommit

    repo = fields.String(allow_none=False)
    path = fields.String(allow_none=True)
    commit = fields.String(allow_none=True)
    client_options = fields.Dict(keys=fields.Str(),
                                 values=JSONCompatible(),
                                 allow_none=True)
Esempio n. 11
0
class RRuleClockSchema(ObjectSchema):
    class Meta:
        object_class = prefect.schedules.clocks.RRuleClock

    rrule_obj = fields.Nested(RRuleBaseSchema)
    start_date = DateTimeTZ(allow_none=True)
    end_date = DateTimeTZ(allow_none=True)
    parameter_defaults = fields.Dict(keys=fields.Str(),
                                     values=JSONCompatible(),
                                     allow_none=True)
    labels = fields.List(fields.Str(), allow_none=True)
Esempio n. 12
0
class KubernetesRunSchema(RunConfigSchemaBase):
    class Meta:
        object_class = KubernetesRun

    job_template_path = fields.String(allow_none=True)
    job_template = JSONCompatible(allow_none=True)
    image = fields.String(allow_none=True)
    env = fields.Dict(keys=fields.String(), allow_none=True)
    cpu_limit = fields.String(allow_none=True)
    cpu_request = fields.String(allow_none=True)
    memory_limit = fields.String(allow_none=True)
    memory_request = fields.String(allow_none=True)
Esempio n. 13
0
class ParameterSchema(TaskMethodsMixin, ObjectSchema):
    class Meta:
        object_class = lambda: prefect.core.task.Parameter  # type: ignore
        exclude_fields = ["type", "outputs", "slug"]

    type = fields.Function(lambda task: to_qualified_name(type(task)), lambda x: x)
    name = fields.String(required=True)
    slug = fields.String(allow_none=True)
    default = JSONCompatible(allow_none=True)
    required = fields.Boolean(allow_none=True)
    description = fields.String(allow_none=True)
    tags = fields.List(fields.String())
    outputs = fields.Method("load_outputs", allow_none=True)
Esempio n. 14
0
class KubernetesRunSchema(RunConfigSchemaBase):
    class Meta:
        object_class = KubernetesRun

    job_template_path = fields.String(allow_none=True)
    job_template = JSONCompatible(allow_none=True)
    image = fields.String(allow_none=True)
    cpu_limit = fields.String(allow_none=True)
    cpu_request = fields.String(allow_none=True)
    memory_limit = fields.String(allow_none=True)
    memory_request = fields.String(allow_none=True)
    service_account_name = fields.String(allow_none=True)
    image_pull_secrets = fields.List(fields.String(), allow_none=True)
Esempio n. 15
0
class CachedSchema(SuccessSchema):
    class Meta:
        object_class = state.Cached

    cached_inputs = fields.Dict(
        key=fields.Str(),
        values=Nested(StateResultSchema,
                      value_selection_fn=get_safe,
                      attr="cached_inputs"),
        allow_none=True,
    )
    cached_parameters = JSONCompatible(allow_none=True)
    cached_result_expiration = fields.DateTime(allow_none=True)
Esempio n. 16
0
class S3Schema(ObjectSchema):
    class Meta:
        object_class = S3

    bucket = fields.String(allow_none=False)
    key = fields.String(allow_none=True)
    flows = fields.Dict(key=fields.Str(), values=fields.Str())
    client_options = fields.Dict(key=fields.Str(),
                                 values=JSONCompatible(),
                                 allow_none=True)

    @post_load
    def create_object(self, data: dict, **kwargs: Any) -> S3:
        flows = data.pop("flows", dict())
        base_obj = super().create_object(data)
        base_obj.flows = flows
        return base_obj
Esempio n. 17
0
class BaseStateSchema(ObjectSchema):
    class Meta:
        object_class = state.State

    context = fields.Dict(key=fields.Str(),
                          values=JSONCompatible(),
                          allow_none=True)
    message = fields.String(allow_none=True)
    _result = Nested(StateResultSchema,
                     allow_none=False,
                     value_selection_fn=get_safe)

    @post_load
    def create_object(self, data: dict, **kwargs: Any) -> state.State:
        result_obj = data.pop("_result", result.NoResult)
        data["result"] = result_obj
        base_obj = super().create_object(data)
        return base_obj
Esempio n. 18
0
class CustomEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = lambda: Environment
        exclude_fields = ["type"]

    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)

    type = fields.Function(
        lambda environment: to_qualified_name(type(environment)), lambda x: x
    )

    @post_load
    def create_object(self, data: dict, **kwargs: Any) -> Environment:
        """
        Because we cannot deserialize a custom class, we return an empty
        Base Environment with the appropriate labels.
        """
        return Environment(labels=data.get("labels"), metadata=data.get("metadata"))
Esempio n. 19
0
class CodeCommitSchema(ObjectSchema):
    class Meta:
        object_class = CodeCommit

    repo = fields.String(allow_none=False)
    path = fields.String(allow_none=True)
    commit = fields.String(allow_none=True)
    client_options = fields.Dict(
        key=fields.Str(), values=JSONCompatible(), allow_none=True
    )
    flows = fields.Dict(key=fields.Str(), values=fields.Str())
    secrets = fields.List(fields.Str(), allow_none=True)

    @post_load
    def create_object(self, data: dict, **kwargs: Any) -> CodeCommit:
        flows = data.pop("flows", dict())
        base_obj = super().create_object(data)
        base_obj.flows = flows
        return base_obj
Esempio n. 20
0
class LocalEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = LocalEnvironment

    labels = fields.List(fields.String())
    metadata = JSONCompatible(allow_none=True)
Esempio n. 21
0
class FargateTaskEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = FargateTaskEnvironment

    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)
Esempio n. 22
0
class KubernetesJobEnvironmentSchema(ObjectSchema):
    class Meta:
        object_class = KubernetesJobEnvironment

    labels = SortedList(fields.String())
    metadata = JSONCompatible(allow_none=True)
Esempio n. 23
0
class SafeResultSchema(ObjectSchema):
    class Meta:
        object_class = result.SafeResult

    value = JSONCompatible(allow_none=True)
    result_handler = fields.Nested(ResultHandlerSchema, allow_none=False)
Esempio n. 24
0
class CachedSchema(SuccessSchema):
    class Meta:
        object_class = state.Cached

    cached_parameters = JSONCompatible(allow_none=True)
    cached_result_expiration = fields.DateTime(allow_none=True)
Esempio n. 25
0
 class Schema(marshmallow.Schema):
     j = JSONCompatible()