Skip to main content

CI Build Status PyPI Dependencies

picosvg

Tool to simplify SVGs. Converts an input svg into a "pico" svg:

  • Exactly 1 <defs> element, first child of root
  • Only gradients defined under <defs>
  • After the initial <defs>, only <g> and <path>
    • <g> is eliminated when possible, but may be retained for opacity
  • Only absolute coordinates
  • Only commands that specify full coordinates, no shorthand (H, S, etc)

Clip paths and strokes are rendered into equivalent paths using Skia via skia-pathops, <use> references are materialized, etc.

Some SVG features are not supported, of particular note:

  • <filter>
  • <mask>

Usage:

pip install -e .
picosvg mysvg.svg

Requires Python 3.10 or greater.

Test

Install the dev dependencies specified in extras_require.

pip install -e .[dev]
pytest

If you use zsh, it will prompt an error(zsh: no matches found: .[dev]). Please use the following command:

pip install -e '.[dev]'

You can also use pytest to test the specified files individually.

pytest tests/svg_test.py

If you need to test a certain function (for example: test_topicosvg), please execute:

pytest tests/svg_test.py::test_topicosvg

If you need to display detailed diff information, please execute:

pytest tests/svg_test.py::test_topicosvg --vv

Releasing

See https://googlefonts.github.io/python#make-a-release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

picosvg-0.23.0.tar.gz (120.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

picosvg-0.23.0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

Details for the file picosvg-0.23.0.tar.gz.

File metadata

  • Download URL: picosvg-0.23.0.tar.gz
  • Upload date:
  • Size: 120.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for picosvg-0.23.0.tar.gz
Algorithm Hash digest
SHA256 a3616d5eb3ee810e74a931ffa68e2c36cd06a2eef24400a97dc07c0e6cc5eb4c
MD5 1b79d11396ddc30349a8fd6eacabbfc2
BLAKE2b-256 3bd22e69443424c880f433cd37c841e2db37ecd41cb5de73844a363b7a146d26

See more details on using hashes here.

File details

Details for the file picosvg-0.23.0-py3-none-any.whl.

File metadata

  • Download URL: picosvg-0.23.0-py3-none-any.whl
  • Upload date:
  • Size: 52.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for picosvg-0.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f18d9b0f69bccd7773bc1de6932f505dc71dc16fb439b4d844716d8f57450b3c
MD5 caded94dbbefd8ea8e9c61bf5228e41b
BLAKE2b-256 4896fe3de3f0d5513636cb7bbfd0a693a6bc582ca0c2aeec03250e44a5aa144e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page