127 lines
3.2 KiB
Plaintext
127 lines
3.2 KiB
Plaintext
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 <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>`_.
|