Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/googlefonts/pyfontaine
Python tool to check font files for language/character set support
https://github.com/googlefonts/pyfontaine
Last synced: 3 months ago
JSON representation
Python tool to check font files for language/character set support
- Host: GitHub
- URL: https://github.com/googlefonts/pyfontaine
- Owner: googlefonts
- License: gpl-3.0
- Created: 2013-01-09T16:38:32.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2023-05-22T22:30:48.000Z (over 1 year ago)
- Last Synced: 2024-04-13T18:54:02.630Z (7 months ago)
- Language: Python
- Homepage: https://github.com/googlefonts/pyfontaine
- Size: 5.33 MB
- Stars: 103
- Watchers: 29
- Forks: 22
- Open Issues: 30
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.txt
- Authors: AUTHORS.txt
Awesome Lists containing this project
- awesome-typography - pyfontaine - Python tool to check font files for language/character set support. (Python)
README
pyfontaine
==========================================================|Latest PyPI Version| |Python| |Travis Build Status| |License: GPL v3|
pyfontaine analyses fonts for their language and character/glyph-set support.
It has a straightforward pythonic set definition format:
- `simple example `__
- `medium example `__
- `complex example `__Additional definitions are downloaded from the Extensis, font-config and Unicode websites during installation, and can be updated without reinstalling.
Adding your own definitions is easy.
All files in the `internals `__ directory are auto-detected, so just add definition files there.Installation
------------macOS:
First, install Python and the `pip `__ python package manager. This is installed by default with `homebrew `__ python, so, install homebrew, then install the neccessary depedencies (`PyICU `__) as follows::
brew install python icu4c pkg-config;
export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH";
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/icu4c/lib/pkgconfig";
export CC="$(which gcc)" CXX="$(which g++)";
pip3 install --no-binary=:pyicu: pyicu;Debian:
apt-get install libicu-dev
Install the latest release easily with pip::
pip3 install fontaine --user;
To install the latest development version::
pip3 install git+https://github.com/googlefonts/pyfontaine.git#egg=fontaine --user;
Usage
-----Given a list of space separated font filenames, it returns a report with some general metadata and a language support analysis::
pyfontaine font.ttf;
Given a list of space separated unicode characters, or unicode values, it returns a list of character sets that include that character::
pyfontaine 0x0061;
pyfontaine ğ ø ∂;Similarly you can find out if a font supports specific characters by also giving the filename::
pyfontaine U+C480 U+C481 font.ttf;
To output font reports in various formats::
pyfontaine --xml font.ttf;
pyfontaine --json font.ttf;
pyfontaine --csv font.ttf;
pyfontaine --wiki font.ttf;The `--wiki` format produces a MediaWiki table
(`example `__)To only show character sets from different collections::
pyfontaine --collections all font.ttf; # default
pyfontaine --collections pyfontaine font.ttf;
pyfontaine --collections uniblocks font.ttf;
pyfontaine --collections extensis font.ttf;
pyfontaine --collections fontconfig font.ttf;
pyfontaine --collections cldr font.ttf;
pyfontaine --collections subsets font.ttf;To only show specific character sets::
pyfontaine --set africaan,adobe_latin_3 font.ttf;
To print a list of all the missing unicode values from each set::
pyfontaine --missing --set adobe_latin_3 font.ttf;
To output visualisations of the coverage using `Hilbert curves `__ (thanks for the idea, `Øyvind 'pippin' Kolås `__!):
pyfontaine --show_hilbert font.ttf; ls -l coverage_pngs/;
The PNG files are stored in a new directory, ``coverage_pngs``, under the current directory.
Update collection data
~~~~~~~~~~~~~~~~~~~~~~You can update remote collections data when you are online::
pyfontaine --update-data 1;
Python Module
~~~~~~~~~~~~~It has a python module called ``fontaine``
Making a release on PyPI
~~~~~~~~~~~~~~~~~~~~~~~~To release a new version on PyPI, create and push a new git tag with a version number following the [semver](https://www.semver.org) versioning scheme.
Then set up a ``~/.pypirc`` file::
[distutils]
index-servers=pypi
[pypi]
repository = https://pypi.python.org/pypi
[server-login]
username = user
password = passwordThen run::
python setup.py build;
python setup.py sdist upload;Contributing
------------Your contributions under `the GPLv3 `__ are welcome!
pyfontaine is a python reimplementation of
`Fontaine `__ by Ed Trager, and has been made by
`Vitaly Volkov `__,
`Dave Crossland `__,
`Mikhail Kashkin `__ and
`Felipe Sanches `__.Thanks
------We would like to thank some upstream projects that make pyfontaine even
more useful:* `Thomas Phinney `__ for the `WebINK Character
Sets `__* `Behdad Esfabod `__ for the `font-config languages
definitions `__* Unicode Consortium for the `Unicode Blocks
`__Dependencies
------------- Mac OS X requires the XCode Command Line Tools to be installed
- `fonttools `__ (common) *or*
`freetype-py `__ (fast)
- `lxml `__
- `PyICU `__
- `simpleHilbertCurve `__
- `matplotlib `__
- `tabulate `__
- `requests `__Related Projects
----------------- `fontaine `__
- `fontbakery `__
- `libunicodenames `__.. |Latest PyPI Version| image:: https://img.shields.io/pypi/v/fontaine.svg?style=flat
:target: https://pypi.python.org/pypi/fontaine
.. |Python| image:: https://img.shields.io/pypi/pyversions/fontaine.svg?style=flat
:target: https://pypi.python.org/pypi/fontaine
.. |Travis Build Status| image:: https://travis-ci.org/googlefonts/pyfontaine.svg
:target: https://travis-ci.org/googlefonts/pyfontaine
.. |License: GPL v3| image:: https://img.shields.io/badge/License-GPLv3-blue.svg
:target: https://www.gnu.org/licenses/gpl-3.0