Piotr Danielczyk
02/28/2024, 2:33 PMScout
02/28/2024, 2:33 PMConfigurableResource
in Dagster takes a value of datetime
and that the passed value is indeed a datetime
, you can use Pydantic's validation features, as ConfigurableResource
leverages Pydantic for data validation and serialization. Here's a step-by-step guide based on the documentation: 1. Define your ConfigurableResource
subclass and include a field of type datetime
. 2. Use Pydantic's validators to ensure that the value passed to this field is a valid datetime
object. Here's an example code snippet that illustrates how you might define such a resource: python from dagster import ConfigurableResource from pydantic import BaseModel, validator from datetime import datetime class MyDatetimeResource(ConfigurableResource): datetime_field: datetime @validator('datetime_field', pre=True) def check_datetime(cls, value): if not isinstance(value, datetime): raise ValueError(f"The value {value} is not a valid datetime object") return value
In this example, MyDatetimeResource
is a subclass of ConfigurableResource
with a field datetime_field
that is expected to be a datetime
object. The @validator
decorator is used to define a class method that checks whether the provided value is indeed a datetime
object. If it's not, a ValueError
is raised. When you instantiate this resource and provide a configuration, Dagster will use Pydantic's validation mechanism to ensure that the datetime_field
is a valid datetime
object. If the validation fails, an error will be raised, and the resource will not be instantiated with the invalid configuration. Please note that the code example provided is a general illustration based on how Pydantic and Dagster's ConfigurableResource
work together. The actual implementation may vary based on your specific requirements and the version of Dagster you are using. Always refer to the latest Dagster documentation for the most accurate and up-to-date guidance.