8754 Commits

Author SHA1 Message Date
Behdad Esfahbod
24820064ff Merge pull request #571 from anthrotype/coverage
run coverage.py on Travis and upload report to coveralls
2016-04-10 18:48:50 -07:00
Cosimo Lupo
893d5d795a travis/run.sh: simplify 2016-04-11 02:20:19 +01:00
Cosimo Lupo
573cf4c266 travis/install.sh: don't use brew to install pyenv on OS X as it's too slow; just clone from git like in Linux 2016-04-11 02:19:44 +01:00
Behdad Esfahbod
d82401bb8d Fix SVG version-1 decompile
Untested.  We should add tests for these.
2016-04-10 17:20:10 -07:00
Cosimo Lupo
215ab5bec3 travis.yml: add 'coveralls' tox environment to the matrix (use py35 on Linux) 2016-04-11 01:11:01 +01:00
Cosimo Lupo
624fe3f625 tox.ini: configure coveralls 2016-04-11 01:11:01 +01:00
Cosimo Lupo
a37dc9f186 tox.ini: use {envpython} substituion for path to the virtual Python interpreter 2016-04-11 01:11:01 +01:00
Cosimo Lupo
d187a7ea44 .coveragerc: add configuration file for coverage.py 2016-04-11 00:15:07 +01:00
Cosimo Lupo
75ec34f8ab SVG: decompileEntryList method takes only one argument
I haven't tested if this works (but for sure it wasn't working before either)
2016-04-10 23:23:25 +01:00
Cosimo Lupo
afd3f6618c OS/2: 'global' is not needed
as no assignment is done, only append.
2016-04-10 23:13:59 +01:00
Cosimo Lupo
2526d85ad9 macUtils: fix undefined variable 'TTLibError' 2016-04-10 23:10:37 +01:00
Cosimo Lupo
54e6ab9478 mtiLib: add missing logging format string 2016-04-10 23:08:39 +01:00
Cosimo Lupo
2ac24ec27e feaLib.ast: fix 'TypeError: not enough arguments for format string' 2016-04-10 23:06:35 +01:00
Cosimo Lupo
d2b58c4a86 textTools: add import sys
just to make my linter happy
2016-04-10 22:59:52 +01:00
Cosimo Lupo
e8c8bb75b1 xmlReader: must import sys
used at line 22 to read from stdin
2016-04-10 22:59:02 +01:00
Cosimo Lupo
6c9f00273b Merge pull request #570 from anthrotype/fix-appveyor-py34-x64
fix Appveyor Python 3.4 64-bit build
2016-04-10 21:31:52 +01:00
Cosimo Lupo
5f8d0f8ecc tox.ini: I forgot that we still support python 3.3 (sorry)
I hope not for long, though.
2016-04-10 21:06:55 +01:00
Cosimo Lupo
7223267328 tox.ini: specify 'basepython' (with TOXPYTHON override); print python version and arch; call python -m pip to work around Appveyor-installed pip 2016-04-10 19:17:36 +01:00
Cosimo Lupo
fe740dbb68 dev-requirements.txt: add virtualenv>=15.0 as Appveyor ships with an old one
virtualenv is required by tox. Appveyor ships with virtualenv 13.x or something.
tox works fine with that.

However, virtualenv install its own embedded version of pip in the newly created environments. When we install the requirements.txt, pip complains that pip is not up-to-date. Updating virtualenv makes pip stop complaining.

Woosh.
2016-04-10 19:17:36 +01:00
Cosimo Lupo
8bf3fd18c0 appveyor: add script to set SDK vars for 64-bit py34 before running tox
Update appveyor.yml to follow the most recent recommendation from PyPA Packaging User Guide:
http://python-packaging-user-guide.readthedocs.org/en/latest/appveyor/

- set DISTUTILS_USE_SDK=1 only for Python34-x64. It seems like we no longer need to do that for Python2.7-x64;
  For more info check this: https://github.com/ogrisel/python-appveyor-demo/issues/39

- run tox using 'with-compiler.cmd' batch script so that Brotli extension can be built from git source with the correct MSVC and Windows SDK versions (btw, I wish brotli was on PyPI already so we could just `pip install brotli` and done!);

