예제 #1
0
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
예제 #2
0
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
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
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
예제 #6
0
 def nameToFileName(name):
     return userNameToFileName(unicode(name))
예제 #7
0
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"
예제 #8
0
 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")
예제 #9
0
 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")
예제 #10
0
 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")
예제 #11
0
 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")