svg.path
SVG path objects and parser
Decision gist · record as of 2026-08-14
Yes. svg.path is a stable, actively maintained library with zero dependencies, permissive licensing, and no known vulnerabilities. It fills a specific need for SVG path manipulation in Python with a clean API. Install it if you work with SVG data or need to perform geometric calculations on path segments.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Calculating length for CubicBezier and Arc segments uses geometric approximation and may be slow without tuning the error parameter; default error is 1e-12.
- Low install friction with no runtime dependencies.
- Actively maintained with a recent release and steady repository activity.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the code provided you retain the license notice.
last release 2026-07-07 (38 days) · last repo commit 2026-07-07 · 242 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,702,687 downloads/mo, #2,935 on PyPI
Alternatives
Verify before relying
from svg.path import parse_path, Path, Line, CubicBezier
# Parse an SVG path string
path = parse_path('M 100 100 L 300 100 L 200 300 z')
# Or build from objects
path = Path(Line(100+100j, 300+100j), CubicBezier(300+100j, 100+100j, 200+200j, 200+300j))
# Get a point along the path
point = path.point(0.5)
# Calculate path length
length = path.length(error=1e-5)- Whether the package handles all SVG path command variations correctly in production use.
- Performance characteristics when working with very large or complex paths.
- Completeness of internal consistency checks when manipulating paths programmatically.
What it is and what it does
svg.path is a lightweight library for working with SVG path data. It provides four path segment classes—Line, Arc, CubicBezier, and QuadraticBezier—plus a Path container that acts as a mutable sequence. You can parse SVG path definition strings into Path objects, build paths programmatically from segment objects, and manipulate them by adding, replacing, or deleting segments. Coordinates are represented as complex numbers where the real part is X and the imaginary part is Y.
The library offers methods to find points along a path, calculate segment and total path length, check for smooth Bézier transitions, compute bounding boxes, and generate SVG path strings from Path objects. Length calculation for curved segments uses recursive approximation, which you can tune via an error parameter for speed-accuracy tradeoffs. The package has no external runtime dependencies and supports Python 3.8 and later.
Use it for
- Parse and manipulate SVG path data in graphics processing or vector editing tools.
- Calculate the length of SVG paths or find coordinates at specific positions along curves.
- Convert between SVG path string format and programmatic path segment objects.
- Generate bounding boxes for SVG paths to determine spatial bounds.
- Build or modify SVG paths dynamically in web or graphics applications.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
svg.path is a stable, actively maintained library with zero dependencies, permissive licensing, and no known vulnerabilities. It fills a specific need for SVG path manipulation in Python with a clean API. Install it if you work with SVG data or need to perform geometric calculations on path segments.
Install
svg-path on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with a recent release and steady repository activity. Supports current Python versions (3.9, 3.10, 3.11, 3.12, 3.13) and PyPy.
Calculating length for CubicBezier and Arc segments uses geometric approximation and may be slow without tuning the error parameter; default error is 1e-12.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the code provided you retain the license notice.
Quickstart
from svg.path import parse_path, Path, Line, CubicBezier
# Parse an SVG path string
path = parse_path('M 100 100 L 300 100 L 200 300 z')
# Or build from objects
path = Path(Line(100+100j, 300+100j), CubicBezier(300+100j, 100+100j, 200+200j, 200+300j))
# Get a point along the path
point = path.point(0.5)
# Calculate path length
length = path.length(error=1e-5)
Verify before relying
- Whether the package handles all SVG path command variations correctly in production use.
- Performance characteristics when working with very large or complex paths.
- Completeness of internal consistency checks when manipulating paths programmatically.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 38 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,702,687 / month, #2,935 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: PyPyTopic :: Multimedia :: Graphics |
Evidence: svg_path-7.1-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “svg path parser”
- svg.pathParses SVG path definitions and provides objects to manipulate path…
- svgelementssvgelements parses SVG files and provides geometric objects (Path,…
- svgpathtoolsReads, writes, and analyzes SVG Path objects and Bézier curves,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also pyclothoids · svgelements · svgpathtools · cu2qu · drawsvg · pathable · svglib · dash-svg · ocpsvg · furl