diff --git a/pydantic_extra_types/pendulum_dt.py b/pydantic_extra_types/pendulum_dt.py index f507779d..933c310d 100644 --- a/pydantic_extra_types/pendulum_dt.py +++ b/pydantic_extra_types/pendulum_dt.py @@ -5,11 +5,12 @@ try: from pendulum import DateTime as _DateTime - from pendulum import parse + from pendulum import parse, instance except ModuleNotFoundError: # pragma: no cover raise RuntimeError( 'The `pendulum_dt` module requires "pendulum" to be installed. You can install it with "pip install pendulum".' ) +import datetime as dt from typing import Any, List, Type from pydantic import GetCoreSchemaHandler @@ -65,6 +66,8 @@ def _validate(cls, value: Any, handler: core_schema.ValidatorFunctionWrapHandler # if we are passed an existing instance, pass it straight through. if isinstance(value, _DateTime): return handler(value) + elif isinstance(value, dt.datetime): + return instance(value) # otherwise, parse it. try: