pyface.util.font_parser module¶
- exception pyface.util.font_parser.FontParseError[source]¶
Bases:
ValueError
An exception raised when font parsing fails.
- pyface.util.font_parser.simple_parser(description)[source]¶
An extremely simple font description parser.
The parser is simple, and works by splitting the description on whitespace and examining each resulting token for understood terms:
- Size
The first numeric term is treated as the font size.
- Weight
The following weight terms are accepted: ‘thin’, ‘extra-light’, ‘light’, ‘regular’, ‘medium’, ‘demi-bold’, ‘bold’, ‘extra-bold’, ‘heavy’, ‘extra-heavy’.
- Stretch
The following stretch terms are accepted: ‘ultra-condensed’, ‘extra-condensed’, ‘condensed’, ‘semi-condensed’, ‘semi-expanded’, ‘expanded’, ‘extra-expanded’, ‘ultra-expanded’.
- Style
The following style terms are accepted: ‘italic’, ‘oblique’.
- Variant
The following variant terms are accepted: ‘small-caps’.
- Decorations
The following decoration terms are accepted: ‘underline’, ‘strikethrough’, ‘overline’.
- Generic Families
The following generic family terms are accepted: ‘default’, ‘fantasy’, ‘decorative’, ‘serif’, ‘roman’, ‘cursive’, ‘script’, ‘sans-serif’, ‘swiss’, ‘monospace’, ‘modern’, ‘typewriter’, ‘teletype’.
In addtion, the parser ignores the terms ‘pt’, ‘point’, ‘px’, and ‘family’. Any remaining terms are combined into the typeface name. There is no expected order to the terms.
This parser is roughly compatible with the various ad-hoc parsers in TraitsUI and Kiva, allowing for the slight differences between them and adding support for additional options supported by Pyface fonts, such as stretch and variants.
- Parameters
description (str) – The font description to be parsed.
- Returns
properties – Font properties suitable for use in creating a Pyface Font.
- Return type
Notes
This is not a particularly good parser, as it will fail to properly parse something like “10 pt times new roman” or “14 pt computer modern” since they have generic font names as part of the font face name.