New Upstream Snapshot - pyacoustid

Ready changes

Summary

Merged new upstream version: 1.2.2+git20220730.1.ce460bd (was: 1.2.2).

Resulting package

Built on 2023-01-20T02:37 (took 4m37s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots python3-acoustid

Lintian Result

Diff

diff --git a/.hgtags b/.hgtags
deleted file mode 100644
index 7480791..0000000
--- a/.hgtags
+++ /dev/null
@@ -1,8 +0,0 @@
-640ddba03a0c58bbfc76f2efeef3a6e469ed2004 0.1
-a100c87f75615a8f102b5196504bca6b2d691582 0.2
-802366acc7675df8ff7e703ca0ad3d7b36095c48 0.3
-9bf288378cc7a107d4ce6afb45153d45b4e7e67a 0.4
-fe581d37054c1e9e85731c31e5dc3d1363606ed5 0.5
-3b45ed88d0624445ce6e6a58632d1253ebf68d2c 0.6
-535fa190248a66d7ca3732dd41b4d26551c38d3e 0.7
-cc845b9589cdd9bfe0e1c6e256dd41da04829c69 v1.0.0
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..e3db451
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,230 @@
+Metadata-Version: 2.1
+Name: pyacoustid
+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: adrian@radbox.org
+License: MIT
+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.3
+  Fix the signedness of numbers returned from
+  `chromaprint_decode_fingerprint`.
+
+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 --git a/README.rst b/README.rst
index 4da9613..6ce6953 100644
--- a/README.rst
+++ b/README.rst
@@ -105,6 +105,10 @@ used when the Chromaprint library or fpcalc command-line tool cannot be found.
 Version History
 ---------------
 
+1.2.3
+  Fix the signedness of numbers returned from
+  `chromaprint_decode_fingerprint`.
+
 1.2.2
   Fix a regression in the previous version that caused a `KeyError` crash when
   calling `submit`.
diff --git a/chromaprint.py b/chromaprint.py
index 151d126..c67796c 100644
--- a/chromaprint.py
+++ b/chromaprint.py
@@ -83,7 +83,7 @@ _libchromaprint.chromaprint_get_fingerprint.restype = ctypes.c_int
 
 _libchromaprint.chromaprint_decode_fingerprint.argtypes = \
     (ctypes.POINTER(ctypes.c_char), ctypes.c_int,
-     ctypes.POINTER(ctypes.POINTER(ctypes.c_int32)),
+     ctypes.POINTER(ctypes.POINTER(ctypes.c_uint32)),
      ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int), ctypes.c_int)
 _libchromaprint.chromaprint_decode_fingerprint.restype = ctypes.c_int
 
@@ -164,7 +164,18 @@ class Fingerprinter(object):
 
 
 def decode_fingerprint(data, base64=True):
