55 Commits

Author SHA1 Message Date
Mickaël Schoentgen
698aa676e8 Fix ResourceWarning: unclosed file in mtiLib 2018-09-25 23:17:34 +02:00
Cosimo Lupo
a4861a16cc
use logging.warning() instead of deprecated logging.warn()
functionality is identical, the latter is deprecated:
https://docs.python.org/3/library/logging.html#logging.Logger.warning
2017-05-24 09:49:37 +01:00
Khaled Hosny
61670fc652 Use logging module for these warnings
Not sure if warnings module was used intentionally here, but the
messages looked odd compared to other FontTools messages.
2017-05-24 10:00:55 +02:00
Behdad Esfahbod
4e9806a443 [mtiLib] Be more lenient in script block parsing
Fixes https://github.com/googlei18n/fontmake/issues/258
2017-03-08 15:33:17 -08:00
Cosimo Lupo
b7bb391033
don't use sys.exit(...) inside main(), but only under if __name__ == "__main__"
The convention is that sys.exit(...) is called only if a module is run as a script,
and that main() entry points use return statements to report exit codes: 0 (or None)
for successful execution, or any non-zero integer for errors.

E.g. see the console scripts generated when installing with pip.
2017-01-11 12:10:58 +00:00
Cosimo Lupo
ae05b2a583
[logging] for runnable modules, spell out module name instead of using __name__
If a module is run as script, as in `python module.py` or when using
`runpy.run_module()`, then __name__ == "__main__".

So when we instantiate modules' loggers with `logging.getLogger(__name__)`,
those loggers' name may become "__main__" when run as scripts, and hence
fall outside of the "fontTools" logging namespace.

fontTools.configureLogger() by default only configures the "fontTools"
library loggers, anything outside of it (e.g. logger called "__main__")
is not attached a handler.

So here I name loggers explicitly instead of relying on __name__, but
only for modules which can be run as "__main__".

Fixes #801
2017-01-11 11:58:17 +00:00
Behdad Esfahbod
8528dc9d7c [mtiLib] Add commnent re emitting empty lookups 2016-12-27 15:22:23 -05:00
Behdad Esfahbod
4b38a20cee [mtiLib] Set lookup type even if lookup is empty
For real this time.
2016-12-27 15:19:22 -05:00
Behdad Esfahbod
6380b7041c [mtiLib] Set LookupType even for empty lookup 2016-12-27 15:17:04 -05:00
Behdad Esfahbod
7af5f9a343 [mtiLib] Port remaining types to new internal API 2016-12-27 15:15:48 -05:00
Behdad Esfahbod
86717f390b [mtiLib] Minor 2016-12-27 15:06:03 -05:00
Behdad Esfahbod
621a0613bc [mtiLib] Parse lookup-flags earlier
Such that we set them even if lookup block is empty.
2016-12-27 13:59:12 -05:00
Behdad Esfahbod
2f800c9384 [mtiLib] Allow empty lookup 2016-12-27 13:37:11 -05:00
Behdad Esfahbod
edd46bb14a [mtiLib] Remove use of MockFont in tests
Tests pass on both Python 2 and 3 now. Yay!

