Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyacoustid for 
openSUSE:Factory checked in at 2022-10-06 07:42:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyacoustid (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyacoustid.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyacoustid"

Thu Oct  6 07:42:16 2022 rev:4 rq:1008175 version:1.2.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyacoustid/python-pyacoustid.changes      
2019-05-27 08:39:42.699039953 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pyacoustid.new.2275/python-pyacoustid.changes
    2022-10-06 07:42:27.336720902 +0200
@@ -1,0 +2,14 @@
+Tue Oct  4 23:44:14 UTC 2022 - Yogalakshmi Arunachalam <[email protected]>
+
+- Update to version 1.2.2
+  Fix a regression in the previous version that caused a KeyError crash when 
calling submit.
+
+- Update to version 1.2.1
+  The meta parameter to some API functions can now be a list (instead of just 
a single string).
+
+- Update to version 1.2.0
+  Add a force_fpcalc option to fingerprint_file and match. Avoid leaving a 
dangling socket after communicating with the server.
+  Fix a crash when passing a memoryview object to the fingerprinter. API 
requests can now optionally time out. More reliably find the library
+   on Windows on Python 3.8. Add a hash_fingerprint function to the low-level 
library. 
+
+-------------------------------------------------------------------

Old:
----
  pyacoustid-1.1.7.tar.gz

New:
----
  pyacoustid-1.2.2.tar.gz

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

Other differences:
------------------
++++++ python-pyacoustid.spec ++++++
--- /var/tmp/diff_new_pack.cvqRQN/_old  2022-10-06 07:42:28.504723502 +0200
+++ /var/tmp/diff_new_pack.cvqRQN/_new  2022-10-06 07:42:28.512723519 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pyacoustid
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pyacoustid
-Version:        1.1.7
+Version:        1.2.2
 Release:        0
 Summary:        Bindings for Chromaprint acoustic fingerprinting and the 
Acoustid API
 License:        MIT

++++++ pyacoustid-1.1.7.tar.gz -> pyacoustid-1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/PKG-INFO 
new/pyacoustid-1.2.2/PKG-INFO
--- old/pyacoustid-1.1.7/PKG-INFO       2019-05-25 14:47:25.000000000 +0200
+++ new/pyacoustid-1.2.2/PKG-INFO       2021-09-01 15:35:41.777999200 +0200
@@ -1,208 +1,228 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: pyacoustid
-Version: 1.1.7
+Version: 1.2.2
 Summary: bindings for Chromaprint acoustic fingerprinting and the Acoustid API
 Home-page: https://github.com/sampsyo/pyacoustid
 Author: Adrian Sampson
 Author-email: [email protected]
 License: MIT
-Description: Chromaprint and Acoustid for Python
-        ===================================
-        
-        `Chromaprint`_ and its associated `Acoustid`_ Web service make up a
-        high-quality, open-source acoustic fingerprinting system. This package 
provides
-        Python bindings for both the fingerprinting algorithm library, which 
is written
-        in C but portable, and the Web service, which provides fingerprint 
lookups.
-        
-        .. _Chromaprint: http://acoustid.org/
-        .. _Acoustid: http://acoustid.org/chromaprint
-        
-        
-        Installation
-        ------------
-        
-        This library works with Python 2 (2.7+, possibly also 2.6) and Python 3
-        (3.3+).
-        
-        First, install the `Chromaprint`_ fingerprinting library by `Lukas 
Lalinsky`__.
-        (The library itself depends on an FFT library, but it's smart enough 
to use an
-        algorithm from software you probably already have installed; see the 
Chromaprint
-        page for details.) This module can use either the Chromaprint dynamic 
library or
-        the ``fpcalc`` command-line tool, which itself depends on 
`libavcodec`_. If you
-        use ``fpcalc``, either ensure that it is on your ``$PATH`` or set the 
``FPCALC``
-        environment variable to its location.
-        
-        __ lukas_
-        .. _lukas: http://oxygene.sk/lukas/
-        .. _libavcodec: http://ffmpeg.org/
-        
-        Then you can install this library from `PyPI`_ using `pip`_::
-        
-            $ pip install pyacoustid
-        
-        This library uses `audioread`_ to do audio decoding when not using 
``fpcalc``
-        and `requests`_ to talk to the HTTP API (pip should automatically 
install
-        these dependencies).
-        
-        .. _pip: http://www.pip-installer.org/
-        .. _PyPI: http://pypi.python.org/
-        .. _audioread: https://github.com/sampsyo/audioread
-        .. _requests: http://python-requests.org
-        
-        
-        Running
-        -------
-        
-        You can run the included demonstration script, ``aidmatch.py``, to 
test your
-        installation::
-        
-            $ python aidmatch.py mysterious_music.mp3
-        
-        This will show the top metadata match from Acoustid's database. The 
script uses
-        `audioread`_ to decode music, so it should transparently use a media 
library
-        available on your system (GStreamer, FFmpeg, MAD, or Core Audio).
-        
-        
-        Using in Your Code
-        ------------------
-        
-        The simplest way to use pyacoustid to identify audio files is to call 
the
-        ``match`` function::
-        
-            >>> import acoustid
-            >>> for score, recording_id, title, artist in 
acoustid.match(apikey, path):
-            >>>     ...
-        
-        This convenience function uses `audioread`_ to decode audio and parses 
the
-        response for you, pulling out the most important track metadata. It 
returns in
-        iterable over tuples of relevant information. Everything happens in 
one fell
-        swoop. There are also a number of "smaller" functions you can use to 
perform
-        parts of the process:
-        
-        - ``fingerprint(samplerate, channels, pcmiter)``: Generate a 
fingerprint for raw
-          audio data. Specify the audio parameters and give an iterable 
containing
-          blocks of PCM data.
-        - ``fingerprint_file(path)``: Using either the Chromaprint dynamic 
library or
-          the ``fpcalc`` command-line tool, fingerprint an audio file. Returns 
a pair
-          consisting of the file's duration and its fingerprint.
-        - ``lookup(apikey, fingerprint, duration)``: Make a request to the 
`Acoustid`_
-          API to look up the fingerprint returned by the previous function. An 
API key
-          is required, as is the length, in seconds, of the source audio. 
Returns a
-          parsed JSON response.
-        - ``parse_lookup_result(data)``: Given a parsed JSON response, return 
an
-          iterator over tuples containing the match score (a float between 0 
and 1), the
-          MusicBrainz recording ID, title, and artist name for each match.
-        
-        The module internally performs thread-safe API rate limiting to 3 
queries per
-        second whenever the Web API is called, in accordance with the `Web 
service
-        documentation`_.
-        
-        If you're running your own Acoustid database server, you can set the 
base URL
-        for all API calls with the ``set_base_url`` function.
-        
-        Calls to the library can raise ``AcoustidError`` exceptions of two 
subtypes:
-        ``FingerprintGenerationError`` and ``WebServiceError``. Catch these 
exceptions
-        if you want to proceed when audio can't be decoded or no match is 
found on the
-        server. ``NoBackendError``, a subclass of 
``FingerprintGenerationError``, is
-        used when the Chromaprint library or fpcalc command-line tool cannot 
be found.
-        
-        .. _Web service documentation: http://acoustid.org/webservice
-        
-        
-        Version History
-        ---------------
-        
-        1.1.7
-          Include a LICENSE file.
-        
-        1.1.6
-          In submission, avoid an error on non-integer durations.
-          A new function, `get_submission_status`, abstracts the API endpoint 
for
-          monitoring submissions using the (new) result from the `submit` 
function.
-        
-        1.1.5
-          Fix compatibility with Python 3 in the `submit` function.
-          Errors in `submit` are now also handled correctly (i.e., they raise 
an
-          informative `WebServiceError` instead of a `TypeError`).
-        
-        1.1.4
-          Fix an error on versions of the `fpcalc` tool that report the 
duration as a
-          fractional number.
-        
-        1.1.3
-          Accept `bytearray` objects in addition to other bytes-like types.
-        
-        1.1.2
-          Fix a possible crash on Unicode text in Python 2 in a non-Unicode 
locale.
-          Look for version "1" of the Chromaprint shared library file.
-        
-        1.1.1
-          Fix a possible setup error on Python 3 (thanks to Simon Chopin).
-        
-        1.1.0
-          Include ``fpcalc.py`` script in source distributions.
-          Add Python 3 support (thanks to Igor Tsarev).
-        
-        1.0.0
-          Include ``fpcalc.py``, a script mimicking the ``fpcalc`` program 
from the
-          Chromaprint package.
-          Handle a ``UnicodeDecodeError`` raised when using the ``fpcalc`` 
backend on
-          Windows with Unicode filenames.
-          Standard error output from ``fpcalc`` is suppressed.
-        
-        0.7
-          Properly encode Unicode parameters (resolves a ``UnicodeEncodeError``
-          in fingerprint submission).
-          Parse all recordings for each Acoustid lookup result.
-        
-        0.6
-          Add a new function, ``fingerprint_file``, that automatically selects 
a
-          backend for fingerprinting a single file.
-        
-        0.5
-          Fix response parsing when recording has no artists or title.
-          Fix compatibility with Python < 2.7.
-          Add specific ``NoBackendError`` exception.
-        
-        0.4
-          Fingerprinting can now fall back to using the ``fpcalc`` 
command-line tool
-          instead of the Chromaprint dynamic library so the library can be 
used with
-          the binary distributions (thanks to Lukas Lalinsky).
-          Fingerprint submission (thanks to Alastair Porter).
-          Data chunks can now be buffers as well as bytestrings (fixes 
compatibility
-          with pymad).
-        
-        0.3
-          Configurable API base URL.
-          Result parser now generates all results instead of returning just 
one.
-          Find the chromaprint library on Cygwin.
-          New module names: ``chromaprint`` and ``acoustid`` (no package).
-        
-        0.2
-          Compress HTTP requests and responses.
-          Limit audio decoding to 120 seconds.
-          Return score from convenience function.
-        
-        0.1
-          Initial release.
-        
-        
-        Credits
-        -------
-        
-        This library is by Adrian Sampson. Chromaprint and Acoustid are by 
`Lukas
-        Lalinsky`__. This package includes the original `ctypes`_-based 
bindings
-        written by Lukas. The entire library is made available under the `MIT 
license`_.
-        pyacoustid was written to be used with `beets`_, which you should 
probably check
-        out.
-        
-        __ lukas_
-        .. _ctypes: http://docs.python.org/library/ctypes.html
-        .. _beets: http://beets.radbox.org/
-        .. _MIT license: http://www.opensource.org/licenses/mit-license.php
-        
 Platform: ALL
 Classifier: Topic :: Multimedia :: Sound/Audio :: Conversion
 Classifier: Intended Audience :: Developers
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 3
+License-File: LICENSE
+
+Chromaprint and Acoustid for Python
+===================================
+
+`Chromaprint`_ and its associated `Acoustid`_ Web service make up a
+high-quality, open-source acoustic fingerprinting system. This package provides
+Python bindings for both the fingerprinting algorithm library, which is written
+in C but portable, and the Web service, which provides fingerprint lookups.
+
+.. _Chromaprint: http://acoustid.org/chromaprint
+.. _Acoustid: http://acoustid.org/
+
+
+Installation
+------------
+
+This library works with Python 2 (2.7+, possibly also 2.6) and Python 3
+(3.3+).
+
+First, install the `Chromaprint`_ fingerprinting library by `Lukas Lalinsky`__.
+(The library itself depends on an FFT library, but it's smart enough to use an
+algorithm from software you probably already have installed; see the 
Chromaprint
+page for details.) This module can use either the Chromaprint dynamic library 
or
+the ``fpcalc`` command-line tool, which itself depends on `libavcodec`_. If you
+use ``fpcalc``, either ensure that it is on your ``$PATH`` or set the 
``FPCALC``
+environment variable to its location.
+
+__ lukas_
+.. _lukas: http://oxygene.sk/lukas/
+.. _libavcodec: http://ffmpeg.org/
+
+Then you can install this library from `PyPI`_ using `pip`_::
+
+    $ pip install pyacoustid
+
+This library uses `audioread`_ to do audio decoding when not using ``fpcalc``
+and `requests`_ to talk to the HTTP API (pip should automatically install
+these dependencies).
+
+.. _pip: http://www.pip-installer.org/
+.. _PyPI: http://pypi.python.org/
+.. _audioread: https://github.com/sampsyo/audioread
+.. _requests: http://python-requests.org
+
+
+Running
+-------
+
+You can run the included demonstration script, ``aidmatch.py``, to test your
+installation::
+
+    $ python aidmatch.py mysterious_music.mp3
+
+This will show the top metadata match from Acoustid's database. The script uses
+`audioread`_ to decode music, so it should transparently use a media library
+available on your system (GStreamer, FFmpeg, MAD, or Core Audio).
+
+
+Using in Your Code
+------------------
+
+The simplest way to use pyacoustid to identify audio files is to call the
+``match`` function::
+
+    >>> import acoustid
+    >>> for score, recording_id, title, artist in acoustid.match(apikey, path):
+    >>>     ...
+
+This convenience function uses `audioread`_ to decode audio and parses the
+response for you, pulling out the most important track metadata. It returns in
+iterable over tuples of relevant information. Everything happens in one fell
+swoop. There are also a number of "smaller" functions you can use to perform
+parts of the process:
+
+- ``fingerprint(samplerate, channels, pcmiter)``: Generate a fingerprint for 
raw
+  audio data. Specify the audio parameters and give an iterable containing
+  blocks of PCM data.
+- ``fingerprint_file(path)``: Using either the Chromaprint dynamic library or
+  the ``fpcalc`` command-line tool, fingerprint an audio file. (You can use
+  ``force_fpcalc`` to use only the latter.) Returns a pair consisting of the
+  file's duration and its fingerprint.
+- ``lookup(apikey, fingerprint, duration)``: Make a request to the `Acoustid`_
+  API to look up the fingerprint returned by the previous function. An API key
+  is required, as is the length, in seconds, of the source audio. Returns a
+  parsed JSON response.
+- ``parse_lookup_result(data)``: Given a parsed JSON response, return an
+  iterator over tuples containing the match score (a float between 0 and 1), 
the
+  MusicBrainz recording ID, title, and artist name for each match.
+
+The module internally performs thread-safe API rate limiting to 3 queries per
+second whenever the Web API is called, in accordance with the `Web service
+documentation`_.
+
+If you're running your own Acoustid database server, you can set the base URL
+for all API calls with the ``set_base_url`` function.
+
+Calls to the library can raise ``AcoustidError`` exceptions of two subtypes:
+``FingerprintGenerationError`` and ``WebServiceError``. Catch these exceptions
+if you want to proceed when audio can't be decoded or no match is found on the
+server. ``NoBackendError``, a subclass of ``FingerprintGenerationError``, is
+used when the Chromaprint library or fpcalc command-line tool cannot be found.
+
+.. _Web service documentation: http://acoustid.org/webservice
+
+
+Version History
+---------------
+
+1.2.2
+  Fix a regression in the previous version that caused a `KeyError` crash when
+  calling `submit`.
+
+1.2.1
+  The `meta` parameter to some API functions can now be a list (instead of
+  just a single string).
+
+1.2.0
+  Add a `force_fpcalc` option to `fingerprint_file` and `match`.
+  Avoid leaving a dangling socket after communicating with the server.
+  Fix a crash when passing a `memoryview` object to the fingerprinter.
+  API requests can now optionally time out.
+  More reliably find the library on Windows on Python 3.8.
+  Add a `hash_fingerprint` function to the low-level library.
+
+1.1.7
+  Include a LICENSE file.
+
+1.1.6
+  In submission, avoid an error on non-integer durations.
+  A new function, `get_submission_status`, abstracts the API endpoint for
+  monitoring submissions using the (new) result from the `submit` function.
+
+1.1.5
+  Fix compatibility with Python 3 in the `submit` function.
+  Errors in `submit` are now also handled correctly (i.e., they raise an
+  informative `WebServiceError` instead of a `TypeError`).
+
+1.1.4
+  Fix an error on versions of the `fpcalc` tool that report the duration as a
+  fractional number.
+
+1.1.3
+  Accept `bytearray` objects in addition to other bytes-like types.
+
+1.1.2
+  Fix a possible crash on Unicode text in Python 2 in a non-Unicode locale.
+  Look for version "1" of the Chromaprint shared library file.
+
+1.1.1
+  Fix a possible setup error on Python 3 (thanks to Simon Chopin).
+
+1.1.0
+  Include ``fpcalc.py`` script in source distributions.
+  Add Python 3 support (thanks to Igor Tsarev).
+
+1.0.0
+  Include ``fpcalc.py``, a script mimicking the ``fpcalc`` program from the
+  Chromaprint package.
+  Handle a ``UnicodeDecodeError`` raised when using the ``fpcalc`` backend on
+  Windows with Unicode filenames.
+  Standard error output from ``fpcalc`` is suppressed.
+
+0.7
+  Properly encode Unicode parameters (resolves a ``UnicodeEncodeError``
+  in fingerprint submission).
+  Parse all recordings for each Acoustid lookup result.
+
+0.6
+  Add a new function, ``fingerprint_file``, that automatically selects a
+  backend for fingerprinting a single file.
+
+0.5
+  Fix response parsing when recording has no artists or title.
+  Fix compatibility with Python < 2.7.
+  Add specific ``NoBackendError`` exception.
+
+0.4
+  Fingerprinting can now fall back to using the ``fpcalc`` command-line tool
+  instead of the Chromaprint dynamic library so the library can be used with
+  the binary distributions (thanks to Lukas Lalinsky).
+  Fingerprint submission (thanks to Alastair Porter).
+  Data chunks can now be buffers as well as bytestrings (fixes compatibility
+  with pymad).
+
+0.3
+  Configurable API base URL.
+  Result parser now generates all results instead of returning just one.
+  Find the chromaprint library on Cygwin.
+  New module names: ``chromaprint`` and ``acoustid`` (no package).
+
+0.2
+  Compress HTTP requests and responses.
+  Limit audio decoding to 120 seconds.
+  Return score from convenience function.
+
+0.1
+  Initial release.
+
+
+Credits
+-------
+
+This library is by Adrian Sampson. Chromaprint and Acoustid are by `Lukas
+Lalinsky`__. This package includes the original `ctypes`_-based bindings
+written by Lukas. The entire library is made available under the `MIT 
license`_.
+pyacoustid was written to be used with `beets`_, which you should probably 
check
+out.
+
+__ lukas_
+.. _ctypes: http://docs.python.org/library/ctypes.html
+.. _beets: http://beets.radbox.org/
+.. _MIT license: http://www.opensource.org/licenses/mit-license.php
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/README.rst 
new/pyacoustid-1.2.2/README.rst
--- old/pyacoustid-1.1.7/README.rst     2019-05-25 14:46:32.000000000 +0200
+++ new/pyacoustid-1.2.2/README.rst     2021-09-01 15:35:26.000000000 +0200
@@ -6,8 +6,8 @@
 Python bindings for both the fingerprinting algorithm library, which is written
 in C but portable, and the Web service, which provides fingerprint lookups.
 
-.. _Chromaprint: http://acoustid.org/
-.. _Acoustid: http://acoustid.org/chromaprint
+.. _Chromaprint: http://acoustid.org/chromaprint
+.. _Acoustid: http://acoustid.org/
 
 
 Installation
@@ -75,8 +75,9 @@
   audio data. Specify the audio parameters and give an iterable containing
   blocks of PCM data.
 - ``fingerprint_file(path)``: Using either the Chromaprint dynamic library or
-  the ``fpcalc`` command-line tool, fingerprint an audio file. Returns a pair
-  consisting of the file's duration and its fingerprint.
+  the ``fpcalc`` command-line tool, fingerprint an audio file. (You can use
+  ``force_fpcalc`` to use only the latter.) Returns a pair consisting of the
+  file's duration and its fingerprint.
 - ``lookup(apikey, fingerprint, duration)``: Make a request to the `Acoustid`_
   API to look up the fingerprint returned by the previous function. An API key
   is required, as is the length, in seconds, of the source audio. Returns a
@@ -104,6 +105,22 @@
 Version History
 ---------------
 
+1.2.2
+  Fix a regression in the previous version that caused a `KeyError` crash when
+  calling `submit`.
+
+1.2.1
+  The `meta` parameter to some API functions can now be a list (instead of
+  just a single string).
+
+1.2.0
+  Add a `force_fpcalc` option to `fingerprint_file` and `match`.
+  Avoid leaving a dangling socket after communicating with the server.
+  Fix a crash when passing a `memoryview` object to the fingerprinter.
+  API requests can now optionally time out.
+  More reliably find the library on Windows on Python 3.8.
+  Add a `hash_fingerprint` function to the low-level library.
+
 1.1.7
   Include a LICENSE file.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/acoustid.py 
new/pyacoustid-1.2.2/acoustid.py
--- old/pyacoustid-1.1.7/acoustid.py    2018-11-20 22:19:28.000000000 +0100
+++ new/pyacoustid-1.2.2/acoustid.py    2021-09-01 15:35:26.000000000 +0200
@@ -38,7 +38,7 @@
 
 
 API_BASE_URL = 'http://api.acoustid.org/v2/'
-DEFAULT_META = 'recordings'
+DEFAULT_META = ['recordings']
 REQUEST_INTERVAL = 0.33  # 3 requests/second.
 MAX_AUDIO_LENGTH = 120  # Seconds.
 FPCALC_COMMAND = 'fpcalc'
@@ -112,10 +112,12 @@
     """Get the URL of the submission API endpoint."""
     return API_BASE_URL + 'submit'
 
+
 def _get_submission_status_url():
     """Get the URL of the submission status API endpoint."""
     return API_BASE_URL + 'submission_status'
 
+
 # Compressed HTTP request bodies.
 
 def _compress(data):
@@ -166,22 +168,32 @@
 
 
 @_rate_limit
-def _api_request(url, params):
+def _api_request(url, params, timeout=None):
     """Makes a POST request for the URL with the given form parameters,
     which are encoded as compressed form data, and returns a parsed JSON
     response. May raise a WebServiceError if the request fails.
+    If the specified timeout passes, then raises a TimeoutError.
     """
     headers = {
         'Accept-Encoding': 'gzip',
         "Content-Type": "application/x-www-form-urlencoded"
     }
 
-    session = requests.Session()
-    session.mount('http://', CompressedHTTPAdapter())
-    try:
-        response = session.post(url, data=params, headers=headers)
-    except requests.exceptions.RequestException as exc:
-        raise WebServiceError("HTTP request failed: {0}".format(exc))
+    with requests.Session() as session:
+        session.mount('http://', CompressedHTTPAdapter())
+        try:
+            if isinstance(params.get('meta'), list):
+                params['meta'] = ' '.join(params['meta'])
+            response = session.post(url,
+                                    data=params,
+                                    headers=headers,
+                                    timeout=timeout)
+        except requests.exceptions.RequestException as exc:
+            raise WebServiceError("HTTP request failed: {0}".format(exc))
+        except requests.exceptions.ReadTimeout:
+            raise WebServiceError(
+                "HTTP request timed out ({0}s)".format(timeout)
+            )
 
     try:
         return response.json()
@@ -216,9 +228,12 @@
         raise FingerprintGenerationError("fingerprint calculation failed")
 
 
-def lookup(apikey, fingerprint, duration, meta=DEFAULT_META):
+def lookup(apikey, fingerprint, duration, meta=DEFAULT_META, timeout=None):
     """Look up a fingerprint with the Acoustid Web service. Returns the
-    Python object reflecting the response JSON data.
+    Python object reflecting the response JSON data. To get more data
+    back, ``meta`` can be a list of keywords from this list: recordings,
+    recordingids, releases, releaseids, releasegroups, releasegroupids,
+    tracks, compress, usermeta, sources.
     """
     params = {
         'format': 'json',
@@ -227,7 +242,7 @@
         'fingerprint': fingerprint,
         'meta': meta,
     }
-    return _api_request(_get_lookup_url(), params)
+    return _api_request(_get_lookup_url(), params, timeout)
 
 
 def parse_lookup_result(data):
@@ -314,33 +329,40 @@
     return duration, fp
 
 
-def fingerprint_file(path, maxlength=MAX_AUDIO_LENGTH):
+def fingerprint_file(path, maxlength=MAX_AUDIO_LENGTH, force_fpcalc=False):
     """Fingerprint a file either using the Chromaprint dynamic library
-    or the fpcalc command-line tool, whichever is available. Returns the
-    duration and the fingerprint.
+    or the fpcalc command-line tool, whichever is available (unless
+    ``force_fpcalc`` is specified). Returns the duration and the
+    fingerprint.
     """
     path = os.path.abspath(os.path.expanduser(path))
-    if have_audioread and have_chromaprint:
+    if have_audioread and have_chromaprint and not force_fpcalc:
         return _fingerprint_file_audioread(path, maxlength)
     else:
         return _fingerprint_file_fpcalc(path, maxlength)
 
 
-def match(apikey, path, meta=DEFAULT_META, parse=True):
+def match(apikey, path, meta=DEFAULT_META, parse=True, force_fpcalc=False,
+          timeout=None):
     """Look up the metadata for an audio file. If ``parse`` is true,
     then ``parse_lookup_result`` is used to return an iterator over
     small tuple of relevant information; otherwise, the full parsed JSON
-    response is returned.
+    response is returned. Fingerprinting uses either the Chromaprint
+    library or the fpcalc command-line tool; if ``force_fpcalc`` is
+    true, only the latter will be used. To get more data back, ``meta``
+    can be a list of keywords from this list: recordings, recordingids,
+    releases, releaseids, releasegroups, releasegroupids, tracks,
+    compress, usermeta, sources.
     """
-    duration, fp = fingerprint_file(path)
-    response = lookup(apikey, fp, duration, meta)
+    duration, fp = fingerprint_file(path, force_fpcalc=force_fpcalc)
+    response = lookup(apikey, fp, duration, meta, timeout)
     if parse:
         return parse_lookup_result(response)
     else:
         return response
 
 
-def submit(apikey, userkey, data):
+def submit(apikey, userkey, data, timeout=None):
     """Submit a fingerprint to the acoustid server. The ``apikey`` and
     ``userkey`` parameters are API keys for the application and the
     submitting user, respectively.
@@ -378,7 +400,7 @@
         for k, v in d.items():
             args["%s.%s" % (k, i)] = v
 
-    response = _api_request(_get_submit_url(), args)
+    response = _api_request(_get_submit_url(), args, timeout)
     if response.get('status') != 'ok':
         try:
             code = response['error']['code']
@@ -388,7 +410,8 @@
         raise WebServiceError("error {0}: {1}".format(code, message))
     return response
 
-def get_submission_status(apikey, submission_id):
+
+def get_submission_status(apikey, submission_id, timeout=None):
     """Get the status of a submission to the acoustid server.
     ``submission_id`` is the id of a fingerprint submission, as returned
     in the response object of a call to the ``submit`` endpoint.
@@ -398,4 +421,4 @@
         'client': apikey,
         'id': submission_id,
     }
