6348 Commits

Author SHA1 Message Date
Cosimo Lupo
d874782ee4 [xmlWriter] add 'newlinestr' argument for overriding os-specific line endings
By default (newlinestr=None), the XMLWriter will still use the `os.linesep` as the
newline string.
Otherwise, it will use the specified `newlinestr`.

This is useful when TTX files under version control are being written from
multiple platforms; in which case, one usually wants to always use one
specific line ending (most likely LF, which is what the XML spec itself
normalizes it to).
2016-10-20 16:53:07 +01:00
moyogo
678876325e Add hhea tests 2016-10-18 18:18:09 +02:00
moyogo
004a5b7361 feaLib: hhea tableVersion = 0x00010000 2016-10-18 18:18:09 +02:00
moyogo
5b785950f8 feaLib: add test for vhea 2016-10-18 18:18:09 +02:00
moyogo
f55c60c4df feaLib: add vhea table 2016-10-18 18:18:09 +02:00
moyogo
074f6ea009 Add vhea tests 2016-10-18 18:18:09 +02:00
moyogo
bd4d43e7c5 feaLib: hhea test with hex version 2016-10-18 18:18:09 +02:00
moyogo
6e85a6c4fb otConverters: use fixedTools fixedToVersion() and versionToFixed() 2016-10-18 18:18:09 +02:00
moyogo
cf2c6ec127 vhea: tableVersion as L instead of 16.16F, hex in XML 2016-10-18 18:18:09 +02:00
moyogo
f67d0eb826 hhea: tableVersion as L instead of 16.16F, hex in XML 2016-10-18 18:18:09 +02:00
moyogo
f591e8c503 fixedTools: add ensureVersionIsLong() and versionToFixed() 2016-10-18 18:18:09 +02:00
moyogo
d7a3ae3f3d vhea: vhea.reserved0 should be vhea.caretOffset 2016-10-18 18:18:09 +02:00
Cosimo Lupo
5526dc8e17 README.md: add PyPI badge
[skip ci]
2016-10-18 12:23:52 +01:00
Cosimo Lupo
51da9ba81e start new release cycle 2016-10-18 12:21:51 +01:00
Cosimo Lupo
4cb0bb1ff5 Merge pull request #47 from unified-font-object/deploy
Deploy to PyPI and Github Releases on tags
2016-10-18 12:07:47 +01:00
Cosimo Lupo
03114c3b47 setup.py: version 2.0.0 2016-10-18 12:04:40 +01:00
Cosimo Lupo
61b93e9a14 configure deployment to Github Releases and PyPI upon tags 2016-10-18 12:04:40 +01:00
Cosimo Lupo
c86c970219 .gitignore: add .eggs/ and .tox/ folders
.eggs/ is where setuptools downloads the setup and test requirements.

.tox/ is the folder containing Tox's cache and virtual environments

[skip ci]
2016-10-18 11:09:43 +01:00
Adrien Tétar
8a1075cfe4 Merge pull request #45 from anthrotype/testdata
move all test data inside the inlined ufoLib/test modules, and install them
2016-10-17 20:53:02 +02:00
Cosimo Lupo
116bc0b6d2 setup.cfg: include LICENSE.txt in wheel distribution packages 2016-10-17 19:41:15 +01:00
Cosimo Lupo
3b9ced71e0 move all test data inside the inlined ufoLib/test modules, and install them
Since the test suite is inlined, it makes sense to also have the test data installed alongside the test modules.
So all the content of the two top-level folders Data and TestData is now placed inside Lib/ufoLib/test/testadata.
The MANIFEST.in has been adjusted accordingly.
The `install_package_data` in setup.py ensures the package data specified in the manifest is installed with the package.

This way anyone who installs ufoLib (even the wheel from PyPI) can run the test suite with `pytest --pyargs ufoLib`.
2016-10-17 19:41:13 +01:00
Cosimo Lupo
d7b7cbd9cd Merge pull request #706 from fonttools/hmtx-width-ushort
[_h_m_t_x] Read advanceWidth as unsigned short (uint16)
2016-10-17 19:31:53 +01:00
Adrien Tétar
21b0f40ddc Merge pull request #44 from anthrotype/setup-fixes
setup.py: point package url to github repo; remove `import fontTools` check
2016-10-17 17:41:34 +02:00
Cosimo Lupo
6bfe462ba7 setup.py: point package url to github repo; remove import fontTools check
The `url` field in setup.py must be the home page for the package.
I moved the url to the UFO spec in the 'long_description', so it will show up in the PyPI project page.

