%global _empty_manifest_terminate_build 0 Name: python-pytaglib Version: 2.0.0 Release: 1 Summary: cross-platform, Python audio metadata ("tagging") library based on TagLib License: GPLv3+ URL: http://github.com/supermihi/pytaglib Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5c/ad/38d631f242648200a5c8800c15ad3fd1b5390871b05563c2bed680ada75b/pytaglib-2.0.0.tar.gz Requires: python3-pytest %description # **pytaglib** [![PyPI](https://img.shields.io/pypi/v/pytaglib.svg)](https://pypi.org/project/pytaglib/) pytaglib is a [Python](https://www.python.org) audio tagging library. It is cross-platform and very simple to use yet fully featured: - [supports more than a dozen file formats](https://taglib.org/) including mp3, flac, ogg, wma, and mp4, - support arbitrary, non-standard tag names, - support multiple values per tag. pytaglib is a very thin wrapper (≈150 lines of [code](src/taglib.pyx)) around the fast and rock-solid [TagLib](https://taglib.org/) C++ library. ## News _2023-03-26_ pytaglib-2.0.0 has been released. Major improvements: - **binary wheels** are shipped for all Python versions and platforms - _breaking change_: `File.path` is now a `Path` object - support using `File` as context manager For a full list of changes in this and previous releases, see the [Changelog](CHANGELOG.md). ## Install Use [pip](https://pip.pypa.io/en/stable/): pip install pytaglib In most cases, this should pick a provided binary wheel that bundles the native TagLib library suitable for your platform. If it doesn't, and the installation fails, see [below](#installation-notes). ## Usage ```python >>> import taglib >>> with taglib.File("/path/to/my/file.mp3", save_on_exit=True) as song: >>> song.tags {'ARTIST': ['piman', 'jzig'], 'ALBUM': ['Quod Libet Test Data'], 'TITLE': ['Silence'], 'GENRE': ['Silence'], 'TRACKNUMBER': ['02/10'], 'DATE': ['2004']} >>> song.length 239 >>> song.tags["ALBUM"] = ["White Album"] # always use lists, even for single values >>> del song.tags["DATE"] >>> song.tags["GENRE"] = ["Vocal", "Classical"] >>> song.tags["PERFORMER:HARPSICHORD"] = ["Ton Koopman"] >>> # with save_on_exit=True, file will be saved at the end of the 'with' block ``` For detailed API documentation, use the docstrings of the `taglib.File` class or view the [source code](src/taglib.pyx) directly. ## `pyprinttags` This package also installs the `pyprinttags` script. It takes one or more files as command-line parameters and will display all known metadata of that files on the terminal. If unsupported tags (a.k.a. non-textual information) are found, they can optionally be removed from the file. ## Installation Notes Things are a bit more complicated than usual with Python because pytaglib requires the native (C++) TagLib library. If there are no binary wheels for your platform, or you want to manually compile pytaglib, you will need to have Taglib installed with development headers,and also development tools for Python. On Ubuntu, Mint and other Debian-Based distributions, install the `libtag1-dev` and `python-dev` packages. On Fedora and friends, these are called `taglib-devel` and `python-devel`, respectively. On a Mac, use HomeBrew to install the `taglib` package. For Windows, see below. As an alternative, run `python build_taglib.py` in this directory to automatically download and build the latest Taglib version into the `build` subdirectory (also works on Windows). This requires Python and a suitable compiler to be installed; specific instructions are beyond the scope of this README. ### Linux: Distribution-Specific Packages - Debian- and Ubuntu-based linux flavors have binary packages for the Python 3 version, called `python3-taglib`. Unfortunatelly, they are heavily outdated, so you should instally the recent version via `pip` whenever possible. - For Arch users, there is a [package](https://aur.archlinux.org/packages/python-pytaglib/) in the user repository (AUR). ### Manual Compilation: General You can download or checkout the sources and compile manually: pip install . # if you want to run the unit tests, use these commands instead # pip install .[tests] # python -m pytest ### Compilation: Windows Install MS Visual Studio Build Tools (or the complete IE) and include the correct compiler version as detailed [here](https://wiki.python.org/moin/WindowsCompilers). Also enable _cmake_ in the Visual Studio Installer. Then: - open the VS native tools command prompt - navigate to the _pytaglib_ repository - run `python build_taglib.py` which will download and build the latest official TagLib release - run `python setup.py install` ## Contact For bug reports or feature requests, please use the [issue tracker](https://github.com/supermihi/pytaglib/issues) on GitHub. For anything else, contact me by [email](mailto:michaelhelmling@posteo.de). %package -n python3-pytaglib Summary: cross-platform, Python audio metadata ("tagging") library based on TagLib Provides: python-pytaglib BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-cffi BuildRequires: gcc BuildRequires: gdb %description -n python3-pytaglib # **pytaglib** [![PyPI](https://img.shields.io/pypi/v/pytaglib.svg)](https://pypi.org/project/pytaglib/) pytaglib is a [Python](https://www.python.org) audio tagging library. It is cross-platform and very simple to use yet fully featured: - [supports more than a dozen file formats](https://taglib.org/) including mp3, flac, ogg, wma, and mp4, - support arbitrary, non-standard tag names, - support multiple values per tag. pytaglib is a very thin wrapper (≈150 lines of [code](src/taglib.pyx)) around the fast and rock-solid [TagLib](https://taglib.org/) C++ library. ## News _2023-03-26_ pytaglib-2.0.0 has been released. Major improvements: - **binary wheels** are shipped for all Python versions and platforms - _breaking change_: `File.path` is now a `Path` object - support using `File` as context manager For a full list of changes in this and previous releases, see the [Changelog](CHANGELOG.md). ## Install Use [pip](https://pip.pypa.io/en/stable/): pip install pytaglib In most cases, this should pick a provided binary wheel that bundles the native TagLib library suitable for your platform. If it doesn't, and the installation fails, see [below](#installation-notes). ## Usage ```python >>> import taglib >>> with taglib.File("/path/to/my/file.mp3", save_on_exit=True) as song: >>> song.tags {'ARTIST': ['piman', 'jzig'], 'ALBUM': ['Quod Libet Test Data'], 'TITLE': ['Silence'], 'GENRE': ['Silence'], 'TRACKNUMBER': ['02/10'], 'DATE': ['2004']} >>> song.length 239 >>> song.tags["ALBUM"] = ["White Album"] # always use lists, even for single values >>> del song.tags["DATE"] >>> song.tags["GENRE"] = ["Vocal", "Classical"] >>> song.tags["PERFORMER:HARPSICHORD"] = ["Ton Koopman"] >>> # with save_on_exit=True, file will be saved at the end of the 'with' block ``` For detailed API documentation, use the docstrings of the `taglib.File` class or view the [source code](src/taglib.pyx) directly. ## `pyprinttags` This package also installs the `pyprinttags` script. It takes one or more files as command-line parameters and will display all known metadata of that files on the terminal. If unsupported tags (a.k.a. non-textual information) are found, they can optionally be removed from the file. ## Installation Notes Things are a bit more complicated than usual with Python because pytaglib requires the native (C++) TagLib library. If there are no binary wheels for your platform, or you want to manually compile pytaglib, you will need to have Taglib installed with development headers,and also development tools for Python. On Ubuntu, Mint and other Debian-Based distributions, install the `libtag1-dev` and `python-dev` packages. On Fedora and friends, these are called `taglib-devel` and `python-devel`, respectively. On a Mac, use HomeBrew to install the `taglib` package. For Windows, see below. As an alternative, run `python build_taglib.py` in this directory to automatically download and build the latest Taglib version into the `build` subdirectory (also works on Windows). This requires Python and a suitable compiler to be installed; specific instructions are beyond the scope of this README. ### Linux: Distribution-Specific Packages - Debian- and Ubuntu-based linux flavors have binary packages for the Python 3 version, called `python3-taglib`. Unfortunatelly, they are heavily outdated, so you should instally the recent version via `pip` whenever possible. - For Arch users, there is a [package](https://aur.archlinux.org/packages/python-pytaglib/) in the user repository (AUR). ### Manual Compilation: General You can download or checkout the sources and compile manually: pip install . # if you want to run the unit tests, use these commands instead # pip install .[tests] # python -m pytest ### Compilation: Windows Install MS Visual Studio Build Tools (or the complete IE) and include the correct compiler version as detailed [here](https://wiki.python.org/moin/WindowsCompilers). Also enable _cmake_ in the Visual Studio Installer. Then: - open the VS native tools command prompt - navigate to the _pytaglib_ repository - run `python build_taglib.py` which will download and build the latest official TagLib release - run `python setup.py install` ## Contact For bug reports or feature requests, please use the [issue tracker](https://github.com/supermihi/pytaglib/issues) on GitHub. For anything else, contact me by [email](mailto:michaelhelmling@posteo.de). %package help Summary: Development documents and examples for pytaglib Provides: python3-pytaglib-doc %description help # **pytaglib** [![PyPI](https://img.shields.io/pypi/v/pytaglib.svg)](https://pypi.org/project/pytaglib/) pytaglib is a [Python](https://www.python.org) audio tagging library. It is cross-platform and very simple to use yet fully featured: - [supports more than a dozen file formats](https://taglib.org/) including mp3, flac, ogg, wma, and mp4, - support arbitrary, non-standard tag names, - support multiple values per tag. pytaglib is a very thin wrapper (≈150 lines of [code](src/taglib.pyx)) around the fast and rock-solid [TagLib](https://taglib.org/) C++ library. ## News _2023-03-26_ pytaglib-2.0.0 has been released. Major improvements: - **binary wheels** are shipped for all Python versions and platforms - _breaking change_: `File.path` is now a `Path` object - support using `File` as context manager For a full list of changes in this and previous releases, see the [Changelog](CHANGELOG.md). ## Install Use [pip](https://pip.pypa.io/en/stable/): pip install pytaglib In most cases, this should pick a provided binary wheel that bundles the native TagLib library suitable for your platform. If it doesn't, and the installation fails, see [below](#installation-notes). ## Usage ```python >>> import taglib >>> with taglib.File("/path/to/my/file.mp3", save_on_exit=True) as song: >>> song.tags {'ARTIST': ['piman', 'jzig'], 'ALBUM': ['Quod Libet Test Data'], 'TITLE': ['Silence'], 'GENRE': ['Silence'], 'TRACKNUMBER': ['02/10'], 'DATE': ['2004']} >>> song.length 239 >>> song.tags["ALBUM"] = ["White Album"] # always use lists, even for single values >>> del song.tags["DATE"] >>> song.tags["GENRE"] = ["Vocal", "Classical"] >>> song.tags["PERFORMER:HARPSICHORD"] = ["Ton Koopman"] >>> # with save_on_exit=True, file will be saved at the end of the 'with' block ``` For detailed API documentation, use the docstrings of the `taglib.File` class or view the [source code](src/taglib.pyx) directly. ## `pyprinttags` This package also installs the `pyprinttags` script. It takes one or more files as command-line parameters and will display all known metadata of that files on the terminal. If unsupported tags (a.k.a. non-textual information) are found, they can optionally be removed from the file. ## Installation Notes Things are a bit more complicated than usual with Python because pytaglib requires the native (C++) TagLib library. If there are no binary wheels for your platform, or you want to manually compile pytaglib, you will need to have Taglib installed with development headers,and also development tools for Python. On Ubuntu, Mint and other Debian-Based distributions, install the `libtag1-dev` and `python-dev` packages. On Fedora and friends, these are called `taglib-devel` and `python-devel`, respectively. On a Mac, use HomeBrew to install the `taglib` package. For Windows, see below. As an alternative, run `python build_taglib.py` in this directory to automatically download and build the latest Taglib version into the `build` subdirectory (also works on Windows). This requires Python and a suitable compiler to be installed; specific instructions are beyond the scope of this README. ### Linux: Distribution-Specific Packages - Debian- and Ubuntu-based linux flavors have binary packages for the Python 3 version, called `python3-taglib`. Unfortunatelly, they are heavily outdated, so you should instally the recent version via `pip` whenever possible. - For Arch users, there is a [package](https://aur.archlinux.org/packages/python-pytaglib/) in the user repository (AUR). ### Manual Compilation: General You can download or checkout the sources and compile manually: pip install . # if you want to run the unit tests, use these commands instead # pip install .[tests] # python -m pytest ### Compilation: Windows Install MS Visual Studio Build Tools (or the complete IE) and include the correct compiler version as detailed [here](https://wiki.python.org/moin/WindowsCompilers). Also enable _cmake_ in the Visual Studio Installer. Then: - open the VS native tools command prompt - navigate to the _pytaglib_ repository - run `python build_taglib.py` which will download and build the latest official TagLib release - run `python setup.py install` ## Contact For bug reports or feature requests, please use the [issue tracker](https://github.com/supermihi/pytaglib/issues) on GitHub. For anything else, contact me by [email](mailto:michaelhelmling@posteo.de). %prep %autosetup -n pytaglib-2.0.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pytaglib -f filelist.lst %dir %{python3_sitearch}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 07 2023 Python_Bot - 2.0.0-1 - Package Spec generated