MockFont is handy for mtiLib.__init__:main().  Not sure how useful it is
otherwise, and what to replace it with.
2016-12-27 13:28:06 -05:00
Behdad Esfahbod
f6294ba7bd [mtiLib] More deterministic output with MockFont 2016-12-27 13:09:39 -05:00
Behdad Esfahbod
8358a7248f [mtiLib] Make output more deterministic with MockFont
I'll first make Python 2 and 3 both generate same output for tests with
MockFont, then will probably hardcode glyphorder and remove MockFont
completely and remove hacks I added to make tests work with MockFont.
2016-12-27 13:03:37 -05:00
Behdad Esfahbod
101303ab50 [mtiLib] Fix two more tests 2016-12-26 17:14:39 -05:00
Behdad Esfahbod
795e66747c Print XML output from compil-roundtripped object, not the built one
This is almost always the correct thing to print.  If the two differ, that's
bad, but print the better one.
2016-12-26 16:50:00 -05:00
Behdad Esfahbod
aa3b94db0a [mtiLib] Fix mti/gpospairglyph test 2016-12-26 16:36:38 -05:00
Behdad Esfahbod
730f77a606 [mtiLib] Make test pass
mark-to-ligature was failing because we were not setting ClassCount.
2016-12-26 16:23:02 -05:00
Behdad Esfahbod
5858750dc3 [mtiLib] Fix warnings 2016-12-26 15:29:09 -05:00
Behdad Esfahbod
6c140cbba1 [testTools] Move MockFont from mtiLib to testTools
This is useful for testing beyond just mtiLib.
2016-12-26 14:34:29 -05:00
James Godfrey-Kittle
797061679a [mtiLib] Make tables in parsers, don't pass in 2016-06-30 14:16:58 -07:00
James Godfrey-Kittle
1b61637473 Add cmap handling to mtiLib 2016-06-30 12:50:39 -07:00
Behdad Esfahbod
93d08d4188 [mtiLib] Accept "u " as well as "U " in Unicode glyph references
Fixes https://github.com/googlei18n/fontmake/issues/86
2016-06-08 15:17:08 -07:00
Behdad Esfahbod
7a9c6be76c [mtiLib] Warn if trailing tabs are found 2016-04-27 17:04:25 -07:00
Behdad Esfahbod
71633457df [mtiLib] Ignore trailing tabs 2016-04-27 16:58:38 -07:00
Behdad Esfahbod
973270e7f9 [mtiLib] Assert that glyph name is not empty 2016-04-27 16:58:33 -07:00
Behdad Esfahbod
e9ecd07baa [mtiLib] Fix URL 2016-04-21 16:11:12 -07:00
Cosimo Lupo
54e6ab9478 mtiLib: add missing logging format string 2016-04-10 23:08:39 +01:00
Behdad Esfahbod
2a0359af4d Always import * from py23
Since py23 modifies some essential builtins, it's safe to import
everything all the time.  At least, that's how it was designed.
It's a bug if importing * breaks some code.
2016-04-06 18:15:43 -07:00
James Godfrey-Kittle
c4dd050d8d Replace one last call to debug() in mtiLib
I think this was mistakenly left out of
b62f5509524a49101ab6f211f1c3b63458f52f5e
2016-02-10 14:18:38 -08:00
Cosimo Lupo
b62f550952 [mtiLib] replace print with logger
inside main(), I just do a basic config for the library logger, but keep
the debug messages from mtiLib turned off.
2016-01-27 19:02:48 +00:00
Cosimo Lupo
f99a09fdbe [mtiLib] import unicode_literals; use py23.open with utf-8 encoding 2016-01-26 15:45:32 +00:00
Behdad Esfahbod
46f16347fb [mtiLib] Port to otl.buildAttachList() 2016-01-22 19:52:19 +01:00
Behdad Esfahbod
4e13a2268e [otlLib] One more rename 2016-01-22 19:38:20 +01:00
Behdad Esfahbod
aea0ce9ae1 [otlLib] Adapt names to newly agreed scheme 2016-01-22 19:32:45 +01:00
Behdad Esfahbod
577a1500e5 [mtiLib] Cosmetic 2016-01-22 19:25:14 +01:00
Behdad Esfahbod
f63f23e4bd [mtiLib] Port to otlLib.buildLigCaretList() 2016-01-22 19:24:05 +01:00
Behdad Esfahbod
c84eb24a1e [mtiLib] Fix typo! 2016-01-22 18:11:58 +01:00
Behdad Esfahbod
f8e3ea08fb [mtiLib] Port SinglePos to otlLib 2016-01-22 13:44:27 +01:00
Behdad Esfahbod
4fd3b2c4ca [mtiLib] Implement forward references
This makes mtiLib feature complete.  Next step would be to add tests.
2016-01-19 18:51:11 +01:00
Behdad Esfahbod
057c4faa33 [mtiLib] Shuffle 2016-01-19 18:51:02 +01:00
Behdad Esfahbod
ba90369af9 [mtiLib] Port CursivePos to otlLib.builder 2016-01-18 12:32:07 +01:00
Behdad Esfahbod
9727318680 [mtiLib] Writing to XML works after e0d27461bea131518733b4f05ef3068d5a6ecc91 2016-01-14 12:10:38 +00:00
Behdad Esfahbod
aeb5ecbfd4 [mtiLib] Port to otlLib.builder for supported lookups 2016-01-13 17:54:42 +00:00
Behdad Esfahbod
14eb194644 [mtiLib] Don't set LookupType
Not needed.  That comes from the class.
2016-01-13 17:42:56 +00:00
Behdad Esfahbod
462496ce32 [mtiLib] Minor 2015-12-15 12:09:19 +01:00
Behdad Esfahbod
fd84ac769b [mtiLib] Disable lookupMap until we fix forward references 2015-12-15 12:09:19 +01:00
Behdad Esfahbod
a9a5bd6d28 [mtiLib] Make backward lookup and feature name references work 2015-12-11 16:38:33 +01:00