-    return _api_request(_get_submission_status_url(), params)
+    return _api_request(_get_submission_status_url(), params, timeout)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/chromaprint.py 
new/pyacoustid-1.2.2/chromaprint.py
--- old/pyacoustid-1.1.7/chromaprint.py 2018-08-22 15:41:03.000000000 +0200
+++ new/pyacoustid-1.2.2/chromaprint.py 2020-05-02 16:58:26.000000000 +0200
@@ -6,14 +6,17 @@
 
 import sys
 import ctypes
-
+import ctypes.util
 
 if sys.version_info[0] >= 3:
     BUFFER_TYPES = (memoryview, bytearray,)
+    BYTES_TYPE = bytes
 elif sys.version_info[1] >= 7:
     BUFFER_TYPES = (buffer, memoryview, bytearray,)  # noqa: F821
+    BYTES_TYPE = str
 else:
     BUFFER_TYPES = (buffer, bytearray,)  # noqa: F821
+    BYTES_TYPE = str
 
 
 # Find the base library and declare prototypes.
@@ -29,12 +32,27 @@
     return ('libchromaprint.so.1', 'libchromaprint.so.0')
 
 
-for name in _guess_lib_name():
+def _load_library(name):
+    """Try to load a dynamic library with ctypes, or return None if the
+    library is not available.
+    """
+    if sys.platform == 'win32':
+        # On Windows since Python 3.8, we need an extra call to
+        # `find_library` to search standard library paths.
+        name = ctypes.util.find_library(name)
+        if not name:
+            return None
+
     try:
