Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-discid for openSUSE:Factory checked in at 2026-08-05 17:49:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-discid (Old) and /work/SRC/openSUSE:Factory/.python-discid.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-discid" Wed Aug 5 17:49:22 2026 rev:12 rq:1369589 version:1.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-discid/python-discid.changes 2026-04-07 16:49:16.869463673 +0200 +++ /work/SRC/openSUSE:Factory/.python-discid.new.16738/python-discid.changes 2026-08-05 17:50:16.305789135 +0200 @@ -1,0 +2,94 @@ +Tue Aug 4 21:12:24 UTC 2026 - Dirk Müller <[email protected]> + +- update to 1.4.2: + * Provide Python wheel on PyPI. + * Removed remaining Python 2 specific code from util.py. + * Mark package as typed by adding a py.typed marker file. + * Added type hints to the public API for better IDE support and + type checking. + * Added :attr:`Disc.pregap` property. + * Fixed: mutable default arguments in function signatures. + * Accept any Sequence[int] for offsets in :func:`put`. + * Removed Python 2 specific code and comments. + * Improved code consistency with ruff formatting and linting. + * Minimum supported Python version is now 3.10 (previously + 3.9). + * Enhanced documentation with type hints using sphinx-autodoc- + typehints. + * Fixed typos and broken links in documentation. + * Modernized, PEP 518 compatible, build system using + pyproject.toml. + * Minimum supported Python version is now 3.9. + * :issue:`51` tests requiring a physical disc are not run by + default anymore. Set the environment variable + PYTHON_DISCID_TEST_DEVICE to enable them or run make + disccheck. + * Fixed :func:`put` to work with first track number greater + than 1. + * Add :attr:`Disc.cddb_query_string` property. + * improve install with pip + * add Makefile + * workaround :issue:`43` for py2app problems + * :issue:`41` improve windows example + * feature :issue:`36` add :attr:`Disc.toc_string` + * :issue:`38` remove :class:`DiscId` (deprecated since 0.5.0) + * fix: :issue:`37` test_emptyness: Assertion disc->success + failed + * revert code to version 1.0.0 (see :issue:`35`) + * fix: :issue:`35` deprecation warning for DEFAULT_DEVICE shows + always + * renamed a api documentation page, a redirect was created + * fix: :issue:`34` bring back :data:`DEFAULT_DEVICE` as + deprecated + * :issue:`30` :data:`DEFAULT_DEVICE` is now + :func:`get_default_device()` + * :issue:`32` :attr:`Disc.submission_url` doesn't point to a + redirect now + * fix: seconds are now rounded the same as on MB server + (0.5->up) + * feature: :issue:`10` add :attr:`Disc.mcn` and + :attr:`Track.isrc` + * feature: add :data:`LIBDISCID_VERSION_STRING` + * feature: :issue:`28` add :attr:`Disc.seconds`, + :attr:`Track.seconds` and aliases :attr:`Disc.length` and + :attr:`Track.sectors` + * :issue:`22` move :func:`read` and :func:`put` to module level + * :issue:`25` provide a package discid rather than a module + * :issue:`29` changed parameters for :func:`put` to include + extra sectors and add :exc:`TOCError` + * rename :class:`DiscId` to :class:`Disc` + * fix: :issue:`27` move track attributes to :class:`Track` + * fix: :issue:`24` only have "real" tracks in the list(s) (0 + not special) + * fix: :issue:`19` only read the requested features from disc + (sparse) + * fix: :issue:`26` remove :attr:`DiscId.webservice_url` + (deprecated) + * fix: detect the version of libdiscid 0.3.0 also in lib64 + installations + * feature: added :data:`FEATURES_IMPLEMENTED`, + :attr:`DiscId.track_lengths`, :attr:`DiscId.webservice_url` + and :attr:`DiscId.freedb_id` + * feature :issue:`18`: disc access test suite + * fix :issue:`21`: uninformative error on Windows + * feature :issue:`20`: add :data:`FEATURES` list + * feature: :func:`DiscId.put`, :attr:`DiscId.track_offsets`, + :attr:`DiscId.sectors`, :attr:`DiscId.first_track_num`, + :attr:`DiscId.last_track_num` + * fix :issue:`17`: test fails on Mac OS X for default_device + * fix :issue:`16`: prefer libdiscid in current directory + * fix :issue:`15`: import can now raise :exc:`OSError` + * fix :issue:`14`: find libdiscid in current folder + (Linux/Unix) + * fix :issue:`9`: test fails on Python 3.2 because of unicode + literals + * API change from :func:`DiscId.get_id` to :attr:`DiscId.id` + * added :data:`DEFAULT_DEVICE` as a module constant + * added :attr:`DiscId.submission_url` + * added an actual documentation and links to linux packages + * add tests and continuous integration configuration + * add changelog + * initial version with :func:`DiscId.read` and + :func:`DiscId.get_id` + +------------------------------------------------------------------- Old: ---- discid-1.4.0.tar.gz New: ---- discid-1.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-discid.spec ++++++ --- /var/tmp/diff_new_pack.fDPHHR/_old 2026-08-05 17:50:16.853808364 +0200 +++ /var/tmp/diff_new_pack.fDPHHR/_new 2026-08-05 17:50:16.853808364 +0200 @@ -19,7 +19,7 @@ %{?sle15allpythons} Name: python-discid -Version: 1.4.0 +Version: 1.4.2 Release: 0 Summary: Python binding of Libdiscid License: LGPL-3.0-or-later ++++++ discid-1.4.0.tar.gz -> discid-1.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/CHANGES.rst new/discid-1.4.2/CHANGES.rst --- old/discid-1.4.0/CHANGES.rst 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/CHANGES.rst 2026-07-10 12:20:05.000000000 +0200 @@ -1,6 +1,15 @@ Changelog ========= +Changes in 1.4.2 (2026-07-10): +------------------------------ + * Provide Python wheel on PyPI. + * Removed remaining Python 2 specific code from ``util.py``. + +Changes in 1.4.1 (2026-06-24): +------------------------------ + * Mark package as typed by adding a ``py.typed`` marker file. + Changes in 1.4.0 (2026-03-30): ------------------------------ * Added type hints to the public API for better IDE support and type checking. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/PKG-INFO new/discid-1.4.2/PKG-INFO --- old/discid-1.4.0/PKG-INFO 2026-03-30 08:16:01.948351400 +0200 +++ new/discid-1.4.2/PKG-INFO 2026-07-10 12:20:14.504207400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: discid -Version: 1.4.0 +Version: 1.4.2 Summary: Python binding of Libdiscid Author-email: Johannes Dewender <[email protected]>, Philipp Wolfer <[email protected]> License-Expression: LGPL-3.0-or-later @@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3 :: Only Classifier: Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Typing :: Typed Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: COPYING.LESSER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid/__init__.py new/discid-1.4.2/discid/__init__.py --- old/discid-1.4.0/discid/__init__.py 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/discid/__init__.py 2026-07-10 12:20:05.000000000 +0200 @@ -33,19 +33,19 @@ from discid.libdiscid import get_default_device from discid.track import Track -__version__ = "1.4.0" +__version__ = "1.4.2" __all__ = [ - "LIBDISCID_VERSION_STRING", "FEATURES", "FEATURES_IMPLEMENTED", + "LIBDISCID_VERSION_STRING", "Disc", - "Track", "DiscError", "TOCError", - "read", - "put", + "Track", "get_default_device", + "put", + "read", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid/disc.py new/discid-1.4.2/discid/disc.py --- old/discid-1.4.0/discid/disc.py 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/discid/disc.py 2026-07-10 12:20:05.000000000 +0200 @@ -191,7 +191,7 @@ # only the "read" (= TOC) feature is supported by put self._requested_features = ["read"] - offsets = [disc_sectors] + list(track_offsets) + offsets = [disc_sectors, *track_offsets] # libdiscid always expects an array of 100 integers, no matter the track count. c_offsets = (c_int * 100)() c_offsets[0] = offsets[0] @@ -398,11 +398,11 @@ @property def tracks(self) -> list[Track]: """A list of :class:`Track` objects for this Disc.""" - tracks: list[Track] = [] assert self._success - for number in range(self.first_track_num, self.last_track_num + 1): - tracks.append(Track(self, number)) - return tracks + return [ + Track(self, number) + for number in range(self.first_track_num, self.last_track_num + 1) + ] @property def cddb_query_string(self) -> str: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid/libdiscid.py new/discid-1.4.2/discid/libdiscid.py --- old/discid-1.4.0/discid/libdiscid.py 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/discid/libdiscid.py 2026-07-10 12:20:05.000000000 +0200 @@ -156,9 +156,7 @@ if _features_available: c_features = (c_char_p * 32)() _LIB.discid_get_feature_list(c_features) - for feature in c_features: - if feature: - features.append(_decode(feature)) + features.extend(_decode(feature) for feature in c_features if feature) else: # libdiscid <= 0.4.0 features = ["read"] # no generic platform yet diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid/util.py new/discid-1.4.2/discid/util.py --- old/discid-1.4.0/discid/util.py 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/discid/util.py 2026-07-10 12:20:05.000000000 +0200 @@ -30,8 +30,6 @@ elif isinstance(string, bytes): return string raise TypeError("Unexpected type, expected string or bytes") - # UnicodeDecodeError (Python 2) is NOT caught - # device names should be ASCII def _decode(byte_string: bytes | str) -> str: @@ -43,15 +41,12 @@ raise TypeError("Unexpected type, expected string or bytes") -def _sectors_to_seconds(sectors: int | float) -> int: +def _sectors_to_seconds(sectors: float) -> int: """Round sectors to seconds like done on MusicBrainz Server The result is forced to :obj:int to make formatted output easier. """ - # note that `round(2.5) == 2` on Python 3 - # and math.floor doesn't return :obj:int on Python 2 - # additionally always `int / int =^= int` in Python 2 - return int(math.floor((sectors / float(SECTORS_PER_SECOND)) + 0.5)) + return math.floor((sectors / float(SECTORS_PER_SECOND)) + 0.5) # vim:set shiftwidth=4 smarttab expandtab: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid.egg-info/PKG-INFO new/discid-1.4.2/discid.egg-info/PKG-INFO --- old/discid-1.4.0/discid.egg-info/PKG-INFO 2026-03-30 08:16:01.000000000 +0200 +++ new/discid-1.4.2/discid.egg-info/PKG-INFO 2026-07-10 12:20:14.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: discid -Version: 1.4.0 +Version: 1.4.2 Summary: Python binding of Libdiscid Author-email: Johannes Dewender <[email protected]>, Philipp Wolfer <[email protected]> License-Expression: LGPL-3.0-or-later @@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3 :: Only Classifier: Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Typing :: Typed Requires-Python: >=3.10 Description-Content-Type: text/x-rst License-File: COPYING.LESSER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/discid.egg-info/SOURCES.txt new/discid-1.4.2/discid.egg-info/SOURCES.txt --- old/discid-1.4.0/discid.egg-info/SOURCES.txt 2026-03-30 08:16:01.000000000 +0200 +++ new/discid-1.4.2/discid.egg-info/SOURCES.txt 2026-07-10 12:20:14.000000000 +0200 @@ -9,6 +9,7 @@ discid/__init__.py discid/disc.py discid/libdiscid.py +discid/py.typed discid/track.py discid/util.py discid.egg-info/PKG-INFO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/doc/CHANGES.rst new/discid-1.4.2/doc/CHANGES.rst --- old/discid-1.4.0/doc/CHANGES.rst 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/doc/CHANGES.rst 2026-07-10 12:20:05.000000000 +0200 @@ -1,6 +1,15 @@ Changelog ========= +Changes in 1.4.2 (2026-07-10): +------------------------------ + * Provide Python wheel on PyPI. + * Removed remaining Python 2 specific code from ``util.py``. + +Changes in 1.4.1 (2026-06-24): +------------------------------ + * Mark package as typed by adding a ``py.typed`` marker file. + Changes in 1.4.0 (2026-03-30): ------------------------------ * Added type hints to the public API for better IDE support and type checking. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/pyproject.toml new/discid-1.4.2/pyproject.toml --- old/discid-1.4.0/pyproject.toml 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/pyproject.toml 2026-07-10 12:20:05.000000000 +0200 @@ -4,7 +4,7 @@ [project] name = "discid" -version = "1.4.0" +version = "1.4.2" description = "Python binding of Libdiscid" authors = [ {name = "Johannes Dewender", email = "[email protected]"}, @@ -22,6 +22,7 @@ "Programming Language :: Python :: 3 :: Only", "Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping", "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", ] [project.urls] @@ -43,8 +44,11 @@ "ruff>=0.14.13", ] +[tool.setuptools.package-data] +discid = ["py.typed"] + [tool.ruff] src=["discid"] [tool.ruff.lint] -select = ["E", "F", "W", "B"] +select = ["E", "F", "B", "I", "UP", "RUF", "PYI", "PERF"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/discid-1.4.0/test_discid.py new/discid-1.4.2/test_discid.py --- old/discid-1.4.0/test_discid.py 2026-03-30 08:15:56.000000000 +0200 +++ new/discid-1.4.2/test_discid.py 2026-07-10 12:20:05.000000000 +0200 @@ -210,16 +210,15 @@ track.seconds, math.floor((track.sectors / 75.0) + 0.5) ) self.assertEqual(type(track.seconds), int) - toc = [ - test_disc.first, - disc.last_track_num, - disc.sectors, - ] + track_offsets + toc = [test_disc.first, disc.last_track_num, disc.sectors, *track_offsets] toc_string = " ".join(map(str, toc)) self.assertEqual(disc.toc_string, toc_string) - cddb_query = ( - [disc.freedb_id, disc.last_track_num] + track_offsets + [disc.seconds] - ) + cddb_query = [ + disc.freedb_id, + disc.last_track_num, + *track_offsets, + disc.seconds, + ] cddb_query_string = " ".join(map(str, cddb_query)) self.assertEqual(disc.cddb_query_string, cddb_query_string)
