A bit restructured: - mutators for info, kerning and glyphs are lazily constructed. Only make them if they're asked for. - getInfoMutator() makes / returns info mutator. - getKerningMutator() makes / returns kerning mutator - getGlyphMutator() makes / returns glyph mutator - loadFonts attempts to load the master UFOs and determine the defautl font by looking for the copyInfo flag, or if that is not found, by using mutator's findBias. Will warn if there is a conflct, but the copyInfo flag is leading. - makeInstance() returns a font object for the asked location. You can decide to save it or not elsewher. - generateUFO() makes UFOs on disk for all defined instances.
A bit restructured:
- mutators for info, kerning and glyphs are lazily constructed. Only make them if they're asked for.
- getInfoMutator() makes / returns info mutator.
- getKerningMutator() makes / returns kerning mutator
- getGlyphMutator() makes / returns glyph mutator
- loadFonts attempts to load the master UFOs and determine the defautl font by looking for the copyInfo flag, or if that is not found, by using mutator's findBias. Will warn if there is a conflct, but the copyInfo flag is leading.
- makeInstance() returns a font object for the asked location. You can decide to save it or not elsewher.
- generateUFO() makes UFOs on disk for all defined instances.

Still largely untested. Note: this requires an updated mutatorMath.

googlefonts/fonttools,fonttools/fonttools