From c53b9d81f52a5e21d91bdcd8d32afcbab3534e53 Mon Sep 17 00:00:00 2001 From: Emily Frost Date: Wed, 4 May 2022 23:48:02 -0500 Subject: [PATCH] Updated ORM classes to reflect new metadata definitions and also unfucked the file's indentation. --- metadata.py | 71 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 24 deletions(-) diff --git a/metadata.py b/metadata.py index 38acc6b..2b81151 100644 --- a/metadata.py +++ b/metadata.py @@ -28,58 +28,81 @@ def _uuidgen(): class Platform(_SQLBase): '''SQLAlchemy ORM class for platform metadata.''' __tablename__ = 'platforms' - id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('platform_id_sequence'), - primary_key=True) - uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) + id = sqlalchemy.Column( + sqlalchemy.Integer, sqlalchemy.Sequence('platform_id_sequence'), primary_key=True + ) fullname = sqlalchemy.Column(sqlalchemy.String, nullable=False) shortcode = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False) - release_groups = sqlalchemy.orm.relationship('ReleaseGroup', order_by=ReleaseGroup.id, - back_populates='platform') + release_groups = sqlalchemy.orm.relationship( + 'ReleaseGroup', order_by=ReleaseGroup.id, back_populates='platform' + ) def __repr__(self): - return 'Platform: id: %s, uuid: %s, fullname: %s, shortcode: %s' % (self.id, self.uuid, - self.fullname, self.shortcode) + return 'Platform: id: %s, fullname: %s, shortcode: %s' % ( + self.id, self.fullname, self.shortcode + ) class ReleaseGroup(_SQLBase): '''SQLAlchemy ORM class for release group metadata.''' __tablename__ = 'release_groups' - id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), - primary_key=True) - uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) + id = sqlalchemy.Column( + sqlalchemy.Integer, sqlalchemy.Sequence('release_group_id_sequence'), primary_key=True + ) name = sqlalchemy.Column(sqlalchemy.String, unique=True, nullable=False) platform_id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.ForeignKey('platforms.id')) 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): - return 'Release Group: id: %s, uuid: %s, name: %s, platform:%s' % (self.id, self.uuid, - self.name, self.platform.fullname) - + return 'Release Group: id: %s, name: %s, platform:%s' % ( + self.id, self.name, self.platform.fullname + ) 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.''' __tablename__ = 'images' - id = sqlalchemy.Column(sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), - primary_key=True) - uuid = sqlalchemy.Column(sqlalchemy.String, nullable=False, default=_uuidgen) + id = sqlalchemy.Column( + sqlalchemy.Integer, sqlalchemy.Sequence('image_id_sequence'), primary_key=True + ) sha1sum = sqlalchemy.Column(sqlalchemy.String, unique=True, 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) disambiguation = sqlalchemy.Column(sqlalchemy.String) - release_group_id = sqlalchemy.Column(sqlalchemy.Integer, - sqlalchemy.ForeignKey('release_groups.id')) + 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, uuid: %s, sha1sum: %s, release-group: %s, region: %s, ' - 'version: %s, disambiguation: %s' % ( - self.id, self.uuid, self.sha1sum, self.release_group.name, self.region, - self.version, self.disambiguation)) + return ( + 'ROM Image: id: %s, sha1sum: %s, release-group: %s, region: %s, version: %s, ' + 'disambiguation: %s' % ( + self.id, self.sha1sum, self.release_group.name, self.region, self.version, + self.disambiguation + ) + ) def configure(db_path):