diff options
author | Ben Sturmfels <ben@sturm.com.au> | 2021-03-05 23:12:19 +1100 |
---|---|---|
committer | Ben Sturmfels <ben@sturm.com.au> | 2021-03-05 23:12:19 +1100 |
commit | dec47c7102cf0aa3a4debf002928db8e460c0d71 (patch) | |
tree | 47631fc15c7af172aa699506adf3d76d3a71976c /mediagoblin/media_types | |
parent | 5f3a782fef4855e10b7259624a14d8afb0f7be93 (diff) | |
download | mediagoblin-dec47c7102cf0aa3a4debf002928db8e460c0d71.tar.lz mediagoblin-dec47c7102cf0aa3a4debf002928db8e460c0d71.tar.xz mediagoblin-dec47c7102cf0aa3a4debf002928db8e460c0d71.zip |
Apply `pyupgrade --py3-plus` to remove Python 2 compatibility code.
Diffstat (limited to 'mediagoblin/media_types')
22 files changed, 115 insertions, 117 deletions
diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 9f6043e9..17f520a3 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -39,7 +39,7 @@ class MissingComponents(FileTypeNotSupported): pass -class MediaManagerBase(object): +class MediaManagerBase: "Base class for all media managers" # Please override in actual media managers @@ -68,13 +68,13 @@ def sniff_media_contents(media_file, filename): ''' media_type = hook_handle('sniff_handler', media_file, filename) if media_type: - _log.info('{0} accepts the file'.format(media_type)) + _log.info('{} accepts the file'.format(media_type)) return media_type, hook_handle(('media_manager', media_type)) else: - _log.debug('{0} did not accept the file'.format(media_type)) + _log.debug('{} did not accept the file'.format(media_type)) raise FileTypeNotSupported( # TODO: Provide information on which file types are supported - _(u'Sorry, I don\'t support that file type :(')) + _('Sorry, I don\'t support that file type :(')) def get_media_type_and_manager(filename): ''' @@ -93,11 +93,11 @@ def get_media_type_and_manager(filename): if hook_handle('get_media_type_and_manager', ext[1:]): return hook_handle('get_media_type_and_manager', ext[1:]) else: - _log.info('File {0} has no file extension, let\'s hope the sniffers get it.'.format( + _log.info('File {} has no file extension, let\'s hope the sniffers get it.'.format( filename)) raise TypeNotFound( - _(u'Sorry, I don\'t support that file type :(')) + _('Sorry, I don\'t support that file type :(')) def type_match_handler(media_file, filename): '''Check media file by name and then by content @@ -129,11 +129,11 @@ def type_match_handler(media_file, filename): _log.debug(e) raise else: - _log.info('No plugins handled extension {0}'.format(ext)) + _log.info('No plugins handled extension {}'.format(ext)) else: - _log.info('File {0} has no known file extension, let\'s hope ' + _log.info('File {} has no known file extension, let\'s hope ' 'the sniffers get it.'.format(filename)) - raise TypeNotFound(_(u'Sorry, I don\'t support that file type :(')) + raise TypeNotFound(_('Sorry, I don\'t support that file type :(')) def sniff_media(media_file, filename): diff --git a/mediagoblin/media_types/ascii/asciitoimage.py b/mediagoblin/media_types/ascii/asciitoimage.py index 786941f6..0bd72fe4 100644 --- a/mediagoblin/media_types/ascii/asciitoimage.py +++ b/mediagoblin/media_types/ascii/asciitoimage.py @@ -29,7 +29,7 @@ import os _log = logging.getLogger(__name__) -class AsciiToImage(object): +class AsciiToImage: ''' Converter of ASCII art into image files, preserving whitespace @@ -51,7 +51,7 @@ class AsciiToImage(object): self._font_size, encoding='unic') - _log.info('Font set to {0}, size {1}'.format( + _log.info('Font set to {}, size {}'.format( self._font, self._font_size)) @@ -68,7 +68,7 @@ class AsciiToImage(object): # PIL's Image.save will handle both file-likes and paths if im.save(destination): - _log.info('Saved image in {0}'.format( + _log.info('Saved image in {}'.format( destination)) def _create_image(self, text): @@ -93,7 +93,7 @@ class AsciiToImage(object): max(line_lengths) * self._if_dims[0], len(line_lengths) * self._if_dims[1]) - _log.info('Destination image dimensions will be {0}'.format( + _log.info('Destination image dimensions will be {}'.format( im_dims)) im = Image.new( @@ -108,14 +108,14 @@ class AsciiToImage(object): for line in lines: line_length = len(line) - _log.debug('Writing line at {0}'.format(char_pos)) + _log.debug('Writing line at {}'.format(char_pos)) for _pos in range(0, line_length): char = line[_pos] px_pos = self._px_pos(char_pos) - _log.debug('Writing character "{0}" at {1} (px pos {2})'.format( + _log.debug('Writing character "{}" at {} (px pos {})'.format( char.encode('ascii', 'replace'), char_pos, px_pos)) diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py index 00d04e63..3c24360d 100644 --- a/mediagoblin/media_types/ascii/processing.py +++ b/mediagoblin/media_types/ascii/processing.py @@ -39,7 +39,7 @@ MEDIA_TYPE = 'mediagoblin.media_types.ascii' def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) name, ext = os.path.splitext(filename) clean_ext = ext[1:].lower() @@ -87,7 +87,7 @@ class CommonAsciiProcessor(MediaProcessor): else: self.charset = d_charset['encoding'] - _log.info('Charset detected: {0}\nWill interpret as: {1}'.format( + _log.info('Charset detected: {}\nWill interpret as: {}'.format( d_charset, self.charset)) @@ -106,7 +106,7 @@ class CommonAsciiProcessor(MediaProcessor): # Encode the unicode instance to ASCII and replace any # non-ASCII with an HTML entity (&# unicode_file.write( - six.text_type(orig_file.read().decode( + str(orig_file.read().decode( self.charset)).encode( 'ascii', 'xmlcharrefreplace')) @@ -270,6 +270,6 @@ class Resizer(CommonAsciiProcessor): class AsciiProcessingManager(ProcessingManager): def __init__(self): - super(AsciiProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) diff --git a/mediagoblin/media_types/audio/audiotospectrogram.py b/mediagoblin/media_types/audio/audiotospectrogram.py index 2d2f9423..5ad89b93 100644 --- a/mediagoblin/media_types/audio/audiotospectrogram.py +++ b/mediagoblin/media_types/audio/audiotospectrogram.py @@ -282,7 +282,7 @@ if __name__ == "__main__": sys.stdout.flush() if not (len(sys.argv) == 2 or len(sys.argv) == 3): - print("Usage:\n{0} input_file [output_file]".format(sys.argv[0])) + print("Usage:\n{} input_file [output_file]".format(sys.argv[0])) exit() audioFile = sys.argv[1] @@ -292,6 +292,6 @@ if __name__ == "__main__": else: outputFile = 'spectrogram.png' - sys.stdout.write("Input : {0}\nOutput : {1}\n".format(audioFile, outputFile)) + sys.stdout.write("Input : {}\nOutput : {}\n".format(audioFile, outputFile)) drawSpectrogram(audioFile, outputFile, progressCallback = printProgress) sys.stdout.write("\nDone!\n") diff --git a/mediagoblin/media_types/audio/processing.py b/mediagoblin/media_types/audio/processing.py index 427309de..e2dc8937 100644 --- a/mediagoblin/media_types/audio/processing.py +++ b/mediagoblin/media_types/audio/processing.py @@ -37,11 +37,11 @@ MEDIA_TYPE = 'mediagoblin.media_types.audio' def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) try: data = discover(media_file.name) except Exception as e: - _log.info(six.text_type(e)) + _log.info(str(e)) return None if data and data.get_audio_streams() and not data.get_video_streams(): return MEDIA_TYPE @@ -361,7 +361,7 @@ class Transcoder(CommonAudioProcessor): class AudioProcessingManager(ProcessingManager): def __init__(self): - super(AudioProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) self.add_processor(Transcoder) diff --git a/mediagoblin/media_types/audio/transcoders.py b/mediagoblin/media_types/audio/transcoders.py index 11ecf163..308e16d3 100644 --- a/mediagoblin/media_types/audio/transcoders.py +++ b/mediagoblin/media_types/audio/transcoders.py @@ -43,9 +43,9 @@ gi.require_version('Gst', '1.0') from gi.repository import GObject, Gst Gst.init(None) -class Python3AudioThumbnailer(object): +class Python3AudioThumbnailer: def __init__(self): - _log.info('Initializing {0}'.format(self.__class__.__name__)) + _log.info('Initializing {}'.format(self.__class__.__name__)) def spectrogram(self, src, dst, **kw): from mediagoblin.media_types.audio import audiotospectrogram @@ -83,9 +83,9 @@ class Python3AudioThumbnailer(object): AudioThumbnailer = Python3AudioThumbnailer -class AudioTranscoder(object): +class AudioTranscoder: def __init__(self): - _log.info('Initializing {0}'.format(self.__class__.__name__)) + _log.info('Initializing {}'.format(self.__class__.__name__)) # Instantiate MainLoop self._loop = GObject.MainLoop() @@ -96,10 +96,10 @@ class AudioTranscoder(object): def _on_pad_added(element, pad, connect_to): caps = pad.query_caps(None) name = caps.to_string() - _log.debug('on_pad_added: {0}'.format(name)) + _log.debug('on_pad_added: {}'.format(name)) if name.startswith('audio') and not connect_to.is_linked(): pad.link(connect_to) - _log.info('Transcoding {0} into {1}'.format(src, dst)) + _log.info('Transcoding {} into {}'.format(src, dst)) self.__on_progress = progress_callback # Set up pipeline tolerance = 80000000 @@ -155,7 +155,7 @@ class AudioTranscoder(object): (success, percent) = structure.get_int('percent') if self.__on_progress and success: self.__on_progress(percent) - _log.info('{0}% done...'.format(percent)) + _log.info('{}% done...'.format(percent)) elif message.type == Gst.MessageType.EOS: _log.info('Done') self.halt() diff --git a/mediagoblin/media_types/blog/lib.py b/mediagoblin/media_types/blog/lib.py index b6e3dc06..45c1588f 100644 --- a/mediagoblin/media_types/blog/lib.py +++ b/mediagoblin/media_types/blog/lib.py @@ -24,15 +24,15 @@ def check_blog_slug_used(author_id, slug, ignore_b_id=None): return does_exist def may_edit_blogpost(request, blog): - if request.user.has_privilege(u'admin') or request.user.id == blog.author: + if request.user.has_privilege('admin') or request.user.id == blog.author: return True return False def set_blogpost_state(request, blogpost): if request.form['status'] == 'Publish': - blogpost.state = u'processed' + blogpost.state = 'processed' else: - blogpost.state = u'failed' + blogpost.state = 'failed' def get_all_blogposts_of_blog(request, blog, state=None): blog_posts_list = [] diff --git a/mediagoblin/media_types/blog/models.py b/mediagoblin/media_types/blog/models.py index 83f520c7..6bb5e076 100644 --- a/mediagoblin/media_types/blog/models.py +++ b/mediagoblin/media_types/blog/models.py @@ -48,7 +48,7 @@ class Blog(Base, BlogMixin): @property def slug_or_id(self): - return (self.slug or u'blog_{0}'.format(self.id)) + return (self.slug or 'blog_{}'.format(self.id)) def get_all_blog_posts(self, state=None): blog_posts = Session.query(MediaEntry).join(BlogPostData)\ @@ -63,7 +63,7 @@ class Blog(Base, BlogMixin): post.delete(del_orphan_tags=False, commit=False) from mediagoblin.db.util import clean_orphan_tags clean_orphan_tags(commit=False) - super(Blog, self).delete(**kwargs) + super().delete(**kwargs) diff --git a/mediagoblin/media_types/blog/views.py b/mediagoblin/media_types/blog/views.py index 2bf2e5be..00c583b2 100644 --- a/mediagoblin/media_types/blog/views.py +++ b/mediagoblin/media_types/blog/views.py @@ -76,8 +76,8 @@ def blog_edit(request): if request.method=='POST' and form.validate(): _log.info("Here") blog = request.db.Blog() - blog.title = six.text_type(form.title.data) - blog.description = six.text_type(cleaned_markdown_conversion((form.description.data))) + blog.title = str(form.title.data) + blog.description = str(cleaned_markdown_conversion(form.description.data)) blog.author = request.user.id blog.generate_slug() @@ -115,8 +115,8 @@ def blog_edit(request): 'app_config': mg_globals.app_config}) else: if request.method == 'POST' and form.validate(): - blog.title = six.text_type(form.title.data) - blog.description = six.text_type(cleaned_markdown_conversion((form.description.data))) + blog.title = str(form.title.data) + blog.description = str(cleaned_markdown_conversion(form.description.data)) blog.author = request.user.id blog.generate_slug() @@ -143,10 +143,10 @@ def blogpost_create(request): blogpost = request.db.MediaEntry() blogpost.media_type = 'mediagoblin.media_types.blogpost' - blogpost.title = six.text_type(form.title.data) - blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data))) + blogpost.title = str(form.title.data) + blogpost.description = str(cleaned_markdown_conversion(form.description.data)) blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data) - blogpost.license = six.text_type(form.license.data) or None + blogpost.license = str(form.license.data) or None blogpost.actor = request.user.id blogpost.generate_slug() @@ -196,10 +196,10 @@ def blogpost_edit(request): form = blog_forms.BlogPostEditForm(request.form, **defaults) if request.method == 'POST' and form.validate(): - blogpost.title = six.text_type(form.title.data) - blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data))) + blogpost.title = str(form.title.data) + blogpost.description = str(cleaned_markdown_conversion(form.description.data)) blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data) - blogpost.license = six.text_type(form.license.data) + blogpost.license = str(form.license.data) set_blogpost_state(request, blogpost) blogpost.generate_slug() blogpost.save() @@ -233,7 +233,7 @@ def blog_dashboard(request, page, url_user=None): blogs = request.db.Blog.query.filter_by(author=url_user.id) config = pluginapi.get_config('mediagoblin.media_types.blog') max_blog_count = config['max_blog_count'] - if request.user and (request.user.id == url_user.id or request.user.has_privilege(u'admin')): + if request.user and (request.user.id == url_user.id or request.user.has_privilege('admin')): if blog_slug: blog = get_blog_by_slug(request, blog_slug) if not blog: @@ -276,7 +276,7 @@ def blog_post_listing(request, page, url_user=None): if not blog: return render_404(request) - all_blog_posts = blog.get_all_blog_posts(u'processed').order_by(MediaEntry.created.desc()) + all_blog_posts = blog.get_all_blog_posts('processed').order_by(MediaEntry.created.desc()) pagination = Pagination(page, all_blog_posts) pagination.per_page = 8 blog_posts_on_a_page = pagination() @@ -297,7 +297,7 @@ def draft_view(request): blog_post_slug = request.matchdict.get('blog_post_slug', None) user = request.matchdict.get('user') blog = get_blog_by_slug(request, blog_slug, author=request.user.id) - blogpost = request.db.MediaEntry.query.filter_by(state = u'failed', actor=request.user.id, slug=blog_post_slug).first() + blogpost = request.db.MediaEntry.query.filter_by(state = 'failed', actor=request.user.id, slug=blog_post_slug).first() if not blog or not blogpost: return render_404(request) @@ -326,7 +326,7 @@ def blog_delete(request, **kwargs): return render_404(request) form = blog_forms.ConfirmDeleteForm(request.form) - if request.user.id == blog.author or request.user.has_privilege(u'admin'): + if request.user.id == blog.author or request.user.has_privilege('admin'): if request.method == 'POST' and form.validate(): if form.confirm.data is True: blog.delete() @@ -345,7 +345,7 @@ def blog_delete(request, **kwargs): return redirect(request, "mediagoblin.media_types.blog.blog_admin_dashboard", user=request.user.username) else: - if request.user.has_privilege(u'admin'): + if request.user.has_privilege('admin'): messages.add_message( request, messages.WARNING, @@ -384,7 +384,7 @@ def blog_about_view(request): return render_404(request) else: - blog_posts_processed = blog.get_all_blog_posts(u'processed').count() + blog_posts_processed = blog.get_all_blog_posts('processed').count() return render_to_response( request, 'mediagoblin/blog/blog_about.html', diff --git a/mediagoblin/media_types/image/__init__.py b/mediagoblin/media_types/image/__init__.py index 11f90ca5..f357dc88 100644 --- a/mediagoblin/media_types/image/__init__.py +++ b/mediagoblin/media_types/image/__init__.py @@ -32,7 +32,7 @@ class ImageMediaManager(MediaManagerBase): display_template = "mediagoblin/media_displays/image.html" default_thumb = "images/media_thumbs/image.png" - media_fetch_order = [u'medium', u'original', u'thumb'] + media_fetch_order = ['medium', 'original', 'thumb'] def get_original_date(self): """ diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 7ddf3f35..8f227edc 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -14,7 +14,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from __future__ import print_function try: from PIL import Image @@ -69,9 +68,9 @@ def resize_image(entry, resized, keyname, target_name, new_size, try: resize_filter = PIL_FILTERS[filter.upper()] except KeyError: - raise Exception('Filter "{0}" not found, choose one of {1}'.format( - six.text_type(filter), - u', '.join(PIL_FILTERS.keys()))) + raise Exception('Filter "{}" not found, choose one of {}'.format( + str(filter), + ', '.join(PIL_FILTERS.keys()))) resized.thumbnail(new_size, resize_filter) @@ -101,8 +100,8 @@ def resize_tool(entry, # If thumb or medium is already the same quality and size, then don't # reprocess if _skip_resizing(entry, keyname, new_size, quality, filter): - _log.info('{0} of same size and quality already in use, skipping ' - 'resizing of media {1}.'.format(keyname, entry.id)) + _log.info('{} of same size and quality already in use, skipping ' + 'resizing of media {}.'.format(keyname, entry.id)) return # If the size of the original file exceeds the specified size for the desized @@ -111,14 +110,14 @@ def resize_tool(entry, # Also created if the file needs rotation, or if forced. try: im = Image.open(orig_file) - except IOError: + except OSError: raise BadMediaFail() if force \ or im.size[0] > new_size[0]\ or im.size[1] > new_size[1]\ or exif_image_needs_rotation(exif_tags): resize_image( - entry, im, six.text_type(keyname), target_name, + entry, im, str(keyname), target_name, tuple(new_size), exif_tags, conversions_subdir, quality, filter) @@ -154,7 +153,7 @@ SUPPORTED_FILETYPES = ['png', 'gif', 'jpg', 'jpeg', 'tiff'] def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) name, ext = os.path.splitext(filename) clean_ext = ext[1:].lower() # Strip the . from ext and make lowercase @@ -162,7 +161,7 @@ def sniff_handler(media_file, filename): _log.info('Found file extension in supported filetypes') return MEDIA_TYPE else: - _log.debug('Media present, extension not found in {0}'.format( + _log.debug('Media present, extension not found in {}'.format( SUPPORTED_FILETYPES)) return None @@ -241,7 +240,7 @@ class CommonImageProcessor(MediaProcessor): # Extract file metadata try: im = Image.open(self.process_filename) - except IOError: + except OSError: raise BadMediaFail() metadata = { @@ -426,7 +425,7 @@ class MetadataProcessing(CommonImageProcessor): class ImageProcessingManager(ProcessingManager): def __init__(self): - super(ImageProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) self.add_processor(MetadataProcessing) diff --git a/mediagoblin/media_types/pdf/processing.py b/mediagoblin/media_types/pdf/processing.py index ac4bab6d..3792cfbd 100644 --- a/mediagoblin/media_types/pdf/processing.py +++ b/mediagoblin/media_types/pdf/processing.py @@ -169,7 +169,7 @@ def check_prerequisites(): return True def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) if not check_prerequisites(): return None @@ -185,7 +185,7 @@ def create_pdf_thumb(original, thumb_filename, width, height): executable = where('pdftocairo') args = [executable, '-scale-to', str(min(width, height)), '-singlefile', '-png', original, thumb_filename] - _log.debug('calling {0}'.format(repr(' '.join(args)))) + _log.debug('calling {}'.format(repr(' '.join(args)))) Popen(executable=executable, args=args).wait() def pdf_info(original): @@ -303,7 +303,7 @@ class CommonPdfProcessor(MediaProcessor): args = [executable, '-scale-to', str(min(thumb_size)), '-singlefile', '-png', self.pdf_filename, thumb_filename] - _log.debug('calling {0}'.format(repr(' '.join(args)))) + _log.debug('calling {}'.format(repr(' '.join(args)))) Popen(executable=executable, args=args).wait() # since pdftocairo added '.png', we need to include it with the @@ -355,7 +355,7 @@ class CommonPdfProcessor(MediaProcessor): args = [executable, '-scale-to', str(min(size)), '-singlefile', '-png', self.pdf_filename, filename] - _log.debug('calling {0}'.format(repr(' '.join(args)))) + _log.debug('calling {}'.format(repr(' '.join(args)))) Popen(executable=executable, args=args).wait() # since pdftocairo added '.png', we need to include it with the @@ -467,6 +467,6 @@ class Resizer(CommonPdfProcessor): class PdfProcessingManager(ProcessingManager): def __init__(self): - super(PdfProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) diff --git a/mediagoblin/media_types/raw_image/processing.py b/mediagoblin/media_types/raw_image/processing.py index 740ba2dd..68d9bffe 100644 --- a/mediagoblin/media_types/raw_image/processing.py +++ b/mediagoblin/media_types/raw_image/processing.py @@ -35,7 +35,7 @@ ACCEPTED_EXTENSIONS = ['nef', 'cr2'] # The entire function have to be copied def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) name, ext = os.path.splitext(filename) clean_ext = ext[1:].lower() # Strip the . from ext and make lowercase @@ -43,7 +43,7 @@ def sniff_handler(media_file, filename): _log.info('Found file extension in supported filetypes') return MEDIA_TYPE else: - _log.debug('Media present, extension not found in {0}'.format( + _log.debug('Media present, extension not found in {}'.format( ACCEPTED_EXTENSIONS)) return None @@ -54,7 +54,7 @@ class InitialRawProcessor(InitialProcessor): """ Pull out a full-size JPEG-preview """ - super(InitialRawProcessor, self).common_setup() + super().common_setup() self._original_raw = self.process_filename @@ -68,7 +68,7 @@ class InitialRawProcessor(InitialProcessor): md.previews[-1].write_to_file( self.process_filename.encode('utf-8')) self.process_filename += '.jpg' - _log.debug(u'Wrote new file from {0} to preview (jpg) {1}'.format( + _log.debug('Wrote new file from {} to preview (jpg) {}'.format( self._original_raw, self.process_filename)) # Override the namebuilder with our new jpg-based name @@ -77,6 +77,6 @@ class InitialRawProcessor(InitialProcessor): class RawImageProcessingManager(ProcessingManager): def __init__(self): - super(RawImageProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialRawProcessor) self.add_processor(Resizer) diff --git a/mediagoblin/media_types/stl/model_loader.py b/mediagoblin/media_types/stl/model_loader.py index c1864613..60d686d2 100644 --- a/mediagoblin/media_types/stl/model_loader.py +++ b/mediagoblin/media_types/stl/model_loader.py @@ -22,7 +22,7 @@ class ThreeDeeParseError(Exception): pass -class ThreeDee(object): +class ThreeDee: """ 3D model parser base class. Derrived classes are used for basic analysis of 3D models, and are not intended to be used for 3D diff --git a/mediagoblin/media_types/stl/processing.py b/mediagoblin/media_types/stl/processing.py index 55764aeb..b4d9fe44 100644 --- a/mediagoblin/media_types/stl/processing.py +++ b/mediagoblin/media_types/stl/processing.py @@ -48,7 +48,7 @@ BLEND_SCRIPT = pkg_resources.resource_filename( def sniff_handler(media_file, filename): - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) name, ext = os.path.splitext(filename) clean_ext = ext[1:].lower() @@ -57,7 +57,7 @@ def sniff_handler(media_file, filename): _log.info('Found file extension in supported filetypes') return MEDIA_TYPE else: - _log.debug('Media present, extension not found in {0}'.format( + _log.debug('Media present, extension not found in {}'.format( SUPPORTED_FILETYPES)) return None @@ -365,6 +365,6 @@ class Resizer(CommonStlProcessor): class StlProcessingManager(ProcessingManager): def __init__(self): - super(StlProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) diff --git a/mediagoblin/media_types/tools.py b/mediagoblin/media_types/tools.py index 602b9605..72b4ab16 100644 --- a/mediagoblin/media_types/tools.py +++ b/mediagoblin/media_types/tools.py @@ -40,7 +40,7 @@ def discover(src): # init before import to work around https://bugzilla.gnome.org/show_bug.cgi?id=736260 from gi.repository import GstPbutils - _log.info('Discovering {0}...'.format(src)) - uri = 'file://{0}'.format(src) + _log.info('Discovering {}...'.format(src)) + uri = 'file://{}'.format(src) discoverer = GstPbutils.Discoverer.new(60 * Gst.SECOND) return discoverer.discover_uri(uri) diff --git a/mediagoblin/media_types/video/__init__.py b/mediagoblin/media_types/video/__init__.py index 0c822f69..356e0bb8 100644 --- a/mediagoblin/media_types/video/__init__.py +++ b/mediagoblin/media_types/video/__init__.py @@ -41,7 +41,7 @@ class VideoMediaManager(MediaManagerBase): video_res.remove(video_config['default_resolution']) video_res.insert(0, video_config['default_resolution']) video_res = ['webm_{}'.format(x) for x in video_res] - return ([u'webm_video'] + video_res + [u'original']) + return (['webm_video'] + video_res + ['original']) def get_media_type_and_manager(ext): diff --git a/mediagoblin/media_types/video/migrations.py b/mediagoblin/media_types/video/migrations.py index 2445cd4d..d6700f66 100644 --- a/mediagoblin/media_types/video/migrations.py +++ b/mediagoblin/media_types/video/migrations.py @@ -79,12 +79,12 @@ def change_metadata_format(db): 'videolength': 'length', } - new_metadata['video'] = [dict((v, metadata.get(k)) - for k, v in video_key_map.items() if metadata.get(k))] - new_metadata['audio'] = [dict((v, metadata.get(k)) - for k, v in audio_key_map.items() if metadata.get(k))] - new_metadata['common'] = dict((v, metadata.get(k)) - for k, v in common_key_map.items() if metadata.get(k)) + new_metadata['video'] = [{v: metadata.get(k) + for k, v in video_key_map.items() if metadata.get(k)}] + new_metadata['audio'] = [{v: metadata.get(k) + for k, v in audio_key_map.items() if metadata.get(k)}] + new_metadata['common'] = {v: metadata.get(k) + for k, v in common_key_map.items() if metadata.get(k)} # 'mimetype' should be in tags new_metadata['common']['tags'] = {'mimetype': metadata.get('mimetype')} diff --git a/mediagoblin/media_types/video/models.py b/mediagoblin/media_types/video/models.py index da635ed7..396e35e1 100644 --- a/mediagoblin/media_types/video/models.py +++ b/mediagoblin/media_types/video/models.py @@ -86,7 +86,7 @@ class VideoData(Base): if video_codec == "vp8 video": video_codec = "vp8" - return '%s; codecs="%s, %s"' % ( + return '{}; codecs="{}, {}"'.format( mimetype, video_codec, audio_codec) else: return video.VideoMediaManager.default_webm_type diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 890ac688..0aa70a93 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -46,19 +46,19 @@ class VideoTranscodingFail(BaseProcessingFail): ''' Error raised if video transcoding fails ''' - general_message = _(u'Video transcoding failed') + general_message = _('Video transcoding failed') def sniffer(media_file): '''New style sniffer, used in two-steps check; requires to have .name''' - _log.info('Sniffing {0}'.format(MEDIA_TYPE)) + _log.info('Sniffing {}'.format(MEDIA_TYPE)) try: data = transcoders.discover(media_file.name) except Exception as e: # this is usually GLib.GError, but we don't really care which one - _log.warning(u'GStreamer: {0}'.format(six.text_type(e))) - raise MissingComponents(u'GStreamer: {0}'.format(six.text_type(e))) - _log.debug('Discovered: {0}'.format(data)) + _log.warning('GStreamer: {}'.format(str(e))) + raise MissingComponents('GStreamer: {}'.format(str(e))) + _log.debug('Discovered: {}'.format(data)) if not data.get_video_streams(): raise MissingComponents('No video streams found in this video') @@ -66,17 +66,17 @@ def sniffer(media_file): if data.get_result() != 0: # it's 0 if success try: missing = data.get_misc().get_string('name') - _log.warning('GStreamer: missing {0}'.format(missing)) + _log.warning('GStreamer: missing {}'.format(missing)) except AttributeError as e: # AttributeError happens here on gstreamer >1.4, when get_misc # returns None. There is a special function to get info about # missing plugin. This info should be printed to logs for admin and # showed to the user in a short and nice version details = data.get_missing_elements_installer_details() - _log.warning('GStreamer: missing: {0}'.format(', '.join(details))) - missing = u', '.join([u'{0} ({1})'.format(*d.split('|')[3:]) + _log.warning('GStreamer: missing: {}'.format(', '.join(details))) + missing = ', '.join(['{} ({})'.format(*d.split('|')[3:]) for d in details]) - raise MissingComponents(u'{0} is missing'.format(missing)) + raise MissingComponents('{} is missing'.format(missing)) return MEDIA_TYPE @@ -89,13 +89,13 @@ def sniff_handler(media_file, filename): if clean_ext in EXCLUDED_EXTS: # We don't handle this filetype, though gstreamer might think we can - _log.info('Refused to process {0} due to excluded extension'.format(filename)) + _log.info('Refused to process {} due to excluded extension'.format(filename)) return None try: return sniffer(media_file) except: - _log.error('Could not discover {0}'.format(filename)) + _log.error('Could not discover {}'.format(filename)) return None def get_tags(stream_info): @@ -111,7 +111,7 @@ def get_tags(stream_info): # date/datetime should be converted from GDate/GDateTime to strings if 'date' in tags: date = tags['date'] - tags['date'] = "%s-%s-%s" % ( + tags['date'] = "{}-{}-{}".format( date.year, date.month, date.day) if 'datetime' in tags: @@ -127,7 +127,7 @@ def get_tags(stream_info): tags['datetime'] = None for k, v in tags.copy().items(): # types below are accepted by json; others must not present - if not isinstance(v, (dict, list, six.string_types, int, float, bool, + if not isinstance(v, (dict, list, (str,), int, float, bool, type(None))): del tags[k] return dict(tags) @@ -192,10 +192,10 @@ def main_task(entry_id, resolution, medium_size, **process_info): processor.generate_thumb(thumb_size=process_info['thumb_size']) processor.store_orig_metadata() # Make state of entry as processed - entry.state = u'processed' + entry.state = 'processed' entry.save() - _log.info(u'MediaEntry ID {0} is processed (transcoded to default' - ' resolution): {1}'.format(entry.id, medium_size)) + _log.info('MediaEntry ID {} is processed (transcoded to default' + ' resolution): {}'.format(entry.id, medium_size)) _log.debug('MediaEntry processed') @@ -211,7 +211,7 @@ def complementary_task(entry_id, resolution, medium_size, **process_info): vp8_quality=process_info['vp8_quality'], vp8_threads=process_info['vp8_threads'], vorbis_quality=process_info['vorbis_quality']) - _log.info(u'MediaEntry ID {0} is transcoded to {1}'.format( + _log.info('MediaEntry ID {} is transcoded to {}'.format( entry.id, medium_size)) @@ -585,7 +585,7 @@ class Transcoder(CommonVideoProcessor): class VideoProcessingManager(ProcessingManager): def __init__(self): - super(VideoProcessingManager, self).__init__() + super().__init__() self.add_processor(InitialProcessor) self.add_processor(Resizer) self.add_processor(Transcoder) @@ -596,7 +596,7 @@ class VideoProcessingManager(ProcessingManager): def_res = video_config['default_resolution'] priority_num = len(video_config['available_resolutions']) + 1 - entry.state = u'processing' + entry.state = 'processing' entry.save() reprocess_info = reprocess_info or {} diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index b0350c76..b5fd08e6 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -14,7 +14,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from __future__ import division, print_function import os import sys @@ -63,7 +62,7 @@ def capture_thumb(video_path, dest_path, width=None, height=None, percent=0.5): '''This is a callback to dynamically add element to pipeline''' caps = pad.query_caps(None) name = caps.to_string() - _log.debug('on_pad_added: {0}'.format(name)) + _log.debug('on_pad_added: {}'.format(name)) if name.startswith('video') and not connect_to.is_linked(): pad.link(connect_to) @@ -71,7 +70,7 @@ def capture_thumb(video_path, dest_path, width=None, height=None, percent=0.5): # ! CAPS ! appsink pipeline = Gst.Pipeline() uridecodebin = Gst.ElementFactory.make('uridecodebin', None) - uridecodebin.set_property('uri', 'file://{0}'.format(video_path)) + uridecodebin.set_property('uri', 'file://{}'.format(video_path)) videoconvert = Gst.ElementFactory.make('videoconvert', None) uridecodebin.connect('pad-added', pad_added, videoconvert.get_static_pad('sink')) @@ -105,7 +104,7 @@ def capture_thumb(video_path, dest_path, width=None, height=None, percent=0.5): # timeout of 3 seconds below was set experimentally state = pipeline.get_state(Gst.SECOND * 3) if state[0] != Gst.StateChangeReturn.SUCCESS: - _log.warning('state change failed, {0}'.format(state)) + _log.warning('state change failed, {}'.format(state)) return # get duration @@ -115,7 +114,7 @@ def capture_thumb(video_path, dest_path, width=None, height=None, percent=0.5): return seek_to = int(duration * int(percent * 100) / 100) - _log.debug('Seeking to {0} of {1}'.format( + _log.debug('Seeking to {} of {}'.format( float(seek_to) / Gst.SECOND, float(duration) / Gst.SECOND)) seek = pipeline.seek_simple(Gst.Format.TIME, Gst.SeekFlags.FLUSH, seek_to) if not seek: @@ -140,13 +139,13 @@ def capture_thumb(video_path, dest_path, width=None, height=None, percent=0.5): im = Image.frombytes('RGB', (width, height), buffer.extract_dup(0, buffer.get_size())) im.save(dest_path) - _log.info('thumbnail saved to {0}'.format(dest_path)) + _log.info('thumbnail saved to {}'.format(dest_path)) # cleanup pipeline.set_state(Gst.State.NULL) -class VideoTranscoder(object): +class VideoTranscoder: ''' Video transcoder @@ -375,7 +374,7 @@ class VideoTranscoder(object): _log.info('{percent}% of {dest} resolution done..' '.'.format(percent=percent, dest=self.destination_dimensions)) elif message.type == Gst.MessageType.ERROR: - _log.error('Got error: {0}'.format(message.parse_error())) + _log.error('Got error: {}'.format(message.parse_error())) self.dst_data = None self.__stop() diff --git a/mediagoblin/media_types/video/util.py b/mediagoblin/media_types/video/util.py index cf8dc72d..023194b5 100644 --- a/mediagoblin/media_types/video/util.py +++ b/mediagoblin/media_types/video/util.py @@ -43,7 +43,7 @@ def skip_transcode(metadata, size): # XXX: how were we supposed to use it? medium_config = mgg.global_config['media:medium'] - _log.debug('skip_transcode config: {0}'.format(config)) + _log.debug('skip_transcode config: {}'.format(config)) metadata_tags = metadata.get_tags() if not metadata_tags: |