# pantomime
[![build](https://github.com/alephdata/pantomime/actions/workflows/build.yml/badge.svg)](https://github.com/alephdata/pantomime/actions/workflows/build.yml)
``pantomime`` is a small library that handles the parsing and normalisation
of internet MIME types in Python. This can be useful to normalise invalid,
or misformatted MIME types emitted by remote web servers.
## Usage
The simplest use is to normalise a MIME type:
```python
from pantomime import normalize_mimetype
assert normalize_mimetype('TEXT/PLAIN') == 'text/plain'
assert normalize_mimetype('plain/text') == 'text/plain'
assert normalize_mimetype(None) == 'application/octet-stream'
assert normalize_mimetype('') == 'application/octet-stream'
```
Internally, `pantomime` uses a `MIMEType` object to handle parsing. It can
be used to access more specific information, like human readable labels:
```python
from pantomime import parse_mimetype
parsed = parse_mimetype('text/plain')
assert parsed.family == 'text'
assert parsed.subtype == 'plain'
assert parsed.label == 'Plain text'
```
## Open issues
* Internationalisation, i.e. make the human-readable labels available in
multiple languages.
* Expand replacements for specific MIME types.
## License
Licensed under MIT terms, see the ``LICENSE`` file included in this repository.
Raw data
{
"_id": null,
"home_page": "http://github.com/alephdata/pantomime",
"name": "pantomime",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "mime mimetypes file types",
"author": "Journalism Development Network, Inc.",
"author_email": "data@occrp.org",
"download_url": "https://files.pythonhosted.org/packages/41/30/db94b1b569c2c0f95e4e2bbd87276daff769f5ad21b74fe3a682ab6628fd/pantomime-0.6.1.tar.gz",
"platform": null,
"description": "# pantomime\n\n[![build](https://github.com/alephdata/pantomime/actions/workflows/build.yml/badge.svg)](https://github.com/alephdata/pantomime/actions/workflows/build.yml)\n\n``pantomime`` is a small library that handles the parsing and normalisation\nof internet MIME types in Python. This can be useful to normalise invalid,\nor misformatted MIME types emitted by remote web servers.\n\n## Usage\n\nThe simplest use is to normalise a MIME type:\n\n```python\nfrom pantomime import normalize_mimetype\n\nassert normalize_mimetype('TEXT/PLAIN') == 'text/plain'\nassert normalize_mimetype('plain/text') == 'text/plain'\nassert normalize_mimetype(None) == 'application/octet-stream'\nassert normalize_mimetype('') == 'application/octet-stream'\n```\n\nInternally, `pantomime` uses a `MIMEType` object to handle parsing. It can\nbe used to access more specific information, like human readable labels:\n\n```python\nfrom pantomime import parse_mimetype\n\nparsed = parse_mimetype('text/plain')\nassert parsed.family == 'text'\nassert parsed.subtype == 'plain'\nassert parsed.label == 'Plain text'\n```\n\n## Open issues\n\n* Internationalisation, i.e. make the human-readable labels available in\n multiple languages.\n* Expand replacements for specific MIME types.\n\n## License\n\nLicensed under MIT terms, see the ``LICENSE`` file included in this repository.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "MIME type normalisation and labels.",
"version": "0.6.1",
"project_urls": {
"Homepage": "http://github.com/alephdata/pantomime"
},
"split_keywords": [
"mime",
"mimetypes",
"file",
"types"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9c8d96fcb5db774fbc253a8ec8364b9ee45270ea4bcc8b5cc230cee7a82eb058",
"md5": "65c7cae24c079a3f025d08bc0ca12424",
"sha256": "4ea567dffc2458a174cd624061a1a0efc081c858938d55291e4825e47a4fdb0f"
},
"downloads": -1,
"filename": "pantomime-0.6.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "65c7cae24c079a3f025d08bc0ca12424",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9402,
"upload_time": "2023-07-19T12:40:26",
"upload_time_iso_8601": "2023-07-19T12:40:26.605603Z",
"url": "https://files.pythonhosted.org/packages/9c/8d/96fcb5db774fbc253a8ec8364b9ee45270ea4bcc8b5cc230cee7a82eb058/pantomime-0.6.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4130db94b1b569c2c0f95e4e2bbd87276daff769f5ad21b74fe3a682ab6628fd",
"md5": "e1b7ad35cfd79e9a538e99bc1b0c0545",
"sha256": "6ff211788ecfbe2cdf79bf8617d7e2347b9d734ce3dac983cafa9673ed099789"
},
"downloads": -1,
"filename": "pantomime-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "e1b7ad35cfd79e9a538e99bc1b0c0545",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7454,
"upload_time": "2023-07-19T12:40:27",
"upload_time_iso_8601": "2023-07-19T12:40:27.975549Z",
"url": "https://files.pythonhosted.org/packages/41/30/db94b1b569c2c0f95e4e2bbd87276daff769f5ad21b74fe3a682ab6628fd/pantomime-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-19 12:40:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "alephdata",
"github_project": "pantomime",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"lcname": "pantomime"
}