-        _libchromaprint = ctypes.cdll.LoadLibrary(name)
-        break
+        return ctypes.cdll.LoadLibrary(name)
     except OSError:
-        pass
+        return None
+
+
+for name in _guess_lib_name():
+    _libchromaprint = _load_library(name)
+    if _libchromaprint:
+        break
 else:
     raise ImportError("couldn't find libchromaprint")
 
@@ -75,6 +93,11 @@
      ctypes.POINTER(ctypes.c_int), ctypes.c_int)
 _libchromaprint.chromaprint_encode_fingerprint.restype = ctypes.c_int
 
+_libchromaprint.chromaprint_hash_fingerprint.argtypes = \
+    (ctypes.POINTER(ctypes.c_int32), ctypes.c_int,
+     ctypes.POINTER(ctypes.c_uint32))
+_libchromaprint.chromaprint_hash_fingerprint.restype = ctypes.c_int
+
 _libchromaprint.chromaprint_dealloc.argtypes = (ctypes.c_void_p,)
 _libchromaprint.chromaprint_dealloc.restype = None
 
@@ -119,7 +142,7 @@
         either a bytestring or a buffer object.
         """
         if isinstance(data, BUFFER_TYPES):
-            data = str(data)
+            data = BYTES_TYPE(data)
         elif not isinstance(data, bytes):
             raise TypeError('data must be bytes, buffer, or memoryview')
         _check(_libchromaprint.chromaprint_feed(
@@ -166,3 +189,23 @@
     result = result_ptr[:result_size.value]
     _libchromaprint.chromaprint_dealloc(result_ptr)
     return result
+
+
+def hash_fingerprint(fingerprint):
+    """Generate a single 32-bit hash for a raw decoded fingerprint (list of 
integers).
+
+    If two fingerprints are similar, their hashes generated by this function
+    will also be similar. If they are significantly different, their hashes
+    will most likely be significantly different as well, but you can't rely
+    on that.
+    You compare two hashes by counting the bits in which they differ.
+    """
+
+    fp_array = (ctypes.c_int * len(fingerprint))()
+    for i in range(len(fingerprint)):
+        fp_array[i] = fingerprint[i]
+    result_hash = ctypes.c_uint32()
+    _check(_libchromaprint.chromaprint_hash_fingerprint(
+        fp_array, len(fingerprint), ctypes.byref(result_hash)
+    ))
+    return result_hash.value
Binary files old/pyacoustid-1.1.7/pyacoustid.egg-info/.pbr.json.icloud and 
new/pyacoustid-1.2.2/pyacoustid.egg-info/.pbr.json.icloud differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/pyacoustid.egg-info/PKG-INFO 
new/pyacoustid-1.2.2/pyacoustid.egg-info/PKG-INFO
--- old/pyacoustid-1.1.7/pyacoustid.egg-info/PKG-INFO   2019-05-25 
14:47:25.000000000 +0200
+++ new/pyacoustid-1.2.2/pyacoustid.egg-info/PKG-INFO   2021-09-01 
15:35:41.000000000 +0200
@@ -1,208 +1,228 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: pyacoustid
-Version: 1.1.7
+Version: 1.2.2
 Summary: bindings for Chromaprint acoustic fingerprinting and the Acoustid API
 Home-page: https://github.com/sampsyo/pyacoustid
 Author: Adrian Sampson
 Author-email: [email protected]
 License: MIT
-Description: Chromaprint and Acoustid for Python
-        ===================================
-        
-        `Chromaprint`_ and its associated `Acoustid`_ Web service make up a
-        high-quality, open-source acoustic fingerprinting system. This package 
provides
-        Python bindings for both the fingerprinting algorithm library, which 
is written
-        in C but portable, and the Web service, which provides fingerprint 
lookups.
-        
-        .. _Chromaprint: http://acoustid.org/
-        .. _Acoustid: http://acoustid.org/chromaprint
-        
-        
-        Installation
-        ------------
-        
-        This library works with Python 2 (2.7+, possibly also 2.6) and Python 3
-        (3.3+).
-        
-        First, install the `Chromaprint`_ fingerprinting library by `Lukas 
Lalinsky`__.
-        (The library itself depends on an FFT library, but it's smart enough 
to use an
-        algorithm from software you probably already have installed; see the 
Chromaprint
-        page for details.) This module can use either the Chromaprint dynamic 
library or
-        the ``fpcalc`` command-line tool, which itself depends on 
`libavcodec`_. If you
-        use ``fpcalc``, either ensure that it is on your ``$PATH`` or set the 
``FPCALC``
-        environment variable to its location.
-        
-        __ lukas_
-        .. _lukas: http://oxygene.sk/lukas/
-        .. _libavcodec: http://ffmpeg.org/
-        
-        Then you can install this library from `PyPI`_ using `pip`_::
-        
-            $ pip install pyacoustid
-        
-        This library uses `audioread`_ to do audio decoding when not using 
``fpcalc``
-        and `requests`_ to talk to the HTTP API (pip should automatically 
install
-        these dependencies).
-        
-        .. _pip: http://www.pip-installer.org/
-        .. _PyPI: http://pypi.python.org/
-        .. _audioread: https://github.com/sampsyo/audioread
-        .. _requests: http://python-requests.org
-        
-        
-        Running
-        -------
-        
-        You can run the included demonstration script, ``aidmatch.py``, to 
test your
-        installation::
-        
-            $ python aidmatch.py mysterious_music.mp3
-        
-        This will show the top metadata match from Acoustid's database. The 
script uses
-        `audioread`_ to decode music, so it should transparently use a media 
library
-        available on your system (GStreamer, FFmpeg, MAD, or Core Audio).
-        
-        
-        Using in Your Code
-        ------------------
-        
-        The simplest way to use pyacoustid to identify audio files is to call 
the
-        ``match`` function::
-        
-            >>> import acoustid
-            >>> for score, recording_id, title, artist in 
acoustid.match(apikey, path):
-            >>>     ...
-        
-        This convenience function uses `audioread`_ to decode audio and parses 
the
-        response for you, pulling out the most important track metadata. It 
returns in
-        iterable over tuples of relevant information. Everything happens in 
one fell
-        swoop. There are also a number of "smaller" functions you can use to 
perform
-        parts of the process:
-        
-        - ``fingerprint(samplerate, channels, pcmiter)``: Generate a 
fingerprint for raw
-          audio data. Specify the audio parameters and give an iterable 
containing
-          blocks of PCM data.
-        - ``fingerprint_file(path)``: Using either the Chromaprint dynamic 
library or
-          the ``fpcalc`` command-line tool, fingerprint an audio file. Returns 
a pair
-          consisting of the file's duration and its fingerprint.
-        - ``lookup(apikey, fingerprint, duration)``: Make a request to the 
`Acoustid`_
-          API to look up the fingerprint returned by the previous function. An 
API key
-          is required, as is the length, in seconds, of the source audio. 
Returns a
-          parsed JSON response.
-        - ``parse_lookup_result(data)``: Given a parsed JSON response, return 
an
-          iterator over tuples containing the match score (a float between 0 
and 1), the
-          MusicBrainz recording ID, title, and artist name for each match.
-        
-        The module internally performs thread-safe API rate limiting to 3 
queries per
-        second whenever the Web API is called, in accordance with the `Web 
service
-        documentation`_.
-        
-        If you're running your own Acoustid database server, you can set the 
base URL
-        for all API calls with the ``set_base_url`` function.
-        
-        Calls to the library can raise ``AcoustidError`` exceptions of two 
subtypes:
-        ``FingerprintGenerationError`` and ``WebServiceError``. Catch these 
exceptions
-        if you want to proceed when audio can't be decoded or no match is 
found on the
-        server. ``NoBackendError``, a subclass of 
``FingerprintGenerationError``, is
-        used when the Chromaprint library or fpcalc command-line tool cannot 
be found.
-        
-        .. _Web service documentation: http://acoustid.org/webservice
-        
-        
-        Version History
-        ---------------
-        
-        1.1.7
-          Include a LICENSE file.
-        
-        1.1.6
-          In submission, avoid an error on non-integer durations.
-          A new function, `get_submission_status`, abstracts the API endpoint 
for
-          monitoring submissions using the (new) result from the `submit` 
function.
-        
-        1.1.5
-          Fix compatibility with Python 3 in the `submit` function.
-          Errors in `submit` are now also handled correctly (i.e., they raise 
an
-          informative `WebServiceError` instead of a `TypeError`).
-        
-        1.1.4
-          Fix an error on versions of the `fpcalc` tool that report the 
duration as a
-          fractional number.
-        
-        1.1.3
-          Accept `bytearray` objects in addition to other bytes-like types.
-        
-        1.1.2
-          Fix a possible crash on Unicode text in Python 2 in a non-Unicode 
locale.
-          Look for version "1" of the Chromaprint shared library file.
-        
-        1.1.1
-          Fix a possible setup error on Python 3 (thanks to Simon Chopin).
-        
-        1.1.0
-          Include ``fpcalc.py`` script in source distributions.
-          Add Python 3 support (thanks to Igor Tsarev).
-        
-        1.0.0
-          Include ``fpcalc.py``, a script mimicking the ``fpcalc`` program 
from the
-          Chromaprint package.
-          Handle a ``UnicodeDecodeError`` raised when using the ``fpcalc`` 
backend on
-          Windows with Unicode filenames.
-          Standard error output from ``fpcalc`` is suppressed.
-        
-        0.7
-          Properly encode Unicode parameters (resolves a ``UnicodeEncodeError``
-          in fingerprint submission).
-          Parse all recordings for each Acoustid lookup result.
-        
-        0.6
-          Add a new function, ``fingerprint_file``, that automatically selects 
a
-          backend for fingerprinting a single file.
-        
-        0.5
-          Fix response parsing when recording has no artists or title.
-          Fix compatibility with Python < 2.7.
-          Add specific ``NoBackendError`` exception.
-        
-        0.4
-          Fingerprinting can now fall back to using the ``fpcalc`` 
command-line tool
-          instead of the Chromaprint dynamic library so the library can be 
used with
-          the binary distributions (thanks to Lukas Lalinsky).
-          Fingerprint submission (thanks to Alastair Porter).
-          Data chunks can now be buffers as well as bytestrings (fixes 
compatibility
-          with pymad).
-        
-        0.3
-          Configurable API base URL.
-          Result parser now generates all results instead of returning just 
one.
-          Find the chromaprint library on Cygwin.
-          New module names: ``chromaprint`` and ``acoustid`` (no package).
-        
-        0.2
-          Compress HTTP requests and responses.
-          Limit audio decoding to 120 seconds.
-          Return score from convenience function.
-        
-        0.1
-          Initial release.
-        
-        
-        Credits
-        -------
-        
-        This library is by Adrian Sampson. Chromaprint and Acoustid are by 
`Lukas
-        Lalinsky`__. This package includes the original `ctypes`_-based 
bindings
-        written by Lukas. The entire library is made available under the `MIT 
license`_.
-        pyacoustid was written to be used with `beets`_, which you should 
probably check
-        out.
-        
-        __ lukas_
-        .. _ctypes: http://docs.python.org/library/ctypes.html
-        .. _beets: http://beets.radbox.org/
-        .. _MIT license: http://www.opensource.org/licenses/mit-license.php
-        
 Platform: ALL
 Classifier: Topic :: Multimedia :: Sound/Audio :: Conversion
 Classifier: Intended Audience :: Developers
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 3
+License-File: LICENSE
+
+Chromaprint and Acoustid for Python
+===================================
+
+`Chromaprint`_ and its associated `Acoustid`_ Web service make up a
+high-quality, open-source acoustic fingerprinting system. This package provides
+Python bindings for both the fingerprinting algorithm library, which is written
+in C but portable, and the Web service, which provides fingerprint lookups.
+
+.. _Chromaprint: http://acoustid.org/chromaprint
+.. _Acoustid: http://acoustid.org/
+
+
+Installation
+------------
+
+This library works with Python 2 (2.7+, possibly also 2.6) and Python 3
+(3.3+).
+
+First, install the `Chromaprint`_ fingerprinting library by `Lukas Lalinsky`__.
+(The library itself depends on an FFT library, but it's smart enough to use an
+algorithm from software you probably already have installed; see the 
Chromaprint
+page for details.) This module can use either the Chromaprint dynamic library 
or
+the ``fpcalc`` command-line tool, which itself depends on `libavcodec`_. If you
+use ``fpcalc``, either ensure that it is on your ``$PATH`` or set the 
``FPCALC``
+environment variable to its location.
+
+__ lukas_
+.. _lukas: http://oxygene.sk/lukas/
+.. _libavcodec: http://ffmpeg.org/
+
+Then you can install this library from `PyPI`_ using `pip`_::
+
+    $ pip install pyacoustid
+
+This library uses `audioread`_ to do audio decoding when not using ``fpcalc``
+and `requests`_ to talk to the HTTP API (pip should automatically install
+these dependencies).
+
+.. _pip: http://www.pip-installer.org/
+.. _PyPI: http://pypi.python.org/
+.. _audioread: https://github.com/sampsyo/audioread
+.. _requests: http://python-requests.org
+
+
+Running
+-------
+
+You can run the included demonstration script, ``aidmatch.py``, to test your
+installation::
+
+    $ python aidmatch.py mysterious_music.mp3
+
+This will show the top metadata match from Acoustid's database. The script uses
+`audioread`_ to decode music, so it should transparently use a media library
+available on your system (GStreamer, FFmpeg, MAD, or Core Audio).
+
+
+Using in Your Code
+------------------
+
+The simplest way to use pyacoustid to identify audio files is to call the
+``match`` function::
+
+    >>> import acoustid
+    >>> for score, recording_id, title, artist in acoustid.match(apikey, path):
+    >>>     ...
+
+This convenience function uses `audioread`_ to decode audio and parses the
+response for you, pulling out the most important track metadata. It returns in
+iterable over tuples of relevant information. Everything happens in one fell
+swoop. There are also a number of "smaller" functions you can use to perform
+parts of the process:
+
+- ``fingerprint(samplerate, channels, pcmiter)``: Generate a fingerprint for 
raw
+  audio data. Specify the audio parameters and give an iterable containing
+  blocks of PCM data.
+- ``fingerprint_file(path)``: Using either the Chromaprint dynamic library or
+  the ``fpcalc`` command-line tool, fingerprint an audio file. (You can use
+  ``force_fpcalc`` to use only the latter.) Returns a pair consisting of the
+  file's duration and its fingerprint.
+- ``lookup(apikey, fingerprint, duration)``: Make a request to the `Acoustid`_
+  API to look up the fingerprint returned by the previous function. An API key
+  is required, as is the length, in seconds, of the source audio. Returns a
+  parsed JSON response.
+- ``parse_lookup_result(data)``: Given a parsed JSON response, return an
+  iterator over tuples containing the match score (a float between 0 and 1), 
the
+  MusicBrainz recording ID, title, and artist name for each match.
+
+The module internally performs thread-safe API rate limiting to 3 queries per
+second whenever the Web API is called, in accordance with the `Web service
+documentation`_.
+
+If you're running your own Acoustid database server, you can set the base URL
+for all API calls with the ``set_base_url`` function.
+
+Calls to the library can raise ``AcoustidError`` exceptions of two subtypes:
+``FingerprintGenerationError`` and ``WebServiceError``. Catch these exceptions
+if you want to proceed when audio can't be decoded or no match is found on the
+server. ``NoBackendError``, a subclass of ``FingerprintGenerationError``, is
+used when the Chromaprint library or fpcalc command-line tool cannot be found.
+
+.. _Web service documentation: http://acoustid.org/webservice
+
+
+Version History
+---------------
+
+1.2.2
+  Fix a regression in the previous version that caused a `KeyError` crash when
+  calling `submit`.
+
+1.2.1
+  The `meta` parameter to some API functions can now be a list (instead of
+  just a single string).
+
+1.2.0
+  Add a `force_fpcalc` option to `fingerprint_file` and `match`.
+  Avoid leaving a dangling socket after communicating with the server.
+  Fix a crash when passing a `memoryview` object to the fingerprinter.
+  API requests can now optionally time out.
+  More reliably find the library on Windows on Python 3.8.
+  Add a `hash_fingerprint` function to the low-level library.
+
+1.1.7
+  Include a LICENSE file.
+
+1.1.6
+  In submission, avoid an error on non-integer durations.
+  A new function, `get_submission_status`, abstracts the API endpoint for
+  monitoring submissions using the (new) result from the `submit` function.
+
+1.1.5
+  Fix compatibility with Python 3 in the `submit` function.
+  Errors in `submit` are now also handled correctly (i.e., they raise an
+  informative `WebServiceError` instead of a `TypeError`).
+
+1.1.4
+  Fix an error on versions of the `fpcalc` tool that report the duration as a
+  fractional number.
+
+1.1.3
+  Accept `bytearray` objects in addition to other bytes-like types.
+
+1.1.2
+  Fix a possible crash on Unicode text in Python 2 in a non-Unicode locale.
+  Look for version "1" of the Chromaprint shared library file.
+
+1.1.1
+  Fix a possible setup error on Python 3 (thanks to Simon Chopin).
+
+1.1.0
+  Include ``fpcalc.py`` script in source distributions.
+  Add Python 3 support (thanks to Igor Tsarev).
+
+1.0.0
+  Include ``fpcalc.py``, a script mimicking the ``fpcalc`` program from the
+  Chromaprint package.
+  Handle a ``UnicodeDecodeError`` raised when using the ``fpcalc`` backend on
+  Windows with Unicode filenames.
+  Standard error output from ``fpcalc`` is suppressed.
+
+0.7
+  Properly encode Unicode parameters (resolves a ``UnicodeEncodeError``
+  in fingerprint submission).
+  Parse all recordings for each Acoustid lookup result.
+
+0.6
+  Add a new function, ``fingerprint_file``, that automatically selects a
+  backend for fingerprinting a single file.
+
+0.5
+  Fix response parsing when recording has no artists or title.
+  Fix compatibility with Python < 2.7.
+  Add specific ``NoBackendError`` exception.
+
+0.4
+  Fingerprinting can now fall back to using the ``fpcalc`` command-line tool
+  instead of the Chromaprint dynamic library so the library can be used with
+  the binary distributions (thanks to Lukas Lalinsky).
+  Fingerprint submission (thanks to Alastair Porter).
+  Data chunks can now be buffers as well as bytestrings (fixes compatibility
+  with pymad).
+
+0.3
+  Configurable API base URL.
+  Result parser now generates all results instead of returning just one.
+  Find the chromaprint library on Cygwin.
+  New module names: ``chromaprint`` and ``acoustid`` (no package).
+
+0.2
+  Compress HTTP requests and responses.
+  Limit audio decoding to 120 seconds.
+  Return score from convenience function.
+
+0.1
+  Initial release.
+
+
+Credits
+-------
+
+This library is by Adrian Sampson. Chromaprint and Acoustid are by `Lukas
+Lalinsky`__. This package includes the original `ctypes`_-based bindings
+written by Lukas. The entire library is made available under the `MIT 
license`_.
+pyacoustid was written to be used with `beets`_, which you should probably 
check
+out.
+
+__ lukas_
+.. _ctypes: http://docs.python.org/library/ctypes.html
+.. _beets: http://beets.radbox.org/
+.. _MIT license: http://www.opensource.org/licenses/mit-license.php
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/pyacoustid.egg-info/SOURCES.txt 
new/pyacoustid-1.2.2/pyacoustid.egg-info/SOURCES.txt
--- old/pyacoustid-1.1.7/pyacoustid.egg-info/SOURCES.txt        2019-05-25 
14:47:25.000000000 +0200
+++ new/pyacoustid-1.2.2/pyacoustid.egg-info/SOURCES.txt        2021-09-01 
15:35:41.000000000 +0200
@@ -6,9 +6,9 @@
 chromaprint.py
 fpcalc.py
 setup.py
-pyacoustid.egg-info/.pbr.json.icloud
 pyacoustid.egg-info/PKG-INFO
 pyacoustid.egg-info/SOURCES.txt
 pyacoustid.egg-info/dependency_links.txt
+pyacoustid.egg-info/pbr.json
 pyacoustid.egg-info/requires.txt
 pyacoustid.egg-info/top_level.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/pyacoustid.egg-info/pbr.json 
new/pyacoustid-1.2.2/pyacoustid.egg-info/pbr.json
--- old/pyacoustid-1.1.7/pyacoustid.egg-info/pbr.json   1970-01-01 
01:00:00.000000000 +0100
+++ new/pyacoustid-1.2.2/pyacoustid.egg-info/pbr.json   2017-04-08 
18:23:35.000000000 +0200
@@ -0,0 +1 @@
+{"is_release": false, "git_version": "0d56b1d"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyacoustid-1.1.7/setup.py 
new/pyacoustid-1.2.2/setup.py
--- old/pyacoustid-1.1.7/setup.py       2019-05-25 14:46:06.000000000 +0200
+++ new/pyacoustid-1.2.2/setup.py       2021-09-01 15:35:26.000000000 +0200
@@ -31,7 +31,7 @@
 
 
 setup(name='pyacoustid',
-      version='1.1.7',
+      version='1.2.2',
       description=('bindings for Chromaprint acoustic fingerprinting and the '
                    'Acoustid API'),
       author='Adrian Sampson',

Reply via email to