GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - fcurella/python-datauri: Data URI manipulation made easy.

BranchesTags
Open more actions menu

Latest commit

 

History

147 Commits
147 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
datauri
datauri
 
 
tests
tests
 
 
.bumpversion.cfg
.bumpversion.cfg
 
 
.coveragerc
.coveragerc
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
Makefile
Makefile
 
 
README.rst
README.rst
 
 
mypy.ini
mypy.ini
 
 
pytest.ini
pytest.ini
 
 
requirements.txt
requirements.txt
 
 
setup.cfg
setup.cfg
 
 
setup.py
setup.py
 
 

Repository files navigation

DataURI

Build status of the master branch on Mac/Linux https://coveralls.io/repos/github/fcurella/python-datauri/badge.svg?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

$ pip install python-datauri

Parsing

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

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

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

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

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.

About

Data URI manipulation made easy.

Topics

data-uripython

Resources

Readme
Unlicense
Activity

Stars

58 stars

Watchers

1 watching

Forks

8 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.