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.

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.2.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

fontra-0.5.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fontra-0.5.2.tar.gz
  • Upload date:
  • Size: 11.2 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.2.tar.gz
Algorithm Hash digest
SHA256 bd78c57ddfbc329ab5ae769eca7c230c542d8554f90be0e73c2ae22d4b050c64
MD5 1b7b12ef70ab17023bc2194743229eee
BLAKE2b-256 e8e610c7cdc25346ccc72ff7e3b81b6c7f29a41ecb8a8e3cb97089dfed1726d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fontra-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 11.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ff54a060b800abfc8348fa691695ef1c432886af97e08280094f41ba5ca60002
MD5 df4118081e81022e79e6f0d5e8eaecfb
BLAKE2b-256 b5664d0b9eb6ce82d479d36eb72b76db38a897ab2eb87ba8e118f9d241516025

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