diff options
Diffstat (limited to 'mediagoblin/db/models.py')
-rw-r--r-- | mediagoblin/db/models.py | 83 |
1 files changed, 39 insertions, 44 deletions
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 0974676a..11d7b275 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -18,7 +18,6 @@ TODO: indexes on foreignkeys, where useful. """ -from __future__ import print_function import logging import datetime @@ -114,9 +113,9 @@ class GenericModelReference(Base): # to prevent circular imports do import here registry = dict(Base._decl_class_registry).values() - self._TYPE_MAP = dict( - ((m.__tablename__, m) for m in registry if hasattr(m, "__tablename__")) - ) + self._TYPE_MAP = { + m.__tablename__: m for m in registry if hasattr(m, "__tablename__") + } setattr(type(self), "_TYPE_MAP", self._TYPE_MAP) return self.__class__._TYPE_MAP[model_type] @@ -271,7 +270,7 @@ class User(Base, UserMixin): for activity in Activity.query.filter_by(actor=self.id): activity.delete(**kwargs) - super(User, self).soft_delete(*args, **kwargs) + super().soft_delete(*args, **kwargs) def delete(self, *args, **kwargs): @@ -291,8 +290,8 @@ class User(Base, UserMixin): # Delete user, pass through commit=False/True in kwargs username = self.username - super(User, self).delete(*args, **kwargs) - _log.info('Deleted user "{0}" account'.format(username)) + super().delete(*args, **kwargs) + _log.info('Deleted user "{}" account'.format(username)) def has_privilege(self, privilege, allow_admin=True): """ @@ -311,7 +310,7 @@ class User(Base, UserMixin): priv = Privilege.query.filter_by(privilege_name=privilege).one() if priv in self.all_privileges: return True - elif allow_admin and self.has_privilege(u'admin', allow_admin=False): + elif allow_admin and self.has_privilege('admin', allow_admin=False): return True return False @@ -383,15 +382,15 @@ class LocalUser(User): # plugin data would be in a separate model def __repr__(self): - return '<{0} #{1} {2} {3} "{4}">'.format( + return '<{} #{} {} {} "{}">'.format( self.__class__.__name__, self.id, - 'verified' if self.has_privilege(u'active') else 'non-verified', - 'admin' if self.has_privilege(u'admin') else 'user', + 'verified' if self.has_privilege('active') else 'non-verified', + 'admin' if self.has_privilege('admin') else 'user', self.username) def get_public_id(self, host): - return "acct:{0}@{1}".format(self.username, host) + return "acct:{}@{}".format(self.username, host) def serialize(self, request): user = { @@ -423,7 +422,7 @@ class LocalUser(User): }, } - user.update(super(LocalUser, self).serialize(request)) + user.update(super().serialize(request)) return user class RemoteUser(User): @@ -438,7 +437,7 @@ class RemoteUser(User): } def __repr__(self): - return "<{0} #{1} {2}>".format( + return "<{} #{} {}>".format( self.__class__.__name__, self.id, self.webfinger @@ -466,9 +465,9 @@ class Client(Base): def __repr__(self): if self.application_name: - return "<Client {0} - {1}>".format(self.application_name, self.id) + return "<Client {} - {}>".format(self.application_name, self.id) else: - return "<Client {0}>".format(self.id) + return "<Client {}>".format(self.id) class RequestToken(Base): """ @@ -483,7 +482,7 @@ class RequestToken(Base): used = Column(Boolean, default=False) authenticated = Column(Boolean, default=False) verifier = Column(Unicode, nullable=True) - callback = Column(Unicode, nullable=False, default=u"oob") + callback = Column(Unicode, nullable=False, default="oob") created = Column(DateTime, nullable=False, default=datetime.datetime.utcnow) updated = Column(DateTime, nullable=False, default=datetime.datetime.utcnow) @@ -529,7 +528,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): slug = Column(Unicode) description = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) - state = Column(Unicode, default=u'unprocessed', nullable=False) + state = Column(Unicode, default='unprocessed', nullable=False) # or use sqlalchemy.types.Enum? license = Column(Unicode) file_size = Column(Integer, default=0) @@ -636,7 +635,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): """get the next 'newer' entry by this user""" media = MediaEntry.query.filter( (MediaEntry.actor == self.actor) - & (MediaEntry.state == u'processed') + & (MediaEntry.state == 'processed') & (MediaEntry.id > self.id)).order_by(MediaEntry.id).first() if media is not None: @@ -646,7 +645,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): """get the next 'older' entry by this user""" media = MediaEntry.query.filter( (MediaEntry.actor == self.actor) - & (MediaEntry.state == u'processed') + & (MediaEntry.state == 'processed') & (MediaEntry.id < self.id)).order_by(desc(MediaEntry.id)).first() if media is not None: @@ -658,7 +657,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): return the value of the key. """ media_file = MediaFile.query.filter_by(media_entry=self.id, - name=six.text_type(file_key)).first() + name=str(file_key)).first() if media_file: if metadata_key: @@ -671,11 +670,11 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): Update the file_metadata of a MediaFile. """ media_file = MediaFile.query.filter_by(media_entry=self.id, - name=six.text_type(file_key)).first() + name=str(file_key)).first() file_metadata = media_file.file_metadata or {} - for key, value in six.iteritems(kwargs): + for key, value in kwargs.items(): file_metadata[key] = value media_file.file_metadata = file_metadata @@ -700,7 +699,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): media_data.get_media_entry = self else: # Update old media data - for field, value in six.iteritems(kwargs): + for field, value in kwargs.items(): setattr(media_data, field, value) @memoized_property @@ -708,11 +707,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): return import_component(self.media_type + '.models:BACKREF_NAME') def __repr__(self): - if six.PY2: - # obj.__repr__() should return a str on Python 2 - safe_title = self.title.encode('utf-8', 'replace') - else: - safe_title = self.title + safe_title = self.title return '<{classname} {id}: {title}>'.format( classname=self.__class__.__name__, @@ -724,7 +719,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): for comment in self.get_comments(): comment.delete(*args, **kwargs) - super(MediaEntry, self).soft_delete(*args, **kwargs) + super().soft_delete(*args, **kwargs) def delete(self, del_orphan_tags=True, **kwargs): """Delete MediaEntry and all related files/attachments/comments @@ -744,7 +739,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): # Returns list of files we failed to delete _log.error('No such files from the user "{1}" to delete: ' '{0}'.format(str(error), self.get_actor)) - _log.info('Deleted Media entry id "{0}"'.format(self.id)) + _log.info('Deleted Media entry id "{}"'.format(self.id)) # Related MediaTag's are automatically cleaned, but we might # want to clean out unused Tag's too. if del_orphan_tags: @@ -753,7 +748,7 @@ class MediaEntry(Base, MediaEntryMixin, CommentingMixin): from mediagoblin.db.util import clean_orphan_tags clean_orphan_tags(commit=False) # pass through commit=False/True in kwargs - super(MediaEntry, self).delete(**kwargs) + super().delete(**kwargs) def serialize(self, request, show_comments=True): """ Unserialize MediaEntry to object """ @@ -864,7 +859,7 @@ class FileKeynames(Base): name = Column(Unicode, unique=True) def __repr__(self): - return "<FileKeyname %r: %r>" % (self.id, self.name) + return "<FileKeyname {!r}: {!r}>".format(self.id, self.name) @classmethod def find_or_new(cls, name): @@ -893,7 +888,7 @@ class MediaFile(Base): {}) def __repr__(self): - return "<MediaFile %s: %r>" % (self.name, self.file_path) + return "<MediaFile {}: {!r}>".format(self.name, self.file_path) name_helper = relationship(FileKeynames, lazy="joined", innerjoin=True) name = association_proxy('name_helper', 'name', @@ -941,7 +936,7 @@ class Tag(Base): slug = Column(Unicode, nullable=False, unique=True) def __repr__(self): - return "<Tag %r: %r>" % (self.id, self.slug) + return "<Tag {!r}: {!r}>".format(self.id, self.slug) @classmethod def find_or_new(cls, slug): @@ -1040,7 +1035,7 @@ class Comment(Base): # fetch it from self.comment() raise AttributeError try: - _log.debug('Old attr is being accessed: {0}'.format(attr)) + _log.debug('Old attr is being accessed: {}'.format(attr)) return getattr(self.comment(), attr) # noqa except Exception as e: _log.error(e) @@ -1347,7 +1342,7 @@ class Notification(Base): seen='unseen' if not self.seen else 'seen') def __unicode__(self): - return u'<{klass} #{id}: {user}: {subject} ({seen})>'.format( + return '<{klass} #{id}: {user}: {subject} ({seen})>'.format( id=self.id, klass=self.__class__.__name__, user=self.user, @@ -1603,7 +1598,7 @@ class Activity(Base, ActivityMixin): def save(self, set_updated=True, *args, **kwargs): if set_updated: self.updated = datetime.datetime.now() - super(Activity, self).save(*args, **kwargs) + super().save(*args, **kwargs) class Graveyard(Base): """ Where models come to die """ @@ -1663,12 +1658,12 @@ MODELS = [ FOUNDATIONS = {User:user_foundations} """ -privilege_foundations = [{'privilege_name':u'admin'}, - {'privilege_name':u'moderator'}, - {'privilege_name':u'uploader'}, - {'privilege_name':u'reporter'}, - {'privilege_name':u'commenter'}, - {'privilege_name':u'active'}] +privilege_foundations = [{'privilege_name':'admin'}, + {'privilege_name':'moderator'}, + {'privilege_name':'uploader'}, + {'privilege_name':'reporter'}, + {'privilege_name':'commenter'}, + {'privilege_name':'active'}] FOUNDATIONS = {Privilege:privilege_foundations} ###################################################### |