From 47572fb8b0c3754e74256fb5285f3a50700808ea Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:32:29 -0500 Subject: [PATCH 01/22] bump v3.0.0 --- lib/fontline/settings.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fontline/settings.py b/lib/fontline/settings.py index a8aa1e9..d1c91a4 100644 --- a/lib/fontline/settings.py +++ b/lib/fontline/settings.py @@ -9,7 +9,7 @@ # ------------------------------------------------------------------------------ # Version Number # ------------------------------------------------------------------------------ -major_version = "2" +major_version = "3" minor_version = "0" patch_version = "0" @@ -19,7 +19,7 @@ HELP = """==================================================== font-line -Copyright 2018 Christopher Simpkins +Copyright 2019 Christopher Simpkins MIT License Source: https://github.com/source-foundry/font-line ==================================================== @@ -48,7 +48,7 @@ Reports are sent to the standard output stream with the `report` sub-command. Original font files are not modified when you use the `percent` sub-command. Instead a new file write occurs on a path -that is displayed in the standard output stream following the modification. No modifications are made to the original +that is displayed in the standard output stream when completed. No modifications are made to the original glyph set or hints associated with the original font build. For more information about the OpenType table modifications that occur, please see the project documentation at: From 484a83e0106d6e9900f0454d6e338cf07224e089 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:33:50 -0500 Subject: [PATCH 02/22] report: add baseline to baseline distance calcs across typo, hhea, win metrics & OS/2.fsSelection bit 7 flag setting also adds report formatting updates --- lib/fontline/commands.py | 81 +++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 5e6451b..3dc1b8e 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -34,13 +34,25 @@ def get_font_report(fontpath): ymin = tt["head"].yMin units_per_em = tt["head"].unitsPerEm + # Bit flag checks + fsselection_bit6_mask = 1 << 6 + fsselection_bit6_set = (tt['OS/2'].fsSelection & fsselection_bit6_mask ) != 0 + # Calculated values os2_typo_total_height = os2_typo_ascender + -(os2_typo_descender) os2_win_total_height = os2_win_ascent + os2_win_descent hhea_total_height = hhea_ascent + -(hhea_descent) - typo_to_upm = 1.0 * (os2_typo_linegap + os2_typo_total_height) / units_per_em - winascdesc_to_upm = 1.0 * os2_win_total_height / units_per_em - hheaascdesc_to_upm = 1.0 * hhea_total_height / units_per_em + + hhea_btb_distance = hhea_total_height + hhea_linegap + typo_btb_distance = os2_typo_total_height + os2_typo_linegap + win_external_leading = hhea_linegap - ((os2_win_ascent + os2_win_descent) - (hhea_ascent - hhea_descent)) + if win_external_leading < 0: + win_external_leading = 0 + win_btb_distance = os2_win_ascent + os2_win_descent + win_external_leading + + typo_to_upm = 1.0 * typo_btb_distance / units_per_em + winascdesc_to_upm = 1.0 * win_btb_distance / units_per_em + hheaascdesc_to_upm = 1.0 * hhea_btb_distance / units_per_em # The file path header report = [" "] @@ -56,48 +68,57 @@ def get_font_report(fontpath): report.append("") # The vertical metrics strings report.append("--- Metrics ---") - report.append("[head] Units per Em: \t{}".format(units_per_em)) - report.append("[head] yMax: \t\t{}".format(ymax)) - report.append("[head] yMin: \t\t{}".format(ymin)) - report.append("[OS/2] CapHeight: \t{}".format(os2_cap_height)) - report.append("[OS/2] xHeight: \t{}".format(os2_x_height)) - report.append("[OS/2] TypoAscender: \t{}".format(os2_typo_ascender)) - report.append("[OS/2] TypoDescender: \t{}".format(os2_typo_descender)) - report.append("[OS/2] WinAscent: \t{}".format(os2_win_ascent)) - report.append("[OS/2] WinDescent: \t{}".format(os2_win_descent)) - report.append("[hhea] Ascent: \t\t{}".format(hhea_ascent)) - report.append("[hhea] Descent: \t{}".format(hhea_descent)) + report.append("[head] Units per Em: {}".format(units_per_em)) + report.append("[head] yMax: {}".format(ymax)) + report.append("[head] yMin: {}".format(ymin)) + report.append("[OS/2] CapHeight: {}".format(os2_cap_height)) + report.append("[OS/2] xHeight: {}".format(os2_x_height)) + report.append("[OS/2] TypoAscender: {}".format(os2_typo_ascender)) + report.append("[OS/2] TypoDescender: {}".format(os2_typo_descender)) + report.append("[OS/2] WinAscent: {}".format(os2_win_ascent)) + report.append("[OS/2] WinDescent: {}".format(os2_win_descent)) + report.append("[hhea] Ascent: {}".format(hhea_ascent)) + report.append("[hhea] Descent: {}".format(hhea_descent)) report.append("") - report.append("[hhea] LineGap: \t{}".format(hhea_linegap)) - report.append("[OS/2] TypoLineGap: \t{}".format(os2_typo_linegap)) + report.append("[hhea] LineGap: {}".format(hhea_linegap)) + report.append("[OS/2] TypoLineGap: {}".format(os2_typo_linegap)) report.append("") - report.append("--- Height Calculations by Table Values ---") - report.append( - "[OS/2] TypoAscender to TypoDescender: \t{}".format(os2_typo_total_height) + + report.append("--- Ascent to Descent Calculations ---") + report.append("[hhea] Ascent to Descent: {}".format(hhea_total_height)) + report.append("[OS/2] TypoAscender to TypoDescender: {}".format(os2_typo_total_height) ) - report.append("[OS/2] WinAscent to WinDescent: \t{}".format(os2_win_total_height)) - report.append("[hhea] Ascent to Descent: \t\t{}".format(hhea_total_height)) + report.append("[OS/2] WinAscent to WinDescent: {}".format(os2_win_total_height)) report.append("") + report.append("--- Delta Values ---") report.append( - "WinAscent to TypoAscender: \t{}".format(os2_win_ascent - os2_typo_ascender) + "[hhea] Ascent to [OS/2] TypoAscender: {}".format(hhea_ascent - os2_typo_ascender) ) report.append( - "Ascent to TypoAscender: \t{}".format(hhea_ascent - os2_typo_ascender) + "[hhea] Descent : [OS/2] TypoDescender: {}".format(os2_typo_descender - hhea_descent) ) report.append( - "WinDescent to TypoDescender: \t{}".format( - os2_win_descent - -(os2_typo_descender) - ) + "[OS/2] WinAscent to [OS/2] TypoAscender: {}".format(os2_win_ascent - os2_typo_ascender) ) report.append( - "Descent to TypoDescender: \t{}".format(os2_typo_descender - hhea_descent) + "[OS/2] WinDescent to [OS/2] TypoDescender: {}".format( + os2_win_descent - -(os2_typo_descender) + ) ) report.append("") + report.append("--- Baseline to Baseline Distances ---") + report.append("hhea metrics: {}".format(hhea_btb_distance)) + report.append("typo metrics: {}".format(typo_btb_distance)) + report.append("win metrics: {}".format(win_btb_distance)) + report.append("") + report.append("[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit6_set)) + report.append("") report.append("--- Ratios ---") - report.append("(Typo Asc + Desc + Linegap) / UPM: \t{0:.3g}".format(typo_to_upm)) - report.append("(winAsc + winDesc) / UPM: \t\t{0:.3g}".format(winascdesc_to_upm)) - report.append("(hhea Asc + Desc) / UPM: \t\t{0:.3g}".format(hheaascdesc_to_upm)) + report.append("hhea metrics / UPM: {0:.3g}".format(hheaascdesc_to_upm)) + report.append("typo metrics / UPM: {0:.3g}".format(typo_to_upm)) + report.append("win metrics / UPM: {0:.3g}".format(winascdesc_to_upm)) + return "\n".join(report) From 50dea2646d25a0a2db582da1115cef8a2b5f3600 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:38:08 -0500 Subject: [PATCH 03/22] [commands] formatting updates / blacken source --- lib/fontline/commands.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 3dc1b8e..0eaa320 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -36,7 +36,7 @@ def get_font_report(fontpath): # Bit flag checks fsselection_bit6_mask = 1 << 6 - fsselection_bit6_set = (tt['OS/2'].fsSelection & fsselection_bit6_mask ) != 0 + fsselection_bit6_set = (tt["OS/2"].fsSelection & fsselection_bit6_mask) != 0 # Calculated values os2_typo_total_height = os2_typo_ascender + -(os2_typo_descender) @@ -45,7 +45,9 @@ def get_font_report(fontpath): hhea_btb_distance = hhea_total_height + hhea_linegap typo_btb_distance = os2_typo_total_height + os2_typo_linegap - win_external_leading = hhea_linegap - ((os2_win_ascent + os2_win_descent) - (hhea_ascent - hhea_descent)) + win_external_leading = hhea_linegap - ( + (os2_win_ascent + os2_win_descent) - (hhea_ascent - hhea_descent) + ) if win_external_leading < 0: win_external_leading = 0 win_btb_distance = os2_win_ascent + os2_win_descent + win_external_leading @@ -86,20 +88,29 @@ def get_font_report(fontpath): report.append("--- Ascent to Descent Calculations ---") report.append("[hhea] Ascent to Descent: {}".format(hhea_total_height)) - report.append("[OS/2] TypoAscender to TypoDescender: {}".format(os2_typo_total_height) + report.append( + "[OS/2] TypoAscender to TypoDescender: {}".format(os2_typo_total_height) + ) + report.append( + "[OS/2] WinAscent to WinDescent: {}".format(os2_win_total_height) ) - report.append("[OS/2] WinAscent to WinDescent: {}".format(os2_win_total_height)) report.append("") report.append("--- Delta Values ---") report.append( - "[hhea] Ascent to [OS/2] TypoAscender: {}".format(hhea_ascent - os2_typo_ascender) + "[hhea] Ascent to [OS/2] TypoAscender: {}".format( + hhea_ascent - os2_typo_ascender + ) ) report.append( - "[hhea] Descent : [OS/2] TypoDescender: {}".format(os2_typo_descender - hhea_descent) + "[hhea] Descent : [OS/2] TypoDescender: {}".format( + os2_typo_descender - hhea_descent + ) ) report.append( - "[OS/2] WinAscent to [OS/2] TypoAscender: {}".format(os2_win_ascent - os2_typo_ascender) + "[OS/2] WinAscent to [OS/2] TypoAscender: {}".format( + os2_win_ascent - os2_typo_ascender + ) ) report.append( "[OS/2] WinDescent to [OS/2] TypoDescender: {}".format( @@ -112,14 +123,15 @@ def get_font_report(fontpath): report.append("typo metrics: {}".format(typo_btb_distance)) report.append("win metrics: {}".format(win_btb_distance)) report.append("") - report.append("[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit6_set)) + report.append( + "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit6_set) + ) report.append("") report.append("--- Ratios ---") report.append("hhea metrics / UPM: {0:.3g}".format(hheaascdesc_to_upm)) report.append("typo metrics / UPM: {0:.3g}".format(typo_to_upm)) report.append("win metrics / UPM: {0:.3g}".format(winascdesc_to_upm)) - return "\n".join(report) From 2b9cfe814ebfa1c2168a340e7c28fa10363597d4 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:40:39 -0500 Subject: [PATCH 04/22] [.travis.yml] eliminate Py35 tests on Travis --- .travis.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3639cf0..466e20c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,10 +9,6 @@ matrix: env: TOX_ENV=lint install: pip install flake8 script: flake8 --ignore=E501,W503 lib/fontline/*.py - - python: 3.5 - env: TOX_ENV=py35 - install: pip install tox - script: tox -e $TOX_ENV - python: 3.6 env: TOX_ENV=py36 install: pip install tox From c7539e1a94767ed759c7a9dd9e3798d4ed82b778 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:57:28 -0500 Subject: [PATCH 05/22] [commands] fix typo --- lib/fontline/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 0eaa320..abb36bc 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -103,7 +103,7 @@ def get_font_report(fontpath): ) ) report.append( - "[hhea] Descent : [OS/2] TypoDescender: {}".format( + "[hhea] Descent to [OS/2] TypoDescender: {}".format( os2_typo_descender - hhea_descent ) ) From b9125f573552d8a4a5dac92f3fcba061ad3b2a06 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 16:57:36 -0500 Subject: [PATCH 06/22] fix tests --- tests/test_report_cmd.py | 46 ++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/test_report_cmd.py b/tests/test_report_cmd.py index f09f0db..badb17c 100644 --- a/tests/test_report_cmd.py +++ b/tests/test_report_cmd.py @@ -72,7 +72,7 @@ def test_report_cmd_reportstring_upm(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[head] Units per Em: \t2048" in out + assert "[head] Units per Em: 2048" in out def test_report_cmd_reportstring_ymax(capsys): @@ -81,7 +81,7 @@ def test_report_cmd_reportstring_ymax(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[head] yMax: \t\t2001" in out + assert "[head] yMax: 2001" in out def test_report_cmd_reportstring_ymin(capsys): @@ -90,7 +90,7 @@ def test_report_cmd_reportstring_ymin(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[head] yMin: \t\t-573" in out + assert "[head] yMin: -573" in out def test_report_cmd_reportstring_capheight(capsys): @@ -99,7 +99,7 @@ def test_report_cmd_reportstring_capheight(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] CapHeight: \t1493" in out + assert "[OS/2] CapHeight: 1493" in out def test_report_cmd_reportstring_xheight(capsys): @@ -108,7 +108,7 @@ def test_report_cmd_reportstring_xheight(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] xHeight: \t1120" in out + assert "[OS/2] xHeight: 1120" in out def test_report_cmd_reportstring_typoascender(capsys): @@ -117,7 +117,7 @@ def test_report_cmd_reportstring_typoascender(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] TypoAscender: \t1556" in out + assert "[OS/2] TypoAscender: 1556" in out def test_report_cmd_reportstring_typodescender(capsys): @@ -126,7 +126,7 @@ def test_report_cmd_reportstring_typodescender(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] TypoDescender: \t-492" in out + assert "[OS/2] TypoDescender: -492" in out def test_report_cmd_reportstring_winascent(capsys): @@ -135,7 +135,7 @@ def test_report_cmd_reportstring_winascent(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] WinAscent: \t1901" in out + assert "[OS/2] WinAscent: 1901" in out def test_report_cmd_reportstring_windescent(capsys): @@ -144,7 +144,7 @@ def test_report_cmd_reportstring_windescent(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] WinDescent: \t483" in out + assert "[OS/2] WinDescent: 483" in out def test_report_cmd_reportstring_ascent(capsys): @@ -153,7 +153,7 @@ def test_report_cmd_reportstring_ascent(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[hhea] Ascent: \t\t1901" in out + assert "[hhea] Ascent: 1901" in out def test_report_cmd_reportstring_descent(capsys): @@ -162,7 +162,7 @@ def test_report_cmd_reportstring_descent(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[hhea] Descent: \t-483" in out + assert "[hhea] Descent: -483" in out def test_report_cmd_reportstring_linegap(capsys): @@ -171,7 +171,7 @@ def test_report_cmd_reportstring_linegap(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[hhea] LineGap: \t0" in out + assert "[hhea] LineGap: 0" in out def test_report_cmd_reportstring_typolinegap(capsys): @@ -180,7 +180,7 @@ def test_report_cmd_reportstring_typolinegap(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] TypoLineGap: \t410" in out + assert "[OS/2] TypoLineGap: 410" in out def test_report_cmd_reportstring_typoA_typodesc(capsys): @@ -189,7 +189,7 @@ def test_report_cmd_reportstring_typoA_typodesc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] TypoAscender to TypoDescender: \t2048" in out + assert "[OS/2] TypoAscender to TypoDescender: 2048" in out def test_report_cmd_reportstring_winA_windesc(capsys): @@ -198,7 +198,7 @@ def test_report_cmd_reportstring_winA_windesc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[OS/2] WinAscent to WinDescent: \t2384" in out + assert "[OS/2] WinAscent to WinDescent: 2384" in out def test_report_cmd_reportstring_ascent_descent(capsys): @@ -207,7 +207,7 @@ def test_report_cmd_reportstring_ascent_descent(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[hhea] Ascent to Descent: \t\t2384" in out + assert "[hhea] Ascent to Descent: 2384" in out def test_report_cmd_reportstring_winA_typoasc(capsys): @@ -216,7 +216,7 @@ def test_report_cmd_reportstring_winA_typoasc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "WinAscent to TypoAscender: \t345" in out + assert "[hhea] Ascent to [OS/2] TypoAscender: 345" in out def test_report_cmd_reportstring_ascent_typoasc(capsys): @@ -225,7 +225,7 @@ def test_report_cmd_reportstring_ascent_typoasc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "Ascent to TypoAscender: \t345" in out + assert "[hhea] Ascent to [OS/2] TypoAscender: 345" in out def test_report_cmd_reportstring_winD_typodesc(capsys): @@ -234,7 +234,7 @@ def test_report_cmd_reportstring_winD_typodesc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "WinDescent to TypoDescender: \t-9" in out + assert "[OS/2] WinDescent to [OS/2] TypoDescender: -9" in out def test_report_cmd_reportstring_descent_typodesc(capsys): @@ -243,7 +243,7 @@ def test_report_cmd_reportstring_descent_typodesc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "Descent to TypoDescender: \t-9" in out + assert "[hhea] Descent to [OS/2] TypoDescender: -9" in out def test_report_cmd_reportstring_typo_to_upm(capsys): @@ -252,7 +252,7 @@ def test_report_cmd_reportstring_typo_to_upm(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "(Typo Asc + Desc + Linegap) / UPM: \t1.2" in out + assert "typo metrics / UPM: 1.2" in out def test_report_cmd_reportstring_win_to_upm(capsys): @@ -261,7 +261,7 @@ def test_report_cmd_reportstring_win_to_upm(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "(winAsc + winDesc) / UPM: \t\t1.16" in out + assert "win metrics / UPM: 1.16" in out def test_report_cmd_reportstring_hhea_to_upm(capsys): @@ -270,4 +270,4 @@ def test_report_cmd_reportstring_hhea_to_upm(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "(hhea Asc + Desc) / UPM: \t\t1.16" in out + assert "hhea metrics / UPM: 1.16" in out From 20664a32760dfb3451ec9acf0261ba3448f60c63 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 17:20:14 -0500 Subject: [PATCH 07/22] [.travis.yml] add auto coverage push --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index 466e20c..0c0c287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,17 @@ matrix: install: pip install tox dist: xenial script: tox -e $TOX_ENV + - python: 3.7 + dist: xenial + env: TOX_ENV=coverage + install: + - pip install --upgrade coverage + - pip install . + script: + - coverage run --source fontline -m py.test + - coverage report -m + after_success: + - bash <(curl -s https://codecov.io/bash) notifications: email: false \ No newline at end of file From 00c2f41b57f4a17391aacd984687b7c0012a15f5 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 18:41:47 -0500 Subject: [PATCH 08/22] [codecov.yml] adjust codecov config --- codecov.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/codecov.yml b/codecov.yml index 8a333e5..926485d 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,2 +1,13 @@ codecov: max_report_age: off + +coverage: + status: + project: + default: + # basic + target: auto + threshold: 2% + base: auto + +comment: off \ No newline at end of file From b3730ff82995dc470bcf4a93a4c2d4b49636bdf7 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 18:58:29 -0500 Subject: [PATCH 09/22] add tests for OS/2.fsSelection bit 7 set reporting --- tests/test_report_cmd.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/test_report_cmd.py b/tests/test_report_cmd.py index badb17c..be4a9ae 100644 --- a/tests/test_report_cmd.py +++ b/tests/test_report_cmd.py @@ -271,3 +271,24 @@ def test_report_cmd_reportstring_hhea_to_upm(capsys): main() out, err = capsys.readouterr() assert "hhea metrics / UPM: 1.16" in out + + +def test_report_cmd_reportstring_fsselection_bit7_set_true(capsys): + from fontline.app import main + filepath = os.path.join('tests', 'testingfiles', 'Hack-Regular-fsSelection-bit7-set.ttf') + sys.argv = ['font-line', 'report', filepath] + main() + out, err = capsys.readouterr() + assert "[OS/2] fsSelection USE_TYPO_METRICS bit set: True" in out + + +def test_report_cmd_reportstring_fsselection_bit7_set_false(capsys): + from fontline.app import main + filepath = os.path.join('tests', 'testingfiles', 'Hack-Regular.ttf') + sys.argv = ['font-line', 'report', filepath] + main() + out, err = capsys.readouterr() + assert "[OS/2] fsSelection USE_TYPO_METRICS bit set: False" in out + + +# TODO: add tests for new baseline to baseline distance calculations in report From 70903f75d091bce5c080520910f2801fdb59a674 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 18:58:48 -0500 Subject: [PATCH 10/22] [commands] fix bit check --- lib/fontline/commands.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index abb36bc..417b5ef 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -35,8 +35,8 @@ def get_font_report(fontpath): units_per_em = tt["head"].unitsPerEm # Bit flag checks - fsselection_bit6_mask = 1 << 6 - fsselection_bit6_set = (tt["OS/2"].fsSelection & fsselection_bit6_mask) != 0 + fsselection_bit7_mask = 1 << 7 + fsselection_bit7_set = (tt["OS/2"].fsSelection & fsselection_bit7_mask) != 0 # Calculated values os2_typo_total_height = os2_typo_ascender + -(os2_typo_descender) @@ -124,7 +124,7 @@ def get_font_report(fontpath): report.append("win metrics: {}".format(win_btb_distance)) report.append("") report.append( - "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit6_set) + "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit7_set) ) report.append("") report.append("--- Ratios ---") From 2293167b2375cb97a567f87cde6c641188aa1c7f Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 18:59:01 -0500 Subject: [PATCH 11/22] add test font --- .../Hack-Regular-fsSelection-bit7-set.ttf | Bin 0 -> 399448 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/testingfiles/Hack-Regular-fsSelection-bit7-set.ttf diff --git a/tests/testingfiles/Hack-Regular-fsSelection-bit7-set.ttf b/tests/testingfiles/Hack-Regular-fsSelection-bit7-set.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b58716fe41905d34d458427627c2a8080b4a12a2 GIT binary patch literal 399448 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 CL-D)- literal 0 HcmV?d00001 From 5681125562a593fe122d5b20cfab4777956ccf9a Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 19:12:06 -0500 Subject: [PATCH 12/22] remove utf-8 encoding declaration header no longer needed in Py3 only sources --- lib/fontline/app.py | 2 -- lib/fontline/commands.py | 1 - lib/fontline/settings.py | 1 - lib/fontline/utilities.py | 1 - 4 files changed, 5 deletions(-) diff --git a/lib/fontline/app.py b/lib/fontline/app.py index f872545..6b8936d 100644 --- a/lib/fontline/app.py +++ b/lib/fontline/app.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """ The app.py module defines a main() function that includes the logic for the `font-line` command line executable. @@ -23,7 +22,6 @@ # TODO: support integer addition and subtraction to the metrics values through new sub-commands # TODO: JSON formatted metrics output -# TODO: add report line items for 'exceeds ymax/ymin values' across each of the three metrics def main(): diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 417b5ef..824347a 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- import sys import os.path diff --git a/lib/fontline/settings.py b/lib/fontline/settings.py index d1c91a4..56189fe 100644 --- a/lib/fontline/settings.py +++ b/lib/fontline/settings.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # ------------------------------------------------------------------------------ # Application Name diff --git a/lib/fontline/utilities.py b/lib/fontline/utilities.py index 5e12706..305b6a5 100644 --- a/lib/fontline/utilities.py +++ b/lib/fontline/utilities.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- import os import hashlib From 81720ad8513a38e063a4f5c3142771173e0b3c66 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 22:03:58 -0500 Subject: [PATCH 13/22] refactor all metrics values and calculations to new class --- lib/fontline/commands.py | 115 ++++++++++++--------------------------- lib/fontline/metrics.py | 61 +++++++++++++++++++++ tests/test_metrics.py | 72 ++++++++++++++++++++++++ 3 files changed, 168 insertions(+), 80 deletions(-) create mode 100644 lib/fontline/metrics.py create mode 100644 tests/test_metrics.py diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 824347a..3bd6bba 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -4,132 +4,87 @@ import os.path from fontTools import ttLib -from fontline.utilities import get_sha1 - from standardstreams import stderr +from fontline.metrics import MetricsObject + + def get_font_report(fontpath): tt = ttLib.TTFont(fontpath) + metrics = MetricsObject(tt, fontpath) - # Vertical metrics values as integers - os2_typo_ascender = tt["OS/2"].sTypoAscender - os2_typo_descender = tt["OS/2"].sTypoDescender - os2_win_ascent = tt["OS/2"].usWinAscent - os2_win_descent = tt["OS/2"].usWinDescent - os2_typo_linegap = tt["OS/2"].sTypoLineGap - try: - os2_x_height = tt["OS/2"].sxHeight - except AttributeError: - os2_x_height = "---- (OS/2 table does not contain sxHeight record)" - try: - os2_cap_height = tt["OS/2"].sCapHeight - except AttributeError: - os2_cap_height = "---- (OS/2 table does not contain sCapHeight record)" - hhea_ascent = tt["hhea"].ascent - hhea_descent = tt["hhea"].descent - hhea_linegap = tt["hhea"].lineGap - ymax = tt["head"].yMax - ymin = tt["head"].yMin - units_per_em = tt["head"].unitsPerEm - - # Bit flag checks - fsselection_bit7_mask = 1 << 7 - fsselection_bit7_set = (tt["OS/2"].fsSelection & fsselection_bit7_mask) != 0 - - # Calculated values - os2_typo_total_height = os2_typo_ascender + -(os2_typo_descender) - os2_win_total_height = os2_win_ascent + os2_win_descent - hhea_total_height = hhea_ascent + -(hhea_descent) - - hhea_btb_distance = hhea_total_height + hhea_linegap - typo_btb_distance = os2_typo_total_height + os2_typo_linegap - win_external_leading = hhea_linegap - ( - (os2_win_ascent + os2_win_descent) - (hhea_ascent - hhea_descent) - ) - if win_external_leading < 0: - win_external_leading = 0 - win_btb_distance = os2_win_ascent + os2_win_descent + win_external_leading + # The file path header + report = ["=== " + fontpath + " ==="] - typo_to_upm = 1.0 * typo_btb_distance / units_per_em - winascdesc_to_upm = 1.0 * win_btb_distance / units_per_em - hheaascdesc_to_upm = 1.0 * hhea_btb_distance / units_per_em + report.append(metrics.version) - # The file path header - report = [" "] - report.append("=== " + fontpath + " ===") - namerecord_list = tt["name"].names - # The version string - for needle in namerecord_list: - if needle.nameID == 5: - report.append(needle.toStr()) - break # The SHA1 string - report.append("SHA1: " + get_sha1(fontpath)) + report.append("SHA1: " + metrics.sha1) report.append("") # The vertical metrics strings report.append("--- Metrics ---") - report.append("[head] Units per Em: {}".format(units_per_em)) - report.append("[head] yMax: {}".format(ymax)) - report.append("[head] yMin: {}".format(ymin)) - report.append("[OS/2] CapHeight: {}".format(os2_cap_height)) - report.append("[OS/2] xHeight: {}".format(os2_x_height)) - report.append("[OS/2] TypoAscender: {}".format(os2_typo_ascender)) - report.append("[OS/2] TypoDescender: {}".format(os2_typo_descender)) - report.append("[OS/2] WinAscent: {}".format(os2_win_ascent)) - report.append("[OS/2] WinDescent: {}".format(os2_win_descent)) - report.append("[hhea] Ascent: {}".format(hhea_ascent)) - report.append("[hhea] Descent: {}".format(hhea_descent)) + report.append("[head] Units per Em: {}".format(metrics.units_per_em)) + report.append("[head] yMax: {}".format(metrics.ymax)) + report.append("[head] yMin: {}".format(metrics.ymin)) + report.append("[OS/2] CapHeight: {}".format(metrics.os2_cap_height)) + report.append("[OS/2] xHeight: {}".format(metrics.os2_x_height)) + report.append("[OS/2] TypoAscender: {}".format(metrics.os2_typo_ascender)) + report.append("[OS/2] TypoDescender: {}".format(metrics.os2_typo_descender)) + report.append("[OS/2] WinAscent: {}".format(metrics.os2_win_ascent)) + report.append("[OS/2] WinDescent: {}".format(metrics.os2_win_descent)) + report.append("[hhea] Ascent: {}".format(metrics.hhea_ascent)) + report.append("[hhea] Descent: {}".format(metrics.hhea_descent)) report.append("") - report.append("[hhea] LineGap: {}".format(hhea_linegap)) - report.append("[OS/2] TypoLineGap: {}".format(os2_typo_linegap)) + report.append("[hhea] LineGap: {}".format(metrics.hhea_linegap)) + report.append("[OS/2] TypoLineGap: {}".format(metrics.os2_typo_linegap)) report.append("") report.append("--- Ascent to Descent Calculations ---") - report.append("[hhea] Ascent to Descent: {}".format(hhea_total_height)) + report.append("[hhea] Ascent to Descent: {}".format(metrics.hhea_total_height)) report.append( - "[OS/2] TypoAscender to TypoDescender: {}".format(os2_typo_total_height) + "[OS/2] TypoAscender to TypoDescender: {}".format(metrics.os2_typo_total_height) ) report.append( - "[OS/2] WinAscent to WinDescent: {}".format(os2_win_total_height) + "[OS/2] WinAscent to WinDescent: {}".format(metrics.os2_win_total_height) ) report.append("") report.append("--- Delta Values ---") report.append( "[hhea] Ascent to [OS/2] TypoAscender: {}".format( - hhea_ascent - os2_typo_ascender + metrics.hhea_ascent - metrics.os2_typo_ascender ) ) report.append( "[hhea] Descent to [OS/2] TypoDescender: {}".format( - os2_typo_descender - hhea_descent + metrics.os2_typo_descender - metrics.hhea_descent ) ) report.append( "[OS/2] WinAscent to [OS/2] TypoAscender: {}".format( - os2_win_ascent - os2_typo_ascender + metrics.os2_win_ascent - metrics.os2_typo_ascender ) ) report.append( "[OS/2] WinDescent to [OS/2] TypoDescender: {}".format( - os2_win_descent - -(os2_typo_descender) + metrics.os2_win_descent + metrics.os2_typo_descender ) ) report.append("") report.append("--- Baseline to Baseline Distances ---") - report.append("hhea metrics: {}".format(hhea_btb_distance)) - report.append("typo metrics: {}".format(typo_btb_distance)) - report.append("win metrics: {}".format(win_btb_distance)) + report.append("hhea metrics: {}".format(metrics.hhea_btb_distance)) + report.append("typo metrics: {}".format(metrics.typo_btb_distance)) + report.append("win metrics: {}".format(metrics.win_btb_distance)) report.append("") report.append( - "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(fsselection_bit7_set) + "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(metrics.fsselection_bit7_set) ) report.append("") report.append("--- Ratios ---") - report.append("hhea metrics / UPM: {0:.3g}".format(hheaascdesc_to_upm)) - report.append("typo metrics / UPM: {0:.3g}".format(typo_to_upm)) - report.append("win metrics / UPM: {0:.3g}".format(winascdesc_to_upm)) + report.append("hhea metrics / UPM: {0:.3g}".format(metrics.hheaascdesc_to_upm)) + report.append("typo metrics / UPM: {0:.3g}".format(metrics.typo_to_upm)) + report.append("win metrics / UPM: {0:.3g}".format(metrics.winascdesc_to_upm)) return "\n".join(report) diff --git a/lib/fontline/metrics.py b/lib/fontline/metrics.py new file mode 100644 index 0000000..c6980c1 --- /dev/null +++ b/lib/fontline/metrics.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 + +from fontline.utilities import get_sha1 + + +class MetricsObject: + def __init__(self, tt, filepath): + self.tt = tt + self.filepath = filepath + self.sha1 = get_sha1(self.filepath) + namerecord_list = tt["name"].names + # Version string + self.version = "" + for needle in tt["name"].names: + if needle.nameID == 5: + self.version = needle.toStr() + break + # Vertical metrics values as integers + self.os2_typo_ascender = tt["OS/2"].sTypoAscender + self.os2_typo_descender = tt["OS/2"].sTypoDescender + self.os2_win_ascent = tt["OS/2"].usWinAscent + self.os2_win_descent = tt["OS/2"].usWinDescent + self.os2_typo_linegap = tt["OS/2"].sTypoLineGap + try: + self.os2_x_height = tt["OS/2"].sxHeight + except AttributeError: + self.os2_x_height = "---- (OS/2 table does not contain sxHeight record)" + try: + self.os2_cap_height = tt["OS/2"].sCapHeight + except AttributeError: + self.os2_cap_height = "---- (OS/2 table does not contain sCapHeight record)" + self.hhea_ascent = tt["hhea"].ascent + self.hhea_descent = tt["hhea"].descent + self.hhea_linegap = tt["hhea"].lineGap + self.ymax = tt["head"].yMax + self.ymin = tt["head"].yMin + self.units_per_em = tt["head"].unitsPerEm + + # Bit flag checks + self.fsselection_bit7_mask = 1 << 7 + self.fsselection_bit7_set = (tt["OS/2"].fsSelection & self.fsselection_bit7_mask) != 0 + + # Calculated values + self.os2_typo_total_height = self.os2_typo_ascender - self.os2_typo_descender + self.os2_win_total_height = self.os2_win_ascent + self.os2_win_descent + self.hhea_total_height = self.hhea_ascent - self.hhea_descent + + self.hhea_btb_distance = self.hhea_total_height + self.hhea_linegap + self.typo_btb_distance = self.os2_typo_total_height + self.os2_typo_linegap + self.win_external_leading = self.hhea_linegap - ( + (self.os2_win_ascent + self.os2_win_descent) - (self.hhea_ascent - self.hhea_descent) + ) + if self.win_external_leading < 0: + self.win_external_leading = 0 + self.win_btb_distance = self.os2_win_ascent + self.os2_win_descent + self.win_external_leading + + self.typo_to_upm = 1.0 * self.typo_btb_distance / self.units_per_em + self.winascdesc_to_upm = 1.0 * self.win_btb_distance / self.units_per_em + self.hheaascdesc_to_upm = 1.0 * self.hhea_btb_distance / self.units_per_em + + diff --git a/tests/test_metrics.py b/tests/test_metrics.py new file mode 100644 index 0000000..644db80 --- /dev/null +++ b/tests/test_metrics.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 + +import os + +import pytest +from fontTools.ttLib import TTFont + +from fontline.metrics import MetricsObject + + +@pytest.fixture() +def metricsobject(): + filepath = os.path.join("tests", "testingfiles", "FiraMono-Regular.ttf") + tt = TTFont(filepath) + yield MetricsObject(tt, filepath) + + +@pytest.fixture() +def metricsobject_bit7_clear(): + filepath = os.path.join("tests", "testingfiles", "Hack-Regular.ttf") + tt = TTFont(filepath) + yield MetricsObject(tt, filepath) + + +def test_mo_metadata(metricsobject): + filepath = os.path.join("tests","testingfiles", "FiraMono-Regular.ttf") + assert metricsobject.filepath == filepath + assert metricsobject.version == "Version 3.206" + assert metricsobject.sha1 == "e2526f6d8ab566afc7cf75ec192c1df30fd5913b" + + +def test_mo_metricsdata(metricsobject): + assert metricsobject.units_per_em == 1000 + assert metricsobject.ymax == 1050 + assert metricsobject.ymin == -500 + assert metricsobject.os2_cap_height == 689 + assert metricsobject.os2_x_height == 527 + assert metricsobject.os2_typo_ascender == 935 + assert metricsobject.os2_typo_descender == -265 + assert metricsobject.os2_win_ascent == 935 + assert metricsobject.os2_win_descent == 265 + assert metricsobject.hhea_ascent == 935 + assert metricsobject.hhea_descent == -265 + assert metricsobject.hhea_linegap == 0 + assert metricsobject.os2_typo_linegap == 0 + + +def test_mo_ascent_to_descent_values(metricsobject): + assert metricsobject.hhea_total_height == 1200 + assert metricsobject.os2_typo_total_height == 1200 + assert metricsobject.os2_win_total_height == 1200 + + +def test_mo_b2bd_values(metricsobject): + assert metricsobject.hhea_btb_distance == 1200 + assert metricsobject.typo_btb_distance == 1200 + assert metricsobject.win_btb_distance == 1200 + + +def test_mo_fsselection_bit7_set(metricsobject): + assert metricsobject.fsselection_bit7_set is True + + +def test_mo_fsselection_bit7_clear(metricsobject_bit7_clear): + assert metricsobject_bit7_clear.fsselection_bit7_set is False + + +def test_mo_ratios(metricsobject): + assert metricsobject.hheaascdesc_to_upm == 1.2 + assert metricsobject.typo_to_upm == 1.2 + assert metricsobject.winascdesc_to_upm == 1.2 + From d48376ae790f1849362688246537a1b9d03651fa Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 22:07:10 -0500 Subject: [PATCH 14/22] PEP8 formatting / blacken source --- lib/fontline/commands.py | 12 +++++++++--- lib/fontline/metrics.py | 14 ++++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 3bd6bba..6cf7466 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -41,9 +41,13 @@ def get_font_report(fontpath): report.append("") report.append("--- Ascent to Descent Calculations ---") - report.append("[hhea] Ascent to Descent: {}".format(metrics.hhea_total_height)) report.append( - "[OS/2] TypoAscender to TypoDescender: {}".format(metrics.os2_typo_total_height) + "[hhea] Ascent to Descent: {}".format(metrics.hhea_total_height) + ) + report.append( + "[OS/2] TypoAscender to TypoDescender: {}".format( + metrics.os2_typo_total_height + ) ) report.append( "[OS/2] WinAscent to WinDescent: {}".format(metrics.os2_win_total_height) @@ -78,7 +82,9 @@ def get_font_report(fontpath): report.append("win metrics: {}".format(metrics.win_btb_distance)) report.append("") report.append( - "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format(metrics.fsselection_bit7_set) + "[OS/2] fsSelection USE_TYPO_METRICS bit set: {}".format( + metrics.fsselection_bit7_set + ) ) report.append("") report.append("--- Ratios ---") diff --git a/lib/fontline/metrics.py b/lib/fontline/metrics.py index c6980c1..f150cc9 100644 --- a/lib/fontline/metrics.py +++ b/lib/fontline/metrics.py @@ -8,7 +8,6 @@ def __init__(self, tt, filepath): self.tt = tt self.filepath = filepath self.sha1 = get_sha1(self.filepath) - namerecord_list = tt["name"].names # Version string self.version = "" for needle in tt["name"].names: @@ -38,7 +37,9 @@ def __init__(self, tt, filepath): # Bit flag checks self.fsselection_bit7_mask = 1 << 7 - self.fsselection_bit7_set = (tt["OS/2"].fsSelection & self.fsselection_bit7_mask) != 0 + self.fsselection_bit7_set = ( + tt["OS/2"].fsSelection & self.fsselection_bit7_mask + ) != 0 # Calculated values self.os2_typo_total_height = self.os2_typo_ascender - self.os2_typo_descender @@ -48,14 +49,15 @@ def __init__(self, tt, filepath): self.hhea_btb_distance = self.hhea_total_height + self.hhea_linegap self.typo_btb_distance = self.os2_typo_total_height + self.os2_typo_linegap self.win_external_leading = self.hhea_linegap - ( - (self.os2_win_ascent + self.os2_win_descent) - (self.hhea_ascent - self.hhea_descent) + (self.os2_win_ascent + self.os2_win_descent) + - (self.hhea_ascent - self.hhea_descent) ) if self.win_external_leading < 0: self.win_external_leading = 0 - self.win_btb_distance = self.os2_win_ascent + self.os2_win_descent + self.win_external_leading + self.win_btb_distance = ( + self.os2_win_ascent + self.os2_win_descent + self.win_external_leading + ) self.typo_to_upm = 1.0 * self.typo_btb_distance / self.units_per_em self.winascdesc_to_upm = 1.0 * self.win_btb_distance / self.units_per_em self.hheaascdesc_to_upm = 1.0 * self.hhea_btb_distance / self.units_per_em - - From c046b416ecd4cbfeaaec0ef7d4ecab7365e08d0c Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 22:28:52 -0500 Subject: [PATCH 15/22] [commands] improve report formatting, fix alignment --- lib/fontline/commands.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 6cf7466..21a3fc8 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -23,7 +23,9 @@ def get_font_report(fontpath): report.append("SHA1: " + metrics.sha1) report.append("") # The vertical metrics strings - report.append("--- Metrics ---") + report.append(":" * 50) + report.append(" Metrics") + report.append(":" * 50) report.append("[head] Units per Em: {}".format(metrics.units_per_em)) report.append("[head] yMax: {}".format(metrics.ymax)) report.append("[head] yMin: {}".format(metrics.ymin)) @@ -40,7 +42,9 @@ def get_font_report(fontpath): report.append("[OS/2] TypoLineGap: {}".format(metrics.os2_typo_linegap)) report.append("") - report.append("--- Ascent to Descent Calculations ---") + report.append(":" * 50) + report.append(" Ascent to Descent Calculations") + report.append(":" * 50) report.append( "[hhea] Ascent to Descent: {}".format(metrics.hhea_total_height) ) @@ -54,14 +58,16 @@ def get_font_report(fontpath): ) report.append("") - report.append("--- Delta Values ---") + report.append(":" * 50) + report.append(" Delta Values") + report.append(":" * 50) report.append( "[hhea] Ascent to [OS/2] TypoAscender: {}".format( metrics.hhea_ascent - metrics.os2_typo_ascender ) ) report.append( - "[hhea] Descent to [OS/2] TypoDescender: {}".format( + "[hhea] Descent to [OS/2] TypoDescender: {}".format( metrics.os2_typo_descender - metrics.hhea_descent ) ) @@ -76,7 +82,9 @@ def get_font_report(fontpath): ) ) report.append("") - report.append("--- Baseline to Baseline Distances ---") + report.append(":" * 50) + report.append(" Baseline to Baseline Distances") + report.append(":" * 50) report.append("hhea metrics: {}".format(metrics.hhea_btb_distance)) report.append("typo metrics: {}".format(metrics.typo_btb_distance)) report.append("win metrics: {}".format(metrics.win_btb_distance)) @@ -87,7 +95,9 @@ def get_font_report(fontpath): ) ) report.append("") - report.append("--- Ratios ---") + report.append(":" * 50) + report.append(" Ratios") + report.append(":" * 50) report.append("hhea metrics / UPM: {0:.3g}".format(metrics.hheaascdesc_to_upm)) report.append("typo metrics / UPM: {0:.3g}".format(metrics.typo_to_upm)) report.append("win metrics / UPM: {0:.3g}".format(metrics.winascdesc_to_upm)) From 4370ebe31db2634fe978fdea92851817379ed422 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Fri, 13 Dec 2019 22:35:09 -0500 Subject: [PATCH 16/22] [commands] minor report formatting fix --- lib/fontline/commands.py | 2 +- tests/test_report_cmd.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/fontline/commands.py b/lib/fontline/commands.py index 21a3fc8..283301a 100644 --- a/lib/fontline/commands.py +++ b/lib/fontline/commands.py @@ -100,7 +100,7 @@ def get_font_report(fontpath): report.append(":" * 50) report.append("hhea metrics / UPM: {0:.3g}".format(metrics.hheaascdesc_to_upm)) report.append("typo metrics / UPM: {0:.3g}".format(metrics.typo_to_upm)) - report.append("win metrics / UPM: {0:.3g}".format(metrics.winascdesc_to_upm)) + report.append("win metrics / UPM: {0:.3g}".format(metrics.winascdesc_to_upm)) return "\n".join(report) diff --git a/tests/test_report_cmd.py b/tests/test_report_cmd.py index be4a9ae..002f184 100644 --- a/tests/test_report_cmd.py +++ b/tests/test_report_cmd.py @@ -243,7 +243,7 @@ def test_report_cmd_reportstring_descent_typodesc(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "[hhea] Descent to [OS/2] TypoDescender: -9" in out + assert "[hhea] Descent to [OS/2] TypoDescender: -9" in out def test_report_cmd_reportstring_typo_to_upm(capsys): @@ -261,7 +261,7 @@ def test_report_cmd_reportstring_win_to_upm(capsys): sys.argv = ['font-line', 'report', filepath] main() out, err = capsys.readouterr() - assert "win metrics / UPM: 1.16" in out + assert "win metrics / UPM: 1.16" in out def test_report_cmd_reportstring_hhea_to_upm(capsys): From fb454deee987eeadbac6ecb58d89ce59ce6c6ae0 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 11:57:54 -0500 Subject: [PATCH 17/22] [README.md] v3.0.0 updates --- README.md | 87 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index e0750d7..f11081b 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ font-line is a libre, open source command line tool for OpenType vertical metric ## Install -font-line is built with Python and is tested with Python 3.5+ interpreters. You can verify your installed Python version on the command line with the command: +font-line is built with Python and is tested with Python 3.6+ interpreters. You can verify your installed Python version on the command line with the command: ``` $ python3 --version @@ -106,40 +106,57 @@ $ font-line report Hack-Regular.ttf #### Example Font Vertical Metrics Report ``` === Hack-Regular.ttf === -Version 3.001; 379b3ad6d-dev -SHA1: 20d02edca75f2d23787e80161a64418598c850de - ---- Metrics --- -[head] Units per Em: 2048 -[head] yMax: 2027 -[head] yMin: -605 -[OS/2] CapHeight: 1493 -[OS/2] xHeight: 1120 -[OS/2] TypoAscender: 1556 -[OS/2] TypoDescender: -492 -[OS/2] WinAscent: 1901 -[OS/2] WinDescent: 483 -[hhea] Ascent: 1901 -[hhea] Descent: -483 - -[hhea] LineGap: 0 -[OS/2] TypoLineGap: 410 - ---- Height Calculations by Table Values --- -[OS/2] TypoAscender to TypoDescender: 2048 -[OS/2] WinAscent to WinDescent: 2384 -[hhea] Ascent to Descent: 2384 - ---- Delta Values --- -WinAscent to TypoAscender: 345 -Ascent to TypoAscender: 345 -WinDescent to TypoDescender: -9 -Descent to TypoDescender: -9 - ---- Ratios --- -(Typo Asc + Desc + Linegap) / UPM: 1.2 -(winAsc + winDesc) / UPM: 1.16 -(hhea Asc + Desc) / UPM: 1.16 +Version 3.003;[3114f1256]-release +SHA1: b1cd50ba36380d6d6ada37facfc954a8f20c15ba + +:::::::::::::::::::::::::::::::::::::::::::::::::: + Metrics +:::::::::::::::::::::::::::::::::::::::::::::::::: +[head] Units per Em: 2048 +[head] yMax: 2027 +[head] yMin: -605 +[OS/2] CapHeight: 1493 +[OS/2] xHeight: 1120 +[OS/2] TypoAscender: 1556 +[OS/2] TypoDescender: -492 +[OS/2] WinAscent: 1901 +[OS/2] WinDescent: 483 +[hhea] Ascent: 1901 +[hhea] Descent: -483 + +[hhea] LineGap: 0 +[OS/2] TypoLineGap: 410 + +:::::::::::::::::::::::::::::::::::::::::::::::::: + Ascent to Descent Calculations +:::::::::::::::::::::::::::::::::::::::::::::::::: +[hhea] Ascent to Descent: 2384 +[OS/2] TypoAscender to TypoDescender: 2048 +[OS/2] WinAscent to WinDescent: 2384 + +:::::::::::::::::::::::::::::::::::::::::::::::::: + Delta Values +:::::::::::::::::::::::::::::::::::::::::::::::::: +[hhea] Ascent to [OS/2] TypoAscender: 345 +[hhea] Descent to [OS/2] TypoDescender: -9 +[OS/2] WinAscent to [OS/2] TypoAscender: 345 +[OS/2] WinDescent to [OS/2] TypoDescender: -9 + +:::::::::::::::::::::::::::::::::::::::::::::::::: + Baseline to Baseline Distances +:::::::::::::::::::::::::::::::::::::::::::::::::: +hhea metrics: 2384 +typo metrics: 2458 +win metrics: 2384 + +[OS/2] fsSelection USE_TYPO_METRICS bit set: False + +:::::::::::::::::::::::::::::::::::::::::::::::::: + Ratios +:::::::::::::::::::::::::::::::::::::::::::::::::: +hhea metrics / UPM: 1.16 +typo metrics / UPM: 1.2 +win metrics / UPM: 1.16 ``` The report includes the font version string, a SHA-1 hash digest of the font file, and OpenType table metrics that are associated with line spacing in the font. From dcc8f61490e45316716afdad4fb7f7df9c7661f1 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 11:58:02 -0500 Subject: [PATCH 18/22] [CHANGELOG.md] v3.0.0 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d75304d..7ce510c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ ## Changelog +### v3.0.0 + +- added baseline to baseline distance calculations for hhea, typo, and win metrics to reports +- added fsSelection bit 7 `USE_TYPO_METRICS` bit flag setting to report +- standard output report formatting improvements for `report` subcommand +- removed Py3.5 interpreter testing, we will support for Py3.6+ only as of this release +- add support for automated source code coverage push to Codecov from Travis + ### v2.0.0 - changed copyright notice from "Christopher Simpkins" to "Source Foundry Authors" From ebf028b97732925134db34b1fa776f2c6e3fe115 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 12:25:24 -0500 Subject: [PATCH 19/22] [metrics] modify calculation for hhea and typo a + d to use abs() so that this matches documentation description --- lib/fontline/metrics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/fontline/metrics.py b/lib/fontline/metrics.py index f150cc9..5ad50ea 100644 --- a/lib/fontline/metrics.py +++ b/lib/fontline/metrics.py @@ -42,9 +42,9 @@ def __init__(self, tt, filepath): ) != 0 # Calculated values - self.os2_typo_total_height = self.os2_typo_ascender - self.os2_typo_descender + self.os2_typo_total_height = self.os2_typo_ascender + abs(self.os2_typo_descender) self.os2_win_total_height = self.os2_win_ascent + self.os2_win_descent - self.hhea_total_height = self.hhea_ascent - self.hhea_descent + self.hhea_total_height = self.hhea_ascent + abs(self.hhea_descent) self.hhea_btb_distance = self.hhea_total_height + self.hhea_linegap self.typo_btb_distance = self.os2_typo_total_height + self.os2_typo_linegap From ccaf6ac7a2b28f761e8be470618220b717d241d2 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 12:25:48 -0500 Subject: [PATCH 20/22] [README.md] add baseline to baseline distance calculation documentation --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index f11081b..573c649 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,35 @@ $ font-line report TheFont.ttf > font-report.txt You can modify the `font-report.txt` file path above to the file path string of your choice. +#### Baseline to Baseline Distance Calculations + +Baseline to baseline distance (BTBD) calculations are performed according to the [Microsoft Recommendations for OpenType Fonts](https://docs.microsoft.com/en-us/typography/opentype/spec/recom#baseline-to-baseline-distances). + +##### hhea Metrics + +``` +BTBD = hhea.Ascent + abs(hhea.Descent) + hhea.LineGap +``` + +##### typo Metrics + +``` +BTBD = OS/2.typoAscent + abs(OS/2.typoDescent) + OS/2.typoLineGap +``` + +##### win Metrics + +``` +BTBD = OS/2.winAscent + OS/2.winDescent + [External Leading] +``` + +where external leading is defined as: + +``` +MAX(0, hhea.LineGap - ((OS/2.WinAscent + OS/2.winDescent) - (hhea.Ascent - hhea.Descent))) +``` + + ### Vertical Metrics Modifications font-line supports automated line spacing modifications to a user-defined percentage of the units per em metric. This value will be abbreviated as UPM below. From 59c1b1c8d2a37bd5896a671ab05615ff35e1125c Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 12:28:43 -0500 Subject: [PATCH 21/22] [README.md] add another reference for baseline to baseline distance calcs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 573c649..d4d5f6f 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ You can modify the `font-report.txt` file path above to the file path string of #### Baseline to Baseline Distance Calculations -Baseline to baseline distance (BTBD) calculations are performed according to the [Microsoft Recommendations for OpenType Fonts](https://docs.microsoft.com/en-us/typography/opentype/spec/recom#baseline-to-baseline-distances). +Baseline to baseline distance (BTBD) calculations are performed according to the [Microsoft Recommendations for OpenType Fonts](https://docs.microsoft.com/en-us/typography/opentype/spec/recom#baseline-to-baseline-distances) and [OpenType OS/2 table specification](https://docs.microsoft.com/en-us/typography/opentype/spec/os2). ##### hhea Metrics From 077a498d3907c242f56e6e8c006fb6317539f2a2 Mon Sep 17 00:00:00 2001 From: Chris Simpkins Date: Sat, 14 Dec 2019 12:36:57 -0500 Subject: [PATCH 22/22] [appveyor.yml] update Appveyor configuration --- appveyor.yml | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 9df689a..c21b46f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,32 +1,14 @@ environment: matrix: - - JOB: "3.5 64-bit" - PYTHON_HOME: "C:\\Python35-x64" - TOX_PY: py35 - - - JOB: "3.6 64-bit" - PYTHON_HOME: "C:\\Python36-x64" + - JOB: "3.6 32-bit" + PYTHON_HOME: "C:\\Python36" TOX_PY: py36 - JOB: "3.7 64-bit" PYTHON_HOME: "C:\\Python37-x64" TOX_PY: py37 - - JOB: "3.7 32-bit" - PYTHON_HOME: "C:\\Python37" - TOX_PY: py37 - install: - # If there is a newer build queued for the same PR, cancel this one. - # The AppVeyor 'rollout builds' option is supposed to serve the same - # purpose but it is problematic because it tends to cancel builds pushed - # directly to master instead of just PR builds (or the converse). - # credits: JuliaLang developers. - - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` - https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` - Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` - throw "There are newer queued builds for this pull request, failing early." } - # Prepend Python to the PATH of this build - "SET PATH=%PYTHON_HOME%;%PYTHON_HOME%\\Scripts;%PATH%" @@ -35,12 +17,23 @@ install: - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" # upgrade pip and setuptools to avoid out-of-date warnings - - "python -m pip install --disable-pip-version-check --user --upgrade pip setuptools" + - "python -m pip install --disable-pip-version-check --user --upgrade pip setuptools virtualenv" - # install the test dependencies - - "python -m pip install tox" + # install the dependencies to run the tests + - "python -m pip install --upgrade tox pytest" build: false -test_script: +# The following prevents Travis from running CI on pull requests that come from a +# branch in the same repository. Without this, it will run the same CI for the +# pull request branch _and_ the pull request itself, which makes no sense. +branches: + only: + - master + # We want to build wip/* branches since these are not usually used for PRs + - /^wip\/.*$/ + # We want to build version tags as well. + - /^v\d+\.\d+.*$/ + +test_script: - "tox -e %TOX_PY%" \ No newline at end of file