# Comicon
Comicon is a lightweight comic converter library between CBZ, PDF, EPUB, and MOBI that preserves metadata. Once Comicon has converted a comic, it is **guaranteed** that the reverse conversion will restore the original comic with all of its original metadata.
## Usage
For a command line interface, please see [Mandown](https://github.com/potatoeggy/mandown).
```python
import comicon
comicon.convert("comic.cbz", "comic.epub")
```
## Installation
Amazon's **Kindlegen** is required if you want to convert to MOBI. See [here](https://github.com/ciromattia/kcc/issues/371) for more information.
Comicon is available from PyPI:
```
pip install comicon
```
## Supported conversions
| Format | Convert from? | Convert to? |
| ------ | ------------------ | ------------------ |
| CBZ | :heavy_check_mark: | :heavy_check_mark: |
| EPUB | :heavy_check_mark: | :heavy_check_mark: |
| PDF | :heavy_check_mark: | :heavy_check_mark: |
| MOBI | :x: | :heavy_check_mark: |
### Format discrepancies
- Only EPUB supports a table of contents. CBZ and PDF will encode the table of contents so that it is restored upon converting to EPUB.
- PDF does not support importing genre data due to a lack of library support. This may be worked around in the future.
## Notes
Under the hood, Comicon converts each format into the **Comicon Intermediate Representation (CIR)** — more or less a strictly structured folder, which allows for many guarantees to be made for each input and output plugin. See `comicon.cirtools` for more information.
For new input and output formats to be added, they should be added in `comicon.inputs` or `comicon.outputs` respectively as a new module and in the `__init__.py` file(s).
Raw data
{
"_id": null,
"home_page": "https://github.com/potatoeggy/comicon",
"name": "comicon",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "converter, comic, cbz, epub, pdf, mobi",
"author": "potatoeggy",
"author_email": "eggyrules@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/2e/32/352e204e8b9620a6ce1346bd3c79307ef97535c361b1b110f2c27b9597ee/comicon-1.2.1.tar.gz",
"platform": null,
"description": "# Comicon\n\nComicon is a lightweight comic converter library between CBZ, PDF, EPUB, and MOBI that preserves metadata. Once Comicon has converted a comic, it is **guaranteed** that the reverse conversion will restore the original comic with all of its original metadata.\n\n## Usage\n\nFor a command line interface, please see [Mandown](https://github.com/potatoeggy/mandown).\n\n```python\nimport comicon\n\ncomicon.convert(\"comic.cbz\", \"comic.epub\")\n```\n\n## Installation\n\nAmazon's **Kindlegen** is required if you want to convert to MOBI. See [here](https://github.com/ciromattia/kcc/issues/371) for more information.\n\nComicon is available from PyPI:\n\n```\npip install comicon\n```\n\n## Supported conversions\n\n| Format | Convert from? | Convert to? |\n| ------ | ------------------ | ------------------ |\n| CBZ | :heavy_check_mark: | :heavy_check_mark: |\n| EPUB | :heavy_check_mark: | :heavy_check_mark: |\n| PDF | :heavy_check_mark: | :heavy_check_mark: |\n| MOBI | :x: | :heavy_check_mark: |\n\n### Format discrepancies\n\n- Only EPUB supports a table of contents. CBZ and PDF will encode the table of contents so that it is restored upon converting to EPUB.\n- PDF does not support importing genre data due to a lack of library support. This may be worked around in the future.\n\n## Notes\n\nUnder the hood, Comicon converts each format into the **Comicon Intermediate Representation (CIR)** \u2014 more or less a strictly structured folder, which allows for many guarantees to be made for each input and output plugin. See `comicon.cirtools` for more information.\n\nFor new input and output formats to be added, they should be added in `comicon.inputs` or `comicon.outputs` respectively as a new module and in the `__init__.py` file(s).\n",
"bugtrack_url": null,
"license": "AGPL-3.0-only",
"summary": "A simple comic conversion library between CBZ/EPUB/MOBI/PDF",
"version": "1.2.1",
"project_urls": {
"Documentation": "https://github.com/potatoeggy/comicon",
"Homepage": "https://github.com/potatoeggy/comicon",
"Repository": "https://github.com/potatoeggy/comicon"
},
"split_keywords": [
"converter",
" comic",
" cbz",
" epub",
" pdf",
" mobi"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6c5416b3685eb2b35799b5c9c95e2f2df5de5f9289cac5fef005bdb03b82fd7c",
"md5": "d384b4e74f49a6ff8009c374c08513fa",
"sha256": "54a25e1cad39f74438e43ea04bcd9c3ccbf2cfc835228e7c2a45adaa8d862366"
},
"downloads": -1,
"filename": "comicon-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d384b4e74f49a6ff8009c374c08513fa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 30692,
"upload_time": "2024-12-04T16:54:17",
"upload_time_iso_8601": "2024-12-04T16:54:17.543425Z",
"url": "https://files.pythonhosted.org/packages/6c/54/16b3685eb2b35799b5c9c95e2f2df5de5f9289cac5fef005bdb03b82fd7c/comicon-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2e32352e204e8b9620a6ce1346bd3c79307ef97535c361b1b110f2c27b9597ee",
"md5": "cf99e692f239187996b6465fbe45c823",
"sha256": "b968e5fa95e5807b042577fdfec71c819ded159f7719401a5e9ced9669ab89c6"
},
"downloads": -1,
"filename": "comicon-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "cf99e692f239187996b6465fbe45c823",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 25138,
"upload_time": "2024-12-04T16:54:18",
"upload_time_iso_8601": "2024-12-04T16:54:18.483687Z",
"url": "https://files.pythonhosted.org/packages/2e/32/352e204e8b9620a6ce1346bd3c79307ef97535c361b1b110f2c27b9597ee/comicon-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-04 16:54:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "potatoeggy",
"github_project": "comicon",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "comicon"
}