#NEWLINE# def __init__( self , class_ , * attrs , **kwargs ) : #NEWLINE# #INDENT# 'Return a composite column-based property for use with a Mapper.\n\n        See the mapping documentation section :ref:`mapper_composite` for a\n        full usage example.\n\n        The :class:`.MapperProperty` returned by :func:`.composite`\n        is the :class:`.CompositeProperty`.\n\n        :param class\\_:\n          The "composite type" class.\n\n        :param \\*cols:\n          List of Column objects to be mapped.\n\n        :param active_history=False:\n          When ``True``, indicates that the "previous" value for a\n          scalar attribute should be loaded when replaced, if not\n          already loaded.  See the same flag on :func:`.column_property`.\n\n          .. versionchanged:: 0.7\n              This flag specifically becomes meaningful\n              - previously it was a placeholder.\n\n        :param group:\n          A group name for this property when marked as deferred.\n\n        :param deferred:\n          When True, the column property is "deferred", meaning that it does\n          not load immediately, and is instead loaded when the attribute is\n          first accessed on an instance.  See also\n          :func:`~sqlalchemy.orm.deferred`.\n\n        :param comparator_factory:  a class which extends\n          :class:`.CompositeProperty.Comparator` which provides custom SQL\n          clause generation for comparison operations.\n\n        :param doc:\n          optional string that will be applied as the doc on the\n          class-bound descriptor.\n\n        :param info: Optional data dictionary which will be populated into the\n            :attr:`.MapperProperty.info` attribute of this object.\n\n            .. versionadded:: 0.8\n\n        :param extension:\n          an :class:`.AttributeExtension` instance,\n          or list of extensions, which will be prepended to the list of\n          attribute listeners for the resulting descriptor placed on the\n          class.  **Deprecated.**  Please see :class:`.AttributeEvents`.\n\n        ' #NEWLINE# self . attrs = attrs #NEWLINE# self . composite_class = class_ #NEWLINE# self . active_history = kwargs . get ( 'active_history' , False ) #NEWLINE# self . deferred = kwargs . get ( 'deferred' , False ) #NEWLINE# self . group = kwargs . get ( 'group' , None ) #NEWLINE# self . comparator_factory = kwargs . pop ( 'comparator_factory' , attrs . __class__ . Comparator ) #NEWLINE# if ( 'info' in kwargs ) : #NEWLINE# #INDENT# self . info = kwargs . pop ( 'info' ) #NEWLINE# #UNINDENT# util . set_creation_order ( self ) #NEWLINE# self . _create_descriptor ( )