Updated ORM classes to reflect new metadata definitions and also unfucked the file's indentation.

metadata-restructure
Emily Frost 4 years ago
parent 2a95a93844
commit c53b9d81f5
Signed by: Emily
GPG Key ID: AA5D42849F1CBDC9

@ -28,58 +28,81 @@ def _uuidgen():
class Platform(_SQLBase): class Platform(_SQLBase):
'''SQLAlchemy ORM class for platform metadata.''' '''SQLAlchemy ORM class for platform metadata.'''
__tablename__ = 'platforms' __tablename__ = 'platforms'
id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('platform_id_sequence'), id = sqlalchemy.Column(
primary_key=True) sqlalchemy.Integer, sqlalchemy.Sequence('platform_id_sequence'), primary_key=True
uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) )
fullname = sqlalchemy.Column(sqlalchemy.String, nullable=False) fullname = sqlalchemy.Column(sqlalchemy.String, nullable=False)
shortcode = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False) shortcode = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False)
release_groups = sqlalchemy.orm.relationship('ReleaseGroup', order_by=ReleaseGroup.id, release_groups = sqlalchemy.orm.relationship(
back_populates='platform') 'ReleaseGroup', order_by=ReleaseGroup.id, back_populates='platform'
)
def __repr__(self): def __repr__(self):
return 'Platform: id: %s, uuid: %s, fullname: %s, shortcode: %s' % (self.id, self.uuid, return 'Platform: id: %s, fullname: %s, shortcode: %s' % (
self.fullname, self.shortcode) self.id, self.fullname, self.shortcode
)
class ReleaseGroup(_SQLBase): class ReleaseGroup(_SQLBase):
'''SQLAlchemy ORM class for release group metadata.''' '''SQLAlchemy ORM class for release group metadata.'''
__tablename__ = 'release_groups' __tablename__ = 'release_groups'
id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), id = sqlalchemy.Column(
primary_key=True) sqlalchemy.Integer, sqlalchemy.Sequence('release_group_id_sequence'), primary_key=True
uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) )
name = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False) name = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False)
platform_id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey('platforms.id')) platform_id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey('platforms.id'))
platform = sqlalchemy.orm.relationship('Platform', back_populates='release_groups') platform = sqlalchemy.orm.relationship('Platform', back_populates='release_groups')
images = sqlalchemy.orm.relationship('Release', back_populates='release_group') releases = sqlalchemy.orm.relationship('Release', back_populates='release_group')
def __repr__(self): def __repr__(self):
return 'Release Group: id: %s, uuid: %s, name: %s, platform:%s' % (self.id, self.uuid, return 'Release Group: id: %s, name: %s, platform:%s' % (
self.name, self.platform.fullname) self.id, self.name, self.platform.fullname
)
class Release(_SQLBase): class Release(_SQLBase):
'''SQLAlchemy ORM class for release metadata.'''
__tablename__ = 'releases'
id = sqlalchemy.Column(
sqlalchemy.Integer, sqlalchemy.Sequence('release_id_sequence'), primary_key=True
)
sha1sum = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False)
en_name = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False)
release_group_id = sqlalchemy.Column(
sqlalchemy.Integer, sqlalchemy.ForeignKey('release_groups.id')
)
release_group = sqlalchemy.orm.relationship('ReleaseGroup', back_populates='releases')
def __repr__(self):
return ('ROM Image: id: %s, en_name: %s' % (self.id, self.en_name )
class Image(_SQLBase):
'''SQLAlchemy ORM class for ROM image metadata.''' '''SQLAlchemy ORM class for ROM image metadata.'''
__tablename__ = 'images' __tablename__ = 'images'
id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), id = sqlalchemy.Column(
primary_key=True) sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), primary_key=True
uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) )
sha1sum = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False) sha1sum = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False)
format = sqlalchemy.Column(sqlalchemy.String, nullable=False) format = sqlalchemy.Column(sqlalchemy.String, nullable=False)
region = sqlalchemy.Column(sqlalchemy.String) region = sqlalchemy.Column(sqlalchemy.String, nullable=False)
version = sqlalchemy.Column(sqlalchemy.String, nullable=False) version = sqlalchemy.Column(sqlalchemy.String, nullable=False)
disambiguation = sqlalchemy.Column(sqlalchemy.String) disambiguation = sqlalchemy.Column(sqlalchemy.String)
release_group_id = sqlalchemy.Column(sqlalchemy.Integer, release_group_id = sqlalchemy.Column(
sqlalchemy.ForeignKey('release_groups.id')) sqlalchemy.Integer,sqlalchemy.ForeignKey('release_groups.id')
)
release_group = sqlalchemy.orm.relationship('ReleaseGroup', back_populates='releases') release_group = sqlalchemy.orm.relationship('ReleaseGroup', back_populates='releases')
def __repr__(self): def __repr__(self):
return ('ROM Image: id: %s, uuid: %s, sha1sum: %s, release-group: %s, region: %s, ' return (
'version: %s, disambiguation: %s' % ( 'ROM Image: id: %s, sha1sum: %s, release-group: %s, region: %s, version: %s, '
self.id, self.uuid, self.sha1sum, self.release_group.name, self.region, 'disambiguation: %s' % (
self.version, self.disambiguation)) self.id, self.sha1sum, self.release_group.name, self.region, self.version,
self.disambiguation
)
)
def configure(db_path): def configure(db_path):

Loading…
Cancel
Save