sqlalchemy.ext.declarative.declared_attr

Here are the examples of the python api sqlalchemy.ext.declarative.declared_attr taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

19 Examples 7

Example 1

Project: pyramid_basemodel Source File: slug.py
    @declarative.declared_attr
    def slug(cls):
        """A url friendly slug, e.g.: `foo-bar`."""
        
        l = cls._max_slug_length
        is_unique = cls._slug_is_unique
        return Column(Unicode(l), nullable=False, unique=is_unique)

Example 2

Project: pyramid_basemodel Source File: slug.py
    @declarative.declared_attr
    def name(cls):
        """A human readable name, e.g.: `Foo Bar`."""
        
        l = cls._max_slug_length
        return Column(Unicode(l), nullable=False)

Example 3

Project: kit Source File: orm.py
  def __init__(self, session, model_class=Model, query_class=Query,
               persistent_cache=False):

    session.configure(query_cls=query_class)

    self.session = session
    self._registry = {}

    self.Model = declarative_base(cls=Model, class_registry=self._registry)
    self.Model.q = _QueryProperty(session)
    self.Model.t = _TableProperty(session)

    if persistent_cache:
      def __cache__(cls):
        return Column(JSONEncodedDict)
      self.Model.__cache__ = declared_attr(__cache__)

    self.backref = partial(_backref, query_class=query_class)
    self.relationship = partial(_relationship, query_class=query_class)

Example 4

Project: cloudkitty Source File: f8c799db4aa0_fix_unnamed_constraints.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'field_id',
                'name',
                name='uniq_field'),
            schema.UniqueConstraint(
                'service_id',
                'name',
                name='uniq_map_service_field'),
            HashMapBase.__table_args__,)
        return args

Example 5

Project: cloudkitty Source File: f8c799db4aa0_fix_unnamed_constraints.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'value',
                'field_id',
                name='uniq_field_mapping'),
            schema.UniqueConstraint(
                'value',
                'service_id',
                name='uniq_service_mapping'),
            HashMapBase.__table_args__,)
        return args

Example 6

Project: cloudkitty Source File: f8c799db4aa0_fix_unnamed_constraints.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'level',
                'field_id',
                name='uniq_field_threshold'),
            schema.UniqueConstraint(
                'level',
                'service_id',
                name='uniq_service_threshold'),
            HashMapBase.__table_args__,)
        return args

Example 7

Project: cloudkitty Source File: models.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'service_id',
                'name',
                name='uniq_field_per_service'),
            HashMapBase.__table_args__,)
        return args

Example 8

Project: cloudkitty Source File: models.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'value',
                'field_id',
                'tenant_id',
                name='uniq_field_mapping'),
            schema.UniqueConstraint(
                'value',
                'service_id',
                'tenant_id',
                name='uniq_service_mapping'),
            HashMapBase.__table_args__,)
        return args

Example 9

Project: cloudkitty Source File: models.py
    @declarative.declared_attr
    def __table_args__(cls):
        args = (
            schema.UniqueConstraint(
                'level',
                'field_id',
                'tenant_id',
                name='uniq_field_threshold'),
            schema.UniqueConstraint(
                'level',
                'service_id',
                'tenant_id',
                name='uniq_service_threshold'),
            HashMapBase.__table_args__,)
        return args

Example 10

Project: gnocchi Source File: sqlalchemy_base.py
Function: type
    @declarative.declared_attr
    def type(cls):
        return sqlalchemy.Column(
            sqlalchemy.String(255),
            sqlalchemy.ForeignKey('resource_type.name',
                                  ondelete="RESTRICT",
                                  name="fk_%s_resource_type_name" %
                                  cls.__tablename__),
            nullable=False)

Example 11

Project: gnocchi Source File: sqlalchemy_base.py
    @declarative.declared_attr
    def id(cls):
        tablename_compact = cls.__tablename__
        if tablename_compact.endswith("_history"):
            tablename_compact = tablename_compact[:-6]
        return sqlalchemy.Column(
            sqlalchemy_utils.UUIDType(),
            sqlalchemy.ForeignKey(
                'resource.id',
                ondelete="CASCADE",
                name="fk_%s_id_resource_id" % tablename_compact,
                # NOTE(sileht): We use to ensure that postgresql
                # does not use AccessExclusiveLock on destination table
                use_alter=True),
            primary_key=True
        )