Checking for `import fontTools` is redundant since dependency resolution is now automatic.
2016-10-17 16:18:57 +01:00
Cosimo Lupo
835872946d Merge pull request #43 from anthrotype/fonttools-3.1.2
specify fonttools 3.1.2 from PyPI in both setup.py and requirements.txt
2016-10-17 15:34:52 +01:00
Cosimo Lupo
e7aa1768c0 specify fonttools 3.1.2 from PyPI in both setup.py and requirements.txt 2016-10-17 15:19:59 +01:00
Cosimo Lupo
67e75348ea Merge pull request #710 from anthrotype/wheel-license
[setup.cfg] ensure LICENSE is included in wheels
2016-10-17 10:41:41 +01:00
Cosimo Lupo
cdee7040ab [setup.cfg] ensure LICENSE is included in wheels 2016-10-17 10:31:53 +01:00
moyogo
4dd1e73b04 Revert "Merge pull request #606 from anthrotype/cff-dehint"
This reverts commit 25a03f5a5736ed70791a8dde31605ed4cee9bbd9, reversing
changes made to 8351600bc628278960390d747f45593a50b7c1ea.
2016-10-14 20:20:35 +01:00
Sascha Brawer
0588502771 Add otConverters.NameID (#708)
When writing XML, this produces a comment with the English name.
If the name ID is missing from the name table, it logs a warning.
2016-10-14 21:04:35 +02:00
Cosimo Lupo
25a03f5a57 Merge pull request #606 from anthrotype/cff-dehint
subset: must 'draw' charstrings to set 'width' attribute before calling 'drop_hints'
2016-10-14 18:43:15 +01:00
Cosimo Lupo
2300b9c168 [_h_m_t_x] use tuple() instead of list() for metrics dict values
As suggested in https://github.com/fonttools/fonttools/pull/706#commitcomment-19429339
2016-10-14 18:35:33 +01:00
Cosimo Lupo
8a0172a562 [MANIFEST.in] add testdata/*.bin
I had forgotten to add the testdata/C_F_F_.bin file to the manifest.
This means the --pyargs option from c117927 is working as expected! :)

Fixes https://ci.appveyor.com/project/fonttools/fonttools/build/1.0.81/job/ktx2c62c6yug38wk#L1089
2016-10-14 18:35:33 +01:00
Cosimo Lupo
907af836c0 [tox] add 'coverage' toxenv to make local html coverage report
This is useful if one wants to run coverage tests locally, and get a nice HTML report while one is writing tests.

Just run:

$ tox -e coverage -- {optional pytest arguments}

And you get a "htmlcov/index.html" to view in your browser.
2016-10-14 18:35:33 +01:00
Cosimo Lupo
7adfe98690 [_v_m_t_x_test] add test for vmtx table (simply inherits from hmtx one) 2016-10-14 18:35:33 +01:00
Cosimo Lupo
f6b951c6da [_h_m_t_x_test] add test module for hmtx table compiler/decompiler 2016-10-14 18:35:33 +01:00
Cosimo Lupo
115993216a [_h_m_t_x] use list() instead of tuple() in __setitem__
This is for consistency with the way the hmtx `decompile` method already worked.
2016-10-14 18:35:33 +01:00
Cosimo Lupo
2839145c05 [_h_m_t_x] log glyph names with negative advances upon compile; re-raise struct.error as TTLibError with nicer message 2016-10-14 18:35:33 +01:00
Cosimo Lupo
ca6beadd22 [_h_m_t_x] warn if hhea.numberOfHMetrics > maxp.numGlyphs
the comment said "We warn later" but that's not true.
2016-10-14 18:35:33 +01:00
Cosimo Lupo
c8901bf940 [tox] remove unneeded print statements
This information is already displayed by pytest in the header of the test run output
2016-10-14 18:35:33 +01:00
Cosimo Lupo
ce313520cf [tox] use --pyargs fontTools to run tests against package installed in tox env instead of source dir
This will ensure we don't forget to add any data files to the MANIFEST.in (which means test data is not available to the inlined tests).

{posargs} allows to pass extra arguments to the test runner, when runing `tox -- {posargs}` from the command line.

With `--pyargs` option, pytest tries to interpret arguments as python package/module names, and if import fails as regular filesystem paths.
2016-10-14 18:35:33 +01:00
Cosimo Lupo
b1846201ba [_h_m_t_x] set longMetricFormat='Hh' as class attribute
In theory this could be overridden with the old 'hh' struct format, though I wouldn't recommend it.
2016-10-14 18:35:33 +01:00
Cosimo Lupo
1d545b8f91 [_h_m_t_x] Read advanceWidth as unsigned short (uint16); warn on decompile if exceeds 0x7FFF; raise on compile if negative
struct.pack will raise with `argument out of range` when trying to compile a negative integer as unsigned "H".
2016-10-14 18:35:33 +01:00
Cosimo Lupo
8351600bc6 Merge pull request #707 from anthrotype/travis-osx
[Travis] try to speed up osx builds a bit
2016-10-14 18:30:28 +01:00
Cosimo Lupo
30799bb6df [travis] also drop 3.4 for OSX; only run 2.7 and 3.5 2016-10-14 18:07:17 +01:00
Cosimo Lupo
941234c93d [travis] test on latest PyPy 5.4.1 2016-10-14 17:43:05 +01:00
Cosimo Lupo
e4a3d4aba4 [travis] don't test on OSX pypy any more
I believe it's enough to test pypy implementation only on Linux.
We don't really need to also test it in on OSX, as fonttools is a pure python project so it should just work there as well.
Travis CI has just become too slow...
2016-10-14 17:41:22 +01:00
Cosimo Lupo
f6362b0ebf Revert ".travis.yml: also test with built-in Python 2.7 on OSX 10.11"
This reverts commit a63e1ed5d37797ee361b0a23d09bf8a03aaee23d.

The default OSX Travis worker is now osx10.11-xcode7.3 so we don't need to separately test the latter as it's now default.

Also, since the OSX are getting quite slow lately, we can't afford to test two different python2.7 on OSX; so from now on we just test the system Python 2.7.11 that comes with El Capitan (so no more 2.7.5 on Mavericks).
2016-10-14 17:31:16 +01:00
Behdad Esfahbod
72f5cb8579 Fixup 2016-10-13 15:59:25 -07:00
Behdad Esfahbod
3872e3ba3b Revert "remove 'fontTools' symbolic link in Snippets as not cross-plaftorm"
This reverts commit d2e73ca1abf37eaa65a870851cb8427cb6541131.

Even if not cross-platform, this provides useful functionality on Linux and
Mac.
2016-10-13 15:47:49 -07:00