- define TOXPYTHON variable to make sure tox uses the correct python interpreter. Previously, in fact, the 'py34' toxenv was always picking up the 32-bit interpreter, even when we were testing the 64-bit Python 3.4 :(...

- add PowerShell command to enable 'rollout builds' feature, as done on 'python-appveyor-demo':
f54ec3593b/appveyor.yml (L81-L89)

- call pip via `python -m pip` to make sure we are running the just updated pip version, instead of Appveyor's pre-installed pip

- Remove unused stuff
2016-04-10 19:17:36 +01:00
Behdad Esfahbod
c6facc99df When splitting a large class-kerning table, mark the old subtable as DontShare
Fixes https://github.com/behdad/fonttools/issues/537#issuecomment-196047070
2016-04-09 13:06:16 -07:00
Cosimo Lupo
17bb7891ad [Snippets/apply-feature-file.py] add -v option to increase logging verbosity 2016-04-09 18:13:42 +01:00
Cosimo Lupo
a210716a85 Merge pull request #566 from khaledhosny/fealib-hhea
[feaLib] Support hhea table
2016-04-09 17:41:22 +01:00
Khaled Hosny
5ceaa43d27 [feaLib] Support hhea table 2016-04-09 18:02:40 +02:00
Behdad Esfahbod
a61b31a917 [subset] Mark avar and fvar tables as no-need-subsetting 2016-04-08 18:41:31 -07:00
Cosimo Lupo
09d2983fbb [classifyTools] rename 'sorted' -> 'sort' to avoid confusions with the built-in name 2016-04-08 22:08:21 +01:00
Cosimo Lupo
0be1d722dc test on more recent pypy-5.0.0 (the latest one is 5.0.1 but is not yet available to install via pyenv) 2016-04-08 22:04:28 +01:00
Cosimo Lupo
020acf168b [classifyTools] fixup tests after reverting commit 34d43aa 2016-04-08 21:59:05 +01:00
Cosimo Lupo
20320494de Revert "[classifyTools] 'sorted' keyword argument should be boolean"
This reverts commit 34d43aa797c8b9e4ff42782bfdd7abde7711835d.

See 34d43aa797 (commitcomment-17012817)
2016-04-08 21:54:56 +01:00
Cosimo Lupo
1aa92de366 [classifyTools] must sub-class from 'object' to use new-style classes on py2 2016-04-07 12:09:28 +01:00
Cosimo Lupo
c9db89a851 [classifyTools] fix doctest failing on pypy
It seems like sets are hashed differently in CPython and PyPy.
Because of this, the returned list of class sets may have a different sort
order (within each class size) between the two implementations.

For now, I make the test pass on both CPython and PyPy by casting the returned
list of sets into a set of (frozen) sets, and asserting that its *content* is
correct, without considering the *order* of the sets in the list.
2016-04-07 11:54:53 +01:00
Cosimo Lupo
d2aab877bb [classifyTools] fix CI doctest failures on python 3
set objects have different __repr__ on python 2 and 3

Python 3:
    >>> {1, 2, 3}
    {1, 2, 3}

Python 2
    >>> {1, 2, 3}
    set([1, 2, 3])

(one among the several reasons I don't particularly like doctest...)
2016-04-07 10:00:49 +01:00
Cosimo Lupo
4ac53ab8b8 add missing 'import sys'
A couple of modules were relying on the fact that the 'sys' module was being implicitly imported by 'from py23 import *'.
The 'py23.__all__' does not include 'sys'. I think it's better to always import 'sys' explicitly when needed.
2016-04-07 09:42:13 +01:00
Cosimo Lupo
69bee48a8f [classifyTools] semicolon 2016-04-07 09:33:02 +01:00
Cosimo Lupo
34d43aa797 [classifyTools] 'sorted' keyword argument should be boolean
or at least that's what the signature and the docstring imply.
2016-04-07 09:31:12 +01:00
Cosimo Lupo
da04ab2909 [py23] define __all__ variable
specifying the list of names that are imported when `from py23 import *` is used
2016-04-07 09:21:05 +01:00
Behdad Esfahbod
6bfe6989de [Snippets/symfont] Add glyph perimeter to GlyphStatistics 2016-04-06 18:15:43 -07:00
Behdad Esfahbod
f70d264ef0 Add __bool__ to fontTools.misc.transform.Transform 2016-04-06 18:15:43 -07:00
Behdad Esfahbod
552b5d97fc Add fontTools.misc.classifyTools, helpers to classify things into classes
To be extended with more features / API.  API might change.
2016-04-06 18:15:43 -07: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
bdfc3fa7c9 Merge pull request #22 from googlei18n/py3ufo3
Python 3, ufo3 compatibility
2016-04-05 11:40:02 -07:00
James Godfrey-Kittle
7fe4fd0fe2 [ufo] Don't touch components or UFO2-style anchors 2016-04-05 10:41:48 -07:00
James Godfrey-Kittle
802bb813f5 [ufo] Changes for python 3 compatibility 2016-04-05 10:37:07 -07:00
James Godfrey-Kittle
b1087a138f Remove old robofab reference in readme 2016-04-05 10:34:51 -07:00
Cosimo Lupo
e3f3f4f976 [_m_a_x_p] rename 'allXMaxIsLsb' variable to 'allXMinIsLsb' for clarity's sake
The previous 'allXMaxIsLsb' name was misleading.
The 'allXMinIsLsb' boolean variable cooresponds to the head table's Bit 1.
This is set whenever all glyphs have the bbox.xMin equal to the respective
left sidebearing (and therefore "left sidebearing point at x=0").
2016-04-05 16:17:38 +01:00
James Godfrey-Kittle
f6853d0e48 Merge pull request #21 from googlei18n/defcon
Defcon compatibility
2016-04-04 17:49:03 -07:00
James Godfrey-Kittle
983307d9cd [ufo] Allow input fonts with quadratic curves 2016-04-04 17:30:33 -07:00
James Godfrey-Kittle
0ec7495516 [ufo] Handle endPath 2016-04-04 16:08:15 -07:00
James Godfrey-Kittle
b8fa142bef [ufo] Clear existing contours when adding new ones 2016-04-04 15:30:39 -07:00
James Godfrey-Kittle
17e25e8ec9 Rename rf module to ufo 2016-04-04 15:18:27 -07:00