fabiocaccamo/python-fontbro
:billed_cap: friendly font operations on top of fontTools.
30 Releases
Latest: 2mo ago
0.27.0Latest
📋 Changes
- Add `save_as_ttf` method for saving fonts without web compression (woff/woff2 flavor).
- Add possibility to get variable axes sorted following the Google Fonts naming convention.
- Update `get_filename` to follow Google Fonts naming convention for variable fonts.
- Remove `STAT` table in `to_static`.
- Fix `clone` not preserving in-memory state.
- Suppress `fontTools` log output during sanitize tests.
- Bump requirements and `pre-commit` hooks.
0.26.1
📋 Changes
- Fix Windows compatibility by removing `curses` dependency. (by [@seproDev](https://github.com/seproDev))
0.26.0
📋 Changes
- Add `Python 3.14` support.
- Improve `Windows` compatibility.
- Update `features` data. (by [@seproDev](https://github.com/seproDev) in #239)
- Update `axis` data. (by [@seproDev](https://github.com/seproDev) in #235)
- Update `unicode-blocks.json` and `unicode-scripts.json` data.
- Bump requirements and `pre-commit` hooks.
0.25.0
📋 Changes
- Add `Python 3.13` support.
- Drop `Python 3.8` and `Python 3.9` support.
- Reset file pointer when saving to fileobject.
- Fix typing issues.
- Update `unicode-blocks.json` and `unicode-scripts.json` data.
- Bump requirements and `pre-commit` hooks.
0.24.0
📋 Changes
- Add `get_svg` method.
- Add `is_color` method.
- Improve `is_monospace` method accuracy by adding `threshold` option.
- Bump requirements.
0.23.1
📋 Changes
- Fix `get_format` with `.otf` fonts with `CFF2` table.
- Bump requirements and `pre-commit` hooks
0.23.0
📋 Changes
- Add `get_family_classification` and `set_family_classification` methods.
- Improve `slugify` utility function.
- Bump requirements and `pre-commit` hooks
0.22.0
📋 Changes
- Add `is_monospace` method.
- Add `mypy` to `pre-commit`.
- Fix `pyproject` `Ruff` conf warnings.
- Bump requirements and `pre-commit` hooks
0.21.0
📋 Changes
- Add type hints.
- Add vertical metrics keys available as class properties.
- Improve code quality.
- Bump requirements and `pre-commit` hooks
0.20.0
📋 Changes
- Add more vertical metrics: `units_per_em`, `y_max`, `y_min`, `ascent`, `descent`, `line_gap`, `typo_ascender`, `typo_descender`, `typo_line_gap`, `cap_height`, `x_height`, `win_ascent`, `win_descent`.
0.19.0
📋 Changes
- Add `get_vertical_metrics` and `set_vertical_metrics` methods. (#150)
0.18.0
📋 Changes
- Add `sanitize` method.
- Enforce keyword arguments usage.
- Use custom exceptions.
0.17.2
📋 Changes
- Fix possible `TypeError`: '<' not supported between instances of 'NoneType' and 'int'.
0.17.1
📋 Changes
- Add `get_variable_instance_by_style_name` method.
- Increase tests coverage.
0.17.0
📋 Changes
- Add `Python 3.12` support.
- Add `get_family_name` / `set_family_name` methods.
- Add `get_filename` method.
- Add `get_style_name` / `set_style_name` methods.
- Add `save_variable_instances` method. #116
- Update `rename` method: rename `style_flags` argument to `update_style_flags`.
- Update `save` method: output font filename is generated using `get_filename` method when target path is a directory.
- Update `to_static` method: add support to `update_names` (default True) and `update_style_flags` (default True) arguments.
- + 5 more
0.16.0
📋 Changes
- Add `Font.from_collection` class method. #49
- Allow initialisation from `fontbro.Font` / `fontTools.ttLib.TTFont` objects.
- Fix error when calling `clone` method on a `Font` object created using a fileobject. #118
- Bump requirements.
0.15.0
📋 Changes
- Allow instantiation with file objects. (by [@fcurella](https://github.com/fcurella) in #103)
- Add `save_to_file_object` method. (by [@fcurella](https://github.com/fcurella) in #103)
- Bump requirements (`fonttools`, `coverage`, `pre-commit` and `tox`).
0.14.15
📋 Changes
- Bump requirements (`fonttools`, `pillow` and `tox`).
0.14.14
📋 Changes
- Allow `filepath` of type `pathib.Path` in constructor. #83 (#84)
- Add possibility to create static instance by using `style_name` instead of `coordinates`. #82 (#85)
- Strip whitespace when `slugify` string.
- Move `get_euclidean_distance` function to `fontbro.math` module.
- Bump `fonttools[pathops,unicode,woff]` from `4.39.3` to `4.39.4`. (#79)
- Update `pre-commit` hooks. (#80)
0.14.13
📋 Changes
- Fix `Font Bakery` error: "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts".
0.14.12
📋 Changes
- Fix `Font Bakery` error: "font name does not begin with the font family name".
0.14.11
📋 Changes
- Fix renaming legacy name records 1 and 2.
0.14.10
📋 Changes
- Revert "Fix `family_name` name record renaming."
0.14.9
📋 Changes
- Calculate Euclidean distance between dicts.
0.14.8
📋 Changes
- Fix `family_name` renaming.
- Fix `tox` test command.
- Replace `flake8` with `Ruff`.
- Switch from `setup.cfg` to `pyproject.toml`.
- Bump `fonttools[pathops,unicode,woff]` from `4.39.2` to `4.39.3`. (#68)
- Bump `pillow` from `9.4.0` to `9.5.0`. (#71)
0.14.7
📋 Changes
- Improve `full_name` renaming using name records IDs 16 and 17. #62 (#66)
0.14.6
📋 Changes
- Accept axis coordinates `dict` with `default` in `to_sliced_variable` method. #63
- Update unique identifier name record when renaming font. #62
- Upgrade syntax for `Python >= 3.8`.
- Set max line length to `88`.
- Add `flake8-bugbear` to `pre-commit`.
- Run `flake8` also on tests files.
- Bump requirements.
0.14.5
📋 Changes
- Fix `get_image()` crash on Windows. (by [@seproDev](https://github.com/seproDev) in #53)
- Correctly center text in `get_image()`. (by [@seproDev](https://github.com/seproDev) in #53)
- Fix `AttributeError` in `get_features()`. #50 (by [@seproDev](https://github.com/seproDev) in #53)
- Set `unicode_name` default to `None`. #51 (by [@seproDev](https://github.com/seproDev) in #53)
0.14.4
📋 Changes
- Automatically update unicode data once a month.
- Update `unicode-blocks.json` and `unicode-scripts.json` data.
- Fix unformatted string in `get_characters` method.
0.14.3
📋 Changes
- Bump `python-fsutil` requirement.
