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 2023-01-03 15:04:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mediafile (Old)
 and      /work/SRC/openSUSE:Factory/.python-mediafile.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-mediafile"

Tue Jan  3 15:04:58 2023 rev:3 rq:1046221 version:0.11.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mediafile/python-mediafile.changes        
2022-11-01 13:42:28.551866600 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-mediafile.new.1563/python-mediafile.changes  
    2023-01-03 15:05:12.726456192 +0100
@@ -1,0 +2,9 @@
+Mon Jan  2 15:27:08 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 0.11.0:
+  * List-valued properties now return None instead of an empty list when the
+    underlying tags are missing altogether.
+  * Fix a test failure that arose with Mutagen 1.46.
+  * Require Python 3.7 or later.
+
+-------------------------------------------------------------------

Old:
----
  mediafile-0.10.0.tar.gz

New:
----
  mediafile-0.11.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-mediafile.spec ++++++
--- /var/tmp/diff_new_pack.WppH4G/_old  2023-01-03 15:05:13.234459157 +0100
+++ /var/tmp/diff_new_pack.WppH4G/_new  2023-01-03 15:05:13.238459180 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-mediafile
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,12 +19,13 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-mediafile
-Version:        0.10.0
+Version:        0.11.0
 Release:        0
 Summary:        Handles low-level interfacing for files' tags Wraps Mutagen to
 License:        MIT
 URL:            https://github.com/beetbox/mediafile
 Source:         
https://files.pythonhosted.org/packages/source/m/mediafile/mediafile-%{version}.tar.gz
+BuildRequires:  %{python_module base >= 3.7}
 BuildRequires:  %{python_module flit >= 2}
 BuildRequires:  %{python_module mutagen >= 1.45}
 BuildRequires:  %{python_module pip}

++++++ mediafile-0.10.0.tar.gz -> mediafile-0.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/.github/workflows/build.yml 
new/mediafile-0.11.0/.github/workflows/build.yml
--- old/mediafile-0.10.0/.github/workflows/build.yml    2021-08-31 
14:33:42.000000000 +0200
+++ new/mediafile-0.11.0/.github/workflows/build.yml    2022-11-26 
21:28:06.585693000 +0100
@@ -14,36 +14,34 @@
         runs-on: ${{ matrix.os }}
         strategy:
             matrix:
-                tox-env: [py36-test, py37-test, py38-test, py39-test,
-                          pypy-test]
+                tox-env: [py37-test, py38-test, py39-test,
+                          py310-test, pypy-test]
                 os: [ubuntu-latest, windows-latest]
 
                 # Only test on a couple of versions on Windows.
                 exclude:
                     - os: windows-latest
-                      tox-env: py36-test
-                    - os: windows-latest
                       tox-env: py37-test
                     - os: windows-latest
                       tox-env: pypy-test
 
                 # Python interpreter versions. :/
                 include:
-                    - tox-env: py36-test
-                      python: 3.6
                     - tox-env: py37-test
-                      python: 3.7
+                      python: '3.7'
                     - tox-env: py38-test
-                      python: 3.8
+                      python: '3.8'
                     - tox-env: py39-test
-                      python: 3.9
+                      python: '3.9'
+                    - tox-env: py310-test
+                      python: '3.10'
                     - tox-env: pypy-test
-                      python: pypy3
+                      python: pypy3.9
 
         steps:
-            - uses: actions/checkout@v2
+            - uses: actions/checkout@v3
             - name: Set up Python ${{ matrix.python }}
-              uses: actions/setup-python@v1
+              uses: actions/setup-python@v4
               with:
                   python-version: ${{ matrix.python }}
             - name: Install Tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/.gitignore 
new/mediafile-0.11.0/.gitignore
--- old/mediafile-0.10.0/.gitignore     2016-11-27 02:46:20.000000000 +0100
+++ new/mediafile-0.11.0/.gitignore     2022-11-26 21:28:06.586575700 +0100
@@ -74,6 +74,7 @@
 # virtualenv
 venv/
 ENV/
