All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.24.0 - 2024-08-05
- Add
get_svg
method. - Add
is_color
method. - Improve
is_monospace
method accuracy by addingthreshold
option. - Bump requirements.
0.23.1 - 2024-07-08
- Fix
get_format
with.otf
fonts withCFF2
table. - Bump requirements and
pre-commit
hooks
0.23.0 - 2024-06-23
- Add
get_family_classification
andset_family_classification
methods. - Improve
slugify
utility function. - Bump requirements and
pre-commit
hooks
0.22.0 - 2024-05-14
- Add
is_monospace
method. - Add
mypy
topre-commit
. - Fix
pyproject
Ruff
conf warnings. - Bump requirements and
pre-commit
hooks
0.21.0 - 2024-03-07
- Add type hints.
- Add vertical metrics keys available as class properties.
- Improve code quality.
- Bump requirements and
pre-commit
hooks
0.20.0 - 2024-01-29
- 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 - 2024-01-28
- Add
get_vertical_metrics
andset_vertical_metrics
methods. (#150)
0.18.0 - 2024-01-06
- Add
sanitize
method. - Enforce keyword arguments usage.
- Use custom exceptions.
0.17.2 - 2023-12-18
- Fix possible
TypeError
: '<' not supported between instances of 'NoneType' and 'int'.
0.17.1 - 2023-12-18
- Add
get_variable_instance_by_style_name
method. - Increase tests coverage.
0.17.0 - 2023-12-13
- 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: renamestyle_flags
argument toupdate_style_flags
. - Update
save
method: output font filename is generated usingget_filename
method when target path is a directory. - Update
to_static
method: add support toupdate_names
(default True) andupdate_style_flags
(default True) arguments. - Update
to_static
method: setitalic
style flag based onital
/slnt
coordinates values. - Fix
get_variable_instance_closest_to_coordinates
: if coordinates do not specify some axes, axes default value is used for lookup. - Fix
to_static
method: preventinplace
option override. - Use
Ruff
formatter instead ofBlack
andisort
. - Bump requirements (
fonttools
,pillow
andpython-fsutil
).
0.16.0 - 2023-09-19
- Add
Font.from_collection
class method. #49 - Allow initialisation from
fontbro.Font
/fontTools.ttLib.TTFont
objects. - Fix error when calling
clone
method on aFont
object created using a fileobject. #118 - Bump requirements.
0.15.0 - 2023-08-28
- Allow instantiation with file objects. (by @fcurella in #103)
- Add
save_to_file_object
method. (by @fcurella in #103) - Bump requirements (
fonttools
,coverage
,pre-commit
andtox
).
0.14.15 - 2023-07-31
- Bump requirements (
fonttools
,pillow
andtox
).
0.14.14 - 2023-06-05
- Allow
filepath
of typepathib.Path
in constructor. #83 (#84) - Add possibility to create static instance by using
style_name
instead ofcoordinates
. #82 (#85) - Strip whitespace when
slugify
string. - Move
get_euclidean_distance
function tofontbro.math
module. - Bump
fonttools[pathops,unicode,woff]
from4.39.3
to4.39.4
. (#79) - Update
pre-commit
hooks. (#80)
0.14.13 - 2023-05-02
- Fix
Font Bakery
error: "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts".
0.14.12 - 2023-05-02
- Fix
Font Bakery
error: "font name does not begin with the font family name".
0.14.11 - 2023-05-02
- Fix renaming legacy name records 1 and 2.
0.14.10 - 2023-04-24
- Revert "Fix
family_name
name record renaming."
0.14.9 - 2023-04-18
- Calculate Euclidean distance between dicts.
0.14.8 - 2023-04-17
- Fix
family_name
renaming. - Fix
tox
test command. - Replace
flake8
withRuff
. - Switch from
setup.cfg
topyproject.toml
. - Bump
fonttools[pathops,unicode,woff]
from4.39.2
to4.39.3
. (#68) - Bump
pillow
from9.4.0
to9.5.0
. (#71)
0.14.7 - 2023-03-24
- Improve
full_name
renaming using name records IDs 16 and 17. #62 (#66)
0.14.6 - 2023-03-21
- Accept axis coordinates
dict
withdefault
into_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
topre-commit
. - Run
flake8
also on tests files. - Bump requirements.
0.14.5 - 2023-01-29
- Fix
get_image()
crash on Windows. (by @seproDev in #53) - Correctly center text in
get_image()
. (by @seproDev in #53) - Fix
AttributeError
inget_features()
. #50 (by @seproDev in #53) - Set
unicode_name
default toNone
. #51 (by @seproDev in #53)
0.14.4 - 2023-01-12
- Automatically update unicode data once a month.
- Update
unicode-blocks.json
andunicode-scripts.json
data. - Fix unformatted string in
get_characters
method.
0.14.3 - 2023-01-12
- Bump
python-fsutil
requirement.
0.14.2 - 2023-01-11
- Add
ignore_blank
option toget_characters
andget_characters_count
methods. - Fix
Pillow
textsize
method deprecation warning. - Bump requirements.
0.14.1 - 2023-01-03
- Update unicode data.
0.14.0 - 2023-01-03
- Drop
Python 3.7
support. - Add
setup.cfg
(setuptools
declarative syntax) generated usingsetuptools-py2cfg
. - Add
pyupgrade
topre-commit
config. - Bump requirements and actions.
- Pin test requirements.
0.13.0 - 2022-12-14
- Add
Python 3.11
support. - Replace
str.format
withf-strings
. - Remove encoding pragma.
- Remove
python setup.py test
usage. - Bump requirements and actions.
0.12.0 - 2022-10-21
- Add
pre-commit
. - Add
get_glyphs
andget_glyphs_count
methods. - Fix PostScript name allowed characters (keep only printable ASCII subset).
0.11.2 - 2022-09-19
- Add
lazy
option support to constructor. - Fix subfamily name (name ID 2) renaming (lower case -> title case).
- Fix Pillow deprecation warning.
- Update requirements.
0.11.1 - 2022-07-05
- Updated
rename
for generating thefull_name
combiningfamily_name
andsubfamily_name
.
0.11.0 - 2022-06-30
- Added
set_style_flags_by_subfamily_name
method. - Added
style_flags=True
option torename
method. - Updated
get_features_tags
method for checking also theGPOS
table.
0.10.4 - 2022-06-29
- Improved renaming according to RIBBI.
0.10.3 - 2022-06-29
- Fixed
rename
subfamily name when there areRegular
andItalic
in the same name.
0.10.2 - 2022-06-28
- Fixed style flags on save according to subfamily name.
0.10.1 - 2022-06-28
- Improved renaming according to RIBBI.
- Fixed
rename
subfamily name error.
0.10.0 - 2022-06-28
- Improved renaming according to RIBBI.
- Updated style flags on save according to subfamily name.
0.9.1 - 2022-06-07
- Updated
subset
default options.
0.9.0 - 2022-06-07
- Added possibility to pass subsetter options via kwargs in
subset
method. - Updated docstrings.
0.8.0 - 2022-05-08
- Added
clone
method. - Added
get_fingerprint_match
method. - Added
get_version
method. - Removed
match
method.
0.7.0 - 2022-04-29
- Added
get_fingerprint
method. - Added
get_image
method. - Added
get_italic_angle
method. - Added
match
method. - Refactored
get_weight
andget_width
methods. - Updated unicode blocks and scripts data.
- Updated requirements.
0.6.0 - 2022-02-21
- Added
close
method. - Added possibility to use
Font
class as context manager.
0.5.0 - 2022-01-26
- Improved
subset
unicodes
arg to support also list ofint
codepoints. - Moved features and unicode data to json files.
- Moved
parse_unicodes
to the subset module and made it a public re-usable function. - Updated
python-fsutil
requirement version to0.6.0
.
0.4.0 - 2022-01-12
- Added more informations to characters returned by
get_characters
method. - Added
get_unicode_block_by_name
andget_unicode_script_by_name
methods. - Improved
subset
unicodes parsing. - Renamed
uni
module tounicodedata
.
0.3.0 - 2022-01-11
- Added
get_unicode_blocks
method. - Added
get_unicode_scripts
method. - Changed
get_name
andset_name
to read/write both Mac and Windows IDs. - Fixed hardcoded class name in
__str__
method. - Fixed
setup.py
warning and updated totox
configuration. - Removed
get_scripts
method. - Removed
get_scripts_by_characters
class method. - Replaced single quotes
'
with double quotes"
(Black formatting).
0.2.3 - 2021-12-09
- Added
get_scripts_by_characters
class method. - Fixed
TypeError
raised on save after renaming. - Fixed
get_name
andset_name
langID parameter. - Improved
subset
unicodes string parsing. - Replaced Travis CI with Github Workflow.
- Formatted code with Black.
0.2.2 - 2021-11-25
- Fixed
rename
method to raise aValueError
when the computed PostScript name exceeds the allowed max-length (63). - Fixed
to_sliced_variable
when axes coordinates are passed as dict doesn't contain 'min' or 'max' keys. - Changed
get_variable_axes
andget_variable_instances
returned dicts keys from camelCase to snake_keys. - Changed
get_variable_instances
method return value. - Reduced return calls in
get_format
method. - Improved tests.
0.2.1 - 2021-11-19
- Fixed width axis tag name.
0.2.0 - 2021-11-19
- Added
get_features_tags
method. - Added
get_style_flag
andset_style_flag
methods. - Added support to
'condensed'
,'extended'
and'shadow'
style flags. - Added
rename
method.
0.1.0 - 2021-11-18
- Released
python-fontbro
.