Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-mediafile for openSUSE:Factory checked in at 2022-11-01 13:42:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-mediafile (Old) and /work/SRC/openSUSE:Factory/.python-mediafile.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mediafile" Tue Nov 1 13:42:17 2022 rev:2 rq:1032502 version:0.10.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-mediafile/python-mediafile.changes 2022-02-13 00:16:10.360248299 +0100 +++ /work/SRC/openSUSE:Factory/.python-mediafile.new.2275/python-mediafile.changes 2022-11-01 13:42:28.551866600 +0100 @@ -1,0 +2,9 @@ +Fri Oct 28 18:25:16 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to version 0.10.0 + * Add the multiple-valued properties albumtypes, catalognums and languages. + * The catalognum property now refers to additional file tags named CATALOGID and DISCOGS_CATALOG (but only for reading, not writing). + * The multi-valued albumartists property now refers to additional file tags named ALBUM_ARTIST and ALBUM ARTISTS. (The latter is used only for reading.) + * The ListMediaField class now doesn???t concatenate multiple lists if found. The first available tag is used instead, like with other kinds of fields. + +------------------------------------------------------------------- Old: ---- mediafile-0.9.0.tar.gz New: ---- mediafile-0.10.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-mediafile.spec ++++++ --- /var/tmp/diff_new_pack.yIS99Y/_old 2022-11-01 13:42:29.019869090 +0100 +++ /var/tmp/diff_new_pack.yIS99Y/_new 2022-11-01 13:42:29.023869111 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-mediafile -Version: 0.9.0 +Version: 0.10.0 Release: 0 Summary: Handles low-level interfacing for files' tags Wraps Mutagen to License: MIT ++++++ mediafile-0.9.0.tar.gz -> mediafile-0.10.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/PKG-INFO new/mediafile-0.10.0/PKG-INFO --- old/mediafile-0.9.0/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 +++ new/mediafile-0.10.0/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +1,74 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: mediafile -Version: 0.9.0 +Version: 0.10.0 Summary: Handles low-level interfacing for files' tags. Wraps Mutagen to Home-page: https://github.com/beetbox/mediafile Author: Adrian Sampson Author-email: adr...@radbox.org +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +Classifier: Topic :: Multimedia :: Sound/Audio +Classifier: License :: OSI Approved :: MIT License +Classifier: Environment :: Web Environment +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Dist: six>=1.9 +Requires-Dist: mutagen>=1.45 +Requires-Dist: tox ; extra == "test" +Provides-Extra: test + +MediaFile: read and write audio files' tags in Python +===================================================== + +.. image:: https://github.com/beetbox/mediafile/workflows/Build/badge.svg?branch=master + :target: https://github.com/beetbox/mediafile/actions + +.. image:: http://img.shields.io/pypi/v/mediafile.svg + :target: https://pypi.python.org/pypi/mediafile + +MediaFile is a simple interface to the metadata tags for many audio file +formats. It wraps `Mutagen`_, a high-quality library for low-level tag +manipulation, with a high-level, format-independent interface for a common set +of tags. + +.. _Mutagen: https://github.com/quodlibet/mutagen + +Synopsis +-------- + +MediaFile is available `on PyPI`_. Install it by typing ``pip install +mediafile``. It works on Python 2.7 and Python 3.4 or later. Then: + +.. code:: python + + >>> from mediafile import MediaFile + >>> f = MediaFile('Lucy.mp3') + >>> f.title + u'Lucy in the Sky with Diamonds' + >>> f.artist = 'The Beatles' + >>> f.save() + +.. _on PyPI: https://pypi.python.org/pypi/mediafile + +Documentation +------------- + +See the `full documentation`_. + +.. _full documentation: http://mediafile.readthedocs.io/ + +Authors +------- + +MediaFile is part of the `beets`_ project. It was originally written by +`Adrian Sampson`_ and is now developed by the beets community. The license is +MIT. + +.. _Adrian Sampson: https://github.com/sampsyo +.. _beets: https://github.com/beetbox/beets +.. _MIT: http://www.opensource.org/licenses/mit-license.php + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/docs/conf.py new/mediafile-0.10.0/docs/conf.py --- old/mediafile-0.9.0/docs/conf.py 2021-11-26 21:13:43.079020000 +0100 +++ new/mediafile-0.10.0/docs/conf.py 2022-10-21 19:42:01.103196000 +0200 @@ -17,8 +17,8 @@ copyright = '2016, the beets project' author = 'the beets project' -version = '0.9' -release = '0.9.0' +version = '0.10' +release = '0.10.0' pygments_style = 'sphinx' htmlhelp_basename = 'mediafiledoc' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/docs/index.rst new/mediafile-0.10.0/docs/index.rst --- old/mediafile-0.9.0/docs/index.rst 2021-11-26 21:13:43.079349300 +0100 +++ new/mediafile-0.10.0/docs/index.rst 2022-08-21 01:30:30.946122600 +0200 @@ -135,6 +135,20 @@ Changelog --------- +v0.10.0 +''''''' + +- Add the multiple-valued properties ``albumtypes``, ``catalognums`` and + ``languages``. +- The ``catalognum`` property now refers to additional file tags named + ``CATALOGID`` and ``DISCOGS_CATALOG`` (but only for reading, not writing). +- The multi-valued ``albumartists`` property now refers to additional file + tags named ``ALBUM_ARTIST`` and ``ALBUM ARTISTS``. (The latter + is used only for reading.) +- The ``ListMediaField`` class now doesn't concatenate multiple lists if + found. The first available tag is used instead, like with other kinds of + fields. + v0.9.0 '''''' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/mediafile.py new/mediafile-0.10.0/mediafile.py --- old/mediafile-0.9.0/mediafile.py 2021-11-26 21:13:43.079976600 +0100 +++ new/mediafile-0.10.0/mediafile.py 2022-10-21 19:42:14.461887400 +0200 @@ -59,7 +59,7 @@ import traceback -__version__ = '0.9.0' +__version__ = '0.10.0' __all__ = ['UnreadableFileError', 'FileTypeError', 'MediaFile'] log = logging.getLogger(__name__) @@ -1312,11 +1312,12 @@ Uses ``get_list`` and set_list`` methods of its ``StorageStyle`` strategies to do the actual work. """ - def __get__(self, mediafile, _): - values = [] + def __get__(self, mediafile, _=None): for style in self.styles(mediafile.mgfile): - values.extend(style.get_list(mediafile.mgfile)) - return [_safe_cast(self.out_type, value) for value in values] + values = style.get_list(mediafile.mgfile) + if values: + return [_safe_cast(self.out_type, value) for value in values] + return [] def __set__(self, mediafile, values): for style in self.styles(mediafile.mgfile): @@ -1909,22 +1910,33 @@ MP3StorageStyle('TPE2'), MP4StorageStyle('aART'), StorageStyle('ALBUM ARTIST'), + StorageStyle('ALBUM_ARTIST'), StorageStyle('ALBUMARTIST'), ASFStorageStyle('WM/AlbumArtist'), ) albumartists = ListMediaField( MP3ListDescStorageStyle(desc=u'ALBUMARTISTS'), + MP3ListDescStorageStyle(desc=u'ALBUM_ARTISTS'), + MP3ListDescStorageStyle(desc=u'ALBUM ARTISTS', read_only=True), MP4ListStorageStyle('----:com.apple.iTunes:ALBUMARTISTS'), + MP4ListStorageStyle('----:com.apple.iTunes:ALBUM_ARTISTS'), + MP4ListStorageStyle( + '----:com.apple.iTunes:ALBUM ARTISTS', read_only=True + ), ListStorageStyle('ALBUMARTISTS'), + ListStorageStyle('ALBUM_ARTISTS'), + ListStorageStyle('ALBUM ARTISTS', read_only=True), ASFStorageStyle('WM/AlbumArtists'), ) - albumtype = MediaField( - MP3DescStorageStyle(u'MusicBrainz Album Type'), - MP4StorageStyle('----:com.apple.iTunes:MusicBrainz Album Type'), - StorageStyle('RELEASETYPE'), - StorageStyle('MUSICBRAINZ_ALBUMTYPE'), + albumtypes = ListMediaField( + MP3ListDescStorageStyle('MusicBrainz Album Type', split_v23=True), + MP4ListStorageStyle('----:com.apple.iTunes:MusicBrainz Album Type'), + ListStorageStyle('RELEASETYPE'), + ListStorageStyle('MUSICBRAINZ_ALBUMTYPE'), ASFStorageStyle('MusicBrainz/Album Type'), ) + albumtype = albumtypes.single_field() + label = MediaField( MP3StorageStyle('TPUB'), MP4StorageStyle('----:com.apple.iTunes:LABEL'), @@ -1952,12 +1964,26 @@ StorageStyle('ASIN'), ASFStorageStyle('MusicBrainz/ASIN'), ) - catalognum = MediaField( - MP3DescStorageStyle(u'CATALOGNUMBER'), - MP4StorageStyle('----:com.apple.iTunes:CATALOGNUMBER'), - StorageStyle('CATALOGNUMBER'), + catalognums = ListMediaField( + MP3ListDescStorageStyle('CATALOGNUMBER', split_v23=True), + MP3ListDescStorageStyle('CATALOGID', read_only=True), + MP3ListDescStorageStyle('DISCOGS_CATALOG', read_only=True), + MP4ListStorageStyle('----:com.apple.iTunes:CATALOGNUMBER'), + MP4ListStorageStyle( + '----:com.apple.iTunes:CATALOGID', read_only=True + ), + MP4ListStorageStyle( + '----:com.apple.iTunes:DISCOGS_CATALOG', read_only=True + ), + ListStorageStyle('CATALOGNUMBER'), + ListStorageStyle('CATALOGID', read_only=True), + ListStorageStyle('DISCOGS_CATALOG', read_only=True), ASFStorageStyle('WM/CatalogNo'), + ASFStorageStyle('CATALOGID', read_only=True), + ASFStorageStyle('DISCOGS_CATALOG', read_only=True), ) + catalognum = catalognums.single_field() + barcode = MediaField( MP3DescStorageStyle(u'BARCODE'), MP4StorageStyle('----:com.apple.iTunes:BARCODE'), @@ -1993,12 +2019,14 @@ StorageStyle('SCRIPT'), ASFStorageStyle('WM/Script'), ) - language = MediaField( - MP3StorageStyle('TLAN'), - MP4StorageStyle('----:com.apple.iTunes:LANGUAGE'), - StorageStyle('LANGUAGE'), + languages = ListMediaField( + MP3ListStorageStyle('TLAN'), + MP4ListStorageStyle('----:com.apple.iTunes:LANGUAGE'), + ListStorageStyle('LANGUAGE'), ASFStorageStyle('WM/Language'), ) + language = languages.single_field() + country = MediaField( MP3DescStorageStyle(u'MusicBrainz Album Release Country'), MP4StorageStyle('----:com.apple.iTunes:MusicBrainz ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/setup.py new/mediafile-0.10.0/setup.py --- old/mediafile-0.9.0/setup.py 1970-01-01 01:00:00.000000000 +0100 +++ new/mediafile-0.10.0/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# setup.py generated by flit for tools that don't yet use PEP 517 - -from distutils.core import setup - -install_requires = \ -['six>=1.9', 'mutagen>=1.45'] - -extras_require = \ -{'test': ['tox']} - -setup(name='mediafile', - version='0.9.0', - description="Handles low-level interfacing for files' tags. Wraps Mutagen to", - author='Adrian Sampson', - author_email='adr...@radbox.org', - url='https://github.com/beetbox/mediafile', - py_modules=['mediafile'], - install_requires=install_requires, - extras_require=extras_require, - python_requires='>=3.6', - ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mediafile-0.9.0/test/test_mediafile.py new/mediafile-0.10.0/test/test_mediafile.py --- old/mediafile-0.9.0/test/test_mediafile.py 2021-11-26 21:13:43.082924600 +0100 +++ new/mediafile-0.10.0/test/test_mediafile.py 2022-03-30 13:41:40.412092200 +0200 @@ -1109,7 +1109,8 @@ fields = list(ReadWriteTestBase.tag_fields) fields.extend( ('encoder', 'images', 'genres', 'albumtype', 'artists', - 'albumartists', 'url', 'mb_artistids', 'mb_albumartistids') + 'albumartists', 'url', 'mb_artistids', 'mb_albumartistids', + 'albumtypes', 'catalognums', 'languages') ) assertCountEqual(self, MediaFile.fields(), fields)