Python Datauri Save

Data URI manipulation made easy.

Project README

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 v1:

.. 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 <http://unlicense.org/>_.

Credits

This is a repackaging of this Gist <https://gist.github.com/zacharyvoase/5538178>_ originally written by Zachary Voase <https://github.com/zacharyvoase>_.

Open Source Agenda is not affiliated with "Python Datauri" Project. README Source: fcurella/python-datauri
Stars
47
Open Issues
0
Last Commit
7 months ago

Open Source Agenda Badge

Open Source Agenda Rating