 
	
		Vous êtes un professionnel et vous avez besoin d'une formation ?
		Deep Learning avec Python
et Keras et Tensorflow
		Voir le programme détaillé	
	
	
    
            Module « sqlalchemy »
            
    
            Classe « TypeDecorator »
            
            Informations générales
            
            Héritage
builtins.object
    Generic
builtins.object
    Visitable
        TypeEngine
builtins.object
    TypeEngineMixin
        ExternalType
builtins.object
    EventTarget
        SchemaEventTarget
            TypeDecorator
Définition
class TypeDecorator(SchemaEventTarget, ExternalType, TypeEngine):
help(TypeDecorator)
Allows the creation of types which add additional functionality
to an existing type.
This method is preferred to direct subclassing of SQLAlchemy's
built-in types as it ensures that all required functionality of
the underlying type is kept in place.
Typical usage::
  import sqlalchemy.types as types
  class MyType(types.TypeDecorator):
      """Prefixes Unicode values with "PREFIX:" on the way in and
      strips it off on the way out.
      """
      impl = types.Unicode
      cache_ok = True
      def process_bind_param(self, value, dialect):
          return "PREFIX:" + value
      def process_result_value(self, value, dialect):
          return value[7:]
      def copy(self, **kw):
          return MyType(self.impl.length)
The class-level ``impl`` attribute is required, and can reference any
:class:`.TypeEngine` class.  Alternatively, the :meth:`load_dialect_impl`
method can be used to provide different type classes based on the dialect
given; in this case, the ``impl`` variable can reference
``TypeEngine`` as a placeholder.
The :attr:`.TypeDecorator.cache_ok` class-level flag indicates if this
custom :class:`.TypeDecorator` is safe to be used as part of a cache key.
This flag defaults to ``None`` which will initially generate a warning
when the SQL compiler attempts to generate a cache key for a statement
that uses this type.  If the :class:`.TypeDecorator` is not guaranteed
to produce the same bind/result behavior and SQL generation
every time, this flag should be set to ``False``; otherwise if the
class produces the same behavior each time, it may be set to ``True``.
See :attr:`.TypeDecorator.cache_ok` for further notes on how this works.
Types that receive a Python type that isn't similar to the ultimate type
used may want to define the :meth:`TypeDecorator.coerce_compared_value`
method. This is used to give the expression system a hint when coercing
Python objects into bind parameters within expressions. Consider this
expression::
    mytable.c.somecol + datetime.date(2009, 5, 15)
Above, if "somecol" is an ``Integer`` variant, it makes sense that
we're doing date arithmetic, where above is usually interpreted
by databases as adding a number of days to the given date.
The expression system does the right thing by not attempting to
coerce the "date()" value into an integer-oriented bind parameter.
However, in the case of ``TypeDecorator``, we are usually changing an
incoming Python type to something new - ``TypeDecorator`` by default will
"coerce" the non-typed side to be the same type as itself. Such as below,
we define an "epoch" type that stores a date value as an integer::
    class MyEpochType(types.TypeDecorator):
        impl = types.Integer
        cache_ok = True
        epoch = datetime.date(1970, 1, 1)
        def process_bind_param(self, value, dialect):
            return (value - self.epoch).days
        def process_result_value(self, value, dialect):
            return self.epoch + timedelta(days=value)
Our expression of ``somecol + date`` with the above type will coerce the
"date" on the right side to also be treated as ``MyEpochType``.
This behavior can be overridden via the
:meth:`~TypeDecorator.coerce_compared_value` method, which returns a type
that should be used for the value of the expression. Below we set it such
that an integer value will be treated as an ``Integer``, and any other
value is assumed to be a date and will be treated as a ``MyEpochType``::
    def coerce_compared_value(self, op, value):
        if isinstance(value, int):
            return Integer()
        else:
            return self
.. warning::
   Note that the **behavior of coerce_compared_value is not inherited
   by default from that of the base type**.
   If the :class:`.TypeDecorator` is augmenting a
   type that requires special logic for certain types of operators,
   this method **must** be overridden.  A key example is when decorating
   the :class:`_postgresql.JSON` and :class:`_postgresql.JSONB` types;
   the default rules of :meth:`.TypeEngine.coerce_compared_value` should
   be used in order to deal with operators like index operations::
        from sqlalchemy import JSON
        from sqlalchemy import TypeDecorator
        class MyJsonType(TypeDecorator):
            impl = JSON
            cache_ok = True
            def coerce_compared_value(self, op, value):
                return self.impl.coerce_compared_value(op, value)
   Without the above step, index operations such as ``mycol['foo']``
   will cause the index value ``'foo'`` to be JSON encoded.
   Similarly, when working with the :class:`.ARRAY` datatype, the
   type coercion for index operations (e.g. ``mycol[5]``) is also
   handled by :meth:`.TypeDecorator.coerce_compared_value`, where
   again a simple override is sufficient unless special rules are needed
   for particular operators::
        from sqlalchemy import ARRAY
        from sqlalchemy import TypeDecorator
        class MyArrayType(TypeDecorator):
            impl = ARRAY
            cache_ok = True
            def coerce_compared_value(self, op, value):
                return self.impl.coerce_compared_value(op, value)
