# 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": "Daniel Chen",
"author_email": "danielchen04@hotmail.ca",
"download_url": "https://files.pythonhosted.org/packages/49/b8/6698a337d76de6947112effe1a9a119000e682901dd5759d03938ccb6b24/comicon-1.2.0.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.0",
"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": "bda1b85107903b19aff288c8dadcaf6967307eb2d28ed38ea132625112cd6f1f",
"md5": "b328a0318b0aa93a4d3b47afe07316a6",
"sha256": "c6e2359bdbdd66d93e1cf177d9c88a7b21a23089aebda362d4a8cefbd188f864"
},
"downloads": -1,
"filename": "comicon-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b328a0318b0aa93a4d3b47afe07316a6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 30492,
"upload_time": "2024-05-26T16:51:08",
"upload_time_iso_8601": "2024-05-26T16:51:08.216019Z",
"url": "https://files.pythonhosted.org/packages/bd/a1/b85107903b19aff288c8dadcaf6967307eb2d28ed38ea132625112cd6f1f/comicon-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49b86698a337d76de6947112effe1a9a119000e682901dd5759d03938ccb6b24",
"md5": "25238731fa377a4af57f8453e5ccace4",
"sha256": "fa1a5d35b738a00262997a1b01f69b09e8c540be6c2281d4856aeb9949d381ee"
},
"downloads": -1,
"filename": "comicon-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "25238731fa377a4af57f8453e5ccace4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 25227,
"upload_time": "2024-05-26T16:51:09",
"upload_time_iso_8601": "2024-05-26T16:51:09.866673Z",
"url": "https://files.pythonhosted.org/packages/49/b8/6698a337d76de6947112effe1a9a119000e682901dd5759d03938ccb6b24/comicon-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-26 16:51:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "potatoeggy",
"github_project": "comicon",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "comicon"
}