Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version 2.3.1 (2025-10-27)¶
Fixed: ensure
audeer.run_tasks()stops immediately when using multiple workers and one process fails or is interrupted by the user
Version 2.3.0 (2025-09-08)¶
Added:
audeer.suppress_stdout()Added: support for python 3.14
Removed: support for Python 3.9
Version 2.2.2 (2025-06-06)¶
Fixed:
audeer.install_package()now supportsuvmanaged virtual environmentsFixed:
audeer.freeze_requirements()now supportsuvmanaged virtual environments
Version 2.2.1 (2025-01-10)¶
Added: support for Python 3.13
Added: support for
tar,tar.bz2,tar.xzarchives inaudeer.create_archive(),audeer.extract_archive(), andaudeer.extract_archives()Fixed: avoid deprecation warnings in Python>=3.12 by using the
"tar"filter when extracting tar archivesRemoved: support for Python 3.8
Version 2.2.0 (2024-07-23)¶
Added:
audeer.script_dir()which returns the directory of the file where it was called, or the current working directory when called in an interactive session
Version 2.1.1 (2024-07-15)¶
Fixed: make estimation of remaining time in
audeer.progress_bar()less erratic
Version 2.1.0 (2024-07-05)¶
Added:
audeer.unique(), which returns unique values in the order they appear in a sequenceAdded:
maximum_refresh_timeargument toaudeer.progress_bar()andaudeer.run_tasks(), which can be used to force an update interval of the progress barFixed: documentation of return value of
audeer.run_tasks()
Version 2.0.0 (2024-01-25)¶
Added:
follow_symlinkkeyword argument toaudeer.path()with default valueFalseAdded:
follow_symlinkkeyword argument toaudeer.rmdir()with default valueTrueChanged:
audeer.path()does no longer usesos.path.realpath(), butos.path.abspath(). This means it does no longer convert symlinks to the real path, but returns the path to the symlink. This provides a speed up ofaudeer.path()up to 6x as it no longer requires a disk operation. The old behavior ofaudeer.path()can be achieved by callingaudeer.path(..., follow_symlink=True). The output of the following functions is also affected by this change if a symlink is part of their input path:audeer.common_directory(),audeer.download_url(),audeer.list_dir_names(),audeer.list_file_names(),audeer.mkdir(),audeer.touch()Changed: the
filesargument ofaudeer.create_archive()can no longer include symbolic links that are located outside ofrootFixed:
audeer.basename_wo_ext(),audeer.file_extension(), andaudeer.replace_file_extension()are no longer affected by existing files and symlinks, but rely only on the provided input string
Version 1.21.0 (2023-12-06)¶
Added:
audeer.move()which can move files and folders and should be used instead ofaudeer.move_file()Added:
*pathsargument toaudeer.mkdir(),audeer.rmdir(), andaudeer.touch(). Instead of writingaudeer.mkdir(os.path.join("a", "b")), you can now writeaudeer.mkdir("a", "b")
Version 1.20.2 (2023-11-28)¶
Added: support for Python 3.12
Fixed: avoid deprecation warning by replacing
pkg_resourcesinternally withimportlib.metadataRemoved: support for Python 3.7
Version 1.20.1 (2023-05-04)¶
Fixed: add missing changelog entry for version 1.20.0 stating that the return values of
audeer.extract_archive()andaudeer.extract_archives()have changed under Windows due to a bug fix
Version 1.20.0 (2023-05-02)¶
Added:
audeer.md5()to calculate MD5 checksum of a file or folderAdded:
shortargument toaudeer.is_uid(). IfTrueit checks for a short UID likead855840Added: examples to the API documentation of
audeer.create_archive(),audeer.extract_archive(),audeer.extract_archives()Changed:
audeer.list_file_names()raises aNotADirectoryErrorif the providedpathargument is a non-existing folder or a folder that is part of a search pattern that does not existsChanged:
audeer.create_archive()supports nowNoneasfilesargument, which will automatically include all files underrootChanged:
audeer.create_archive()now raises aFileNotFoundErrorifrootor a file infilescannot be found,NotADirectoryErrorifrootis not a directory,RuntimeErrorif a file infilesis not located belowrootChanged:
audeer.extract_archive()andaudeer.extract_archives()now raise aFileNotFoundErrorif an archive cannot be found,IsADirectoryErrorif an archive is a directory,NotADirectoryErrorifdestinationis not a directoryFixed:
audeer.replace_file_extension()now adds the new file extension to the filename if no original file extension was present instead of replacing the filenameFixed:
audeer.replace_file_extension()now returns the original filename when an empty new file extension is provided instead of adding"."at the end of the filenameFixed:
audeer.extract_archive()andaudeer.extract_archives()now return normalized relative paths also under WindowsFixed: add raises section to API documentation of
audeer.list_file_names()Fixed: add raises section to API documentation of
audeer.StrictVersion
Version 1.19.0 (2022-12-19)¶
Added:
hiddenargument toaudeer.list_dir_names()to include hidden folders in resultsAdded:
remove_from_kwargsargument toaudeer.deprecated_keyword_argument()to indicate if the keyword marked as deprecated should be removed fromkwargs. Default isTrueAdded:
extargument toaudeer.replace_file_extension()Added: support for Python 3.10
Added: support for Python 3.11
Changed: split API documentation into sub-pages for each function/class
Fixed: add raises section to docstring of
audeer.list_dir_names()
Version 1.18.0 (2022-03-04)¶
Added:
audeer.path()as replacement foraudeer.safe_path()Added:
*pathsargument toaudeer.safe_path()to join pathsAdded:
recursiveargument toaudeer.list_dir_names()Added:
recursiveargument toaudeer.list_file_names()Added:
audeer.StrictVersion()Added:
audeer.LooseVersion()Added:
audeer.install_package()Added:
audeer.move_file()Added:
audeer.touch()Deprecated:
audeer.safe_path()Fixed: add test for MacOS
Version 1.17.2 (2022-01-03)¶
Added: Python 3.9 support
Removed: Python 3.6 support
Version 1.17.1 (2021-11-25)¶
Added:
verboseargument toaudeer.create_archive()
Version 1.17.0 (2021-11-19)¶
Added:
audeer.rmdir()
Version 1.16.0 (2021-06-01)¶
Added:
audeer.download_url()
Version 1.15.0 (2021-05-21)¶
Changed: default value of
num_workersargument foraudeer.tun_tasks()changed fromNoneto1
Version 1.14.0 (2021-04-26)¶
Added:
audeer.replace_file_extension()
Version 1.13.1 (2021-04-15)¶
Added: usage example to
audeer.progress_bar()
Version 1.13.0 (2021-04-14)¶
Added:
basenamesargument toaudeer.list_dir_names()Added:
basenamesargument toaudeer.list_file_names()
Version 1.12.0 (2021-02-22)¶
Added:
audeer.create_archive()
Version 1.11.0 (2021-02-09)¶
Added:
audeer.deprecated_default_value()Added:
audeer.is_semantic_version()Added:
audeer.sort_versions()
Version 1.10.0 (2021-01-29)¶
Added:
audeer.git_repo_version()Added:
audeer.git_repo_tags()
Version 1.9.0 (2021-01-21)¶
Added:
audeer.list_dir_names()
Version 1.8.0 (2020-12-03)¶
Added:
audeer.is_uid()
Version 1.7.0 (2020-12-02)¶
Added:
audeer.deprecated_keyword_argument()decoratorChanged:
audeer.deprecated()raises now aUserWarninginstead ofDeprecationWarning
Version 1.6.7 (2020-11-18)¶
Changed: return member filenames of archives in
audeer.extract_archive()andaudeer.extract_archives()
Version 1.6.6 (2020-10-27)¶
Fixed: multi-line statements in GitHub releases
Version 1.6.5 (2020-10-27)¶
Fixed: long description in
setup.cfg, which is included on pypi.orgFixed: multi-line statements in GitHub releases
Version 1.6.4 (2020-10-23)¶
Added: run tests on Windows
Removed: deprecated
audb.run_worker_threads()from docs and code coverageFixed: “Edit on Github” link in docs
Version 1.6.3 (2020-10-22)¶
Fixed: release instructions for GitHub
Version 1.6.2 (2020-10-21)¶
Changed: host documentation on GitHub pages
Version 1.6.1 (2020-10-20)¶
Fixed: license specification in Python package
Version 1.6.0 (2020-10-20)¶
Added: first public release on GitHub
Version 1.5.1 (2020-09-28)¶
Fixed: return actual path for symbolic links with
audeer.safe_path()by usingos.path.realpath()instead ofos.path.abspath()Fixed: clean up test scripts and remove obsolete
tests/test_audeer.py
Version 1.5.0 (2020-09-22)¶
Added:
audeer.common_directory()
Version 1.4.0 (2020-09-21)¶
Added:
audeer.run_tasks()
Version 1.3.0 (2020-09-08)¶
Added:
audeer.uid()
Version 1.2.3 (2020-09-01)¶
Changed: use
urlandproject_urlsinsetup.cfg
Version 1.2.2 (2020-08-28)¶
Changed: switch home page of package to documentation page
Version 1.2.1 (2020-08-18)¶
- Changed:
audb.extract_archive() raises
RuntimeErrorfor broken archives
- Changed:
Version 1.2.0 (2020-08-14)¶
Added:
audb.extract_archive()Added:
audb.extract_archives()Added: Python 3.8 support
Removed: Python 3.5 support
Version 1.1.2 (2020-06-12)¶
Fixed: wrong homepage link in
setup.cfg
Version 1.1.1 (2020-05-20)¶
Added:
modeargument toaudeer.mkdir()
Version 1.1.0 (2020-04-08)¶
Added:
audeer.to_list()Added: code coverage
Removed: deprecated
audeer.generate_dir()Removed: deprecated
audeer.basename()
Version 1.0.7 (2020-02-19)¶
Fixed: CI again token for automatic package publishing
Version 1.0.6 (2020-02-19)¶
Fixed: CI token for automatic package publishing
Version 1.0.5 (2020-02-19)¶
Fixed: make
audeer.mkdir()multiprocessing safe
Version 1.0.4 (2020-02-07)¶
Fixed: republish due to broken package
Version 1.0.3 (2020-02-07)¶
Added: more docstring examples
Changed: add extra development section in docs
Version 1.0.2 (2020-02-07)¶
Added: automatic Python package publishing
Fixed: another link to
audeer.configfile
Version 1.0.1 (2020-02-06)¶
Fixed: link to
audeer.configfile
Version 1.0.0 (2020-02-06)¶
Added:
audeer.format_display_message()Added:
audeer.progress_bar()Added:
audeer.deprecated()Added:
audeer.run_worker_threads()Added:
audeer.safe_pathChanged: introduce
audeer.corestructureChanged: rename
audeer.generate_dir()toaudeer.mkdir()Changed: rename
audeer.basenametoaudeer.basename_wo_extRemoved: all config related code is moved to
audeer.configfileRemoved: Python 2.7 support
Version 0.9.3 (2019-08-16)¶
Changed: update installation commands in doc
Changed: update documentation building commands in doc
Version 0.9.2 (2019-08-16)¶
Fixed: Gitlab CI tests for Python 3.7
Version 0.9.1 (2019-08-13)¶
Added: tests for documentation
Added: documentation deployed as Gitlab pages
Fixed: inclusion of changelog in doc
Version 0.9.0 (2019-06-27)¶
Added: Gitlab CI tests for Python 2.7, 3.6, 3.7
Added: flake8 PEP8 tests
Changed: switch to new internal PyPI server
Changed: switch to use
yaml.safe_loadFixed:
generate_dirfor Python 2.7Removed:
audeer.wavin favor of audiofile
Version 0.7.2 (2019-03-05)¶
Added: missing requirement toml to
doc/requirements.txt
Version 0.7.1 (2019-03-05)¶
Fixed: URL to sphinx-audeering-theme in
doc/requirements.txt
Version 0.7.0 (2019-03-01)¶
Added:
always_2doption towav.readRemoved:
wav.to_mono
Version 0.6.2 (2019-02-21)¶
Added: support for subdirectories in
generate_dirChanged: speedup
wavoperationsDeprecated:
wav.to_mono
Version 0.6.1 (2019-02-08)¶
Fixed: samples and duration for uncommon audio formats
Version 0.6.0 (2019-02-08)¶
Added: support for a lot more audio formats in
wav
Version 0.5.0 (2019-02-05)¶
Added:
util.flatten_listChanged: improve documentation
Version 0.4.0 (2019-01-07)¶
Added: MP3 support (not for writing)
Changed: make
[channels, samples]default audio shapeChanged: switch to
soxfor audio file info
Version 0.3.0 (2018-11-16)¶
Changed: make Python 2.7 compatible
Changed: restructure config module
Version 0.2.0 (2018-11-12)¶
Added:
configmodule
Version 0.1.1 (2018-10-29)¶
Fixed: automatic version discovery
Version 0.1.0 (2018-10-29)¶
Added:
wavandutilmoduleAdded: Initial release