コード例 #1
0
ファイル: base.py プロジェクト: oldbay/geo_reference_api
class ModulesPermissions(DeclarativeBase, ApiModule):
    """
    Resource Modules Permissions
    """

    __tablename__ = 'modules_permissions'

    __http__ = ['GET', 'PUT']

    __serialization__ = get_serialization(
        AttributeConfiguration(name='permission_level', supports_json=True),
        AttributeConfiguration(name='group_id', supports_json=False),
        AttributeConfiguration(name='module_id', supports_json=False),
        AttributeConfiguration(name='group', supports_json=(False, True)),
        AttributeConfiguration(name='module', supports_json=(False, True)),
    )

    __table_args__ = (UniqueConstraint('group_id',
                                       'module_id',
                                       name='_modules_permissions_uc'), )

    permission_level = Column(Integer, nullable=False)
    group_id = Column(Integer, ForeignKey('groups.id'), nullable=False)
    module_id = Column(Integer, ForeignKey('modules.id'), nullable=False)
    group = column_property(select([(Groups.name)], group_id == Groups.id))
    module = column_property(select([(Modules.name)], module_id == Modules.id))
コード例 #2
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class Users(DeclarativeBase):
    """ user """

    __tablename__ = 'users'

    __serialization__ = [
        AttributeConfiguration(name='id', supports_json=True),
        AttributeConfiguration(name='name', supports_json=True),
        AttributeConfiguration(name='key', supports_json=(True, False)),
        AttributeConfiguration(name='group_id', supports_json=(True, False)),
        #AttributeConfiguration(name='group', supports_json=(False, True)),
        AttributeConfiguration(name='group_name', supports_json=(False, True)),
    ]

    id = Column(
        Integer,
        primary_key=True,
    )
    name = Column(
        Unicode(256),
        nullable=False,
        unique=True,
    )
    key = Column(Unicode(512), )
    group_id = Column(
        Integer,
        ForeignKey('groups.id'),
        nullable=False,
    )
    group = relationship(
        'Groups',
        back_populates='users',
    )
コード例 #3
0
class Table11(DeclarativeBase, ApiModule):
    """
    test 11 table
    """

    __tablename__ = 'table11'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='id', supports_json=(False, True)),
        AttributeConfiguration(name='name', supports_json=True),
        AttributeConfiguration(name='table01_id', supports_json=(True, False)),
        AttributeConfiguration(name='table01nams',
                               supports_json=(False, True)),
    )

    id = Column(Integer, primary_key=True)
    name = Column(Unicode(256), nullable=False, unique=True)

    table01_id = Column(Integer, ForeignKey('table01.id'))
    Table01 = get_table_cls(ApiModule, 'table01')
    Table01.__serialization__.append(
        AttributeConfiguration(name='table11s', supports_json=(False, True)), )
    Table01.table11s = relationship('Table11')
    table01nams = column_property(
        select([(Table01.name)], table01_id == Table01.id))
