in _checkFloat (used whenever we're about to update the inner array) we check whether the value exceeds a short integer, and if so we convert the array to floats.
Also, we make sure we call __setitem__ (which in turn calls _checkFloat) instead of updating the inner array directly in the rest of the math methods.
the logger name is constant (based on the user class's name and module)
so we can cache it.
(this means the LogMixin will only work on regular dict-based classes,
not on 'slotted' classes. But that's ok
findDefault only looks for the sourceDescriptor on the default of all axes. Returns None otherwise.
Remove _axesAsDict - not needed.
Shortened logger name to "DesignSpaceLog"
Comment out self._locationFromElement - not sure why it exists, let's see if someone complains.
Only raise missing axes error if we read a location *and* we have no axes. This allows a designspace file with a lib but without sources.
Only do findDefault() if we have sources.
We know what the default location is before we start reading the masters and there is no guessing.
findDefault() method: default master is at all default values of all axes, or if that fails, the master with the copyInfo flag.
Warn if a location contains an axis that is not defined in the axes element. Otherwise ignore this value, no guessing.
Remove rulesToFeature() function.
* [designspaceLib] WIP: add conditionSets to RuleDescriptor...
the BaseDocReader still needs to be updated to be able to read both
legacy condition-without-conditionset and new-style conditionset
elements.
* test_rules: replace rule.conditions with conditionSets
* Tests: update test.designspace to use conditionset; replace 'with' with 'byname' in sub element
I don't like too much that now 'byname' precedes alphabetically 'name'.
We need to see if ElementTree allows to sort attribute arbitrarily
* Change versionnumber to 4.0 - would that be enough, or should there be seperate major / minor fields?
If we bump the version up to numeral 4, I'd like the check for the with / byname attributes. We can read the old `byname` and only write the new `with`.
Remove support for `initial` in axis attributes.
* WIP - formatversion, with attribute,
* WIP
anything that is not version 4.0 is version 3.0
added some local paths to the test so I can see what it's generating. I can take this out later.
* WIP
read the conditionsets properly. This makes the tests fail no longer.
* WIP
disambiguate axis tags from axis names. Test axes are now called "axisName_x", tags are called "TAGX"
* WIP forgot to push
* WIP
Raise `DesignSpaceDocumentError` when no maximum or minimum are given in a condition.
Add test for such an incomplete rule.
Remove path cruft.
* WIP improved test of raised error.
* WIP because no bot.
* WIP more spaces around percents.
* WIP - don't skip empty subs, just load whatever is there.
* WIP do not permit empty axes in a location when evaluating a rule. Fix some tests.
* WIP missed a str(tempdir), some rule tests.
* WIP proposal for changes to the designspace spec to the `rule` and `sub` elements.
* WIP edits.
* WIP. Typo.