heat.db.sqlalchemy.types.
Json
(*args, **kwargs)[source]¶Bases: heat.db.sqlalchemy.types.LongText
process_bind_param
(value, dialect)[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.
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, dialect)[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.
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.
heat.db.sqlalchemy.types.
List
(*args, **kwargs)[source]¶Bases: sqlalchemy.sql.type_api.TypeDecorator
cache_ok
= True¶Indicate if statements using this TypeDecorator
are “safe to
cache”.
The default value None
will emit a warning and then not allow caching
of a statement which includes this type. Set to False
to disable
statements using this type from being cached at all without a warning.
When set to True
, the object’s class and selected elements from its
state will be used as part of the cache key, e.g.:
class MyType(TypeDecorator):
impl = String
cache_ok = True
def __init__(self, choices):
self.choices = tuple(choices)
self.internal_only = True
The cache key for the above type would be equivalent to:
(<class '__main__.MyType'>, ('choices', ('a', 'b', 'c')))
The caching scheme will extract attributes from the type that correspond
to the names of parameters in the __init__()
method. Above, the
“choices” attribute becomes part of the cache key but “internal_only”
does not, because there is no parameter named “internal_only”.
The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value.
New in version 1.4.14: - added the cache_ok
flag to allow
some configurability of caching for TypeDecorator
classes.
See also
impl
¶alias of sqlalchemy.sql.sqltypes.Text
load_dialect_impl
(dialect)[source]¶Return a TypeEngine
object corresponding to a dialect.
This is an end-user override hook that can be used to provide
differing types depending on the given dialect. It is used
by the TypeDecorator
implementation of type_engine()
to help determine what type should ultimately be returned
for a given TypeDecorator
.
By default returns self.impl
.
process_bind_param
(value, dialect)[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.
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, dialect)[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.
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.
heat.db.sqlalchemy.types.
LongText
(*args, **kwargs)[source]¶Bases: sqlalchemy.sql.type_api.TypeDecorator
cache_ok
= True¶Indicate if statements using this TypeDecorator
are “safe to
cache”.
The default value None
will emit a warning and then not allow caching
of a statement which includes this type. Set to False
to disable
statements using this type from being cached at all without a warning.
When set to True
, the object’s class and selected elements from its
state will be used as part of the cache key, e.g.:
class MyType(TypeDecorator):
impl = String
cache_ok = True
def __init__(self, choices):
self.choices = tuple(choices)
self.internal_only = True
The cache key for the above type would be equivalent to:
(<class '__main__.MyType'>, ('choices', ('a', 'b', 'c')))
The caching scheme will extract attributes from the type that correspond
to the names of parameters in the __init__()
method. Above, the
“choices” attribute becomes part of the cache key but “internal_only”
does not, because there is no parameter named “internal_only”.
The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value.
New in version 1.4.14: - added the cache_ok
flag to allow
some configurability of caching for TypeDecorator
classes.
See also
impl
¶alias of sqlalchemy.sql.sqltypes.Text
load_dialect_impl
(dialect)[source]¶Return a TypeEngine
object corresponding to a dialect.
This is an end-user override hook that can be used to provide
differing types depending on the given dialect. It is used
by the TypeDecorator
implementation of type_engine()
to help determine what type should ultimately be returned
for a given TypeDecorator
.
By default returns self.impl
.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.