Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Comic Archive

PyPI - Python PyPI - Status PyPI - Version PyPI - License

prek Ruff ty

status-badge

An extensible library to manage comic archives and their embedded files and metadata.

Supported Formats

More can be added by extending the respective base class and adding to the registry.

Archives

Archive Extra Required
.cbz, .zip builtin
.cbt, .tar builtin
.cbr, .rar cbr
.cb7, .7z cb7
.pdf pdf

Compability Table

Format Read Update Create
cbz
cbt
cbr
cb7
pdf

If something is marked as in-compatible the library will try extracting and making the change via the local system and re-archive (if it has the create capability).

Metadata

Installation

pdm add comic-archive

Optional extras can be added as needed:

pdm add comic-archive[cbr,cb7,pdf]

Usage

from pathlib import Path

from comic_archive import Comic
from comic_archive.metadata import MetronInfo

my_comic = Path("MyComic.cbz")
with Comic.open(my_comic) as comic:
    print(comic.list_filenames())
    print(comic.read_file(filename="page-1.jpg").decode("UTF-8"))
    print(comic.metadata)  # Dict of registered metadata in archive

    metron_info = comic.get_metadata(metadata_type=MetronInfo)
    print(metron_info.series)

Writing files and metadata (support depends on the archive format, see table above):

with Comic.open(my_comic) as comic:
    comic.write_file(filename="page-99.jpg", data=b"...", override=True)
    comic.remove_file(filename="page-01.jpg")

    metron_info = comic.get_metadata(metadata_type=MetronInfo)
    metron_info.series.name = "Updated Title"
    comic.set_metadata(metron_info)

You can also convert between different archives (as long as the destination archive has create capability)

from comic_archive.archives import ZipArchive

rar_comic = Path("MyComic.cbr")
with Comic.open(rar_comic) as comic:
    print(comic.file)  # MyComic.cbr
    comic.convert(
        ZipArchive, delete_original=True
    )  # All future comic interactions will be on the new archive
    print(comic.file)  # MyComic.cbz

Socials

Social - Matrix

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

comic_archive-0.2.0.tar.gz (218.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

comic_archive-0.2.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file comic_archive-0.2.0.tar.gz.

File metadata

  • Download URL: comic_archive-0.2.0.tar.gz
  • Upload date:
  • Size: 218.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for comic_archive-0.2.0.tar.gz
Algorithm Hash digest
SHA256 909bc519dc8a201117f493dd21830ebfc93ef18f92c2d36d07b557b08b58762b
MD5 448f003154e0a2de73d9a45fa02f0f54
BLAKE2b-256 784820af26bdc610ecbc39ecd980c52b0eaab9e7dac9feb41517b27be6267423

See more details on using hashes here.

File details

Details for the file comic_archive-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: comic_archive-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for comic_archive-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 964140cb4b0c77c0c1af287ca281a3403cb29b1bc5583e8a0e4106743bc0fbdb
MD5 368be9d5f5c924f9b3cad555ebbec69b
BLAKE2b-256 27b0b5dff076d8a964e7639e1b3415b3c39a1a9aa2f683ad8d4f77eb1ff71b3d

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page