This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.
Set this flag for packages that need it and bump PKGREVISION.
1.45.1 - 2020-07-31
Fix flake8 tests when run after calling setup.py build
No longer use mmap when rewriting files. Fixes slow save performance with
Windows network shares, ZFS and more
1.45.0 - 2020-07-11
WAVE support with ID3 tags
DSDIFF support with ID3 tags
MP4: Add support for nero chapters
wavpack: add support for wavpack DSD
wavpack: add bits_per_sample
MP4: handle DecoderSpecificInfo with wrong instance size
docs: various fixes
tests: depend on flake8 now (instead of pycodestyle and pyflakes)
docs: fix warnings with sphinx v3
Fuzzing related:
Fuzzing integration with python-afl
Fix various unhandled error cases in ogg, asf, oggvorbis, id3
aac: Fix ZeroDivisionError in case frequency is unknown
musepack: handle truncated stream header
musepack: handle invalid sample rate index
musepack: handle duplicate RG/SH packets
oggtheora: handle truncated header packet
oggtheora: fail if FRN in the header packet is zero
oggtheora: handle empty pages in more cases
ogg: handle empty pages in to_packets()
aiff: handle overflow in read_float()
1.43.1
Add pickle support for enum types
docs: fix various warnings with sphinx v3
1.43.0
Note: 1.43.x might be the last version supporting Python 2
Python 3.4 is no longer supported
Building requires ‘setuptools’ now, CLI tools depend on ‘pkg_resources’
CLI tools are setuptools entry points now
Fix collections ABCs deprecation warning
Minor typo fixes
MP3: increase max initial wrong syncs from 1000 to 1500
FLAC: support files with multiple VORBIS_COMMENT blocks like libflac
ID3: Improved TYER/TDAT/TIME upgrade to TDRC
MP4: Add support for iTunes HD Video tag (hdvd)
Add AC3 file type
AIFF: renamed sample_size to bits_per_sample (sample_size still works)
API doc fixes
Add support for Tom’s lossless Audio Kompressor (TAK)
OptimFROG: support encoder version >= 5.100
AIFF: Fix handling of padding bytes, safe chunk manipulation
Fix typos
Upstream changes:
1.40.0 - 2018-01-25
-------------------
* APEv2: Ensures tags are saved in a deterministic way :pr:`329`
(:user:`cushy007`)
* Restore WinXP support for the CLI tools 🐛`332`
* easymp4: Fix EasyMP4.add_tags() when no tags exist 🐛`334`
* id3: Fix PyCharm not being able to resolve id3 frame class references
🐛`336`
* Support pathlib.Path objects for paths (PEP 519) 🐛`337` :pr:`338`
(:user:`Andrew Rabert <nvllsvm>`)
* Use semver for versioning
1.39:
* Tests:
* Require `hypothesis <https://hypothesis.readthedocs.io>`__
* Run pycodestyle/pyflakes tests by default. Skip with ``--no-quality`` or
``-m no quality`` when using pytest directly.
* Python 3.3 is no longer supported
* MP3: Improved bitrate accuracy for files with XING header
* ASF: Fix case where some tags resulted in broken ASFUnicodeAttribute
instances
* Add support for filesystems which don't support opening files read/write
(gvfs over fuse for example)
* mid3v2: Add support for USLT
* Minor improvements
* Note: New release tarballs are now hosted on github:
https://github.com/quodlibet/mutagen/releases
* ID3:
* Add iTunes grouping frame `id3.GRP1`
* Fix exposing text frames where the text can't be encoded with the
reported encoding due to merging of frames
* OGG: Fix wrong StreamInfo.length (small negative value) for all
ogg based formats in rare cases.
1.31 - 2015.09.10
-----------------
* New padding control API for flac/id3/mp4/asf/ogg/aiff and everything
based on it, except oggflac 🐛`229`
* Mutagen will now reduce padding on save if there is lots of it.
* delete() will remove padding in addition to tags.
* ASF:
* Padding support 🐛`201`
* Don't report negative lengths for some broken files
* New :class:`asf.ASFInfo`.codec_type/codec_name/codec_description
* Implement ASF.delete()
* OGG: Padding support for Opus/Vorbis/Theora/Speex
* M4A: Implementation removed. Every operation will raise. Use mp4 instead.
* Tools: Support Unicode output under Windows 🐛`232`
1.30 - 2015.08.22
-----------------
* FLAC:
* Fix :meth:`flac.FLAC.save` in case the source contained a too large
(invalid but recovered) image block 🐛`226`
* MP3:
* Improved length and bitrate accuracy:
* Read lame "Info" tags for improved bitrate/length accuracy
* Use bytes info of VBRI headers for improved bitrate accuracy
* Subtract encoder delay/padding from length for improved length accuracy
(especially for short tracks)
* Fix rare false identification of Xing headers 🐛`182`
* New :class:`mp3.MPEGInfo`.encoder_info attribute containing the encoder
name and version 🐛`66`
* New :class:`mp3.MPEGInfo`.bitrate_mode attribute exposing if the file is
VBR, ABR or CBR 🐛`24` 🐛`66`
* New :class:`mp3.MPEGInfo`.channels attribute providing the channel count
* New :class:`mp3.MPEGInfo`.track_gain/track_peak/album_gain values exposing
the replaygain info provided by the lame header 🐛`36`
* ID3:
* New :class:`id3.PictureType` enum for the picture type used in APIC frames 🐛`222`
* MP4:
* Fix MP4FreeForm.__eq__ and MP4Cover.__eq__ when comparing with bytes
🐛`218`
* Don't raise on :meth:`FileType.save` if there are no tags. 🐛`227`
* Minor fixes: 🐛`228`
1.29 - 2015.05.09
-----------------
* mid3v2: Fix an error under Python 3 with files without tags 🐛`219`
* mid3v2: Various Windows+Python2+Unicode fixes 🐛`214`
* Don't emit warnings during loading (ID3Warning) 🐛`223`
* py.test support
1.28 - 2015.03.06
-----------------
* Various minor fixes to make mutagen behave the same under Python3 as under
Python2.
* Update gpl text 🐛`205`
* Documentation: Add example for how to create a new flac.Picture 🐛`209`
* ID3:
* Various error handling fixes (🐛`110`, 🐛`211`, ...)
* Don't hide ID3 loading errors with ID3FileType.
* In case a synch safe marked frame isn't sync safe, only warn 🐛`210`
* Removed PEDANTIC mode
* Tools:
* Add signal handling 🐛`170`
* mid3cp: Make it work under Windows.
* mutagen-inspect: Make it work under Windows+Python3 🐛`216`
* Support unicode file paths under Windows+Python2 🐛`214`
* Support file paths with invalid encoding under Unix+Python3.
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
1.20 - 2010.08.04
* ASF: Don't store blocks over 64K in the MetadataObject block;
use the MetadataLibraryBlock instead. (#60, Luká# Lalinský)
* ID3: Faster parsing of files with lots of padding. (#65, Christoph Reiter)
* FLAC: Correct check for audio data start. (#67)
Patch provided by Wen Heping via PR#42851.
1.19 - 2010.02.18
* ID3:
* POPM: 'count' is optional; the attribute may not exist. (#33)
* TimeStampTextFrame: Fix a TypeError in unicode comparisons. (#43)
* MakeID3v1: Translate TYER into ID3v1 year if TDRC is not present. (#42)
* mid3v2:
* Allow --delete followed by --frame, and --genre 1 --genre 2. (#37)
* Add --quiet and --verbose flags. (#40)
* moggsplit: --m3u option to write an M3U playlist of the new files. (#39)
* mid3iconv: Fix crash when processing TCML or TIPL frames. (#41)
* VCommentDict: Correctly normalize key names for .keys() iterator. (#45)
* MP3: Correct length calculation for MPEG-2 files. (#46)
* oggflac: Fix typo in docstring. (#53)
* EasyID3: Force UTF-8 encoding. (#54)
* EasyMP4: Fix 'genre' translation. (#56)
1.18 - 2009.10.22
* ASF:
* Distinguish between empty and absent tag values in
ContentDescriptionObjects. (#29)
* mid3iconv:
* Fix a crash when processing empty (invalid) text frames.
* MAJOR API INCOMPATIBILITY!!!!
* EasyID3FileType is now in mutagen.easyid3, not mutagen.id3. This
change was necessary to restore API compatibility with 1.16, as
1.17 accidentally contained a circular import preventing
mutagen.easyid3 from importing by itself. (#32)
1.17 - 2009.10.07
* ID3:
* Support for the iTunes non-standard TSO2 and TSOC frames.
* Attempt to recover from bad SYLT frames. (#2)
* Attempt to recover from faulty extended header flags. (#4, #21)
* Fix a bug in ID3v2.4 footer flag detection, (#5)
* MP4:
* Don't fail or double-encode UTF-8 strings when given a str.
* Don't corrupt 64 bit atom sizes when resizing atoms. (#17)
* EasyID3:
* Extension API for defining new "easy" tags at runtime.
* Support for many, many more tags.
* OggVorbis, OggSpeex: Handle bitrates below 0 as per the spec. (#30)
* EasyMP4: Like EasyID3, but for iTunes MPEG-4 files.
* mutagen.File: New 'easy=True' argument to create new EasyMP3, EasyMP4,
EasyTrueAudio, and EasyID3FileType instances.
1.16 - 2009.06.15
* Website / code repository move.
* Bug Fixes:
* EasyID3: Invalid keys now raise KeyError (and ValueError).
* mutagen.File: .flac files with an ID3 tag will be opened as FLAC.
* MAJOR API INCOMPATIBILITY!!!!
* Python 2.6 has required us to rename the .format attribute of M4A/MP4
cover atoms, because it conflicts with the new str.format method.
It has been renamed .imageformat.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
1.10 - 2007.01.21
* New Features:
* FLAC: Skip ID3 tags. Added option to delete them on save.
* EncodedTextSpec: Make private members more private.
* Corrupted Oggs generated by GStreamer (e.g. Sound Juicer) can be read.
* FileTypes have a .mime attribute which is a list of likely MIME types
for the file.
* ASF (WMA/WMV) support.
* Bug Fixes:
* ID3: Fixed reading of v2.3 tags with unsynchronized data.
* ID3: The data length indicator for compressed tags is written
as a synch-safe integer.