+.venv/
 
 # Spyder project settings
 .spyderproject
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/.readthedocs.yaml 
new/mediafile-0.11.0/.readthedocs.yaml
--- old/mediafile-0.10.0/.readthedocs.yaml      1970-01-01 01:00:00.000000000 
+0100
+++ new/mediafile-0.11.0/.readthedocs.yaml      2022-11-26 21:28:06.586685200 
+0100
@@ -0,0 +1,14 @@
+version: 2
+
+build:
+  os: ubuntu-20.04
+  tools:
+    python: "3.9"
+
+sphinx:
+ configuration: docs/conf.py
+
+python:
+ install:
+   - method: pip
+     path: .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/PKG-INFO 
new/mediafile-0.11.0/PKG-INFO
--- old/mediafile-0.10.0/PKG-INFO       1970-01-01 01:00:00.000000000 +0100
+++ new/mediafile-0.11.0/PKG-INFO       1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +1,22 @@
 Metadata-Version: 2.1
 Name: mediafile
-Version: 0.10.0
+Version: 0.11.0
 Summary: Handles low-level interfacing for files' tags. Wraps Mutagen to
 Home-page: https://github.com/beetbox/mediafile
 Author: Adrian Sampson
 Author-email: [email protected]
-Requires-Python: >=3.6
+Requires-Python: >=3.7
 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: mutagen>=1.46
 Requires-Dist: tox ; extra == "test"
 Provides-Extra: test
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/docs/conf.py 
new/mediafile-0.11.0/docs/conf.py
--- old/mediafile-0.10.0/docs/conf.py   2022-10-21 19:42:01.103196000 +0200
+++ new/mediafile-0.11.0/docs/conf.py   2022-12-15 19:54:10.113947600 +0100
@@ -17,8 +17,8 @@
 copyright = '2016, the beets project'
 author = 'the beets project'
 
-version = '0.10'
-release = '0.10.0'
+version = '0.11'
+release = '0.11.0'
 
 pygments_style = 'sphinx'
 htmlhelp_basename = 'mediafiledoc'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/docs/index.rst 
new/mediafile-0.11.0/docs/index.rst
--- old/mediafile-0.10.0/docs/index.rst 2022-08-21 01:30:30.946122600 +0200
+++ new/mediafile-0.11.0/docs/index.rst 2022-11-26 21:28:53.746066300 +0100
@@ -135,6 +135,18 @@
 Changelog
 ---------
 
+v0.11.0
+'''''''
+
+- List-valued properties now return ``None`` instead of an empty list when the
+  underlying tags are missing altogether.
+
+v0.10.1
+'''''''
+
+- Fix a test failure that arose with Mutagen 1.46.
+- Require Python 3.7 or later.
+
 v0.10.0
 '''''''
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/mediafile.py 
new/mediafile-0.11.0/mediafile.py
--- old/mediafile-0.10.0/mediafile.py   2022-10-21 19:42:14.461887400 +0200
+++ new/mediafile-0.11.0/mediafile.py   2022-12-15 19:53:57.107631000 +0100
@@ -59,7 +59,7 @@
 import traceback
 
 
-__version__ = '0.10.0'
+__version__ = '0.11.0'
 __all__ = ['UnreadableFileError', 'FileTypeError', 'MediaFile']
 
 log = logging.getLogger(__name__)
@@ -600,8 +600,8 @@
     object to each.
 
     Subclasses may overwrite ``fetch`` and ``store``.  ``fetch`` must
-    return a (possibly empty) list and ``store`` receives a serialized
-    list of values as the second argument.
+    return a (possibly empty) list or `None` if the tag does not exist.
+    ``store`` receives a serialized list of values as the second argument.
 
     The `serialize` and `deserialize` methods (from the base
     `StorageStyle`) are still called with individual values. This class
@@ -610,15 +610,23 @@
     def get(self, mutagen_file):
         """Get the first value in the field's value list.
         """
+        values = self.get_list(mutagen_file)
+        if values is None:
+            return None
+
         try:
-            return self.get_list(mutagen_file)[0]
+            return values[0]
         except IndexError:
             return None
 
     def get_list(self, mutagen_file):
         """Get a list of all values for the field using this style.
         """
-        return [self.deserialize(item) for item in self.fetch(mutagen_file)]
+        raw_values = self.fetch(mutagen_file)
+        if raw_values is None:
+            return None
+
+        return [self.deserialize(item) for item in raw_values]
 
     def fetch(self, mutagen_file):
         """Get the list of raw (serialized) values.
@@ -626,19 +634,27 @@
         try:
             return mutagen_file[self.key]
         except KeyError:
-            return []
+            return None
 
     def set(self, mutagen_file, value):
         """Set an individual value as the only value for the field using
         this style.
         """
-        self.set_list(mutagen_file, [value])
+        if value is None:
+            self.store(mutagen_file, None)
+        else:
+            self.set_list(mutagen_file, [value])
 
     def set_list(self, mutagen_file, values):
         """Set all values for the field using this style. `values`
         should be an iterable.
         """
-        self.store(mutagen_file, [self.serialize(value) for value in values])
+        if values is None:
+            self.delete(mutagen_file)
+        else:
+            self.store(
+                mutagen_file, [self.serialize(value) for value in values]
+            )
 
     def store(self, mutagen_file, values):
         """Set the list of all raw (serialized) values for this field.
