88 Commits

Author SHA1 Message Date
Miguel Sousa
076e2ba33a [ttx] Close file before returning, to prevent ResourceWarnings in py3 2017-03-28 03:43:01 -07:00
Miguel Sousa
4fce7a0b7b [ttx] Strip BOM from beginning of file
Fixes #896
2017-03-28 03:43:01 -07:00
Cosimo Lupo
46d487c728
the Zopfli bindings are finally available from PyPI, change url in the docstring 2017-03-01 14:01:15 +00:00
Cosimo Lupo
ee4f4695e6
[ttx] ignore missing 'head' if no --recalc-timestamp option is passed 2017-02-28 22:54:30 +00:00
Cosimo Lupo
8af488a1b3
Revert "explicitly require 'head' table in TTFont.save()"
This reverts commit b39f3b613c861539f9ae6e18f5064979f7ad6365.

Requiring 'head' makes it hard to build partial fonts

See https://github.com/fonttools/fonttools/pull/854#issuecomment-283177719
2017-02-28 22:48:28 +00:00
Cosimo Lupo
b39f3b613c
explicitly require 'head' table in TTFont.save()
it's implicitly required anyway, e.g. by ttx's ttCompile, maxp's recalc, OS/2 compile, etc.
2017-02-21 12:57:34 +00:00
Cosimo Lupo
ff247f9be4
[ttx] fix typo in --help 2017-01-18 12:01:32 +00:00
Cosimo Lupo
a0e74f7e69
move ttx.makeOutputFileName to new misc.cliTools module
so it can be reused for other console scripts
2017-01-13 11:16:01 +00: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
Cosimo Lupo
ce609addd0 [ttx] add --newline option to explicitly control line endings 2016-10-20 17:22:12 +01:00
Cosimo Lupo
b1fae3fe32 ttx/ttLib: use from fontTools import version as before 2016-10-10 15:26:04 +01:00
Cosimo Lupo
33fb81a282 [ttx] add --version option that prints fontTools.version.__version__ 2016-09-27 00:40:33 +01:00
Cosimo Lupo
3c187c590a [ttx] minor: don't suppress SystemExit on win32 platform 2016-03-30 14:56:40 +01:00
Cosimo Lupo
d8004de04c [ttx] remove redundant continue in parseOptions loop
`git blame` says that was my fault:
e5b6be00a0 (diff-fce6b83de86f2e83411202adc745ffb2R316)

Ouch.
2016-03-28 18:07:59 +02:00
Cosimo Lupo
94976c01a1 [ttx] add --with-zopfli option 2016-01-31 14:20:17 +00:00
Cosimo Lupo
e5b6be00a0 [ttx] replace print with logger; make -v and -q mutually exclusive; don't use deprecated 'verbose' and 'quiet' arguments
The default logger level for TTX is set to logging.INFO. Anything equal or above that level
will be logged. Anything below that will not.
If the -v option is passed, the threshold is lowered to logging.DEBUG.
If the -q option is passed, the threshold is increased to logging.WARNING.
2016-01-27 19:02:48 +00:00
Miguel Sousa
d1a1f1dc69 [ttx] minor addition to options' info 2016-01-24 18:42:41 -08:00
Miguel Sousa
a45a149b21 [ttx] don't print error when command is 'ttx -h' 2016-01-24 18:39:53 -08:00
Cosimo Lupo
e12aec52ed ttx: use ljust to pad tags with space (more Pythonic)
as suggested by @adrientetar
2015-12-08 12:45:22 +00:00
Cosimo Lupo
79c2b8cbc1 ttx: pad tags with space if length is less than 4
so that you don't need to do `-t "CFF "` anymore.

