Python port of d3-ease
Project description
pyd3js-ease
Python port of d3-ease.
Tracked version: upstream_lock.json (d3-ease@3.0.1).
What is d3-ease?
d3-ease supplies easing functions: maps (t \in [0,1]) for animations and transitions (polynomial, sinusoidal, exponential, elastic, bounce, etc.). This package mirrors the default export surface of the pinned upstream version for use from Python.
What you get
- 100% upstream export parity for the pinned
d3-ease@3.0.1(compatibility matrix anddocs/UPSTREAM_API.md). - 100% line coverage for
pyd3js_ease(enforced via--cov-fail-under=100in this package’s pytest config). - Pytest ports of every upstream Mocha file for v3.0.1, plus runnable docs (README +
docs/USER_GUIDE.md) checked likepyd3js-array. - D3-style
ease*names and aliases; polynomial, back, and elastic configurators expose.exponent,.overshoot,.amplitude/.periodlike upstream (as callable classes in Python).
Install
From PyPI:
pip install pyd3js-ease
The published package has no third-party Python dependencies (standard library only).
Workspace development:
uv sync --group dev
Usage
import pyd3js_ease as d3
print(d3.easeCubicIn(0.5))
print(d3.easeQuad is d3.easeQuadInOut)
p = d3.easePolyIn.exponent(2.5)
print(round(p(0.5), 6))
f = d3.easeElasticIn.amplitude(1.3).period(0.2)
print(round(f(0.5), 6))
0.125
True
0.176777
-0.030303
Compatibility matrix
Pinned upstream inventory: docs/UPSTREAM_API.md.
Legend:
[implemented]: ported for the pinned version; covered by Python tests.[missing]: reserved for upstream drift (should not appear for the pinned version).
Upstream exports (d3-ease@3.0.1)
easeLinear— [implemented]easeQuad— [implemented]easeQuadIn— [implemented]easeQuadOut— [implemented]easeQuadInOut— [implemented]easeCubic— [implemented]easeCubicIn— [implemented]easeCubicOut— [implemented]easeCubicInOut— [implemented]easePoly— [implemented]easePolyIn— [implemented]easePolyOut— [implemented]easePolyInOut— [implemented]easeSin— [implemented]easeSinIn— [implemented]easeSinOut— [implemented]easeSinInOut— [implemented]easeExp— [implemented]easeExpIn— [implemented]easeExpOut— [implemented]easeExpInOut— [implemented]easeCircle— [implemented]easeCircleIn— [implemented]easeCircleOut— [implemented]easeCircleInOut— [implemented]easeBounce— [implemented]easeBounceIn— [implemented]easeBounceOut— [implemented]easeBounceInOut— [implemented]easeBack— [implemented]easeBackIn— [implemented]easeBackOut— [implemented]easeBackInOut— [implemented]easeElastic— [implemented]easeElasticIn— [implemented]easeElasticOut— [implemented]easeElasticInOut— [implemented]
Python-only exports
The module also documents PolyIn, PolyOut, PolyInOut, BackIn, BackOut, BackInOut, ElasticIn, ElasticOut, ElasticInOut, and __version__ for typing and explicit construction (not separate names in upstream index.js).
Testing
From repo root:
uv run pytest packages/pyd3js-ease/package_tests -q --cov=pyd3js_ease --cov-report=term-missing --cov-fail-under=100
uv run ruff format packages/pyd3js-ease
uv run ruff check packages/pyd3js-ease
uv run ty check packages/pyd3js-ease/src
Documentation
- User guide:
docs/USER_GUIDE.md - Changelog:
docs/CHANGELOG.md - Roadmap:
docs/ROADMAP.md - Upstream update checklist:
docs/UPSTREAM_UPDATE.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
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_ease-0.1.0.tar.gz.
File metadata
- Download URL: pyd3js_ease-0.1.0.tar.gz
- Upload date:
- Size: 422.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
530d9ac30f880c96188a8585e71523e04132f0b35c4d81dab9d5b14f0942b6aa
|
|
| MD5 |
10603a50c756fafb49da3dc9a1df8bbc
|
|
| BLAKE2b-256 |
10f5ec212afc81a2becf495f4173514c83383b085fa8f568d3b86546db3cb4c5
|
File details
Details for the file pyd3js_ease-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyd3js_ease-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 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 |
37ae84c0319eddc0fe977638671592f5869928a24f8e216edb2360f11849c6c5
|
|
| MD5 |
b90cd17cb0407b71fa0b200431b6a50b
|
|
| BLAKE2b-256 |
d586f2fa274411b2e84859ea7e1e4e69767961c3806d3b014e88bfd9fee15263
|