def get_glyphs_jsondata(glyphid, master): """ Returns dictionary with glyph's information for concrete master and interpolated glyph. Example result: ```yaml --- M: {} # same as `get_json` R: {} # same as `get_json` master_id: 1 ``` """ project = master.project masters = project.get_ordered_masters() glyph = Glyph.get(master_id=master.id, name=glyphid) metapost = Metapost(project) metapost.execute_interpolated_single(glyph) instancelog = project.get_instancelog(masters[0].version) M_glyphjson = get_glyph_info_from_log(instancelog, glyphid) metapost.execute_single(master, glyph) instancelog = project.get_instancelog(master.version, 'a') glyphjson = get_glyph_info_from_log(instancelog, glyphid, master) return {'M': M_glyphjson, 'R': glyphjson, 'master_id': master.id}
def get_glyphs_jsondata(glyphid, master): """ Returns dictionary with glyph's information for concrete master and interpolated glyph. Example result: ```yaml --- M: {} # same as `get_json` R: {} # same as `get_json` master_id: 1 ``` """ project = master.project masters = project.get_ordered_masters() glyph = Glyph.get(master_id=master.id, name=glyphid) metapost = Metapost(project) metapost.execute_interpolated_single(glyph) instancelog = project.get_instancelog(masters[0].version) M_glyphjson = get_glyph_info_from_log(instancelog, glyphid) metapost.execute_single(master, glyph) instancelog = project.get_instancelog(master.version, 'a') glyphjson = get_glyph_info_from_log(instancelog, glyphid, master) return {'M': M_glyphjson, 'R': glyphjson, 'master_id': master.id}
def get_master_data(master, glyph, axislabel): project = master.project masters = project.get_ordered_masters() prepare_master_environment(masters[0]) prepare_master_environment(master) metapost = Metapost(project) glyphs = masters[0].get_glyphs() glyphs = glyphs.filter(models.Glyph.name == glyph) if not metapost.execute_single(masters[0], glyphs.first()): return instancelog = project.get_instancelog(masters[0].version) metaglyphs = get_glyph_info_from_log(instancelog) glyphs = master.get_glyphs() glyphs = glyphs.filter(models.Glyph.name == glyph) if not metapost.execute_single(master, glyphs.first()): return master_instancelog = project.get_instancelog(master.version, 'a') glyphsdata = get_glyph_info_from_log(master_instancelog, master=master) metalabel = get_metapolation_label(axislabel) return {'glyphs': glyphsdata, 'metaglyphs': metaglyphs, 'master_name': master.name, 'master_version': '{0:03d}'.format(master.version), 'master_id': master.id, 'metapolation': metalabel, 'label': axislabel, 'versions': project.get_versions()}
def GET(self): x = web.input(project=0) project = models.Project.get(id=x.project) if not project: raise web.notfound() if x.get('glyph'): if not models.Glyph.exists(name=x.get('glyph'), project_id=project.id): raise web.notfound() project.currentglyph = x.glyph web.ctx.orm.commit() masters = project.get_ordered_masters() masters_list = [] metapost = Metapost(project) for i, master in enumerate(masters): prepare_master_environment(master) glyphs = master.get_glyphs() glyphs = glyphs.filter(models.Glyph.name == project.currentglyph) if not metapost.execute_single(master, glyphs.first()): return web.badrequest() master_instancelog = project.get_instancelog(master.version, 'a') glyphsdata = get_glyph_info_from_log(master_instancelog, master=master) metalabel = get_metapolation_label(chr(models.LABELS[i])) masters_list.append({'glyphs': glyphsdata, 'label': chr(models.LABELS[i]), 'metapolation': metalabel, 'master_id': master.id}) glyphs = masters[0].get_glyphs() glyphs = glyphs.filter(models.Glyph.name == project.currentglyph) if not metapost.execute_interpolated_single(glyphs.first()): return web.badrequest() instancelog = project.get_instancelog(masters[0].version) metaglyphs = get_glyph_info_from_log(instancelog) import operator masters = map(operator.attrgetter('id', 'version'), models.Master.filter(project_id=project.id)) return ujson.dumps({'masters': masters_list, 'versions': project.get_versions(), 'metaglyphs': metaglyphs, 'mode': project.mfparser, 'project_id': project.id})
def GET(self): x = web.input(project=0) project = models.Project.get(id=x.project) if not project: raise web.notfound() if x.get('glyph'): if not models.Glyph.exists(name=x.get('glyph'), project_id=project.id): raise web.notfound() project.currentglyph = x.glyph web.ctx.orm.commit() masters = project.get_ordered_masters() masters_list = [] metapost = Metapost(project) for i, master in enumerate(masters): prepare_master_environment(master) glyphs = master.get_glyphs() glyphs = glyphs.filter(models.Glyph.name == project.currentglyph) if not metapost.execute_single(master, glyphs.first()): return web.badrequest() master_instancelog = project.get_instancelog(master.version, 'a') glyphsdata = get_glyph_info_from_log(master_instancelog, master=master) metalabel = get_metapolation_label(chr(models.LABELS[i])) masters_list.append({ 'glyphs': glyphsdata, 'label': chr(models.LABELS[i]), 'metapolation': metalabel, 'master_id': master.id }) glyphs = masters[0].get_glyphs() glyphs = glyphs.filter(models.Glyph.name == project.currentglyph) if not metapost.execute_interpolated_single(glyphs.first()): return web.badrequest() instancelog = project.get_instancelog(masters[0].version) metaglyphs = get_glyph_info_from_log(instancelog) import operator masters = map(operator.attrgetter('id', 'version'), models.Master.filter(project_id=project.id)) return ujson.dumps({ 'masters': masters_list, 'versions': project.get_versions(), 'metaglyphs': metaglyphs, 'mode': project.mfparser, 'project_id': project.id })