data_url Documentation

Usage

Creating a data URL

If all you need is to create a URL and nothing else there is a shortcut method included so you don’t need to directly instantiate the DataURL class.

import data_url

with open('image.jpeg', 'rb') as image:
  data = image.read()

url = data_url.construct_data_url(
   mime_type='image/jpeg',
   base64_encode=True,
   data=data,
)

If you need the information to persist it is recommended to instantiate a class through one of the factory methods on DataURL

import data_url

with open('image.jpeg', 'rb') as image:
  data = image.read()

url = data_url.DataURL.from_data('image/jpeg', True, data)
print(str(url))

You can access the full data URL by either converting the DataURL object to a string as above or by accessing the url attribute.

Retrieving data from a URL

Given you already have a data URL you can instantiate a DataURL object and retrieve each individual attribute.

import data_url

raw_url = "data:application/json;base64,ewogICJ0ZXN0IjogMTIzCn0K"

url = data_url.DataURL.from_url(raw_url)

print(url.mime_type, url.is_base64_encoded, url.data)

API Documentation

class data_url.DataURL
ENCODING_STRING = ';base64'
URL_FORMAT = 'data:{mime_type}{encoded},{data}'
property data

The raw data of the URL

property encoded_data

The encoded data of the URL

classmethod from_data(mime_type, base64_encode, data)

Create a new data URL from a mime type and data

If the data is a string type and the base64_encode flag is set to True then this function assumes the data is already base64 encoded and decodes it. Otherwise the data is passed through as is.

Parameters
  • mime_type (str) –

  • base64_encode (boolean) – Whether or not the URL data should be base64 encoded.

  • data (str | bytes) – The actual url data.

Returns

A new DataURL object.

Return type

DataURL

classmethod from_url(url)

Create a new DataURL object from an existing URL. Useful for retrieving data from a data URL.

Parameters

url (str) –

Returns

A new DataURL object.

Return type

DataURL

property is_base64_encoded

Whether or not the data URL data is base64 encoded

property mime_type
property url
data_url.construct_data_url(mime_type, base64_encode, data)

Helper method for just creating a data URL from some data. If this URL will persist it is recommended to create a full DataURL object

If the data is a string type and the base64_encode flag is set to True then this function assumes the data is already base64 encoded and decodes it. Otherwise the data is passed through as is.

Parameters
  • mime_type (str) –

  • base64_encode (boolean) – Whether or not the URL data should be base64 encoded.

  • data (str | bytes) – The actual url data.

Returns

The data URL.

Return type

str