Metadata-Version: 2.1
Name: python-datauri
Version: 1.2.0
Summary: A li'l class for data URI manipulation in Python
License: Unlicense
Author: Flavio Curella
Author-email: flavio.curella@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: six (>=1.16.0,<2.0.0)
Description-Content-Type: text/x-rst

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, (which in Python 2 is the same as a string).
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...'

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>`_.