@@ -1317,7 +1333,7 @@
             values = style.get_list(mediafile.mgfile)
             if values:
                 return [_safe_cast(self.out_type, value) for value in values]
-        return []
+        return None
 
     def __set__(self, mediafile, values):
         for style in self.styles(mediafile.mgfile):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/pyproject.toml 
new/mediafile-0.11.0/pyproject.toml
--- old/mediafile-0.10.0/pyproject.toml 2021-08-31 14:09:34.000000000 +0200
+++ new/mediafile-0.11.0/pyproject.toml 2022-11-26 21:28:06.589150700 +0100
@@ -10,14 +10,13 @@
 description-file = "README.rst"
 requires = [
     "six>=1.9",
-    "mutagen>=1.45",
+    "mutagen>=1.46",
 ]
-requires-python = ">=3.6"
+requires-python = ">=3.7"
 classifiers = [
     'Topic :: Multimedia :: Sound/Audio',
     'License :: OSI Approved :: MIT License',
     'Environment :: Web Environment',
-    'Programming Language :: Python :: 3.6',
     'Programming Language :: Python :: 3.7',
     'Programming Language :: Python :: 3.8',
     'Programming Language :: Python :: 3.9',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/test/test_mediafile.py 
new/mediafile-0.11.0/test/test_mediafile.py
--- old/mediafile-0.10.0/test/test_mediafile.py 2022-03-30 13:41:40.412092200 
+0200
+++ new/mediafile-0.11.0/test/test_mediafile.py 2022-11-26 21:28:06.589732000 
+0100
@@ -160,7 +160,7 @@
         mediafile.save()
 
         mediafile = MediaFile(mediafile.filename)
-        self.assertEqual(len(mediafile.images), 0)
+        self.assertIsNone(mediafile.images)
 
     def test_guess_cover(self):
         mediafile = self._mediafile_fixture('image')
@@ -1001,7 +1001,7 @@
     extension = 'wav'
     audio_properties = {
         'length': 1.0,
-        'bitrate': 88200,
+        'bitrate': 705600,
         'bitrate_mode': '',
         'encoder_info': '',
         'encoder_settings': '',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mediafile-0.10.0/tox.ini new/mediafile-0.11.0/tox.ini
--- old/mediafile-0.10.0/tox.ini        2021-08-31 14:33:42.000000000 +0200
+++ new/mediafile-0.11.0/tox.ini        2022-11-26 21:28:06.590905000 +0100
@@ -4,7 +4,7 @@
 # and then run "tox" from this directory.
 
 [tox]
-envlist = py{37,38}-test, py38-flake8
+envlist = py310-test, py310-flake8
 isolated_build = True
 
 [tox:.package]
@@ -12,8 +12,7 @@
 
 [_test]
 deps =
-    nose
-    nose-show-skipped
+    pytest
 
 [_flake8]
 deps =
@@ -23,15 +22,14 @@
 files = mediafile.py test setup.py
 
 [testenv]
-passenv =
-    NOSE_SHOW_SKIPPED # Undocumented feature of nose-show-skipped.
 deps =
     {test,cov}: {[_test]deps}
-    py{36,37,38,39}-flake8: {[_flake8]deps}
+    py{36,37,38,39,310,311}-flake8: {[_flake8]deps}
 commands =
-    cov: nosetests --with-coverage {posargs}
-    py3{6,7,8,9}-test: python -bb -m nose {posargs}
+    py3{6,7,8,9,10,11}-test: python -bb -m pytest {posargs}
     py36-flake8: flake8 --min-version 3.6 {posargs} {[_flake8]files}
     py37-flake8: flake8 --min-version 3.7 {posargs} {[_flake8]files}
     py38-flake8: flake8 --min-version 3.8 {posargs} {[_flake8]files}
     py39-flake8: flake8 --min-version 3.9 {posargs} {[_flake8]files}
+    py310-flake8: flake8 --min-version 3.10 {posargs} {[_flake8]files}
+    py311-flake8: flake8 --min-version 3.11 {posargs} {[_flake8]files}

Reply via email to