Glyphsets

Latest version: v1.1.0

Safety actively analyzes 714860 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

1.1.0

Changes since last release

- Added Ⓓ (design right symbol) to **GF_Latin_Plus** (issue 217)
- Revised **GF_Cyrillic_Core** and **Plus** glyphset definitions with language definitions and descriptions
- Removed Python 3.8 support from tests
- Implemented `glyphsets find` to find characters in the language and glyphset definitions
- Remove invisible control and format characters from glyphsets (Unicode `Cc` and `Cf` categories)
- In `.nam` files, separate names from unicodes with a `` to make the files consumable as-is in subsetting applications (issue 232)
- Include glyphset inheritance, defined in child glyphsets (e.g. **GF_Cyrillic_Plus** is set to include **GF_Cyrillic_Core**)
- Following inheritance, put out “Exclusive” glyphsets (for `.plist` files for now); may be extended to other outputs later
- Add `CustomFilter_GF_All.plist` to results
- Manually added **GF_Latin_Kernel** to all modern **Arabic**, **Cyrillic** glyphsets as well as **GF_Greek_Core**
- Added dynamic Cyrillic Roman/Italic localization glyphsets to `.plist` files based on manually curated files in `definitions/misc/`
- Added `glyphsets print-unicodes` command that prints a list of unicodes of several defined glyphsets that can be piped into command line arguments, for instance for `pyftsubset font.ttf --unicodes=$(glyphsets print-unicodes GF_Latin_Core GF_Cyrillic_Core)`
- Added a list of Arabic characters that either commonly included in fonts but are not in the Arabic language definitions (`alefWasla-ar`) or are commonly used as components (`behDotless-ar`)
- Added automatic Arabic `.init/.medi/.fina` presentation forms (and changed sortin for all glyphsets as an implication)
- Switched **GF_Cyrillic_Historical** from manual to language defintions, including Church Slavic (`cu_Cyrl`).

1.0.0

Changes since last release

- Removed all remaining old code after diffenator2 got refactored
- Pulled in 3 additional African language definitions from `gflanguages v0.6.0`. **GF_Latin_African** glyphset didn’t change as a result of that, only its "Character Sequences" definitions increased from 722 to 746 (commit [8b93034](https://github.com/googlefonts/glyphsets/commit/8b930342005868b6d192c789aef154d715bcf0c0)).

0.6.20

Changes since last release

- Added `language_code` definition for **GF_Latin_PriAfrican** to allow shaping tests
- Added `glyphsets coverage` CLI command that prints a font's glyphset coverages
- Reworked glyphset coverage calculation in `get_glyphsets_fulfilled()`; now based on characters per glyphset that are unique **when compared to GF_Latin_Core**.

**Coverage Calculation Changes in Detail:**

_Previously_, the coverage percentage as returned by `get_glyphsets_fulfilled()` would calculate all the font’s characters as a percentage of a glyphset’s total characters. Fontbakery (among others) would then treat a glyphset as covered as soon as 80% of characters are present.

This generally worked, but created unwelcome overlaps as soon as glyphsets were too similar to each other. The newly redefined **GF_Latin_PriAfrican** glyphset, for example, has only 34 additional characters compared to **GF_Latin_Core**, as revealed by the command `glyphsets compare GF_Latin_Core GF_Latin_PriAfrican`.

**GF_Latin_Core** on the other hand currently has 324 glyphs, and so a font that covers **GF_Latin_Core** also covers 90% of **GF_Latin_PriAfrican** and would therefore be counted as supporting **GF_Latin_PriAfrican** _by accident_, without _actually_ supporting it, resulting in loads of unwelcome reports by Fontbakery’s `shape_languages` check.

The _new_ calculation is based solely on **additional characters when compared to GF_Latin_Core**. Similar to the `compare` command, additional characters are calculated in a first step (`Ŋ ŋ Ɓ Ɔ Ɗ Ɛ Ƙ ƙ Ɲ Ƴ ƴ Ǹ ǹ ɓ ɔ ɗ ɛ ɲ Ḿ ḿ Ṅ ṅ Ṣ ṣ Ẹ ẹ Ị ị Ọ ọ Ụ ụ` for **GF_Latin_PriAfrican** vs **GF_Latin_Core**), and then it is calculated how many of _those_ characters a font supports, which is a significantly more accurate calculation.

Since `get_glyphsets_fulfilled()` is hosted here inside `glyphsets`, no changes to external implementations are required as the API didn't change, only the calculation of the percentage. Fontbakery still uses 80% as the threshold, but now based on a more accurate calculation.

0.6.19

Changes since last release

- Removed unnecessary glyphsLib import that caused trouble on fontbakery.com

0.6.18

Changes since last release

- Added back a few unencoded glyphs to **Latin_Plus** and **Latin_Vietnamese** that went missing in the recent data transition (Issue 166)
- Added `language_code` definition for **Latin_Vietnamese** to allow shaping tests
- Added `glyphsets compare` CLI command

0.6.17

Changes since last release

Reinstated deleted GFTestData for compatibility with diffenator2

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.