コード例 #4
0
    class Address_Nested_OneToOne(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'addresses_nested_one_to_one'

        __serialization__ = [
            AttributeConfiguration(name='id',
                                   supports_csv=True,
                                   csv_sequence=1,
                                   supports_json=True,
                                   supports_yaml=True,
                                   supports_dict=True),
            AttributeConfiguration(name='email',
                                   supports_csv=True,
                                   csv_sequence=2,
                                   supports_json=True,
                                   supports_yaml=True,
                                   supports_dict=True,
                                   on_serialize=None,
                                   on_deserialize=None),
        ]

        id = Column('id', Integer, primary_key=True)
        email = Column('email_address',
                       String(50),
                       supports_csv=True,
                       supports_json=True,
                       supports_yaml=True,
                       supports_dict=True,
                       on_serialize=validators.email,
                       on_deserialize=validators.email)
        user_id = Column('user_id', Integer, ForeignKey('users_one_to_one.id'))
コード例 #5
0
    class User_OneToOne_Nested(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'users_one_to_one'

        __serialization__ = [
            AttributeConfiguration(name='id',
                                   supports_csv=True,
                                   csv_sequence=1,
                                   supports_json=True,
                                   supports_yaml=True,
                                   supports_dict=True),
            AttributeConfiguration(name='name',
                                   supports_csv=True,
                                   csv_sequence=2,
                                   supports_json=True,
                                   supports_yaml=True,
                                   supports_dict=True,
                                   on_serialize=None,
                                   on_deserialize=None),
            AttributeConfiguration(name='address',
                                   supports_json=True,
                                   supports_yaml=(True, True),
                                   supports_dict=(True, True)),
        ]

        id = Column('id', Integer, primary_key=True)
        name = Column('username', String(50))
        address = relationship('Address_Nested_OneToOne',
                               backref='user',
                               uselist=False)
コード例 #6
0
ファイル: fixtures.py プロジェクト: gridl/sqlathanor
    class User2(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'users_composite'

        id = Column('id',
                    Integer,
                    primary_key = True)
        id2 = Column('id2',
                     Integer,
                     primary_key = True)
        id3 = Column('id3',
                     Integer,
                     primary_key = True)
        name = Column('username',
                      String(50))
        addresses = relationship('Address2', backref = 'user')

        _hybrid = 1
        @hybrid_property
        def hybrid(self):
            return self._hybrid

        @hybrid_property
        def hybrid_differentiated(self):
            return self._hybrid
コード例 #7
0
    class User(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'users'

        id = Column('id', Integer, primary_key=True)
        name = Column('username', String(50))
        addresses = relationship('Address', backref='user')

        _hybrid = 1

        @hybrid_property
        def hybrid(self):
            return self._hybrid

        @hybrid.setter
        def hybrid(self, value):
            self._hybrid = value

        @hybrid_property
        def hybrid_differentiated(self):
            return self._hybrid

        @hybrid_differentiated.setter
        def hybrid_differentiated(self, value):
            self._hybrid = value

        keywords_basic = association_proxy('keywords_basic', 'keyword')
コード例 #8
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class Modules(DeclarativeBase):
    """ group """

    __tablename__ = 'modules'

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(Unicode(256), nullable=False, unique=True)
コード例 #9
0
    class TestClass(BaseModel):
        __tablename__ = 'test_class'
        __serialization__ = {
            'two_properties': [
                AttributeConfiguration(name='id',
                                       supports_csv=False,
                                       supports_json=True,
                                       supports_dict=True,
                                       supports_yaml=False),
                AttributeConfiguration(name='second_column',
                                       supports_csv=True,
                                       supports_json=True,
                                       supports_dict=True,
                                       supports_yaml=False)
            ],
            'one_property': [
                AttributeConfiguration(name='id',
                                       supports_csv=True,
                                       supports_json=True,
                                       supports_dict=True,
                                       supports_yaml=True)
            ]
        }

        id = Column('id', Integer, primary_key=True)
        second_column = Column('second_column', Text)
コード例 #10
0
class User(Base):
    __tablename__ = 'users'

    id = Column(
        Integer,
        Sequence('user_id_seq'),
        primary_key=True,
        supports_dict=True,
    )

    name = Column(
        String,
        supports_dict=True,
    )

    addresses = relationship(
        "Address",
        backref="user",
        lazy="joined",
        supports_dict=True,
        on_serialize=serialize_address,
    )

    def __repr__(self):
        return "<User(id='{0:s}', name='{1:s}')>".format(
            str(self.id),
            self.name,
        )
コード例 #11
0
    class Address(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'addresses'

        id = Column('id', Integer, primary_key=True)
        email = Column('email_address', String(50))
        user_id = Column('user_id', Integer, ForeignKey('users.id'))
コード例 #12
0
    class Keyword(BaseModel):
        __tablename__ = 'keywords'

        id = Column('id', Integer, primary_key=True)
        keyword = Column('keyword', String(50), supports_csv=True)

        def __init__(self, id, keyword):
            self.id = id
            self.keyword = keyword
コード例 #13
0
ファイル: fixtures.py プロジェクト: gridl/sqlathanor
    class User_Complex(BaseModel):
        """Mocked class with a single primary key with varied serialization support."""

        __tablename__ = 'users_complex'

        id = Column('id',
                    Integer,
                    primary_key = True,
                    supports_csv = True,
                    csv_sequence = 1,
                    supports_json = True,
                    supports_yaml = True,
                    supports_dict = True)
        name = Column('username',
                      String(50),
                      supports_csv = True,
                      csv_sequence = 2,
                      supports_json = True,
                      supports_yaml = True,
                      supports_dict = True)
        password = Column('password',
                          String(50),
                          supports_csv = (True, False),
                          csv_sequence = 3,
                          supports_json = (True, False),
                          supports_yaml = (True, False),
                          supports_dict = (True, False))
        hidden = Column('hidden_column',
                        String(50))

        addresses = relationship('Address_Complex',
                                 backref = 'user',
                                 supports_json = True,
                                 supports_yaml = (True, True),
                                 supports_dict = (True, False))

        _hybrid = 1

        @hybrid_property
        def hybrid(self):
            return self._hybrid

        @hybrid.setter
        def hybrid(self, value):
            self._hybrid = value

        @hybrid_property
        def hybrid_differentiated(self):
            return self._hybrid

        @hybrid_differentiated.setter
        def hybrid_differentiated(self, value):
            self._hybrid = value

        keywords_basic = association_proxy('keywords_basic',
                                           'keyword')
コード例 #14
0
class Address(Base):
    __tablename__ = 'addresses'

    id = Column(Integer, primary_key=True)

    email = Column(
        String,
        nullable=False,
        supports_json=True,
    )

    user_id = Column(Integer, ForeignKey('users.id'))
コード例 #15
0
        class TestClass(BaseModel):
            __tablename__ = 'test_class'
            __serialization__ = [
                AttributeConfiguration(name='id',
                                       supports_json=True,
                                       supports_dict=True),
                AttributeConfiguration(name='json_column',
                                       supports_json=True,
                                       supports_dict=True)
            ]

            id = Column('id', Integer, primary_key=True)
            json_column = Column(JSON)
コード例 #16
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class Modules(DeclarativeBase):

    __tablename__ = 'modules'

    __serialization__ = [
        AttributeConfiguration(name='id', supports_json=(False, True)), 
        AttributeConfiguration(name='name', supports_json=True), 
        AttributeConfiguration(name='groups', supports_json=(False, True)), 
    ]

    id = Column(Integer, primary_key=(False, True))
    name = Column(Unicode(256), nullable=False, unique=True)
    groups = relationship('ModulesPermissions', cascade='all, delete-orphan')
コード例 #17
0
ファイル: test01.py プロジェクト: oldbay/geo_reference_api
class Table01(DeclarativeBase, ApiModule):
    """
    test 01 table
    """

    __tablename__ = 'table01'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='id', supports_json=(False, True)), 
        AttributeConfiguration(name='name', supports_json=True), 
    )

    id = Column(Integer, primary_key=True)
    name = Column(Unicode(256), nullable=False, unique=True)
コード例 #18
0
    class Address_Complex(BaseModel):
        """Mocked class with a single primary key."""

        __tablename__ = 'addresses_complex'

        id = Column('id', Integer, primary_key=True)
        email = Column('email_address',
                       String(50),
                       supports_csv=True,
                       supports_json=True,
                       supports_yaml=True,
                       supports_dict=True,
                       on_serialize=validators.email,
                       on_deserialize=validators.email)
        user_id = Column('user_id', Integer, ForeignKey('users_complex.id'))
コード例 #19
0
ファイル: geo.py プロジェクト: oldbay/geo_reference_api
class Geoms(DeclarativeBase, ApiModule):
    """
    Resource Reference of Geoms
    """

    __tablename__ = 'geoms'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=True), 
        AttributeConfiguration(name='properties', supports_json=True), 
        AttributeConfiguration(name='layers', supports_json=(False, True)), 
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    properties = Column(JsonType())
    layers = relationship('Layers', cascade='all, delete-orphan')
コード例 #20
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class Users(DeclarativeBase):

    __tablename__ = 'users'
    
    __serialization__ = [
        AttributeConfiguration(name='id', supports_json=(False, True)), 
        AttributeConfiguration(name='name', supports_json=True), 
        AttributeConfiguration(name='key', supports_json=(True, False)), 
        AttributeConfiguration(name='group_id', supports_json=(True, False)), 
        AttributeConfiguration(name='group', supports_json=(False, True)), 
    ]
    
    id = Column(Integer, primary_key=True,)
    name = Column(Unicode(256), nullable=False, unique=True)
    key = Column(Unicode(512))
    group_id = Column(Integer, ForeignKey('groups.id'), nullable=False)
    group = column_property(select([(Groups.name)], group_id == Groups.id))
コード例 #21
0
ファイル: base.py プロジェクト: oldbay/geo_reference_api
class Groups(DeclarativeBase, ApiModule):
    """
    Resource Groups
    """

    __tablename__ = 'groups'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=True),
        AttributeConfiguration(name='auth_name', supports_json=True),
        AttributeConfiguration(name='users', supports_json=(False, True)),
        AttributeConfiguration(name='modules', supports_json=(False, True)),
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    auth_name = Column(Unicode(256), unique=True)
    users = relationship('UsersGroups', cascade='all, delete-orphan')
    modules = relationship('ModulesPermissions', cascade='all, delete-orphan')
コード例 #22
0
ファイル: base.py プロジェクト: oldbay/geo_reference_api
class Users(DeclarativeBase, ApiModule):
    """
    Ресурс пользователей
    """

    __tablename__ = 'users'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=True),
        AttributeConfiguration(name='key', supports_json=(True, False)),
        AttributeConfiguration(name='group_id', supports_json=(True, False)),
        AttributeConfiguration(name='group', supports_json=(False, True)),
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    key = Column(Unicode(512))
    group_id = Column(Integer, ForeignKey('groups.id'), nullable=False)
    group = column_property(select([(Groups.name)], group_id == Groups.id))