Example 12

Project: gnocchi Source File: sqlalchemy_base.py
Function: revision
    @declarative.declared_attr
    def revision(cls):
        tablename_compact = cls.__tablename__
        if tablename_compact.endswith("_history"):
            tablename_compact = tablename_compact[:-6]
        return sqlalchemy.Column(
            sqlalchemy.Integer,
            sqlalchemy.ForeignKey(
                'resource_history.revision',
                ondelete="CASCADE",
                name="fk_%s_revision_rh_revision"
                % tablename_compact,
                # NOTE(sileht): We use to ensure that postgresql
                # does not use AccessExclusiveLock on destination table
                use_alter=True),
            primary_key=True
        )

Example 13

Project: networking-midonet Source File: gateway_device.py
    @declarative.declared_attr
    def __table_args__(cls):
        return (
            sa.ForeignKeyConstraint(['device_id'],
                                    ['midonet_gateway_devices.id'],
                                    ondelete="CASCADE"),
            model_base.BASEV2.__table_args__,
        )

Example 14

Project: iktomi Source File: mixin.py
def declared_mixin(*bases):
    '''Create mix-in class with all assignments turned into methods decorated
    with declared_attr. Usage:

        @declared_mixin
        def FactoryFunction():

    or with base mix-in class[es]:

        @declared_mixin(BaseMixIn1, BaseMixIn2)
        def FactoryFunction():

    For example:

        @declared_mixin
        def WithParent():
            parent_id = Column(ForeignKey(Parent.id))
            parent = relationship(Parent)

    is equivalent to

        class WithParent(object):
            @declared_attr
            def parent_id(cls):
                return Column(ForeignKey(Parent.id))
            @declared_attr
            def parent(cls):
                return relationship(Parent)
    '''

    def wrapper(func):
        attrs = weakref.WeakKeyDictionary()
        def create_descriptor(name):
            def get_attr(cls):
                if cls not in attrs:
                    # Call func only once per class
                    attrs[cls] = return_locals(func)()
                return attrs[cls][name]
            get_attr.__name__ = name
            return declared_attr(get_attr)
        dict_ = {name: create_descriptor(name)
                 for name in six.get_function_code(func).co_varnames}
        dict_['__doc__'] = func.__doc__
        return type(func.__name__, bases, dict_)

    if len(bases)==1 and not isinstance(bases[0], type):
        # Short form (without bases) is used
        func = bases[0]
        bases = ()
        return wrapper(func)
    else:
        return wrapper

Example 15

Project: gnocchi Source File: sqlalchemy_base.py
Function: table_args
    @declarative.declared_attr
    def __table_args__(cls):
        return (sqlalchemy.CheckConstraint('started_at <= ended_at',
                                           name="ck_started_before_ended"),
                COMMON_TABLES_ARGS)

Example 16

Project: gnocchi Source File: sqlalchemy_base.py
Function: table_args
    @declarative.declared_attr
    def __table_args__(cls):
        return (COMMON_TABLES_ARGS, )

Example 17

Project: neutron-lib Source File: model_base.py
Function: tenant_id
    @declarative.declared_attr
    def tenant_id(cls):
        return orm.synonym(
            'project_id',
            descriptor=property(cls.get_tenant_id, cls.set_tenant_id))

Example 18

Project: neutron-lib Source File: model_base.py
Function: table_name
    @declarative.declared_attr
    def __tablename__(cls):
        # Use the pluralized name of the class as the table name.
        return cls.__name__.lower() + 's'

Example 19

Project: tacker Source File: model_base.py
Function: table_name
    @declarative.declared_attr
    def __tablename__(cls):
        # NOTE(jkoelker) use the pluralized name of the class as the table
        return cls.__name__.lower() + 's'