Constructeur(s)
            
                Liste des attributs statiques
 
                
                    
| cache_ok | None | 
| coerce_to_is_types | (<class 'NoneType'>,) | 
| dispatch | <sqlalchemy.event.base.DDLEventsDispatch object at 0x0000020D9F843260> | 
| hashable | True | 
| impl_instance | <sqlalchemy.util.langhelpers._memoized_property object at 0x0000020D9F654E90> | 
| render_bind_cast | False | 
| render_literal_cast | False | 
| should_evaluate_none | False | 
                
             
 Attributs statiques hérités de la classe TypeEngine
sort_key_function
            
                Liste des propriétés
 
                
                    
| comparator_factory |  | 
| python_type | Return the Python type object expected to be returned [extrait de python_type.__doc__] | 
| sort_key_function |  | 
                
             
Liste des opérateurs
Opérateurs hérités de la classe object
__eq__, 
__ge__, 
__gt__, 
__le__, 
__lt__, 
__ne__
            
                Liste des méthodes
 
                
                    Toutes les méthodes
                    Méthodes d'instance
                    Méthodes statiques
                    Méthodes dépréciées
                
                
                    
    | __getattr__(self, key: 'str') -> 'Any' | Proxy all other undefined accessors to the underlying [extrait de __getattr__.__doc__] | 
    | __repr__(self) -> 'str' |  | 
    | bind_expression(self, bindparam: 'BindParameter[_T]') -> 'Optional[ColumnElement[_T]]' | Given a bind value (i.e. a :class:`.BindParameter` instance), [extrait de bind_expression.__doc__] | 
    | bind_processor(self, dialect: 'Dialect') -> 'Optional[_BindProcessorType[_T]]' | Provide a bound value processing function for the [extrait de bind_processor.__doc__] | 
    | coerce_compared_value(self, op: 'Optional[OperatorType]', value: 'Any') -> 'Any' | Suggest a type for a 'coerced' Python value in an expression. [extrait de coerce_compared_value.__doc__] | 
    | column_expression(self, column: 'ColumnElement[_T]') -> 'Optional[ColumnElement[_T]]' | Given a SELECT column expression, return a wrapping SQL expression. [extrait de column_expression.__doc__] | 
    | Comparator(expr: 'ColumnElement[_CT]') | A :class:`.TypeEngine.Comparator` that is specific to [extrait de Comparator.__doc__] | 
    | compare_values(self, x: 'Any', y: 'Any') -> 'bool' | Given two values, compare them for equality. [extrait de compare_values.__doc__] | 
    | copy(self, **kw: 'Any') -> 'Self' | Produce a copy of this :class:`.TypeDecorator` instance. [extrait de copy.__doc__] | 
    | get_dbapi_type(self, dbapi: 'ModuleType') -> 'Optional[Any]' | Return the DBAPI type object represented by this [extrait de get_dbapi_type.__doc__] | 
    | literal_processor(self, dialect: 'Dialect') -> 'Optional[_LiteralProcessorType[_T]]' | Provide a literal processing function for the given [extrait de literal_processor.__doc__] | 
    | load_dialect_impl(self, dialect: 'Dialect') -> 'TypeEngine[Any]' | Return a :class:`.TypeEngine` object corresponding to a dialect. [extrait de load_dialect_impl.__doc__] | 
    | process_bind_param(self, value: 'Optional[_T]', dialect: 'Dialect') -> 'Any' | Receive a bound parameter value to be converted. [extrait de process_bind_param.__doc__] | 
    | process_literal_param(self, value: 'Optional[_T]', dialect: 'Dialect') -> 'str' | Receive a literal parameter value to be rendered inline within [extrait de process_literal_param.__doc__] | 
    | process_result_value(self, value: 'Optional[Any]', dialect: 'Dialect') -> 'Optional[_T]' | Receive a result-row column value to be converted. [extrait de process_result_value.__doc__] | 
    | result_processor(self, dialect: 'Dialect', coltype: 'Any') -> 'Optional[_ResultProcessorType[_T]]' | Provide a result value processing function for the given [extrait de result_processor.__doc__] | 
    | type_engine(self, dialect: 'Dialect') -> 'TypeEngine[Any]' | Return a dialect-specific :class:`.TypeEngine` instance [extrait de type_engine.__doc__] | 
                
             
Méthodes héritées de la classe TypeEngine
__str__, __subclasshook__, adapt, as_generic, comparator_factory, compile, copy_value, dialect_impl, evaluates_none, with_variant
Méthodes héritées de la classe Generic
__class_getitem__, 
__init_subclass__
Méthodes héritées de la classe Visitable
__class_getitem__, __init_subclass__
Méthodes héritées de la classe object
__delattr__, 
__dir__, 
__format__, 
__getattribute__, 
__getstate__, 
__hash__, 
__reduce__, 
__reduce_ex__, 
__setattr__, 
__sizeof__
                      
            
	
	
	 
	
		Vous êtes un professionnel et vous avez besoin d'une formation ?
		Sensibilisation àl'Intelligence Artificielle
		Voir le programme détaillé	
	
	
             
            
            
            
         
        
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :