# comicfn2dict
An API and CLI for extracting structured comic metadata from filenames.
## Install
<!-- eslint-skip -->
```sh
pip install comicfn2dict
```
## API
<!-- eslint-skip -->
```python
from comicfn2dict import comicfn2dict, dict2comicfn
path = "Comic Series #001 Title (2024).cbz"
metadata: dict[str, str| tuple[str,...]] = comicfn2dict(path, verbose=0)
filename: str = dict2comicfn(metadata, bool=True, verbose=0)
```
## CLI
<!-- eslint-skip -->
```sh
comicfn2dict "Series Name #01 - Title (2023).cbz"
{'ext': 'cbz',
'issue': '001',
'series': 'Series Name',
'title': 'Title',
'year': '2023'}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/ajslater/comicfn2dict",
"name": "comicfn2dict",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "AJ Slater",
"author_email": "aj@slater.net",
"download_url": "https://files.pythonhosted.org/packages/00/97/f2416a3726044eee5924f76b4c229e24d92678925b2a4cc308540097259d/comicfn2dict-0.2.4.tar.gz",
"platform": null,
"description": "# comicfn2dict\n\nAn API and CLI for extracting structured comic metadata from filenames.\n\n## Install\n\n<!-- eslint-skip -->\n\n```sh\npip install comicfn2dict\n```\n\n## API\n\n<!-- eslint-skip -->\n\n```python\nfrom comicfn2dict import comicfn2dict, dict2comicfn\n\npath = \"Comic Series #001 Title (2024).cbz\"\n\nmetadata: dict[str, str| tuple[str,...]] = comicfn2dict(path, verbose=0)\n\nfilename: str = dict2comicfn(metadata, bool=True, verbose=0)\n```\n\n## CLI\n\n<!-- eslint-skip -->\n\n```sh\ncomicfn2dict \"Series Name #01 - Title (2023).cbz\"\n{'ext': 'cbz',\n'issue': '001',\n'series': 'Series Name',\n'title': 'Title',\n'year': '2023'}\n```\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "Parse common comic filenames and return a dict of metadata attributes. Includes a cli.",
"version": "0.2.4",
"project_urls": {
"Documentation": "https://github.com/ajslater/comicfn2dict",
"Homepage": "https://github.com/ajslater/comicfn2dict",
"News": "https://github.com/ajslater/comicfn2dict/NEWS.md",
"Report Issues": "https://github.com/ajslater/comicfn2dict/issues",
"Repository": "https://github.com/ajslater/comicfn2dict"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a4e85137f336f8b92a8b57b8b6269c1bf23a9aa2be3bef9d2f91df751025a5b4",
"md5": "76d8bc699a59f8b61c8bc4ac8910d299",
"sha256": "666afa89129cbee1fd14414aa7054e4774b2b3e9c516692e4377e1dd39ec3e19"
},
"downloads": -1,
"filename": "comicfn2dict-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "76d8bc699a59f8b61c8bc4ac8910d299",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 23064,
"upload_time": "2024-06-24T19:10:49",
"upload_time_iso_8601": "2024-06-24T19:10:49.832789Z",
"url": "https://files.pythonhosted.org/packages/a4/e8/5137f336f8b92a8b57b8b6269c1bf23a9aa2be3bef9d2f91df751025a5b4/comicfn2dict-0.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0097f2416a3726044eee5924f76b4c229e24d92678925b2a4cc308540097259d",
"md5": "c602f6ce24b5de8bdd41040986de0966",
"sha256": "a154d6405824b0323b81471f0977f5b884987012a7904ca135761000511d8835"
},
"downloads": -1,
"filename": "comicfn2dict-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "c602f6ce24b5de8bdd41040986de0966",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 26566,
"upload_time": "2024-06-24T19:10:52",
"upload_time_iso_8601": "2024-06-24T19:10:52.205597Z",
"url": "https://files.pythonhosted.org/packages/00/97/f2416a3726044eee5924f76b4c229e24d92678925b2a4cc308540097259d/comicfn2dict-0.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-24 19:10:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ajslater",
"github_project": "comicfn2dict",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"circle": true,
"lcname": "comicfn2dict"
}