Behdad Esfahbod
0213bea88e
[TupleVariation] Option to optimize for loading speed, not size
2024-10-06 18:11:48 -06:00
Behdad Esfahbod
68277fc0b5
[TupleVariation] Fix 32bit reading / writing
2024-05-22 18:45:27 -06:00
Behdad Esfahbod
8cce745d90
[TupleVariation] Assert message
2024-05-22 18:45:27 -06:00
Behdad Esfahbod
b4d3fc54b2
[TupleVariation] Support 32bit encoding in delta-encoding
...
Uses an used combination of top two bits.
2024-05-22 18:45:27 -06:00
Behdad Esfahbod
02c6a94529
[VARC] Use TupleVariation value encoding
2024-05-22 18:45:27 -06:00
Khaled Hosny
cf08265cd5
Black
2024-02-06 15:47:35 +02:00
Behdad Esfahbod
cc09d5f381
[TupleVariation] Slightly speed up compileCoords
...
Small but measurable speedup.
2023-10-14 12:57:32 -04:00
Nikolaus Waxweiler
d584daa8fd
Blacken code
2022-12-13 11:26:36 +00:00
Behdad Esfahbod
6aca5be9b7
[gvar] Don't expand glyph for unused pointCount
...
Keep it in the API though.
2022-12-09 11:39:07 -07:00
Behdad Esfahbod
5ff9546531
[TupleVariation] Add __imul__
2022-10-13 10:35:02 -06:00
Cosimo Lupo
a0bd872f0e
TupleVariation: make shared tuples order deterministic
...
most frequent first (like before https://github.com/fonttools/fonttools/pull/2351 ), only sort ties alphabetically
2021-07-02 12:52:54 +01:00
Garret Rieger
7f9e2c3808
sort shared tuples produced by Counter.most_common()
...
In python 3.7 and earlier most_common() sorts first by the item count and then arbitrarily in the event of ties. This can result in two identical instancing operations producing different binary results.
2021-06-30 17:00:59 -07:00
Behdad Esfahbod
dc0600c764
[TupleVariation] Fold call to hasImpact() into getUsedPoints()
...
Related:
https://github.com/fonttools/fonttools/issues/2263
Part of:
https://github.com/fonttools/fonttools/pull/2261
2021-04-09 13:36:29 -06:00
Behdad Esfahbod
bcd4a62f10
[TupleVariation] Use b'' instead of NotImplemented for "use shared points"
2021-04-09 12:16:15 -06:00
Behdad Esfahbod
ef0d695de9
[TupleVariation] Remove unused usesSharedPoints return from tv.compile()
2021-04-09 12:13:49 -06:00
Behdad Esfahbod
85c9102d47
[TupleVariation] Use Counter() instead of defaultdict() for sharedCoords
2021-04-09 09:23:34 -06:00
Behdad Esfahbod
f3f1628571
[TupleVariation] Comment
2021-04-08 19:47:28 -06:00
Behdad Esfahbod
1650c15b55
[TupleVariation] Minor shift more code into getUsedPoints()
2021-04-08 19:32:54 -06:00
Behdad Esfahbod
050b07d336
[TupleVariation] Optimize compileDeltas()
2021-04-08 18:24:13 -06:00
Behdad Esfahbod
78e9bc7b49
[TupleVariation] Optimize compilePoints()
...
Special-case "all points used" representation in the internal API.
2021-04-08 18:24:13 -06:00
Behdad Esfahbod
e0513cfee3
[TupleVariation] Avoid recompiling pointData
...
Pass them down to tv.compile().
Tests need to be updated for changed new internal tv.compile() API.
2021-04-08 18:22:00 -06:00
Behdad Esfahbod
7051829f75
[TupleVariation] Compile point set counts outside of key()
2021-04-08 17:42:10 -06:00
Behdad Esfahbod
683e898768
[TupleVariation] Optimize point-sharing
2021-04-08 17:36:58 -06:00
Behdad Esfahbod
f40e522ce9
[TupleVariation] Speed up case of useSharedPoints=False
2021-04-08 15:57:53 -06:00
Behdad Esfahbod
92bf782ef3
[TupleVariatin] Minor optimization of sharedPoints
2021-04-08 15:53:48 -06:00
Behdad Esfahbod
8dae627d3f
[TupleVariation] Rewrite getUsedPoints() as list comprehension
2021-04-08 15:50:52 -06:00
Behdad Esfahbod
12c88cc3a4
[TupleVariation] Remove use of byteord()
2021-04-08 15:50:52 -06:00
Behdad Esfahbod
c88aab1544
[TupleVariation] Minor optimization in compileDeltaValues_()
2021-04-08 15:50:52 -06:00
Behdad Esfahbod
997b976e9a
[TupleVariation] Rewrite assertion faster
2021-04-08 15:50:52 -06:00
Behdad Esfahbod
67794827ff
[TupleVariation] Use defaultdict in compileSharedTuples
2021-04-08 11:56:36 -06:00
Behdad Esfahbod
9b379bbb87
[TupleVariation] Further optimize compileCoord()
2021-04-08 11:51:15 -06:00
Behdad Esfahbod
48e827aa21
[TupleVariation] Minor optimization in compileCoord()
2021-04-08 11:46:32 -06:00
Behdad Esfahbod
416ff89171
[TupleVariation] Minor optimize in using sharedCoordinates
2021-04-08 11:40:44 -06:00
Behdad Esfahbod
ec80f24315
[TupleVariation] Remove use of bytesjoin()
2021-04-08 11:11:50 -06:00
Behdad Esfahbod
f8d54b1ebb
[TupleVariation] Minor rewrite bound checks
2021-04-08 11:01:20 -06:00
Behdad Esfahbod
5c815a6def
[TupleVariation] Do away with another bytesjoin()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
a715f57130
[TupleVariation] Optimize compilePoints()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
6abf8680b4
[TupleVariation] More bytes optimization
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
250e59886f
[TupleVariation] Micro-optimize away a lambda
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
62a89bc3d5
[TupleVariations] Optimize serialization loops
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
b1b672e17e
[TupleVariation] Remove a few hot asserts
...
We verify the code instead.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
4cbf6ae1c4
[TupleVariation] Minor
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
d5d771b2bf
[TupleVariation] Use array.array to serialize multiple deltas
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
1e6b20cc2c
[TupleVariation] Don't round deltas (again!)
...
Remove tests that passed float in.
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
9405244617
[TupleVariation] Use bytearray() instead of io.Bytes()
2021-04-08 09:41:45 -06:00
Behdad Esfahbod
8284af6b61
[TupleVariation] Use list(coordinates) instead of coordinates[:]
...
The latter is more expensive in GlyphCoordinates().
2021-04-08 09:41:45 -06:00
Just van Rossum
5fc65d7168
Misc py23 cleanups ( #2243 )
...
* Replaced all from ...py23 import * with explicit name imports, or removed completely when possible.
* Replaced tounicode() with tostr()
* Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO.
* Replaced all unichr() with chr()
* Misc minor tweaks and fixes
2021-03-29 11:45:58 +02:00
Cosimo Lupo
79d654eaf2
TupleVariation: use floatToFixedToStr and strToFixedToFloat in toXML/fromXML methods
2019-10-08 13:40:04 +01:00
Chris Simpkins
12814aa7b1
refactor array.fromstring to array.frombytes
...
fromstring is a deprecated array method
2019-08-29 22:58:42 -04:00
Nikolaus Waxweiler
01328213c7
Remove __future__ imports
2019-08-09 12:20:13 +01:00