aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/media_types
diff options
context:
space:
mode:
authorBen Sturmfels <ben@sturm.com.au>2021-03-05 23:12:19 +1100
committerBen Sturmfels <ben@sturm.com.au>2021-03-05 23:12:19 +1100
commitdec47c7102cf0aa3a4debf002928db8e460c0d71 (patch)
tree47631fc15c7af172aa699506adf3d76d3a71976c /mediagoblin/media_types
parent5f3a782fef4855e10b7259624a14d8afb0f7be93 (diff)
downloadmediagoblin-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')
-rw-r--r--mediagoblin/media_types/__init__.py18
-rw-r--r--mediagoblin/media_types/ascii/asciitoimage.py12
-rw-r--r--mediagoblin/media_types/ascii/processing.py8
-rw-r--r--mediagoblin/media_types/audio/audiotospectrogram.py4
-rw-r--r--mediagoblin/media_types/audio/processing.py6
-rw-r--r--mediagoblin/media_types/audio/transcoders.py14
-rw-r--r--mediagoblin/media_types/blog/lib.py6
-rw-r--r--mediagoblin/media_types/blog/models.py4
-rw-r--r--mediagoblin/media_types/blog/views.py32
-rw-r--r--mediagoblin/media_types/image/__init__.py2
-rw-r--r--mediagoblin/media_types/image/processing.py23
-rw-r--r--mediagoblin/media_types/pdf/processing.py10
-rw-r--r--mediagoblin/media_types/raw_image/processing.py10
-rw-r--r--mediagoblin/media_types/stl/model_loader.py2
-rw-r--r--mediagoblin/media_types/stl/processing.py6
-rw-r--r--mediagoblin/media_types/tools.py4
-rw-r--r--mediagoblin/media_types/video/__init__.py2
-rw-r--r--mediagoblin/media_types/video/migrations.py12
-rw-r--r--mediagoblin/media_types/video/models.py2
-rw-r--r--mediagoblin/media_types/video/processing.py38
-rw-r--r--mediagoblin/media_types/video/transcoders.py15
-rw-r--r--mediagoblin/media_types/video/util.py2
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: