Metadata-Version: 2.4
Name: tagpy
Version: 2025.1
Summary: Python Bindings for TagLib
Home-page: https://github.com/palfrey/tagpy
Author: Tom Parker-Shemilt
Author-email: palfrey@tevp.net
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping
Classifier: Topic :: Multimedia :: Sound/Audio :: Editors
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.9, <4
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: packaging>=14.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

TagPy
=====

TagPy is a a set of Python bindings for [Scott Wheeler's TagLib](https://taglib.org/). It builds upon [Boost.Python](http://www.boost.org/libs/python/doc/), a wrapper generation library which
is part of the [Boost set of C++ libraries](http://www.boost.org).

Just like TagLib, TagPy can:

- read and write ID3 tags of version 1 and 2, with many supported frame types
  for version 2 (in MPEG Layer 2 and MPEG Layer 3, FLAC and MPC),
- access Xiph Comments in Ogg Vorbis Files and Ogg Flac Files,
- access APE tags in Musepack and MP3 files.
- access ID3 version 2 tags in WAV files

All these have their own specific interfaces, but TagLib's generic tag
reading and writing mechanism is also supported.

You can find examples in the test/ directory.


Using TagPy
===========

Using TagPy is as simple as this:

    >>> import tagpy
    >>> f = tagpy.FileRef("la.mp3")
    >>> f.tag().artist
    u'Andreas'

The `test/` directory contains a few more examples.

In general, TagPy duplicates the TagLib API, with a few notable
exceptions:

- Namespaces (i.e. Python modules) are spelled in lower case.
  For example, `TagLib::Ogg::Vorbis` is now `taglib.ogg.vorbis`.

- Enumerations form their own scope and are not part of any
  enclosing class scope, if any.

  For example, the value `TagLib::String::UTF16BE` from the
  enum `TagLib::String::Type` is now `tagpy.StringType.UTF16BE`.

- `TagLib::String` objects are mapped to and expected as Python
  unicode objects.

- `TagLib::ByteVector` objects are mapped to regular Python
  string objects.
