Metadata-Version: 2.1 Name: python-datauri Version: 3.0.2 Summary: A li'l class for data URI manipulation in Python Home-page: https://github.com/fcurella/python-datauri/ Maintainer: Flavio Curella Maintainer-email: flavio.curella@gmail.com License: Unlicense Platform: any Classifier: Development Status :: 4 - Beta Classifier: License :: OSI Approved :: The Unlicense (Unlicense) Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 License-File: LICENSE Requires-Dist: cached-property Requires-Dist: typing_extensions DataURI ======= .. image:: https://github.com/fcurella/python-datauri/workflows/Python%20Tests/badge.svg :target: https://github.com/fcurella/python-datauri/actions?query=workflow%3A%22Python+Tests%22 :alt: Build status of the master branch on Mac/Linux .. image:: https://coveralls.io/repos/github/fcurella/python-datauri/badge.svg?branch=master :target: https://coveralls.io/github/fcurella/python-datauri?branch=master Data URI manipulation made easy. This isn't very robust, and will reject a number of valid data URIs. However, it meets the most useful case: a mimetype, a charset, and the base64 flag. Installation ------------ .. code-block:: bash $ pip install python-datauri Parsing ------- .. code-block:: python >>> from datauri import DataURI >>> uri = DataURI('data:text/plain;charset=utf-8;base64,VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu') >>> uri.mimetype 'text/plain' >>> uri.charset 'utf-8' >>> uri.is_base64 True >>> uri.data b'The quick brown fox jumped over the lazy dog.' Note that ``DataURI.data`` will always return bytes. Use ``DataURI.text`` to get a string. Creating from a string ---------------------- .. code-block:: python >>> from datauri import DataURI >>> made = DataURI.make('text/plain', charset='us-ascii', base64=True, data='This is a message.') >>> made DataURI('data:text/plain;charset=us-ascii;base64,VGhpcyBpcyBhIG1lc3NhZ2Uu') >>> made.data b'This is a message.' Creating from a file -------------------- This is really just a convenience method. .. code-block:: python >>> from datauri import DataURI >>> png_uri = DataURI.from_file('somefile.png') >>> png_uri.mimetype 'image/png' >>> png_uri.data b'\x89PNG\r\n...' Serializing ----------- `DataURI` is a subclass of `str`, so you can just use `str()` to print it out: .. code-block:: python >>> from datauri import DataURI >>> png_uri = DataURI.from_file('somefile.png') >>> str(png_uri) 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIA...' Pydantic Support ---------------- You can use `DataURI` as a type for `Pydantic`: .. code-block:: python from datauri import DataURI from pydantic import BaseModel class ProfilePicture(BaseModel): image_data: DataURI License ------- This code is released under the `Unlicense `_. Credits ------- This is a repackaging of `this Gist `_ originally written by `Zachary Voase `_.