Fixes https://github.com/behdad/fonttools/issues/265
2015-12-08 10:11:26 +00:00
Cosimo Lupo
e5b67b2451 [ttx] raise GetoptError and print messages to sys.stderr 2015-09-09 13:13:17 +01:00
Cosimo Lupo
27e31e7e22 [ttx] add --flavor option for compiling to 'woff' or 'woff2' 2015-09-09 13:00:35 +01:00
Cosimo Lupo
867ad325bf [ttx] add support for dumping WOFF2 fonts to TTX 2015-08-07 18:23:41 +01:00
Cosimo Lupo
7fffdb8815 [ttx] don't create output file if action is 'ttList' 2015-06-23 11:15:56 +01:00
Behdad Esfahbod
a7e1524d2a Merge pull request #278 from anthrotype/timestamp
[ttx] use TTX mtime for 'modified' (default), optionally "--recalc-timestamp"
2015-06-16 15:12:12 -07:00
Cosimo Lupo
eae49fd67c [ttx] use TTX file modification time for the font 'modified' (default) 2015-06-16 22:44:57 +01:00
Behdad Esfahbod
82b19a0d08 Merge pull request #279 from anthrotype/racecondition
[ttx] 'touch' output file to avoid race condition in choosing file names
2015-06-15 15:36:30 -07:00
Cosimo Lupo
1d510c61a2 [ttx] 'touch' output file to avoid race condition in choosing file names
Fixes https://github.com/behdad/fonttools/issues/45
2015-06-13 22:42:10 +01:00
Cosimo Lupo
291b41a13c [ttx] add option to provide custom UnicodeData.txt
Fixes https://github.com/behdad/fonttools/issues/82
2015-05-23 18:56:33 +01:00
Cosimo Lupo
175a16209c [setup.py] use setuptools if available, or fall back to distutils
modify scripts to work as setuptools 'console_scripts', where the main
function takes no arguments;
add empty identifier "" in 'packages' argument of setup, to install the
standalone sstruct.py and xmlWriter.py for legacy support;
remove py2exe since it is made redundant by setuptools 'console_scripts';
remove custom 'build_ext' command since the eexecOpmodule.c is no longer
present.
2015-05-20 11:02:43 +01:00
Behdad Esfahbod
b30e12ae00 More whitespace 2015-04-26 02:01:01 -04:00
Behdad Esfahbod
9d37988235 Make makeOutputFilename's overwrite argument optional
6d7f3bf840 (commitcomment-10807720)
2015-04-20 11:50:37 -07:00
schriftgestalt
6d7f3bf840 [ttx] Add -f option to overwrite output file(s)
Fixes https://github.com/behdad/fonttools/pull/208
2015-04-16 17:55:22 -07:00
Behdad Esfahbod
bfe99090ba Fix reading XML for CBLC with external image files 2014-08-19 12:40:12 -04:00
Roozbeh Pournader
365b0bfce1 Add support for dumping XMLs to the standard output. 2014-06-27 15:03:32 -04:00
Behdad Esfahbod
1ae29591ef from __future__ import absolute_import
Such that our Python 2 is closer to Python 3.

Part of https://github.com/behdad/fonttools/issues/77
2014-01-14 15:07:50 +08:00
Behdad Esfahbod
95f795f40a Move offset overflow fixing logic where it belongs 2013-12-20 21:52:28 -05:00
Behdad Esfahbod
283fb26820 By default, don't load fonts lazily
Lazy loading has implications on how people use objects.
So, by default, don't load lazily.  This only affects
GSUB/GDEF/GPOS/etc and is closer to what fonttools used
to do traditionally.

Turn lazy loading on in subset and inspect.
2013-12-16 00:52:29 -05:00
Behdad Esfahbod
9e6ef94b55 Use "is None" instead of "== None"
The latter hits the __eq__ method and can fail because we now
do not allow comparing objects of different types.

For example, was failing subsetting Andika-R.ttf.
2013-12-04 16:35:10 -05:00
Behdad Esfahbod
153ec40209 Fix a few pychecker warnings
Fixes https://github.com/behdad/fonttools/issues/58
2013-12-04 01:15:46 -05:00
Behdad Esfahbod
e388db566b py23 Use new-style classes
Such that we get the same semantics in both Python 2 and 3.
2013-11-28 18:53:30 -05:00
Behdad Esfahbod
c076261598 s/latin-1/latin1/g 2013-11-28 17:32:44 -05:00
Behdad Esfahbod
5f6418d9e1 py23 Turn Unicode XML parsing on; more bytes fixes 2013-11-28 17:32:43 -05:00
Behdad Esfahbod
32c10eecff py23 from __future__ import division and adjust divisions 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
30e691edd0 py23 from __future__ import print_function 2013-11-27 17:27:45 -05:00
Behdad Esfahbod
ac4672e451 py23 Introduce Tag to autoconvert tag types 2013-11-27 16:44:53 -05:00
Behdad Esfahbod
7ed91eca1e py23 import in all nontrivial source files and unused import cleanup 2013-11-27 15:25:00 -05:00
Behdad Esfahbod
14fb031125 Remove most uses of module string 2013-11-27 14:01:44 -05:00
Behdad Esfahbod
223273f792 2to3 --fix=except 2013-11-27 14:01:37 -05:00