Skip to main content

Python tools for Sutton SignWriting font visualization in SVG and PNG.

Project description

sutton-signwriting-font

Source Code on GitHub Docs Gitter

Spec DOI

PyPI PyPI - Downloads CI

sutton-signwriting-font is a Python library that generates SVG and PNG images for individual symbols, complete signs, and structured text. The library covers the entire set of the International SignWritnig Alphabet 2010 (ISWA 2010).

This library builds on sutton-signwriting-core for parsing Formal SignWriting in ASCII (FSW) and SignWriting in Unicode (SWU), and uses an SQLite database of SVG fragments to compose self-contained visualizations. See draft-slevinski-formal-signwriting for detailed specification.

Author: Steve Slevinski
Channel: YouTube
Support: Patreon
Donate: sutton-signwriting.io

Useful Links


Installation

pip install sutton-signwriting-font

Usage

from sutton_signwriting_core.render import (
    fsw_symbol_svg, fsw_sign_svg,
    fsw_columns_svg, fsw_symbol_png
)

# Symbol SVG
svg = fsw_symbol_svg('S20500-C')
# Returns SVG string

# Sign SVG
svg = fsw_sign_svg('M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475')
# Returns SVG string

# Text SVG
svg_list = fsw_columns_svg(
    'AS14c20S27106M518x529S14c20481x471S27106503x489 AS18701S1870aS2e734S20500M518x533S1870a489x515S18701482x490S20500508x496S2e734500x468 S38800464x496',
    {'height': 250, 'width': 150, 'pad': 20}
)
# Returns list of SVG strings (one per column)

# Symbol PNG
png_bytes: bytes = fsw_symbol_png('S20500', {'width': 256})
# Returns PNG bytes

All functions are fully typed, validated, and documented with Python-style docstrings (Google format). Run help(fsw_symbol_svg) for details.


Development

NOTE: for documentation in PDF and EPUB

sudo apt install latexmk

Development Steps

# 1. Clone the repo
git clone https://github.com/sutton-signwriting/font-py.git
cd font-py

# 2. Install Poetry (if you don’t have it)
curl -sSL https://install.python-poetry.org | python3 -
export PATH="$HOME/.local/bin:$PATH"

# 3. Create the virtual environment and install deps
poetry install

# 4. Activate the environment (Poetry 2+)
poetry env activate
#   (copy and execute the returned command)

# 5. Run the test suite
pytest -v

# 6. Code coverage and HTML report
pytest --cov
pytest -v --cov=sutton_signwriting_font --cov-report=html
pytest --cov=sutton_signwriting_font --cov-report=xml

# 7. Lint / format / type-check
black .
ruff check .
mypy src

# 8. Update Version string
pyproject.toml:version = "1.0.0"
src/sutton_signwriting_font/__init__.py:__version__ = "1.0.0"
sphinx-docs/source/conf.py:release = "1.0.0"
sphinx-docs/source/conf.py:version = "1.0"

# 9. Create HTML documentation
cd sphinx-docs
sphinx-build -b html -a -E source/ ../docs/

# 10. Build distributions
poetry build

# 11. Publish to pypi
poetry publish

# 12. Git commit, push, and tag
git commit -m "message"
git push origin main
git tag v1.0.0 && git push --tags

License

MIT – see LICENSE for details.

Maintained by Steve Slevinski – Slevinski@signwriting.org


SignWriting Resources

Project details


Download files

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

Source Distribution

sutton_signwriting_font-1.0.0.tar.gz (13.5 MB view details)

Uploaded Source

Built Distribution

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

sutton_signwriting_font-1.0.0-py3-none-any.whl (13.6 MB view details)

Uploaded Python 3

File details

Details for the file sutton_signwriting_font-1.0.0.tar.gz.

File metadata

  • Download URL: sutton_signwriting_font-1.0.0.tar.gz
  • Upload date:
  • Size: 13.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.12 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for sutton_signwriting_font-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9e0a76d21ab3002a946e3424f4e5ecca592778b57691602bc649908457496b58
MD5 8ec4f9a24743f36e038ecbfd3d7a1283
BLAKE2b-256 68198bdd51e499d6824b91d8f74e1e901adac4b571194cd85218ca47bd752dd0

See more details on using hashes here.

File details

Details for the file sutton_signwriting_font-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sutton_signwriting_font-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.10.12 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for sutton_signwriting_font-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4a8b6433591a0cec46f331c003bca7ce5990ccb6b5416f38ea594bda7c252b23
MD5 6d18aa334261b0c59c46d4914d685087
BLAKE2b-256 73eed0c18dd1b9cce04a328b0ee1e10e57e96328f5eb06b2cdd617423062365d

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 Pingdom Monitoring Sentry Error logging StatusPage Status page