39 Commits

Author SHA1 Message Date
Nikolaus Waxweiler
01328213c7 Remove __future__ imports 2019-08-09 12:20:13 +01:00
Cosimo Lupo
8350332461
{v,h}mtx: allow to compile/decompile even without {v,h}hhea table
when no horizontal/vertical header table is present, we assume numberOfHMetrics == maxp.numGlyphs.
This allows to compile/decompile incomplete fonts, only containing head, maxp, hmtx, loca and glyf (or CFF),
that is the bare minimum to temporarily store glyph outline and metrics data for use with sparse/intermediate
master TTFs in varLib.
See https://github.com/googlei18n/ufo2ft/issues/308
2019-01-14 13:45:24 +00:00
Behdad Esfahbod
349cd94d17 [graphite] Fix for big-endian
Make all "if sys.byteorder..." and "byteswap" be on the same line for
earsier grep verification.

Fixes https://github.com/fonttools/fonttools/issues/1311
2018-09-05 21:12:53 -07:00
Cosimo Lupo
d570fc038a
use otRound when rounding visual coordinates or deltas
So we now round towards +Infinity in:

- floatToFixed (which fully examplify that quotes from OT spec)
- psCharStrings: when packing floats as fixed 16.16
- t2CharStringPen: when rounding coordinates and advance widths
- subset: when rounding advance widths to compute average
- TupleVariation: rounding gvar deltas
- _g_l_y_f: when rounding coordinates: both in GlyphComponent.{x,y}
  and for GlyphCoordinates.toInt()
- _h_m_t_x: for rounding horiz/vert metrics
- varLib: rounding horiz metrics and deltas
2018-06-14 17:40:11 +01:00
Cosimo Lupo
28bb992c1f replace int(round(...)) with round(...)
We don't need to cast to int when using the round function from py23,
as this is a backport of python3's built-in round and thus it returns
an int when called with a single argument.
2017-10-22 12:03:52 +01:00
Cosimo Lupo
5e3734c91e
[_h_m_t_x] round float values to int
No need to issue warnings, as we don't do that either for glyf coordinates.
Fixes #593
2016-10-21 12:40:00 +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
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
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
justvanrossum
650aae7cf3 making error and warning consistent #604 2016-05-13 07:10:47 +02:00
justvanrossum
1394416821 Better error message for broken hmtx/vmtx table, addressing #604. 2016-05-13 07:07:52 +02:00
Cosimo Lupo
abe3202412 [_h_m_t_x] replace warnings with logger 2016-01-27 19:02:48 +00:00
Behdad Esfahbod
b30e12ae00 More whitespace 2015-04-26 02:01:01 -04:00
Behdad Esfahbod
bd67253118 Some more whitespace fixes from pep8 tool 2015-04-26 01:59:01 -04:00
Behdad Esfahbod
487b15fd94 Add a few __delitem__ implementations 2014-05-14 13:51:10 -06:00
Behdad Esfahbod
37b7bad5b1 Micro-optimize hmtx/vmtx loading 2014-05-14 00:30:02 -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
f4e39bf363 Convert warning to warnings module 2013-12-04 21:17:13 -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
7ed91eca1e py23 import in all nontrivial source files and unused import cleanup 2013-11-27 15:25:00 -05:00
Behdad Esfahbod
ac1b435946 2to3 --fix=idioms 2013-11-27 04:15:34 -05:00
Behdad Esfahbod
3a9fd30180 2to3 equivalent to --fix=tuple_params
I hope I got this all right...
2013-11-27 03:30:21 -05:00
Behdad Esfahbod
180ace6a5f 2to3 --fix=ne 2013-11-27 02:40:30 -05:00
Behdad Esfahbod
2b06aaa2a6 2to3 --fix=import 2013-11-27 02:34:11 -05:00
Behdad Esfahbod
4c2f1b6a2c [REGRESSION] _h_m_t_x.py", line 60, in compile metrics = sum(metrics,[])
TypeError: can only concatenate list (not "tuple") to list

Fixes https://github.com/behdad/fonttools/issues/30
2013-11-25 04:47:36 -05:00
Behdad Esfahbod
035bc7da23 Port hmtx table from numpy to array module 2013-08-19 14:17:10 -04:00
pabs3
3de0e58f29 Fix bug in last commit
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@587 4cde692c-a291-49d1-8350-778aa11640f8
2011-02-13 07:28:42 +00:00
pabs3
d3d7250fc3 Be more thorough when working around font bugs in the hmtx table
https://bugs.launchpad.net/ubuntu/+source/fonttools/+bug/223884

git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@586 4cde692c-a291-49d1-8350-778aa11640f8
2011-02-13 07:01:11 +00:00
jvr
1b7d54fedc converted usage of Numeric to numpy
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@537 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-04 15:25:27 +00:00
jvr
212ea14706 fixed oversight in sys.byteorder transition
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@528 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-01 15:31:01 +00:00
jvr
9be387c94f Use sys.byteorder, getting rid of ttLib.endian
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@527 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-01 11:43:01 +00:00
jvr
1288f8ad41 whoops, lastIndex can't be smaller than 1
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@182 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-02 10:53:10 +00:00
jvr
ca4c45681e Complety revised the XML import code:
- use expat instead of xmlproc
- minor fixes here and there

Fixed bug in hmtx/vmtx code that only occured if all advances were equal.

FontTools now officially requires Python 2.0 or up, due to exapt and unicode.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@179 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-01 21:06:11 +00:00
Just
731e4377e1 don't complain as loudly with fonts that don't completely adhere to the spec
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@127 4cde692c-a291-49d1-8350-778aa11640f8
2000-11-03 10:29:08 +00:00
Just
7842e56b97 Created a new library directory called "FreeLib". All OpenSource RFMKII components will reside there, fontTools being the flagship.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@2 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-16 21:34:53 +00:00