-    result_ptr = ctypes.POINTER(ctypes.c_int32)()
+    """Uncompress and optionally decode a fingerprint.
+
+    Args:
+        data: An encoded fingerprint in bytes.
+        base64: Whether to base64-decode the fingerprint.
+
+    Returns:
+        A tuple containing the decoded raw fingerprint as an array
+        of unsigned 32-bit integers, and an int representing the chromaprint
+        algorithm used to generate the fingerprint.
+    """
+    result_ptr = ctypes.POINTER(ctypes.c_uint32)()
     result_size = ctypes.c_int()
     algorithm = ctypes.c_int()
     _check(_libchromaprint.chromaprint_decode_fingerprint(
@@ -177,6 +188,16 @@ def decode_fingerprint(data, base64=True):
 
 
 def encode_fingerprint(fingerprint, algorithm, base64=True):
+    """Compress and optionally encode a fingerprint.
+
+    Args:
+        fingerprint: A bytestring with the fingerprint.
+        algorithm: An int flag choosing the algorithm to use.
+        base64: Whether to base64-encode the fingerprint.
+
+    Returns:
+        A bytestring with the encoded fingerprint.
+    """
     fp_array = (ctypes.c_int * len(fingerprint))()
     for i in range(len(fingerprint)):
         fp_array[i] = fingerprint[i]
@@ -192,13 +213,36 @@ def encode_fingerprint(fingerprint, algorithm, base64=True):
 
 
 def hash_fingerprint(fingerprint):
-    """Generate a single 32-bit hash for a raw decoded fingerprint (list of integers).
+    """Generate a single 32-bit hash for a raw, decoded fingerprint.
+
+    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 clients should not rely on this).
+
+    Compare two hashes with their Hamming distance, i.e., by counting
+    the bits in which they differ.
+
+    Args:
+        fingerprint: A list of ints for the raw, decoded fingerprint.
+
+    Returns:
+        A 32-bit integer hash.
+
+    Example usage:
+        audio_fingerprint = <get fingerprint with Fingerprinter>
+        decoded_fingerprint, algo = decode_fingerprint(audio_fingerprint)
+        first_fingerprint_hash = hash_fingerprint(decoded_fingerprint)
+
+        second_fingerprint_hash = <repeat steps for second audio file>
+
+        # Compare the binary strings using Hamming distance.
+        first_fp_binary = format(first_fingerprint_hash, 'b')
+        second_fp_binary = format(second_fingerprint_hash, 'b')
 
-    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.
+        # This value will be between 0 and 32 and represent the POPCNT.
+        # A value > 15 indicates the two fingerprints are very different.
+        bin(int(first_fp_binary,2)^int(second_fp_binary,2)).count
     """
 
     fp_array = (ctypes.c_int * len(fingerprint))()
diff --git a/debian/changelog b/debian/changelog
index cf95951..c5830a9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,11 @@
-pyacoustid (1.2.2-2) UNRELEASED; urgency=medium
+pyacoustid (1.2.2+git20220730.1.ce460bd-1) UNRELEASED; urgency=medium
 
   * Fix field name typo in debian/upstream/metadata (Repository-Browser ⇒
     Repository-Browse).
   * Update standards version to 4.6.1, no changes needed.
+  * New upstream snapshot.
 
- -- Debian Janitor <janitor@jelmer.uk>  Wed, 16 Nov 2022 13:45:00 -0000
+ -- Debian Janitor <janitor@jelmer.uk>  Fri, 20 Jan 2023 02:33:57 -0000
 
 pyacoustid (1.2.2-1) unstable; urgency=medium
 
diff --git a/pyacoustid.egg-info/PKG-INFO b/pyacoustid.egg-info/PKG-INFO
new file mode 100644
index 0000000..e3db451
--- /dev/null
+++ b/pyacoustid.egg-info/PKG-INFO
@@ -0,0 +1,230 @@
+Metadata-Version: 2.1
+Name: pyacoustid
+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: adrian@radbox.org
+License: MIT
+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.3
+  Fix the signedness of numbers returned from
+  `chromaprint_decode_fingerprint`.
+
+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 --git a/pyacoustid.egg-info/SOURCES.txt b/pyacoustid.egg-info/SOURCES.txt
new file mode 100644
index 0000000..7c50676
--- /dev/null
+++ b/pyacoustid.egg-info/SOURCES.txt
@@ -0,0 +1,13 @@
+LICENSE
+MANIFEST.in
+README.rst
+acoustid.py
+aidmatch.py
+chromaprint.py
+fpcalc.py
+setup.py
+pyacoustid.egg-info/PKG-INFO
+pyacoustid.egg-info/SOURCES.txt
+pyacoustid.egg-info/dependency_links.txt
+pyacoustid.egg-info/requires.txt
+pyacoustid.egg-info/top_level.txt
\ No newline at end of file
diff --git a/pyacoustid.egg-info/dependency_links.txt b/pyacoustid.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/pyacoustid.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/pyacoustid.egg-info/requires.txt b/pyacoustid.egg-info/requires.txt
new file mode 100644
index 0000000..0d1398d
--- /dev/null
+++ b/pyacoustid.egg-info/requires.txt
@@ -0,0 +1,2 @@
+audioread
+requests
diff --git a/pyacoustid.egg-info/top_level.txt b/pyacoustid.egg-info/top_level.txt
new file mode 100644
index 0000000..2ffa677
--- /dev/null
+++ b/pyacoustid.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+acoustid
+chromaprint
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..8bfd5a1
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,4 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+

Debdiff

File lists identical (after any substitutions)

No differences were encountered in the control files

More details

Full run details