def cp(l, nam, uni, ax=False): # print(l, nam, ax, userNameToFileName(nam)) # parsing / SAME tree, svg_data = parse_svg_path(l) # # transforming / CHANGING svg_data.attrib['glyph'] = make_id(svg_data.attrib['glyph'], nam, uni) # # saving / SAME glifnam = userNameToFileName(nam) save_svg_file(l, glifnam, tree) # return glifnam
def t_mirror(file, nam, uni, ax=False): # print(file, nam, ax, userNameToFileName(nam)) # parsing / SAME tree, svg_data = parse_svg_path(file) # # # transforming / CHANGING svg_data.attrib['glyph'] = make_id(svg_data.attrib['glyph'], nam, uni) # _h = ax == "horizontal" _v = ax == "vertical" # svg_string = ET.tostring(svg_data, encoding='utf8', method='xml') # anchors = get_shape_points(svg_string, nam) # print("CONTOUR POINT COORDINATES") pprint.pprint(anchors) # print("---------------------------") print(svg_data[0].attrib['d']) print(svg_data[1].attrib['d']) print(svg_data[2].attrib['d']) print(anchors[0]) print(anchors[1]) print(anchors[2]) print("---------------------------") # for x in svg_data: # x.attrib['d'] = formatPath( flipPath(parsePath(x.attrib['d']), horizontal=_h, vertical=_v)) # #print("------------------") #print(x.attrib['id']) #print(path_to_coord((x.attrib['d'])) ) # # # saving / SAME glifnam = userNameToFileName(nam) save_svg_file(file, glifnam, tree) # return tdir + glifnam
def makeFileName(self, fileName): """ Make a file system legal version of **fileName**. """ fileName = unicode(fileName) suffix = "" if fileName.lower().endswith(".png"): suffix = fileName[-4:] fileName = fileName[:-4] existing = set([i.lower() for i in self.fileNames]) return userNameToFileName(fileName, existing, suffix=suffix)
def func1(l, nam, uni, x=False): # parsing / SAME tree, svg_data = parse_svg_path(l) # # transforming / CHANGING # # # saving / SAME glifnam = userNameToFileName(nam) save_svg_file(l, glifnam, tree) # return glifnam
def nameToFileName(name): return userNameToFileName(unicode(name))
def glyphNameToFileName(glyphName): # returned_name = userNameToFileName(glyphName) # #print(returned_name) # #if returned_name == "dslash": # # returned_name = "dcroat" # # return returned_name """Default algorithm for making a file name out of a glyph name. This one has limited support for case insensitive file systems: it assumes glyph names are not case sensitive apart from the first character: 'a' -> 'a.glif' 'A' -> 'A_.glif' 'A.alt' -> 'A_.alt.glif' 'A.Alt' -> 'A_.Alt.glif' 'T_H' -> 'T__H_.glif' 'T_h' -> 'T__h.glif' 't_h' -> 't_h.glif' 'F_F_I' -> 'F__F__I_.glif' 'f_f_i' -> 'f_f_i.glif' 'AE' -> 'AE__.glif' """ if glyphName.startswith("."): # some OSes consider filenames such as .notdef "hidden" glyphName = "__" + glyphName[1:] parts = glyphName.split(".") if parts[0].find("_") != -1: # it is a compound name, check the separate parts bits = [] for p in parts[0].split("_"): if p != p.lower(): bits.append(p + "_") continue bits.append(p) parts[0] = "_".join(bits) else: # # is capital digram # have_upper = 0 # # # for p in parts: # # # if len(p) > 1: # # # _p = list(p) # # # for x in _p: # # # if x.isupper(): # # # have_upper += 1 # # # # # # # # # if have_upper > 1: # # # parts[0] += "__" # # # else: # it is a single name if parts[0] != parts[0].lower(): parts[0] += "_" # for i in range(1, len(parts)): # resolve additional, period separated parts, like alt / Alt if parts[i] != parts[i].lower(): parts[i] += "_" return ".".join(parts) + ".glif"
def test_userNameToFileName(self): self.assertEqual(userNameToFileName("a"), "a") self.assertEqual(userNameToFileName("A"), "A_") self.assertEqual(userNameToFileName("AE"), "A_E_") self.assertEqual(userNameToFileName("Ae"), "A_e") self.assertEqual(userNameToFileName("ae"), "ae") self.assertEqual(userNameToFileName("aE"), "aE_") self.assertEqual(userNameToFileName("a.alt"), "a.alt") self.assertEqual(userNameToFileName("A.alt"), "A_.alt") self.assertEqual(userNameToFileName("A.Alt"), "A_.A_lt") self.assertEqual(userNameToFileName("A.aLt"), "A_.aL_t") self.assertEqual(userNameToFileName("A.alT"), "A_.alT_") self.assertEqual(userNameToFileName("T_H"), "T__H_") self.assertEqual(userNameToFileName("T_h"), "T__h") self.assertEqual(userNameToFileName("t_h"), "t_h") self.assertEqual(userNameToFileName("F_F_I"), "F__F__I_") self.assertEqual(userNameToFileName("f_f_i"), "f_f_i") self.assertEqual(userNameToFileName("Aacute_V.swash"), "A_acute_V_.swash") self.assertEqual(userNameToFileName(".notdef"), "_notdef") self.assertEqual(userNameToFileName("con"), "_con") self.assertEqual(userNameToFileName("CON"), "C_O_N_") self.assertEqual(userNameToFileName("con.alt"), "_con.alt") self.assertEqual(userNameToFileName("alt.con"), "alt._con")
def test_userNameToFileName_ValueError(self): with self.assertRaises(ValueError): userNameToFileName(b"a") with self.assertRaises(ValueError): userNameToFileName({"a"}) with self.assertRaises(ValueError): userNameToFileName(("a", )) with self.assertRaises(ValueError): userNameToFileName(["a"]) with self.assertRaises(ValueError): userNameToFileName(["a"]) with self.assertRaises(ValueError): userNameToFileName(b"\xd8\x00")
def test_userNameToFileName_ValueError(self): with self.assertRaises(ValueError): userNameToFileName(b"a") with self.assertRaises(ValueError): userNameToFileName({"a"}) with self.assertRaises(ValueError): userNameToFileName(("a",)) with self.assertRaises(ValueError): userNameToFileName(["a"]) with self.assertRaises(ValueError): userNameToFileName(["a"]) with self.assertRaises(ValueError): userNameToFileName(b"\xd8\x00")