def interpolate(ufos, master_dir, out_dir, instance_data, debug=False): """Create MutatorMath designspace and generate instances. Returns instance UFOs, or unused instance data if debug is True. """ from defcon import Font from mutatorMath.ufo import build designspace_path, instance_files = build_designspace( ufos, master_dir, out_dir, instance_data) print('>>> Building instances') for path, _ in instance_files: clean_ufo(path) build(designspace_path, outputUFOFormatVersion=3) instance_ufos = [] for path, data in instance_files: ufo = Font(path) set_custom_params(ufo, data=data) set_redundant_data(ufo) ufo.save() instance_ufos.append(ufo) if debug: return clear_data(instance_data) return instance_ufos
def apply_instance_data(instance_data): """Open instances, apply data, and re-save. Args: instance_data: List of (path, data) tuples, one for each instance. dst_ufo_list: List to add opened instances to. Returns: List of opened and updated instance UFOs. """ from defcon import Font instance_ufos = [] for path, data in instance_data: ufo = Font(path) set_custom_params(ufo, data=data) set_redundant_data(ufo) ufo.save() instance_ufos.append(ufo) return instance_ufos
def _run_on_ufo(self, family_name, style_name): ufo = Font() ufo.info.familyName = family_name ufo.info.styleName = style_name set_redundant_data(ufo) return ufo