Python port of d3-path
Project description
pyd3js-path
Python port of d3-path.
Tracked version: see upstream_lock.json.
What you get
- 100% upstream export parity (for the pinned
d3-path@3.1.0): the compatibility matrix below covers every upstream export. - 100% Python test coverage for
pyd3js_path(run the coverage command below). - 100% upstream
d3-pathJS tests vendored and passing: the upstream Mocha suite underpackages/pyd3js-path/upstream/d3-path/test/is run via a pytest gate (-m upstream). - UI parity checks (oracle): representative tests compare the SVG path
doutput to upstream via the repo’s Node oracle (-m oracle).
Install
From PyPI:
pip install pyd3js-path
This repo is a uv workspace monorepo. For local development:
uv sync --group dev
Usage
import pyd3js_path as p
path = p.path()
path.moveTo(0, 0)
path.lineTo(10, 10)
print(str(path))
Compatibility matrix
Pinned upstream inventory: docs/UPSTREAM_API.md (from d3-path@3.1.0).
Legend:
[oracle]: implemented and has oracle parity tests for representative cases.[unit + upstream-js]: implemented and covered by Python unit tests plus the vendored upstream JS suite gate.
Upstream exports (d3-path@3.1.0)
Path— [oracle]path— [oracle]pathRound— [oracle]
Development
uv run pytest packages/pyd3js-path/package_tests
uv run ruff format packages/pyd3js-path
uv run ruff check packages/pyd3js-path
uv run ty check packages/pyd3js-path/src
Coverage (Python)
uv run pytest packages/pyd3js-path/package_tests --cov=pyd3js_path --cov-report=term-missing
Oracle parity tests (Node)
cd tools/oracle && npm ci
uv run pytest -m oracle packages/pyd3js-path/package_tests
Upstream d3-path test suite (vendored)
uv run python scripts/vendor_upstream.py
cd packages/pyd3js-path/upstream/d3-path && npm install
uv run pytest -m upstream packages/pyd3js-path/package_tests
Documentation
- Upstream export inventory:
docs/UPSTREAM_API.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyd3js_path-0.1.0.tar.gz
(9.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyd3js_path-0.1.0.tar.gz.
File metadata
- Download URL: pyd3js_path-0.1.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a75e9bcac671fc1b90523264583bdc7b7ea3ba347731e66e4e4a75794c912406
|
|
| MD5 |
f6d08d8dfba8517459434efc7a9dcee2
|
|
| BLAKE2b-256 |
7ccf22114b306c4028a4437958c5825781f172f30d5a5ec8a5117c8ba6eb663e
|
File details
Details for the file pyd3js_path-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyd3js_path-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7307733962f5efb265f8b02cb3f5a619357c55c10d8e0450b03734a076b13746
|
|
| MD5 |
bd38107399df66cbdfd0063f6258fcfd
|
|
| BLAKE2b-256 |
b869ad8f8f787b4b96223608ace248d0792c5aac0ce8c2644ac924dfef9a5d6a
|