Erik van Blokland
0420951858
accomodate a logger from somewhere else.
2017-10-27 09:47:16 +02:00
Jany Belluz
5140c3d068
Use forward slashes on all platforms
2017-10-03 17:31:14 +01:00
Erik van Blokland
12383a1f4a
Make sure the output ufo has a kerningGroupConversionRenameMap, otherwise UFOs generated in version 2 will have invalid kerning group names.
...
Add a description and example of the instance name localisation.
2017-09-19 16:24:35 +02:00
Erik van Blokland
6575d5b69d
Collect messages during generating.
2017-09-16 09:07:42 -04:00
Erik van Blokland
3e38dd68cd
Set default UFO format version to 3.
...
If the ufo a;lready exists, read the format version with plistlib and make sure we can overwrite if we have to. This seemed a better option than to depend on ufoLib.
2017-08-28 15:49:53 +02:00
Erik van Blokland
2a425c7224
Add a test for writing unicode values to a glyph.
2017-08-25 13:41:21 +02:00
Erik van Blokland
7a5c21c910
The unicode attribute of the glyph element can contain multiple unicode values, separated by spaces.
...
See c05145b626
2017-08-25 13:17:25 +02:00
Erik van Blokland
735edc7e61
Merge remote-tracking branch 'origin/mutedGlyphNames_issue15'
2017-08-16 14:21:51 +02:00
Erik van Blokland
f9daaf6690
ufoProcessor: add a convenience build() function to handle the processing of a document.
...
Handle font.lib better, add some tests.
2017-08-16 14:18:35 +02:00
Cosimo Lupo
16a0519f8a
[ufoProcessor] convert location dict_items to list
...
Fixes #17
2017-08-07 10:29:39 +01:00
Erik van Blokland
8e3705472e
Bah, bunch of localisation edits in this one as well. That was not intended. But let's see if it works. Changed in ReadMe about adding mute information to instance glyph elements.
2017-07-27 14:59:12 +02:00
Erik van Blokland
07cb0c3ac1
Localised names roundtrip in test.
2017-07-27 14:51:35 +02:00
Erik van Blokland
de21a5b300
Merge pull request #14 from LettError/localised-names
...
Localised names
2017-05-13 10:52:56 +02:00
Erik van Blokland
3f54b9969e
Add test.
...
Not adding localised names to UFO3 nametable yet. Need more info.
2017-05-13 10:46:49 +02:00
Denis Moyogo Jacquerye
06f5b11b85
use intOrFloat() for attributes of axis and map
2017-05-05 16:10:26 +01:00
Erik van Blokland
c27e22ce77
Pass axis minimum, default and maximum values through self.intOrFloat() to tidy up the xml a bit.
2017-04-24 10:19:57 +02:00
Erik van Blokland
c81fb4068d
Roundtrip localised names.
2017-04-23 23:27:41 +02:00
Erik van Blokland
5a21c9299c
Write some localised name elements for an instance. Assume "en" is the default language code.
2017-04-23 16:16:22 +02:00
Erik van Blokland
3b27469c04
sketch out localisable names following ideas from #9
2017-04-23 15:39:17 +02:00
Sascha Brawer
1328036a1b
Make the order of location elements deterministic
...
Fixes https://github.com/LettError/designSpaceDocument/issues/10 .
2017-04-11 18:20:57 +02:00
Erik van Blokland
22d8100e4c
As with MutatorMath, it's nicer to use enumerate.
2017-03-29 00:08:25 +02:00
Erik van Blokland
82e48b95b7
Source elements may not have a name attribute, but it is needed for for some processes afterwards.
...
If the element does not have one: create a new one with pattern "temp_master.%d"%(sourceCount).
The document writer then checks for source name attributes with this pattern so that is does not export.
2017-03-28 23:00:13 +02:00
Erik van Blokland
1b4106981e
Better logic for overwriting exisiting axes in checkAxes()
2017-03-27 15:00:07 +02:00
Erik van Blokland
36425a83f6
Add some warnings if we can't make mutators for some reason.
2017-03-20 14:21:58 +01:00
Erik van Blokland
81087f79bd
Use tagForAxisName to get tag and labelnames for axes we know.
2017-02-26 11:29:50 +01:00
Erik
48a6684b34
Remove unnecessary print.
2017-02-23 22:54:08 +01:00
Erik
a089ffe4c3
Even more explicit check for the presence of axes elements in the document.
2017-02-23 11:06:22 +01:00
Erik
0acaa233eb
Better check if there are no axes in a document.
2017-02-22 11:15:10 +01:00
Erik
c31da9df47
Some legacy documents do not have an <axes> element. This causes problems reading and processing the file.
...
If there are no defined axes, use the available names from locations in the document. New axes are tagged with "_" as first letter. There is no guarantee that the guessed axes have the same dimensions as the originals.
2017-02-21 15:47:09 +01:00
Erik
22ce159ecd
Merge remote-tracking branch 'origin/relative-paths'
...
# Conflicts:
# Lib/designSpaceDocument/__init__.py
2017-02-06 22:35:55 +01:00
Erik
6ba727bed3
More testcases for the relaive path processing.
2017-02-06 22:33:03 +01:00
Erik
1dd261f6e6
Add comment.
2017-02-06 14:40:20 +01:00
Erik
6e724af43b
Clarified how designSpaceDocument object handles the filename and path attributes of the descriptors.
2017-02-06 14:17:56 +01:00
Erik
e102c5e992
Tests to verify the handling of filename and path attrs.
2017-02-06 10:29:59 +01:00
Erik
13abae94c5
New "filename" attribute for source and instance descriptor objects that contains the relative path to the ufo.
...
So we have:
descriptor.filename: the path to the UFO, relative to the documentpath
descriptor.path: the resolved, absolute path to the UFO
This means we have to be aware of a couple of situations, described in updatePaths() and testPatgNameResolve().
Case 1: both filename and path attributes are None. Action: write the descriptor as is, without filename attr.
Case 2: filename attribute points somewhere, but the path attribute is None. So we can't actually verify if the UFO really exists, but we don't have to. Action: write the filename attribute as is. We could calculate a new path though.
Case 3: filename attribute is None, path attribute has a path. So there is no legacy value for filename that we need to look out for. Action: we can calculate a new relative path and store that in filename.
Case 4: filename and path attributes are not None, but they're in conflict, pointing to different places/ So the absolute path of the UFO and the absolute path of the document produce a different relative path than is stored in filename. One of them must be wrong.
When a new filename is set, make sure to set the path attribute to None and vice versa.
2017-02-04 18:17:20 +01:00
Erik
dc483f9c17
Not sure why this string does not compare, but it is not vital and I want the tests to be clear.
2017-02-04 15:16:00 +01:00
Erik
91d4b89cd0
filename attr to store the actual string of the relative path. path attr to store the absolute path to the file (if we can find it)
2017-02-04 10:30:03 +01:00
Erik
146bcd078d
Option to only process specific glyphnames in ufoProcessor.
2017-01-29 11:56:17 +01:00
Erik
659a79fb89
Store the designspace location in the instance lib.
2017-01-16 16:17:05 +01:00
Erik
9da2297827
Forgot to check these in.
2017-01-10 14:37:48 +01:00
Erik
5ef9022a31
Adds a list for reporting problems that were small enough not to stop generating, but big enough not to ignore.
2017-01-09 11:36:36 +01:00
Erik
6d421e0871
Use the axis map when generating ufos.
2017-01-06 17:37:29 +01:00
Erik
70437f0c87
Wrap makeInstance in a try/except. Should be logged better, but at least it does not halt the process.
2016-12-19 10:25:20 +01:00
Erik
3a693b37ec
Improve support for rules only a minimum or a maximum attribute.
...
More tests.
2016-12-18 22:15:54 +01:00
Erik
95cc8885d4
Add a test that looks at the remapping of components.
2016-12-17 12:04:46 +01:00
Erik
6f4eac1aaa
Add unicode values to instance glyphs.
...
Fixes typo.
2016-12-17 11:46:30 +01:00
Erik
130e02f067
Fixes problem with glyphNames list.
...
The ufoProcessor generates without mutatorMath's reader.
2016-12-14 12:51:14 +01:00
Erik
bc785f5e0f
Rename ufo.py to ufoProcessor.py
2016-12-13 21:24:31 +01:00
Erik
ef80bbf890
Adds a function for swapping glyphs if we want to express a rule in a UFO.
...
More tests.
2016-12-13 17:56:21 +01:00
Erik
ab450a9017
Proposal to change the condition from axis.tag" to axis.name: conditions, locations use the axis.name.
...
This makes it possible to evaluate a rule without having to look up the axis data.
Evaluate and apply a rule to a list of glyphnames.
More tests.
2016-12-13 08:53:49 +01:00