コード例 #23
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class ModulesPermissions(DeclarativeBase):

    __tablename__ = 'modules_permissions'

    __serialization__ = [
        AttributeConfiguration(name='id', supports_json=(False, True)), 
        AttributeConfiguration(name='permission_level', supports_json=True), 
        AttributeConfiguration(name='group_id', supports_json=False), 
        AttributeConfiguration(name='module_id', supports_json=False), 
        AttributeConfiguration(name='group', supports_json=(False, True)), 
        AttributeConfiguration(name='module', supports_json=(False, True)), 
    ]

    id = Column(Integer, primary_key=True)
    permission_level = Column(Integer, nullable=False)
    group_id = Column(Integer, ForeignKey('groups.id'), nullable=False)
    module_id = Column(Integer, ForeignKey('modules.id'), nullable=False)
    group = column_property(select([(Groups.name)], group_id == Groups.id))
    module = column_property(select([(Modules.name)], module_id == Modules.id))
コード例 #24
0
ファイル: base.py プロジェクト: oldbay/geo_reference_api
class Modules(DeclarativeBase, ApiModule):

    __tablename__ = 'modules'

    __http__ = ['GET', 'PUT']

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=(False, True)),
        AttributeConfiguration(name='access', supports_json=(False, True)),
        AttributeConfiguration(name='enable', supports_json=True),
        AttributeConfiguration(name='delete', supports_json=True),
        AttributeConfiguration(name='groups', supports_json=(False, True)),
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    access = Column(Boolean, default=False)
    enable = Column(Boolean, default=True)
    delete = Column(Boolean, default=False)
    groups = relationship('ModulesPermissions', cascade='all, delete-orphan')
