Skip to main content

pyusp — Uniscribe (usp10) OpenType shaping tracer (Windows / Linux / macOS wheel)

PyO3 abi3 wheel (pyusp-…-py3-none-win_amd64.whl) wrapping the pyusp Rust engine. Shapes in-process via a Uniscribe implementation and returns the babelsoft /api/opentype/shape engine dict.

from pyusp import shape_with_uniscribe
res = shape_with_uniscribe(font_bytes, text)          # script auto-detected
res = shape_with_uniscribe(font_bytes, text, script="mong")

Engines. The wheel ships wineusp.dll, Wine's open-source Uniscribe port (LGPL), which also provides a real per-lookup trace (trace=True). It drives the OS usp10.dll (Microsoft Uniscribe) as the authoritative reference — the Microsoft DLL is not bundled in the published wheel (it is an OS component and not redistributable); the engine loads it from the system at runtime. A dev/test-only build (python/build_wheel.ps1) may additionally pin an app-local copy of usp10.dll; see python/pyusp/NOTICE.md and python/pyusp/NOTICE-wineusp.md.

Native Microsoft trace (Windows). With backend="textshaping", trace=True (on Windows x64) the engine hooks the system TextShaping.dll apply driver and returns a native per-application glyph-run timeline straight from the Microsoft engine (stages named textshaping apply N). This trace has no lookup names (the engine does not expose them) and is only enabled on validated TextShaping.dll builds (Win11 24H2 / 10.0.26100 x64) — anything else raises a clear error. See python/pyusp/NOTICE-native-trace.md.

from pyusp import shape_with_uniscribe
res = shape_with_uniscribe(font_bytes, text, backend="textshaping", trace=True)  # Windows

Scope note: usp10 only recognises legacy OpenType script tags. Fonts that use only modern tags (e.g. Devanagari faces exposing dev2, not deva) are not shaped by Uniscribe at all — this matches what old Win32 apps that rely on usp10 actually experience.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyusp-0.5.0-cp39-abi3-win_amd64.whl (338.5 kB view details)

Uploaded CPython 3.9+Windows x86-64

pyusp-0.5.0-cp39-abi3-manylinux_2_34_x86_64.whl (520.7 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.34+ x86-64

pyusp-0.5.0-cp39-abi3-macosx_11_0_arm64.whl (470.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file pyusp-0.5.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyusp-0.5.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 338.5 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyusp-0.5.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 182921e30556df948a12b7d52ce26024a1830e1332a36490b85601ad8c455e2c
MD5 0fbf5c7ca86eaafdc0be447e3041e837
BLAKE2b-256 0e7cc5d8c87cc64d948c81e6e081b2dcab0c1930d9c5cec89438783965e6fd33

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyusp-0.5.0-cp39-abi3-win_amd64.whl:

Publisher: publish.yml on Kushim-Jiang/pyusp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyusp-0.5.0-cp39-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyusp-0.5.0-cp39-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dda6c478d5d22ad6f94fe7254c4976aa36209ef1fd8abe02f5e6a6195c82a993
MD5 bf2010aac1bb0be1247fd731d84a46dd
BLAKE2b-256 f75aa5d383bda1aa3765c24cf53b29d32dcf95d0375aa8651109c8e19c16976c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyusp-0.5.0-cp39-abi3-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on Kushim-Jiang/pyusp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyusp-0.5.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pyusp-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 470.9 kB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyusp-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc161e51d8a7ca080425dea01275d8a68ebccae21bac3c59b123beb93bc3b86e
MD5 224452f4b843380b6e3d743a1341327e
BLAKE2b-256 11f8288d1091253d670e270e86337b16d26e81975fea01a810cf6e26b8a7421a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyusp-0.5.0-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on Kushim-Jiang/pyusp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.6.0

3 files

This release

0.5.0 This release

3 files

0.4.0

3 files

0.3.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page