core.orm.types.utcdatetime_type

Module Contents

Classes

UTCDateTime

Stores dates as UTC.

Attributes

_Base

core.orm.types.utcdatetime_type._Base[source]
class core.orm.types.utcdatetime_type.UTCDateTime[source]

Bases: _Base

Stores dates as UTC.

Internally, they are stored as timezone naive, because Postgres takes the local timezone into account when working with timezones. Values taken and values returned are forced to be timezone-aware though.

impl[source]
process_bind_param(value: datetime | None, dialect: sqlalchemy.engine.interfaces.Dialect) datetime | None[source]

Receive a bound parameter value to be converted.

Subclasses override this method to return the value that should be passed along to the underlying TypeEngine object, and from there to the DBAPI execute() method.

The operation could be anything desired to perform custom behavior, such as transforming or serializing data. This could also be used as a hook for validating logic.

This operation should be designed with the reverse operation in mind, which would be the process_result_value method of this class.

Parameters:
  • value – Data to operate upon, of any type expected by this method in the subclass. Can be None.

  • dialect – the Dialect in use.

process_result_value(value: datetime | None, dialect: sqlalchemy.engine.interfaces.Dialect) datetime | None[source]

Receive a result-row column value to be converted.

Subclasses should implement this method to operate on data fetched from the database.

Subclasses override this method to return the value that should be passed back to the application, given a value that is already processed by the underlying TypeEngine object, originally from the DBAPI cursor method fetchone() or similar.

The operation could be anything desired to perform custom behavior, such as transforming or serializing data. This could also be used as a hook for validating logic.

Parameters:
  • value – Data to operate upon, of any type expected by this method in the subclass. Can be None.

  • dialect – the Dialect in use.

This operation should be designed to be reversible by the “process_bind_param” method of this class.