コード例 #25
0
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, Sequence('user_id_seq'), primary_key=True)

    addresses = relationship("Address",
                             backref="user",
                             lazy="joined",
                             supports_json=True,
                             display_name="all-addresses")
コード例 #26
0
ファイル: base.py プロジェクト: oldbay/geo_reference_api
class Users(DeclarativeBase, ApiModule):
    """
    Resource Users
    """

    __tablename__ = 'users'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=True),
        AttributeConfiguration(name='auth_name', supports_json=True),
        AttributeConfiguration(name='full_name', supports_json=True),
        AttributeConfiguration(name='auto_create', supports_json=True),
        AttributeConfiguration(name='groups', supports_json=(False, True)),
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    auth_name = Column(Unicode(256), unique=True)
    full_name = Column(Unicode(1024))
    auto_create = Column(Boolean(), default=False)
    groups = relationship('UsersGroups', cascade='all, delete-orphan')
コード例 #27
0
ファイル: geo.py プロジェクト: oldbay/geo_reference_api
class Layers(DeclarativeBase, ApiModule):
    """
    Resource Reference of Layers
    """

    __tablename__ = 'layers'

    __serialization__ = get_serialization(
        AttributeConfiguration(name='name', supports_json=True), 
        AttributeConfiguration(name='symbol', supports_json=True), 
        AttributeConfiguration(name='properties', supports_json=True), 
        AttributeConfiguration(name='all_properties', supports_json=(False, True)), 
        AttributeConfiguration(name='geom_id', supports_json=(True, False)), 
    )

    name = Column(Unicode(256), nullable=False, unique=True)
    symbol = Column(Unicode())
    properties = Column(JsonType())
    all_properties = Column(JsonType())
    geom_id = Column(Integer, ForeignKey('geoms.id'), nullable=False)
コード例 #28
0
ファイル: model.py プロジェクト: oldbay/geo_reference_api
class Groups(DeclarativeBase):
    """ group """

    __tablename__ = 'groups'

    id = Column(
        Integer,
        primary_key=True,
        supports_json=True,
    )
    name = Column(
        Unicode(256),
        nullable=False,
        unique=True,
        supports_json=True,
    )
    users = relationship(
        'Users',
        back_populates='group',
        #backref='group',
        supports_json=True,
    )
コード例 #29
0
    class UserKeyword_Complex(BaseModel):
        __tablename__ = 'user_keywords_complex'

        user_id = Column('user_id',
                         Integer,
                         ForeignKey('users_complex.id'),
                         primary_key=True)
        keyword_id = Column('keyword_id',
                            Integer,
                            ForeignKey('keywords.id'),
                            primary_key=True)
        special_key = Column('special_key', String(50))

        user = relationship(User_Complex,
                            backref=backref('keywords_basic',
                                            cascade='all, delete-orphan'))
        keyword = relationship('Keyword')

        def __init__(self, keyword=None, user=None, special_key=None):
            self.user = user
            self.keyword = keyword
            self.special_key = special_key
コード例 #30
0
class Address(Base):
    __tablename__ = 'addresses'

    id = Column(
        Integer,
        primary_key=True,
        supports_dict=True,
    )

    email = Column(
        String,
        nullable=False,
        supports_dict=True,
    )

    user_id = Column(
        Integer,
        ForeignKey('users.id'),
        supports_dict=True,
    )

    def __repr__(self):
        return "<Address(email='{0:s}')>".format(self.email, )