Skip to main content

Font indexing and querying support like fontconfig.

Project description

fontra

PyPI Version | PyPI Downloads | License

Font indexing and querying support like fontconfig.

Features

  • Font indexing and querying via display name
  • Specifying custom font directories
  • CLI for listing fonts

Installation

Via pip:

pip install fontra

For some advanced tools:

pip install fontra[tools]

which currently enables you to:

  • Extract a .ttc file to .ttf files

Usage

Command-line interface

fontra --help
       --version
       list
                                            List available fonts.
            --tree/[--table] | -t/[-T]
                                            Whether to display a tree or a table.
            --sort/[--no-sort] | -s/[-S]
                                            Whether to output with sorted font names.
            --localized/[--unlocalized] | -l/[-L]
                                            Whether to show localized font names.
       fontdirs
                                            Show the font search directories.
       show NAME...
                                            Show the font information.
            [--localized]/--unlocalized | -l/[-L]
                                            Whether to lookup the localized index.
            --fuzzy/[--exact] | -f/[-F]
                                            Whether to fuzzy match.
            --verbose/-v
                                            Whether to show font path
       unlocalize NAME
                                            Convert a name into an unlocalized name.
       unpack PATH
                                            Unpack a TTC to TTF. (Requires fontra[tools] installed)
              --output OUTPUT
                                            Path to the output directory.

Font indexing and querying

>>> import fontra
>>> fontra.init_fontdb()  # Initialize and search fonts
>>> fontra.all_fonts()
['Noto Sans Lisu', 'Noto Serif Tamil SemiCondensed', 'Noto Serif Georgian', 'Noto Sans Armenian', ...]
>>> fontra.get_font_styles("Arial")
['Regular', 'Italic', 'Bold', 'Bold Italic', 'Black']
>>> fontra.get_font("Arial", "Italic")
FontRef(path=PosixPath('/usr/share/fonts/TTF/ariali.ttf'), bank=0)
>>> fontra.has_font_family("Helvetica")
False
>>> fontra.has_font_style("Comic Sans MS", "Light")
False
>>> fontra.get_unlocalized_name("更紗ゴシック UI J")
'Sarasa UI J'
>>> fontra.get_localized_names("LXGW WenKai TC")
['霞鶩文楷 TC', '霞鹜文楷 TC']
>>> fontra.get_font("更纱黑体 SC", "SemiBold Italic")
FontRef(path=PosixPath('/usr/share/fonts/sarasa-gothic/Sarasa-SemiBoldItalic.ttc'), bank=1)

Custom font directories

>>> from pathlib import Path
>>> fontra.FONTDIR_CUSTOM.append(Path("~/.fonts"))
>>> fontra.update_custom_fontfiles_index()
>>> fontra.update_fontrefs_index()
>>> fontra.all_fonts()
[...]

From environment variable

PYFONTRA_CUSTOM_FONTDIRS=~/.fonts fontra 

License

This project is under MIT License.

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

fontra-0.5.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

fontra-0.5.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file fontra-0.5.1.tar.gz.

File metadata

  • Download URL: fontra-0.5.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for fontra-0.5.1.tar.gz
Algorithm Hash digest
SHA256 1a2c24d9fe7ca5124b8ebb984565894307ef68e50ec817095cecc46248d60342
MD5 8eee1ca2b7e657a616a4c57ace9878b5
BLAKE2b-256 20d5bdd9938b467df4dbe2f87de257123fd8e9769462a57928d4e1aeb6138064

See more details on using hashes here.

File details

Details for the file fontra-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: fontra-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for fontra-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37c15fbff11bf1ddabca1df389bd0a968fe49abd2c4423ac5d438436747e5c9e
MD5 e83ee49c7492d27d71170675fd5bbea4
BLAKE2b-256 dcd410b32fd44f49f9760facd1807a5ce69615201719de09dfb9ceea9d2dd83a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page