Created
February 19, 2018 16:02
-
-
Save adrientetar/bbe2f05cbc1088b2bf758dc161fa7dfa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import cProfile | |
def profile_defcon(): | |
from defcon import Font | |
pr = cProfile.Profile() | |
pr.enable() | |
font = Font("Roboto-Regular.ufo") | |
for glyph in font: | |
for contour in glyph: | |
for point in contour: | |
point.x = 0 | |
point.y = 0 | |
font.save("result1.ufo") | |
pr.disable() | |
pr.print_stats(sort='time') | |
def profile_fontTools(): | |
from fontTools.ufoLib import Font | |
pr = cProfile.Profile() | |
pr.enable() | |
font = Font("Roboto-Regular.ufo") | |
for glyph in font: | |
for contour in glyph.contours: | |
for point in contour: | |
point.x = 0 | |
point.y = 0 | |
font.save("result2.ufo") | |
pr.disable() | |
pr.print_stats(sort='time') | |
if __name__ == "__main__": | |
profile_defcon() | |
profile_fontTools() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10228645 function calls (10129812 primitive calls) in 77.089 seconds | |
Ordered by: internal time | |
ncalls tottime percall cumtime percall filename:lineno(function) | |
2324 31.794 0.014 56.376 0.024 glifLib.py:306(writeGlyph) | |
7013 5.480 0.001 5.480 0.001 {built-in method io.open} | |
21014 4.832 0.000 4.832 0.000 {built-in method nt.stat} | |
2323 2.855 0.001 4.650 0.002 glifLib.py:457(<listcomp>) | |
181713/166030 1.990 0.000 2.986 0.000 notifications.py:120(postNotification) | |
2726438 1.819 0.000 1.819 0.000 {method 'lower' of 'str' objects} | |
63202 1.194 0.000 4.171 0.000 xmlWriter.py:143(stringifyattrs) | |
862421 1.139 0.000 1.139 0.000 {method 'replace' of 'str' objects} | |
45458 1.108 0.000 6.442 0.000 glifLib.py:1470(addPoint) | |
142786 0.976 0.000 2.089 0.000 xmlWriter.py:160(escape) | |
4680 0.885 0.000 0.885 0.000 {method 'read' of '_io.BufferedReader' objects} | |
703234 0.788 0.000 0.866 0.000 {built-in method builtins.isinstance} | |
4079 0.773 0.000 1.139 0.000 glifLib.py:1178(_validateAndMassagePointStructures) | |
4079 0.769 0.000 7.929 0.002 contour.py:594(drawPoints) | |
188172/172489 0.720 0.000 3.844 0.000 base.py:206(postNotification) | |
11620 0.713 0.000 7.952 0.001 glifLib.py:218(getGLIF) | |
76282 0.711 0.000 1.476 0.000 xmlWriter.py:76(_writeraw) | |
429518 0.702 0.000 0.909 0.000 base.py:69(_get_dispatcher) | |
2324 0.595 0.000 0.659 0.000 filenames.py:21(userNameToFileName) | |
2324 0.544 0.000 0.544 0.000 {method 'feed' of 'xml.etree.ElementTree.XMLParser' objects} | |
109362/100358 0.487 0.000 3.522 0.000 base.py:379(_set_dirty) | |
49458 0.471 0.000 0.492 0.000 notifications.py:52(addObserver) | |
52446 0.469 0.000 5.399 0.000 xmlWriter.py:103(simpletag) | |
142786 0.459 0.000 2.721 0.000 xmlWriter.py:168(escapeattr) | |
32668 0.408 0.000 0.573 0.000 ntpath.py:121(splitdrive) | |
76282 0.390 0.000 0.468 0.000 xmlWriter.py:86(newline) | |
312768 0.387 0.000 0.387 0.000 {method 'write' of '_io.BytesIO' objects} | |
16333 0.363 0.000 1.008 0.000 ntpath.py:74(join) | |
45458 0.331 0.000 1.397 0.000 contour.py:172(insertPoint) | |
45458 0.329 0.000 1.906 0.000 contour.py:577(addPoint) | |
2324 0.319 0.000 5.646 0.002 glifLib.py:452(glyphNameToFileName) | |
127223/108524 0.315 0.000 2.584 0.000 {built-in method builtins.getattr} | |
83254 0.297 0.000 0.632 0.000 py23.py:124(tobytes) | |
51611 0.288 0.000 1.180 0.000 base.py:82(addObserver) | |
45458 0.285 0.000 0.310 0.000 glyphObjectPointPen.py:64(addPoint) | |
115143 0.276 0.000 0.276 0.000 {method 'encode' of 'str' objects} | |
2324 0.274 0.000 14.318 0.006 glifLib.py:508(writeGlyphToString) | |
31852 0.264 0.000 0.446 0.000 plistlib.py:442(writeln) | |
39929 0.256 0.000 0.344 0.000 base.py:336(_destroyRepresentationsForNotification) | |
142787 0.251 0.000 0.370 0.000 py23.py:129(tounicode) | |
25051 0.223 0.000 1.357 0.000 base.py:471(__setitem__) | |
333556 0.220 0.000 0.220 0.000 {method 'append' of 'list' objects} | |
4079 0.203 0.000 0.541 0.000 glifLib.py:1127(_buildOutlinePointsFormat2) | |
17506/2029 0.182 0.000 0.791 0.000 plistFromETree.py:21(parseElement) | |
106940 0.180 0.000 0.180 0.000 {built-in method builtins.repr} | |
2324 0.179 0.000 2.001 0.001 image.py:41(__init__) | |
10756 0.165 0.000 0.671 0.000 xmlWriter.py:108(begintag) | |
19856/2038 0.164 0.000 1.482 0.001 plistlib.py:470(write_value) | |
45458 0.159 0.000 0.159 0.000 point.py:12(__init__) | |
22235 0.158 0.000 0.368 0.000 plistlib.py:300(_escape) | |
2324 0.156 0.000 62.194 0.027 layer.py:571(saveGlyph) | |
1927 0.155 0.000 2.920 0.002 glyph.py:468(_drawShallowLoadedContours) | |
22574 0.154 0.000 0.825 0.000 plistlib.py:434(simple_element) | |
235075/230996 0.150 0.000 0.158 0.000 {built-in method builtins.len} | |
100212 0.148 0.000 0.148 0.000 glifLib.py:1279(_number) | |
204159 0.138 0.000 0.138 0.000 {method 'get' of 'xml.etree.ElementTree.Element' objects} | |
39929 0.134 0.000 0.478 0.000 base.py:234(selfNotificationCallback) | |
4648 0.129 0.000 7.587 0.002 layer.py:585(_stampGlyphDataState) | |
45458 0.127 0.000 2.033 0.000 glyphObjectPointPen.py:25(addPoint) | |
10756 0.117 0.000 0.336 0.000 xmlWriter.py:115(endtag) | |
2324/2141 0.114 0.000 10.300 0.005 layer.py:172(loadGlyph) | |
4306 0.103 0.000 0.170 0.000 validators.py:78(genericDictValidator) | |
2324/2141 0.102 0.000 5.495 0.003 glifLib.py:890(_readGlyphFromTreeFormat2) | |
2324 0.099 0.000 0.260 0.000 xmlWriter.py:14(__init__) | |
24 0.090 0.004 0.294 0.012 {method 'ParseFile' of 'pyexpat.xmlparser' objects} | |
86592 0.088 0.000 0.088 0.000 {method 'get' of 'dict' objects} | |
90916 0.088 0.000 0.088 0.000 point.py:77(_get_identifier) | |
39929 0.087 0.000 0.087 0.000 notifications.py:347(__init__) | |
4648 0.085 0.000 6.019 0.001 glifLib.py:252(getGLIFModificationTime) | |
2324 0.083 0.000 0.629 0.000 ElementTree.py:1301(XML) | |
2029 0.081 0.000 1.589 0.001 glifLib.py:731(_writeLib) | |
4079 0.080 0.000 1.792 0.000 glifLib.py:1107(_buildOutlineContourFormat2) | |
19903 0.079 0.000 0.095 0.000 plistlib.py:342(add_object) | |
22235 0.077 0.000 0.077 0.000 {method 'search' of '_sre.SRE_Pattern' objects} | |
27301 0.074 0.000 0.380 0.000 plistlib.py:334(handle_end_element) | |
2470/2037 0.074 0.000 1.446 0.001 plistlib.py:523(write_dict) | |
2324 0.070 0.000 0.149 0.000 glyph.py:101(__init__) | |
9017 0.070 0.000 0.070 0.000 {built-in method builtins.hasattr} | |
11628 0.070 0.000 2.619 0.000 genericpath.py:53(getmtime) | |
27301 0.069 0.000 0.203 0.000 plistlib.py:328(handle_begin_element) | |
9383 0.068 0.000 2.350 0.000 genericpath.py:16(exists) | |
49006 0.068 0.000 0.068 0.000 {built-in method nt.fspath} | |
5 0.067 0.013 0.067 0.013 {method 'close' of '_io.BufferedWriter' objects} | |
17506 0.064 0.000 0.221 0.000 plistlib.py:41(handleBeginElement) | |
6805 0.063 0.000 0.091 0.000 base.py:453(__init__) | |
2324 0.062 0.000 0.693 0.000 glifLib.py:815(_glifTreeFromString) | |
4079 0.061 0.000 0.279 0.000 glyph.py:553(insertContour) | |
4306 0.059 0.000 0.242 0.000 validators.py:594(anchorValidator) | |
61386 0.057 0.000 0.057 0.000 {method 'items' of 'dict' objects} | |
8738 0.055 0.000 0.124 0.000 plistlib.py:399(end_real) | |
45458 0.055 0.000 0.055 0.000 glifLib.py:1190(<listcomp>) | |
52655 0.054 0.000 0.054 0.000 {method 'insert' of 'list' objects} | |
4058 0.054 0.000 0.143 0.000 validators.py:995(glyphLibValidator) | |
2153 0.054 0.000 0.623 0.000 glyph.py:807(insertAnchor) | |
797 0.054 0.000 0.497 0.001 glifLib.py:706(_writeAnchors) | |
2324 0.053 0.000 0.282 0.000 glifLib.py:592(_writeAdvance) | |
45458 0.053 0.000 0.053 0.000 point.py:33(_get_x) | |
42507 0.052 0.000 0.072 0.000 plistlib.py:339(handle_data) | |
2153 0.051 0.000 0.356 0.000 anchor.py:33(__init__) | |
4251 0.051 0.000 0.119 0.000 glyph.py:486(getPointPen) | |
2324 0.051 0.000 0.292 0.000 image.py:230(beginSelfImageSetNotificationObservation) | |
6338 0.051 0.000 0.051 0.000 {built-in method builtins.sorted} | |
17506 0.050 0.000 0.317 0.000 plistlib.py:47(handleEndElement) | |
1858 0.049 0.000 0.220 0.000 glifLib.py:615(_writeUnicodes) | |
45458 0.048 0.000 0.048 0.000 point.py:25(_get_segmentType) | |
45458 0.048 0.000 0.048 0.000 point.py:41(_get_y) | |
14180 0.047 0.000 0.047 0.000 base.py:48(_init) | |
16333 0.047 0.000 0.634 0.000 base.py:227(beginSelfNotificationObservation) | |
48940 0.047 0.000 0.047 0.000 {method 'items' of 'collections.OrderedDict' objects} | |
39929 0.047 0.000 0.047 0.000 notifications.py:355(_get_name) | |
4079 0.046 0.000 0.206 0.000 contour.py:61(__init__) | |
4079 0.045 0.000 0.197 0.000 glifLib.py:1460(endPath) | |
4630 0.044 0.000 0.125 0.000 plistlib.py:423(begin_element) | |
8470 0.044 0.000 0.078 0.000 abc.py:178(__instancecheck__) | |
4630 0.043 0.000 0.119 0.000 plistlib.py:428(end_element) | |
22328 0.043 0.000 0.055 0.000 plistlib.py:358(get_data) | |
8340 0.042 0.000 0.042 0.000 notifications.py:306(enableNotifications) | |
45458 0.042 0.000 0.042 0.000 point.py:49(_get_smooth) | |
54814 0.042 0.000 0.042 0.000 {method 'keys' of 'dict' objects} | |
45458 0.041 0.000 0.041 0.000 point.py:57(_get_name) | |
11265/11202 0.040 0.000 1.533 0.000 {built-in method builtins.setattr} | |
17224 0.038 0.000 0.054 0.000 anchor.py:54(_get_font) | |
8340 0.038 0.000 0.038 0.000 notifications.py:278(disableNotifications) | |
2131/2130 0.038 0.000 0.851 0.000 plistlib.py:543(write_array) | |
4079 0.037 0.000 0.227 0.000 glifLib.py:1447(beginPath) | |
45458 0.036 0.000 0.036 0.000 {method 'pop' of 'dict' objects} | |
13053 0.036 0.000 0.063 0.000 plistlib.py:44(handleData) | |
965 0.035 0.000 0.152 0.000 glifLib.py:1516(addComponent) | |
2324 0.034 0.000 8.128 0.003 glyph.py:456(drawPoints) | |
7374 0.034 0.000 0.059 0.000 plistlib.py:376(end_key) | |
8492 0.033 0.000 0.033 0.000 _weakrefset.py:70(__contains__) | |
16296 0.033 0.000 0.033 0.000 {method 'write' of '_io.BufferedWriter' objects} | |
2324 0.032 0.000 3.055 0.001 glyph.py:511(_fullyLoadShallowLoadedContours) | |
4648 0.032 0.000 0.107 0.000 glyph.py:205(_set_name) | |
1 0.032 0.032 0.034 0.034 __init__.py:1213(writeFileAtomically) | |
965 0.031 0.000 1.429 0.001 glifLib.py:1147(_buildOutlineComponentFormat2) | |
4079 0.031 0.000 0.433 0.000 glyphObjectPointPen.py:19(endPath) | |
2326 0.031 0.000 0.214 0.000 lib.py:59(__init__) | |
4648 0.030 0.000 0.043 0.000 image.py:75(_get_font) | |
8340 0.030 0.000 0.081 0.000 base.py:190(enableNotifications) | |
2324 0.030 0.000 0.165 0.000 layer.py:239(_insertGlyph) | |
2324 0.029 0.000 3.087 0.001 glyph.py:1110(__iter__) | |
10756 0.029 0.000 0.029 0.000 xmlWriter.py:139(dedent) | |
8364 0.029 0.000 0.029 0.000 glyph.py:220(_get_unicodes) | |
2029 0.029 0.000 0.052 0.000 plistlib.py:15(__init__) | |
2324/2141 0.029 0.000 6.733 0.003 glifLib.py:266(readGlyph) | |
8340 0.029 0.000 0.076 0.000 base.py:173(disableNotifications) | |
2324/2141 0.028 0.000 5.525 0.003 glifLib.py:823(_readGlyphFromTree) | |
4079 0.028 0.000 0.237 0.000 glyph.py:524(instantiateContour) | |
45458 0.027 0.000 0.027 0.000 point.py:36(_set_x) | |
2324 0.027 0.000 0.176 0.000 layer.py:146(instantiateGlyphObject) | |
6382 0.026 0.000 0.308 0.000 glyph.py:1007(_get_lib) | |
45458 0.026 0.000 0.026 0.000 point.py:44(_set_y) | |
2324 0.026 0.000 2.026 0.001 glyph.py:1043(instantiateImage) | |
2324 0.025 0.000 0.132 0.000 glyph.py:1081(beginSelfImageNotificationObservation) | |
2324 0.025 0.000 0.483 0.000 image.py:218(beginSelfNotificationObservation) | |
2029 0.025 0.000 1.569 0.001 glifLib.py:990(_readLib) | |
1594 0.024 0.000 0.270 0.000 validators.py:576(anchorsValidator) | |
2324 0.024 0.000 2.182 0.001 glyph.py:1049(_get_image) | |
2332 0.023 0.000 0.187 0.000 font.py:1017(_objectDirtyStateChange) | |
10756 0.023 0.000 0.023 0.000 xmlWriter.py:136(indent) | |
4079 0.022 0.000 0.295 0.000 glyphObjectPointPen.py:10(beginPath) | |
2324 0.022 0.000 0.033 0.000 image.py:103(_get_layer) | |
2153 0.021 0.000 0.083 0.000 anchor.py:118(_set_x) | |
2010 0.021 0.000 0.088 0.000 glyph.py:366(_set_width) | |
26983 0.021 0.000 0.021 0.000 {method 'join' of 'str' objects} | |
4079 0.021 0.000 0.031 0.000 contour.py:88(_get_font) | |
2324 0.020 0.000 0.876 0.000 layer.py:691(_glyphDirtyStateChange) | |
11028 0.020 0.000 1.549 0.000 glifLib.py:1273(_relaxedSetattr) | |
2 0.020 0.010 0.688 0.344 glifLib.py:126(rebuildContents) | |
2032 0.020 0.000 0.343 0.000 base.py:508(update) | |
2325 0.019 0.000 10.343 0.004 font.py:214(__iter__) | |
2029 0.018 0.000 0.640 0.000 glyph.py:1013(_set_lib) | |
1 0.018 0.018 0.178 0.178 glifLib.py:169(writeContents) | |
6579 0.018 0.000 0.084 0.000 <frozen importlib._bootstrap>:989(_handle_fromlist) | |
2326 0.018 0.000 0.522 0.000 layerSet.py:347(_layerDirtyStateChange) | |
5613/4648 0.018 0.000 10.316 0.002 layer.py:259(__getitem__) | |
4079 0.018 0.000 0.021 0.000 glyphObjectPointPen.py:46(beginPath) | |
2324 0.018 0.000 0.231 0.000 glyph.py:1001(instantiateLib) | |
1858 0.018 0.000 0.066 0.000 glyph.py:223(_set_unicodes) | |
18841 0.018 0.000 0.018 0.000 font.py:182(_get_dispatcher) | |
9248 0.018 0.000 0.018 0.000 {method 'pop' of 'list' objects} | |
2324/2141 0.018 0.000 3.096 0.001 glifLib.py:1098(buildOutlineFormat2) | |
11845 0.017 0.000 0.017 0.000 glyph.py:171(_get_font) | |
2324 0.017 0.000 0.017 0.000 image.py:122(_set_glyph) | |
2324 0.017 0.000 0.122 0.000 layer.py:159(beginSelfGlyphNotificationObservation) | |
2010 0.017 0.000 0.138 0.000 glifLib.py:979(_readAdvance) | |
1 0.017 0.017 62.401 62.401 layer.py:549(save) | |
2153 0.016 0.000 0.069 0.000 anchor.py:130(_set_y) | |
7375 0.016 0.000 0.036 0.000 base.py:45(__init__) | |
2324 0.016 0.000 0.016 0.000 {method 'decode' of 'bytes' objects} | |
965 0.016 0.000 0.069 0.000 component.py:42(__init__) | |
9296 0.016 0.000 0.016 0.000 glyph.py:213(_get_name) | |
2325 0.016 0.000 0.024 0.000 lib.py:122(_get_layer) | |
2324 0.016 0.000 0.022 0.000 glyphObjectPointPen.py:42(__init__) | |
4079 0.016 0.000 0.074 0.000 glyph.py:531(beginSelfContourNotificationObservation) | |
2153 0.016 0.000 0.068 0.000 anchor.py:144(_set_name) | |
2324 0.015 0.000 0.015 0.000 glifLib.py:1438(__init__) | |
12237 0.015 0.000 0.015 0.000 contour.py:130(_get_glyph) | |
965 0.015 0.000 0.084 0.000 glyph.py:663(insertComponent) | |
2325 0.015 0.000 0.042 0.000 lib.py:108(_get_layerSet) | |
2326 0.015 0.000 0.061 0.000 lib.py:86(_get_font) | |
2324 0.015 0.000 0.015 0.000 glyph.py:875(_get_guidelines) | |
2029 0.014 0.000 0.833 0.000 plistFromETree.py:6(readPlistFromTree) | |
2038 0.014 0.000 0.024 0.000 plistlib.py:455(__init__) | |
965 0.014 0.000 0.957 0.001 component.py:317(_beginBaseGlyphObservations) | |
2029 0.014 0.000 0.022 0.000 plistlib.py:35(__init__) | |
6805 0.014 0.000 0.021 0.000 base.py:468(__hash__) | |
4079 0.014 0.000 0.014 0.000 contour.py:135(_set_glyph) | |
17224 0.013 0.000 0.013 0.000 anchor.py:96(_get_glyph) | |
965 0.013 0.000 1.385 0.001 glyphObjectPointPen.py:30(addComponent) | |
965 0.013 0.000 1.135 0.001 component.py:138(_set_baseGlyph) | |
2029 0.013 0.000 1.196 0.001 plistlib.py:21(writeValue) | |
4648 0.013 0.000 0.013 0.000 image.py:117(_get_glyph) | |
4079 0.012 0.000 0.312 0.000 glyph.py:542(appendContour) | |
2483 0.012 0.000 0.021 0.000 plistlib.py:365(begin_dict) | |
4306 0.012 0.000 0.012 0.000 anchor.py:101(_set_glyph) | |
4648 0.012 0.000 0.012 0.000 glifLib.py:260(_purgeCachedGLIF) | |
9298 0.012 0.000 0.012 0.000 layer.py:135(_get_layerSet) | |
2153 0.012 0.000 0.368 0.000 glyph.py:781(instantiateAnchor) | |
2324 0.012 0.000 0.051 0.000 glyph.py:1021(beginSelfLibNotificationObservation) | |
4684 0.012 0.000 0.042 0.000 plistlib.py:402(end_string) | |
1930 0.012 0.000 0.978 0.001 component.py:295(beginSelfBaseGlyphNotificationObservation) | |
1596 0.012 0.000 0.012 0.000 notifications.py:207(holdNotifications) | |
2333 0.012 0.000 0.012 0.000 {method 'split' of 'str' objects} | |
2324 0.011 0.000 0.011 0.000 lib.py:149(_set_glyph) | |
4251 0.011 0.000 0.011 0.000 glyphObjectPointPen.py:5(__init__) | |
965 0.011 0.000 0.165 0.000 component.py:181(drawPoints) | |
1596 0.011 0.000 0.011 0.000 notifications.py:237(releaseHeldNotifications) | |
2331 0.011 0.000 0.011 0.000 {method 'getvalue' of '_io.BytesIO' objects} | |
797 0.011 0.000 0.690 0.001 glyph.py:772(_set_anchors) | |
1 0.011 0.011 0.013 0.013 glifLib.py:195(writeLayerInfo) | |
5613 0.011 0.000 0.011 0.000 glyph.py:185(_get_layer) | |
4063 0.011 0.000 0.082 0.000 validators.py:24(isDictEnough) | |
3121 0.010 0.000 0.010 0.000 glyph.py:769(_get_anchors) | |
2029 0.010 0.000 0.065 0.000 glyph.py:1263(_libContentChanged) | |
6586 0.010 0.000 0.010 0.000 base.py:385(_get_dirty) | |
2038 0.010 0.000 0.010 0.000 plistlib.py:417(__init__) | |
2324 0.010 0.000 0.031 0.000 glifLib.py:972(_readName) | |
2324 0.010 0.000 0.010 0.000 image.py:58(__len__) | |
3860 0.009 0.000 0.012 0.000 component.py:94(_get_layer) | |
2153 0.008 0.000 0.038 0.000 glyph.py:785(beginSelfAnchorNotificationObservation) | |
4079 0.008 0.000 0.010 0.000 glyph.py:1105(__len__) | |
2053 0.008 0.000 0.008 0.000 plistlib.py:313(__init__) | |
2153 0.008 0.000 0.633 0.000 glyph.py:796(appendAnchor) | |
6459 0.008 0.000 0.011 0.000 anchor.py:184(_get_identifier) | |
2325 0.008 0.000 0.010 0.000 font.py:191(_get_glyphSet) | |
797 0.007 0.000 0.029 0.000 glyph.py:855(clearAnchors) | |
4651 0.007 0.000 0.007 0.000 layerSet.py:94(_get_font) | |
2324 0.007 0.000 0.011 0.000 glifLib.py:382(__len__) | |
2135 0.007 0.000 0.021 0.000 plistlib.py:382(begin_array) | |
6805 0.007 0.000 0.007 0.000 {built-in method builtins.id} | |
2332 0.007 0.000 0.007 0.000 notifications.py:360(_get_object) | |
1596 0.007 0.000 0.020 0.000 base.py:157(releaseHeldNotifications) | |
965 0.007 0.000 0.069 0.000 component.py:156(_set_transformation) | |
965 0.006 0.000 0.076 0.000 glyph.py:633(instantiateComponent) | |
2153 0.006 0.000 0.014 0.000 anchor.py:187(_set_identifier) | |
1596 0.006 0.000 0.020 0.000 base.py:140(holdNotifications) | |
1495 0.006 0.000 0.016 0.000 plistlib.py:396(end_integer) | |
4079 0.006 0.000 0.006 0.000 glyph.py:1100(__contains__) | |
4079 0.006 0.000 0.009 0.000 contour.py:233(__iter__) | |
1 0.006 0.006 0.091 0.091 __init__.py:883(writeKerning) | |
4079 0.006 0.000 0.006 0.000 contour.py:626(_get_identifier) | |
965 0.006 0.000 0.044 0.000 component.py:283(beginSelfNotificationObservation) | |
965 0.006 0.000 0.009 0.000 component.py:66(_get_font) | |
965 0.006 0.000 0.031 0.000 glyph.py:639(beginSelfComponentNotificationObservation) | |
2029 0.006 0.000 0.797 0.000 plistFromETree.py:17(parseTree) | |
3860 0.005 0.000 0.005 0.000 component.py:108(_get_glyph) | |
965 0.005 0.000 0.037 0.000 component.py:310(endSelfBaseGlyphNotificationObservation) | |
4210 0.005 0.000 0.005 0.000 {method 'add' of 'set' objects} | |
965 0.005 0.000 0.005 0.000 notifications.py:86(hasObserver) | |
6403 0.005 0.000 0.005 0.000 {built-in method builtins.iter} | |
2483 0.005 0.000 0.011 0.000 plistlib.py:370(end_dict) | |
965 0.005 0.000 0.012 0.000 base.py:125(hasObserver) | |
2324 0.005 0.000 0.005 0.000 glyph.py:363(_get_width) | |
4648 0.005 0.000 0.005 0.000 {method 'strip' of 'str' objects} | |
2324 0.005 0.000 0.005 0.000 lib.py:144(_get_glyph) | |
2135 0.004 0.000 0.007 0.000 plistlib.py:387(end_array) | |
2153 0.004 0.000 0.005 0.000 anchor.py:158(_set_color) | |
965 0.004 0.000 0.018 0.000 component.py:348(_endLayerObservations) | |
965 0.004 0.000 0.089 0.000 glyph.py:652(appendComponent) | |
965 0.004 0.000 0.004 0.000 component.py:113(_set_glyph) | |
2324 0.004 0.000 0.004 0.000 glyph.py:978(_get_note) | |
2032 0.004 0.000 0.004 0.000 {function BaseDictObject.update at 0x0565A420} | |
965 0.004 0.000 0.012 0.000 component.py:326(_endBaseGlyphObservations) | |
2324 0.004 0.000 0.004 0.000 glifLib.py:377(has_key) | |
1 0.004 0.004 0.075 0.075 __init__.py:360(readKerning) | |
2325 0.004 0.000 0.006 0.000 layer.py:254(__iter__) | |
4079 0.004 0.000 0.004 0.000 glyph.py:506(_get_pointClass) | |
2029 0.004 0.000 0.005 0.000 base.py:500(clear) | |
2325 0.003 0.000 0.003 0.000 font.py:569(_get_images) | |
965 0.003 0.000 0.005 0.000 layer.py:291(__contains__) | |
2324 0.003 0.000 0.003 0.000 glyph.py:377(_get_height) | |
3322 0.003 0.000 0.003 0.000 base.py:312(destroyRepresentation) | |
2350 0.003 0.000 0.003 0.000 {method 'values' of 'dict' objects} | |
3860 0.003 0.000 0.003 0.000 component.py:149(_get_baseGlyph) | |
965 0.003 0.000 0.004 0.000 component.py:246(_set_identifier) | |
2330 0.003 0.000 0.003 0.000 layerSet.py:113(_get_defaultLayer) | |
2010 0.003 0.000 0.003 0.000 glyph.py:380(_set_height) | |
2324 0.002 0.000 0.002 0.000 {method 'close' of 'xml.etree.ElementTree.XMLParser' objects} | |
2 0.002 0.001 0.004 0.002 validators.py:933(fontLibValidator) | |
4079 0.002 0.000 0.002 0.000 glyphObjectPointPen.py:61(endPath) | |
1930 0.002 0.000 0.002 0.000 component.py:243(_get_identifier) | |
21 0.002 0.000 0.174 0.008 __init__.py:90(_getPlist) | |
1 0.002 0.002 0.003 0.003 validators.py:897(kerningValidator) | |
2 0.002 0.001 0.002 0.001 {built-in method nt.mkdir} | |
967 0.002 0.000 0.002 0.000 layer.py:294(keys) | |
1 0.001 0.001 0.001 0.001 {built-in method nt.utime} | |
1 0.001 0.001 0.001 0.001 {method 'write' of '_io.TextIOWrapper' objects} | |
8 0.001 0.000 0.001 0.000 {built-in method nt._isdir} | |
1 0.001 0.001 0.002 0.002 {method 'read' of '_io.TextIOWrapper' objects} | |
195 0.001 0.000 0.002 0.000 __init__.py:1370(validateFontInfoVersion3ValueForAttribute) | |
1 0.001 0.001 0.001 0.001 {built-in method _codecs.charmap_decode} | |
37 0.001 0.000 0.003 0.000 plistlib.py:510(write_bytes) | |
8 0.001 0.000 0.001 0.000 {method 'close' of '_io.BufferedReader' objects} | |
314 0.001 0.000 0.002 0.000 plistlib.py:393(end_false) | |
24 0.001 0.000 0.298 0.012 plistlib.py:978(load) | |
65 0.001 0.000 0.003 0.000 info.py:29(setter) | |
1 0.001 0.001 0.002 0.002 info.py:84(__init__) | |
107 0.000 0.000 0.001 0.000 copy.py:66(copy) | |
1 0.000 0.000 0.001 0.001 layer.py:70(__init__) | |
4 0.000 0.000 0.139 0.035 glifLib.py:439(_readPlist) | |
37 0.000 0.000 0.000 0.000 plistlib.py:260(_encode_base64) | |
24 0.000 0.000 0.294 0.012 plistlib.py:320(parse) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:830(get_data) | |
37 0.000 0.000 0.001 0.000 plistlib.py:269(_decode_base64) | |
15 0.000 0.000 0.000 0.000 validators.py:43(genericIntListValidator) | |
1 0.000 0.000 0.023 0.023 __init__.py:849(writeInfo) | |
14 0.000 0.000 0.017 0.001 __init__.py:242(readMetaInfo) | |
24 0.000 0.000 0.000 0.000 {method 'seek' of '_io.BufferedReader' objects} | |
10/5 0.000 0.000 0.001 0.000 abc.py:194(__subclasscheck__) | |
1 0.000 0.000 0.000 0.000 {built-in method marshal.loads} | |
214 0.000 0.000 0.001 0.000 info.py:25(getter) | |
5 0.000 0.000 0.219 0.044 __init__.py:1199(writePlistAtomically) | |
1 0.000 0.000 0.011 0.011 __init__.py:310(readInfo) | |
10 0.000 0.000 0.013 0.001 font.py:1084(_stampFontDataState) | |
24 0.000 0.000 0.000 0.000 {built-in method pyexpat.ParserCreate} | |
2 0.000 0.000 0.002 0.001 __init__.py:1395(validateInfoVersion3Data) | |
37 0.000 0.000 0.001 0.000 plistlib.py:405(end_data) | |
9 0.000 0.000 0.299 0.033 plistlib.py:1009(dump) | |
1 0.000 0.000 0.698 0.698 font.py:68(__init__) | |
37 0.000 0.000 0.000 0.000 {built-in method binascii.a2b_base64} | |
1 0.000 0.000 0.000 0.000 {method 'read' of '_io.FileIO' objects} | |
37 0.000 0.000 0.000 0.000 {method 'replace' of 'bytes' objects} | |
8 0.000 0.000 0.008 0.001 __init__.py:189(readBytesFromPath) | |
14 0.000 0.000 0.021 0.002 __init__.py:123(__init__) | |
1 0.000 0.000 62.432 62.432 layerSet.py:268(save) | |
1 0.000 0.000 62.899 62.899 font.py:683(save) | |
132 0.000 0.000 0.000 0.000 validators.py:37(genericTypeValidator) | |
20 0.000 0.000 0.000 0.000 _weakrefset.py:58(__iter__) | |
5 0.000 0.000 0.077 0.015 __init__.py:1233(writeDataFileAtomically) | |
37 0.000 0.000 0.000 0.000 {method 'split' of 'bytes' objects} | |
37 0.000 0.000 0.000 0.000 {built-in method builtins.max} | |
10 0.000 0.000 0.004 0.000 __init__.py:229(getFileModificationTime) | |
3 0.000 0.000 0.001 0.000 validators.py:775(layerContentsValidator) | |
3 0.000 0.000 0.000 0.000 validators.py:144(fontInfoOpenTypeHeadCreatedValidator) | |
5 0.000 0.000 0.222 0.044 __init__.py:617(_writePlist) | |
1 0.000 0.000 0.000 0.000 {built-in method builtins.__build_class__} | |
1 0.000 0.000 0.080 0.080 font.py:390(_loadKerningAndGroups) | |
3 0.000 0.000 0.004 0.001 glifLib.py:180(readLayerInfo) | |
1 0.000 0.000 0.000 0.000 glifLib.py:374(keys) | |
3/2 0.000 0.000 0.017 0.008 font.py:363(_get_info) | |
24 0.000 0.000 0.000 0.000 plistlib.py:554(_is_fmt_xml) | |
1 0.000 0.000 0.002 0.002 __init__.py:396(readFeatures) | |
24 0.000 0.000 0.000 0.000 {method 'startswith' of 'bytes' objects} | |
1 0.000 0.000 0.091 0.091 font.py:809(saveKerning) | |
9 0.000 0.000 0.299 0.033 plistlib.py:465(write) | |
101 0.000 0.000 0.000 0.000 copy.py:111(_copy_immutable) | |
5/4 0.000 0.000 0.006 0.001 font.py:500(_get_features) | |
3 0.000 0.000 0.004 0.001 __init__.py:409(_readLayerContents) | |
1 0.000 0.000 0.003 0.003 imageSet.py:178(save) | |
1 0.000 0.000 0.003 0.003 layerSet.py:182(newLayer) | |
7 0.000 0.000 0.004 0.001 __init__.py:638(_makeDirectory) | |
10 0.000 0.000 0.000 0.000 _weakrefset.py:26(__exit__) | |
18 0.000 0.000 0.000 0.000 enum.py:579(__hash__) | |
37 0.000 0.000 0.000 0.000 {method 'join' of 'bytes' objects} | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:1233(find_spec) | |
2 0.000 0.000 0.084 0.042 font.py:536(_get_lib) | |
1 0.000 0.000 0.000 0.000 xmlWriter.py:1(<module>) | |
1 0.000 0.000 0.003 0.003 dataSet.py:109(save) | |
2 0.000 0.000 0.000 0.000 plistlib.py:1020(dumps) | |
1 0.000 0.000 0.043 0.043 font.py:765(_saveInfo) | |
1 0.000 0.000 0.044 0.044 font.py:816(_saveFeatures) | |
2 0.000 0.000 0.003 0.001 layerSet.py:366(_stampLayerInfoDataState) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:743(get_code) | |
1 0.000 0.000 0.035 0.035 __init__.py:946(writeFeatures) | |
1 0.000 0.000 0.094 0.094 font.py:799(_saveKerning) | |
2 0.000 0.000 0.000 0.000 ntpath.py:199(split) | |
1 0.000 0.000 0.178 0.178 font.py:834(_saveLib) | |
5 0.000 0.000 0.000 0.000 validators.py:285(fontInfoPostscriptBluesValidator) | |
1 0.000 0.000 0.003 0.003 <frozen importlib._bootstrap>:958(_find_and_load) | |
4 0.000 0.000 0.000 0.000 glifLib.py:782(validateLayerInfoVersion3Data) | |
10 0.000 0.000 0.000 0.000 _weakrefset.py:81(add) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap>:861(_find_spec) | |
1 0.000 0.000 0.014 0.014 __init__.py:977(writeLayerContents) | |
1 0.000 0.000 0.002 0.002 __init__.py:1048(_getGlyphSetFormatVersion3) | |
10 0.000 0.000 0.000 0.000 _weakrefset.py:20(__enter__) | |
3 0.000 0.000 0.000 0.000 validators.py:251(fontInfoVersion3OpenTypeOS2PanoseValidator) | |
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:263(cache_from_source) | |
2 0.000 0.000 0.000 0.000 layerSet.py:497(pack) | |
5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:57(_path_join) | |
1 0.000 0.000 0.174 0.174 font.py:844(saveLib) | |
2 0.000 0.000 0.002 0.001 os.py:195(makedirs) | |
1 0.000 0.000 0.001 0.001 __init__.py:759(setModificationTime) | |
2 0.000 0.000 0.688 0.344 glifLib.py:105(__init__) | |
3 0.000 0.000 0.000 0.000 calendar.py:113(weekday) | |
17 0.000 0.000 0.000 0.000 plistlib.py:390(end_true) | |
1 0.000 0.000 0.081 0.081 __init__.py:384(readLib) | |
1 0.000 0.000 0.018 0.018 __init__.py:559(__init__) | |
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:63(_path_split) | |
1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:931(_find_and_load_unlocked) | |
1 0.000 0.000 0.040 0.040 font.py:775(saveInfo) | |
12 0.000 0.000 0.000 0.000 validators.py:68(genericNonNegativeNumberValidator) | |
15/10 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:430(_validate_bytecode_header) | |
1 0.000 0.000 0.002 0.002 <frozen importlib._bootstrap>:641(_load_unlocked) | |
2 0.000 0.000 0.000 0.000 validators.py:830(groupsValidator) | |
2 0.000 0.000 0.000 0.000 {built-in method _thread.allocate_lock} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:493(_init_module_attrs) | |
1 0.000 0.000 0.001 0.001 layerSet.py:155(instantiateLayer) | |
3/2 0.000 0.000 0.080 0.040 font.py:468(_get_groups) | |
1 0.000 0.000 0.082 0.082 font.py:782(_saveGroups) | |
1 0.000 0.000 0.000 0.000 layerSet.py:116(_set_defaultLayer) | |
5 0.000 0.000 0.000 0.000 validators.py:300(fontInfoPostscriptOtherBluesValidator) | |
1 0.000 0.000 0.002 0.002 font.py:345(instantiateInfo) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:57(__init__) | |
1 0.000 0.000 0.000 0.000 layerSet.py:53(__init__) | |
1 0.000 0.000 0.000 0.000 features.py:32(__init__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:485(_compile_bytecode) | |
1 0.000 0.000 0.689 0.689 __init__.py:442(getGlyphSet) | |
5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:59(<listcomp>) | |
10 0.000 0.000 0.000 0.000 _weakrefset.py:16(__init__) | |
6 0.000 0.000 0.000 0.000 validators.py:315(fontInfoPostscriptStemsValidator) | |
3 0.000 0.000 0.000 0.000 calendar.py:119(monthrange) | |
1 0.000 0.000 0.000 0.000 groups.py:80(__init__) | |
1 0.000 0.000 0.007 0.007 __init__.py:304(_readInfo) | |
1 0.000 0.000 0.000 0.000 font.py:351(beginSelfInfoSetNotificationObservation) | |
3 0.000 0.000 0.000 0.000 layerSet.py:136(_get_layerOrder) | |
18 0.000 0.000 0.000 0.000 {built-in method builtins.hash} | |
10 0.000 0.000 0.000 0.000 _weakrefset.py:52(_commit_removals) | |
2 0.000 0.000 0.000 0.000 __init__.py:511(getImageDirectoryListing) | |
1 0.000 0.000 0.000 0.000 layer.py:310(_set_name) | |
2 0.000 0.000 0.000 0.000 layerSet.py:493(__init__) | |
14 0.000 0.000 0.000 0.000 {method 'rstrip' of 'str' objects} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:77(acquire) | |
1 0.000 0.000 0.068 0.068 __init__.py:356(_readKerning) | |
1 0.000 0.000 0.000 0.000 features.py:59(_set_text) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:159(_get_module_lock) | |
2 0.000 0.000 0.000 0.000 layerSet.py:216(__iter__) | |
2 0.000 0.000 0.000 0.000 __init__.py:481(getDataDirectoryListing) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:146(__enter__) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:1117(_get_spec) | |
1 0.000 0.000 0.000 0.000 imageSet.py:89(_set_fileNames) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:672(exec_module) | |
1 0.000 0.000 0.000 0.000 {built-in method _locale._getdefaultlocale} | |
9 0.000 0.000 0.000 0.000 {method 'count' of 'str' objects} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:524(spec_from_file_location) | |
3 0.000 0.000 0.000 0.000 validators.py:267(fontInfoOpenTypeOS2FamilyClassValidator) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:304(__exit__) | |
1 0.000 0.000 0.000 0.000 font.py:307(instantiateLayerSet) | |
1 0.000 0.000 0.000 0.000 font.py:450(instantiateGroups) | |
1 0.000 0.000 0.000 0.000 __init__.py:803(writeGroups) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:361(_get_cached) | |
2 0.000 0.000 0.000 0.000 _weakrefset.py:36(__init__) | |
16 0.000 0.000 0.000 0.000 font.py:250(_get_path) | |
1 0.000 0.000 0.003 0.003 font.py:857(saveImages) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:102(release) | |
10 0.000 0.000 0.000 0.000 _collections_abc.py:392(__subclasshook__) | |
1 0.000 0.000 0.000 0.000 font.py:986(clearGuidelines) | |
1 0.000 0.000 0.090 0.090 __init__.py:931(writeLib) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:1228(_get_spec) | |
1 0.000 0.000 0.000 0.000 __init__.py:265(readGroups) | |
1 0.000 0.000 0.000 0.000 xmlWriter.py:12(XMLWriter) | |
1 0.000 0.000 0.001 0.001 cp1252.py:22(decode) | |
1 0.000 0.000 0.000 0.000 font.py:482(instantiateFeatures) | |
1 0.000 0.000 0.080 0.080 font.py:792(saveGroups) | |
1 0.000 0.000 0.000 0.000 layer.py:460(instantiateLib) | |
1 0.000 0.000 0.000 0.000 font.py:519(instantiateLib) | |
2 0.000 0.000 0.000 0.000 layer.py:477(_get_lib) | |
2 0.000 0.000 0.000 0.000 {method 'rsplit' of 'str' objects} | |
6 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:208(_verbose_message) | |
1 0.000 0.000 0.000 0.000 _bootlocale.py:11(getpreferredencoding) | |
7 0.000 0.000 0.000 0.000 __init__.py:598(_get_path) | |
4 0.000 0.000 0.000 0.000 info.py:100(_get_font) | |
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:52(_r_long) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:553(module_from_spec) | |
2 0.000 0.000 0.003 0.002 font.py:1107(_stampInfoDataState) | |
1 0.000 0.000 0.018 0.018 __init__.py:769(_writeMetaInfo) | |
1 0.000 0.000 0.000 0.000 imageSet.py:59(__init__) | |
6 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects} | |
1 0.000 0.000 0.035 0.035 font.py:827(saveFeatures) | |
1 0.000 0.000 0.002 0.002 __init__.py:1011(getGlyphSet) | |
1 0.000 0.000 0.000 0.000 kerning.py:60(__init__) | |
2 0.000 0.000 0.000 0.000 info.py:224(_get_guidelines) | |
3 0.000 0.000 0.001 0.000 <frozen importlib._bootstrap_external>:75(_path_stat) | |
1 0.000 0.000 0.000 0.000 font.py:323(beginSelfLayerSetNotificationObservation) | |
1 0.000 0.000 0.003 0.003 font.py:868(saveData) | |
1 0.000 0.000 0.000 0.000 font.py:901(_set_guidelines) | |
2 0.000 0.000 0.000 0.000 font.py:1113(_stampGroupsDataState) | |
2 0.000 0.000 0.003 0.001 font.py:1116(_stampFeaturesDataState) | |
2 0.000 0.000 0.003 0.002 font.py:1119(_stampLibDataState) | |
1 0.000 0.000 0.000 0.000 dataSet.py:26(__init__) | |
10 0.000 0.000 0.000 0.000 {method 'remove' of 'set' objects} | |
1 0.000 0.000 0.000 0.000 info.py:230(_set_guidelines) | |
3 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:834(__enter__) | |
1 0.000 0.000 0.001 0.001 __init__.py:423(getLayerNames) | |
1 0.000 0.000 0.000 0.000 __init__.py:633(_deleteFile) | |
4 0.000 0.000 0.000 0.000 font.py:436(_get_kerning) | |
2 0.000 0.000 0.000 0.000 font.py:896(_get_guidelines) | |
2 0.000 0.000 0.003 0.002 font.py:1110(_stampKerningDataState) | |
3 0.000 0.000 0.000 0.000 layerSet.py:220(__getitem__) | |
5 0.000 0.000 0.000 0.000 {method '__subclasses__' of 'type' objects} | |
1 0.000 0.000 0.000 0.000 font.py:554(instantiateImageSet) | |
6 0.000 0.000 0.000 0.000 __init__.py:603(_get_formatVersion) | |
2 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:389(cached) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:85(_path_is_mode_type) | |
1 0.000 0.000 0.000 0.000 font.py:1034(_beginSelfLayerNotificationObservation) | |
1 0.000 0.000 0.000 0.000 layerSet.py:171(beginSelfLayerNotificationObservation) | |
3 0.000 0.000 0.000 0.000 validators.py:225(fontInfoOpenTypeOS2WidthClassValidator) | |
1 0.000 0.000 0.000 0.000 {built-in method builtins.exec} | |
1 0.000 0.000 0.000 0.000 font.py:418(instantiateKerning) | |
1 0.000 0.000 0.000 0.000 lib.py:134(_set_layer) | |
1 0.000 0.000 0.000 0.000 font.py:456(beginSelfGroupsNotificationObservation) | |
1 0.000 0.000 0.000 0.000 layer.py:127(_get_font) | |
3 0.000 0.000 0.000 0.000 validators.py:58(genericNonNegativeIntValidator) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:35(_new_module) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:393(_check_name_wrapper) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:840(path_stats) | |
1 0.000 0.000 0.000 0.000 font.py:424(beginSelfKerningNotificationObservation) | |
1 0.000 0.000 0.000 0.000 font.py:488(beginSelfFeaturesNotificationObservation) | |
2 0.000 0.000 0.000 0.000 validators.py:515(guidelinesValidator) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:355(__init__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:771(find_spec) | |
1 0.000 0.000 0.000 0.000 codecs.py:185(__init__) | |
1 0.000 0.000 0.000 0.000 font.py:576(instantiateDataSet) | |
1 0.000 0.000 0.001 0.001 __init__.py:431(getDefaultLayerName) | |
1 0.000 0.000 0.000 0.000 layer.py:466(beginSelfLibNotificationObservation) | |
1 0.000 0.000 0.000 0.000 lib.py:98(_set_font) | |
1 0.000 0.000 0.000 0.000 {built-in method builtins.any} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:153(__exit__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:197(_call_with_frames_removed) | |
3 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:838(__exit__) | |
1 0.000 0.000 0.001 0.001 <frozen importlib._bootstrap_external>:1149(find_spec) | |
1 0.000 0.000 0.000 0.000 __init__.py:262(_readGroups) | |
2 0.000 0.000 0.000 0.000 imageSet.py:75(_get_font) | |
3 0.000 0.000 0.000 0.000 validators.py:215(fontInfoOpenTypeOS2WeightClassValidator) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:800(__init__) | |
3 0.000 0.000 0.000 0.000 {method 'clear' of 'dict' objects} | |
2 0.000 0.000 0.000 0.000 {built-in method from_bytes} | |
4 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:307(<genexpr>) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:94(_path_isfile) | |
1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) | |
1 0.000 0.000 0.000 0.000 features.py:48(_get_font) | |
1 0.000 0.000 0.000 0.000 notifications.py:43(__init__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:297(__enter__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:402(parent) | |
4 0.000 0.000 0.000 0.000 font.py:338(_get_layers) | |
1 0.000 0.000 0.000 0.000 font.py:525(beginSelfLibNotificationObservation) | |
3 0.000 0.000 0.000 0.000 {method 'weekday' of 'datetime.date' objects} | |
4 0.000 0.000 0.000 0.000 {built-in method _imp.release_lock} | |
1 0.000 0.000 0.000 0.000 {built-in method _imp.is_frozen} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:142(__init__) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:1080(_path_importer_cache) | |
2 0.000 0.000 0.000 0.000 ntpath.py:33(_get_bothseps) | |
1 0.000 0.000 0.000 0.000 font.py:560(beginSelfImageSetNotificationObservation) | |
3 0.000 0.000 0.000 0.000 layer.py:319(_get_name) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:37(_relax_case) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:293(__init__) | |
1 0.000 0.000 0.000 0.000 font.py:582(beginSelfDataSetNotificationObservation) | |
1 0.000 0.000 0.000 0.000 __init__.py:995(<listcomp>) | |
1 0.000 0.000 0.000 0.000 layerSet.py:139(_set_layerOrder) | |
2 0.000 0.000 0.000 0.000 dataSet.py:42(_get_font) | |
1 0.000 0.000 0.000 0.000 dataSet.py:56(_set_fileNames) | |
1 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects} | |
1 0.000 0.000 0.000 0.000 {built-in method _imp._fix_co_filename} | |
1 0.000 0.000 0.000 0.000 __init__.py:428(<listcomp>) | |
2 0.000 0.000 0.000 0.000 layer.py:326(_get_color) | |
1 0.000 0.000 0.000 0.000 groups.py:94(_get_font) | |
2 0.000 0.000 0.000 0.000 {built-in method _thread.get_ident} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:173(cb) | |
1 0.000 0.000 0.000 0.000 kerning.py:74(_get_font) | |
2 0.000 0.000 0.000 0.000 features.py:67(_get_text) | |
3 0.000 0.000 0.000 0.000 {built-in method _imp.acquire_lock} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:698(find_spec) | |
1 0.000 0.000 0.000 0.000 font.py:591(_get_data) | |
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:410(has_location) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:825(get_filename) | |
1 0.000 0.000 0.000 0.000 __init__.py:132(_get_formatVersion) | |
1 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:669(create_module) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7006259 function calls (6988005 primitive calls) in 57.621 seconds | |
Ordered by: internal time | |
ncalls tottime percall cumtime percall filename:lineno(function) | |
2324 35.276 0.015 50.626 0.022 glyphSet.py:69(writeGlyph) | |
4665 4.710 0.001 4.710 0.001 {built-in method io.open} | |
2701650 4.438 0.000 6.516 0.000 glyphSet.py:75(<genexpr>) | |
2724114 2.096 0.000 2.096 0.000 {method 'lower' of 'str' objects} | |
2324 1.778 0.001 1.907 0.001 glyphSet.py:283(treeFromOutline) | |
2324 1.243 0.001 5.029 0.002 glyphSet.py:36(readGlyph) | |
2324 1.016 0.000 1.381 0.001 glyphSet.py:193(outlineFromTree) | |
2324 0.937 0.000 4.313 0.002 glyphSet.py:220(treeFromGlyph) | |
1 0.825 0.825 51.759 51.759 layer.py:108(save) | |
2035 0.370 0.000 1.130 0.001 {method 'ParseFile' of 'pyexpat.xmlparser' objects} | |
2324 0.319 0.000 0.396 0.000 filenames.py:21(userNameToFileName) | |
35902 0.319 0.000 0.549 0.000 plistlib.py:442(writeln) | |
2324 0.318 0.000 2.689 0.001 glyphSet.py:145(glyphFromTree) | |
103022 0.185 0.000 0.185 0.000 glyphSet.py:112(_number) | |
125158 0.176 0.000 0.176 0.000 {method 'replace' of 'str' objects} | |
109264 0.169 0.000 0.169 0.000 {built-in method builtins.repr} | |
19853/2036 0.169 0.000 1.582 0.001 plistlib.py:470(write_value) | |
22234 0.166 0.000 0.394 0.000 plistlib.py:300(_escape) | |
22570 0.165 0.000 0.888 0.000 plistlib.py:434(simple_element) | |
2324 0.163 0.000 5.196 0.002 layer.py:77(loadGlyph) | |
150860 0.155 0.000 0.155 0.000 {built-in method builtins.isinstance} | |
11664 0.149 0.000 0.202 0.000 ntpath.py:121(splitdrive) | |
58683 0.145 0.000 0.145 0.000 {built-in method builtins.getattr} | |
4670 0.112 0.000 0.300 0.000 ntpath.py:74(join) | |
89969 0.109 0.000 0.147 0.000 plistlib.py:339(handle_data) | |
186647 0.096 0.000 0.096 0.000 {method 'append' of 'list' objects} | |
80191 0.090 0.000 0.090 0.000 {method 'write' of '_io.BytesIO' objects} | |
19851 0.080 0.000 0.097 0.000 plistlib.py:342(add_object) | |
29232 0.080 0.000 0.396 0.000 plistlib.py:334(handle_end_element) | |
22234 0.079 0.000 0.079 0.000 {method 'search' of '_sre.SRE_Pattern' objects} | |
29232 0.079 0.000 0.217 0.000 plistlib.py:328(handle_begin_element) | |
45458 0.076 0.000 0.076 0.000 <attrs generated init e74d045dd04dc02caec9efe190c97c93979a88e8>:1(__init__) | |
35939 0.076 0.000 0.076 0.000 {method 'encode' of 'str' objects} | |
2468/2035 0.075 0.000 1.544 0.001 plistlib.py:523(write_dict) | |
2324 0.072 0.000 0.157 0.000 ntpath.py:471(normpath) | |
45458 0.061 0.000 0.082 0.000 contour.py:29(append) | |
2036 0.058 0.000 1.800 0.001 plistlib.py:1009(dump) | |
8738 0.057 0.000 0.124 0.000 plistlib.py:399(end_real) | |
4650 0.054 0.000 5.281 0.001 layer.py:39(__iter__) | |
4630 0.049 0.000 0.128 0.000 plistlib.py:423(begin_element) | |
22268 0.044 0.000 0.057 0.000 plistlib.py:358(get_data) | |
4630 0.044 0.000 0.118 0.000 plistlib.py:428(end_element) | |
2324 0.042 0.000 0.042 0.000 <attrs generated init 9fc29dc1882fa0ec118918b95dadd77b49f666a5>:1(__init__) | |
2467 0.041 0.000 0.041 0.000 {built-in method builtins.sorted} | |
29551 0.040 0.000 0.040 0.000 {method 'write' of '_io.BufferedWriter' objects} | |
1 0.040 0.040 0.045 0.045 writer.py:102(writeFeatures) | |
2130/2129 0.038 0.000 0.858 0.000 plistlib.py:543(write_array) | |
7346 0.036 0.000 0.062 0.000 plistlib.py:376(end_key) | |
2035 0.030 0.000 1.173 0.001 plistlib.py:320(parse) | |
4648 0.030 0.000 5.226 0.001 layer.py:34(__getitem__) | |
2035 0.029 0.000 1.222 0.001 plistlib.py:978(load) | |
2029 0.029 0.000 1.445 0.001 plistlib.py:1020(dumps) | |
4648 0.028 0.000 0.028 0.000 {method 'split' of 'str' objects} | |
29240 0.027 0.000 0.027 0.000 {method 'join' of 'str' objects} | |
20982 0.027 0.000 0.027 0.000 {built-in method nt.fspath} | |
965 0.023 0.000 0.033 0.000 glyphSet.py:119(_transformation) | |
32656 0.022 0.000 0.022 0.000 {built-in method builtins.len} | |
2036 0.021 0.000 0.041 0.000 plistlib.py:455(__init__) | |
8158 0.020 0.000 0.031 0.000 contour.py:23(__iter__) | |
11620 0.020 0.000 0.020 0.000 glyph.py:30(name) | |
6101 0.020 0.000 0.028 0.000 enum.py:579(__hash__) | |
1 0.019 0.019 0.251 0.251 glyphSet.py:64(writeContents) | |
2324 0.019 0.000 0.195 0.000 ntpath.py:538(abspath) | |
9228 0.018 0.000 0.018 0.000 {method 'pop' of 'list' objects} | |
1 0.018 0.018 0.026 0.026 writer.py:124(writeInfo) | |
2036 0.018 0.000 1.682 0.001 plistlib.py:465(write) | |
2324 0.016 0.000 0.016 0.000 {built-in method nt._getfullpathname} | |
2036 0.015 0.000 0.015 0.000 plistlib.py:417(__init__) | |
1 0.014 0.014 0.088 0.088 writer.py:146(writeLib) | |
1 0.014 0.014 0.015 0.015 writer.py:30(_writeMetaInfo) | |
2035 0.013 0.000 0.013 0.000 {built-in method pyexpat.ParserCreate} | |
1 0.013 0.013 0.092 0.092 writer.py:135(writeKerning) | |
2029 0.013 0.000 0.918 0.000 plistlib.py:1000(loads) | |
1 0.013 0.013 0.015 0.015 writer.py:64(writeLayerContents) | |
1 0.012 0.012 0.014 0.014 glyphSet.py:84(writeLayerInfo) | |
4079 0.012 0.000 0.012 0.000 <attrs generated init 2dec012a80e7e36e53caab8cdb548fa4059b39a9>:1(__init__) | |
2324 0.012 0.000 0.012 0.000 {method 'get' of 'dict' objects} | |
4666 0.012 0.000 0.045 0.000 plistlib.py:402(end_string) | |
2467 0.012 0.000 0.020 0.000 plistlib.py:365(begin_dict) | |
8166/8163 0.010 0.000 0.010 0.000 {built-in method builtins.iter} | |
4648 0.010 0.000 0.010 0.000 {method 'startswith' of 'str' objects} | |
2035 0.009 0.000 0.009 0.000 plistlib.py:313(__init__) | |
6166 0.008 0.000 0.008 0.000 {built-in method builtins.hash} | |
965 0.008 0.000 0.010 0.000 glyphSet.py:130(_transformation_back) | |
2131 0.007 0.000 0.022 0.000 plistlib.py:382(begin_array) | |
1481 0.007 0.000 0.017 0.000 plistlib.py:396(end_integer) | |
2324 0.006 0.000 0.006 0.000 {method 'lstrip' of 'str' objects} | |
2467 0.005 0.000 0.010 0.000 plistlib.py:370(end_dict) | |
2324 0.005 0.000 0.005 0.000 glyphSet.py:96(__contains__) | |
2330 0.004 0.000 0.004 0.000 {method 'values' of 'dict' objects} | |
2153 0.004 0.000 0.004 0.000 <attrs generated init 77e4b6554a192b992e38184f1fa744b8c22a4381>:1(__init__) | |
2131 0.004 0.000 0.007 0.000 plistlib.py:387(end_array) | |
2010 0.004 0.000 0.004 0.000 {built-in method builtins.setattr} | |
2029 0.003 0.000 0.003 0.000 {method 'getvalue' of '_io.BytesIO' objects} | |
965 0.003 0.000 0.003 0.000 <attrs generated init b63c5f72583acfbf93762da6e342afc49d95dcbd>:1(__init__) | |
2468 0.003 0.000 0.003 0.000 {method 'items' of 'dict' objects} | |
1 0.002 0.002 0.002 0.002 {built-in method _codecs.charmap_encode} | |
2 0.002 0.001 0.002 0.001 {built-in method nt.mkdir} | |
965 0.002 0.000 0.002 0.000 <attrs generated init d355266e7ca641de60ad9bcbfad0cf9e0eb23366>:1(__init__) | |
1 0.001 0.001 0.002 0.002 {method 'read' of '_io.TextIOWrapper' objects} | |
1 0.001 0.001 0.003 0.003 {method 'write' of '_io.TextIOWrapper' objects} | |
1 0.001 0.001 0.001 0.001 {built-in method _codecs.charmap_decode} | |
1 0.001 0.001 0.001 0.001 {built-in method nt.remove} | |
37 0.001 0.000 0.004 0.000 plistlib.py:510(write_bytes) | |
1 0.001 0.001 0.001 0.001 layer.py:18(__attrs_post_init__) | |
6 0.001 0.000 0.001 0.000 {method 'read' of '_io.BufferedReader' objects} | |
314 0.001 0.000 0.002 0.000 plistlib.py:393(end_false) | |
1 0.001 0.001 0.002 0.002 _funcs.py:10(asdict) | |
37 0.000 0.000 0.001 0.000 plistlib.py:260(_encode_base64) | |
1 0.000 0.000 52.226 52.226 font.py:164(save) | |
1 0.000 0.000 0.009 0.009 font.py:100(info) | |
2 0.000 0.000 0.000 0.000 {built-in method nt.listdir} | |
37 0.000 0.000 0.001 0.000 plistlib.py:269(_decode_base64) | |
37 0.000 0.000 0.001 0.000 plistlib.py:405(end_data) | |
1 0.000 0.000 0.000 0.000 {built-in method nt.stat} | |
37 0.000 0.000 0.000 0.000 {method 'replace' of 'bytes' objects} | |
65 0.000 0.000 0.000 0.000 <attrs generated hash 7a54b20973f01c272dc9f5bc437af93d366504da>:1(__hash__) | |
93 0.000 0.000 0.000 0.000 filters.py:49(exclude_) | |
37 0.000 0.000 0.000 0.000 {built-in method builtins.max} | |
1 0.000 0.000 51.790 51.790 layerSet.py:115(save) | |
2 0.000 0.000 0.158 0.079 glyphSet.py:27(rebuildContents) | |
37 0.000 0.000 0.000 0.000 {built-in method binascii.a2b_base64} | |
1 0.000 0.000 0.003 0.003 reader.py:98(readFeatures) | |
125 0.000 0.000 0.000 0.000 _funcs.py:142(has) | |
37 0.000 0.000 0.000 0.000 {method 'split' of 'bytes' objects} | |
1 0.000 0.000 0.001 0.001 reader.py:59(getLayerContents) | |
1 0.000 0.000 0.077 0.077 reader.py:125(readKerning) | |
1 0.000 0.000 0.008 0.008 reader.py:116(readInfo) | |
1 0.000 0.000 0.001 0.001 glyphSet.py:46(readLayerInfo) | |
1 0.000 0.000 0.076 0.076 reader.py:134(readLib) | |
6 0.000 0.000 0.000 0.000 {method 'seek' of '_io.BufferedReader' objects} | |
1 0.000 0.000 0.161 0.161 font.py:29(__attrs_post_init__) | |
13 0.000 0.000 0.000 0.000 _funcs.py:52(<listcomp>) | |
1 0.000 0.000 0.003 0.003 font.py:70(features) | |
37 0.000 0.000 0.000 0.000 {method 'join' of 'bytes' objects} | |
1 0.000 0.000 0.017 0.017 writer.py:19(__attrs_post_init__) | |
1 0.000 0.000 0.077 0.077 font.py:121(kerning) | |
1 0.000 0.000 0.002 0.002 layerSet.py:72(newLayer) | |
1 0.000 0.000 0.000 0.000 <attrs generated init 3e6adf01652b3f3cfc4cccefc8e3863385c0737e>:1(__init__) | |
2 0.000 0.000 0.000 0.000 _bootlocale.py:11(getpreferredencoding) | |
1 0.000 0.000 0.076 0.076 font.py:135(lib) | |
6 0.000 0.000 0.000 0.000 plistlib.py:554(_is_fmt_xml) | |
2 0.000 0.000 0.000 0.000 {built-in method _locale._getdefaultlocale} | |
1 0.000 0.000 0.001 0.001 writer.py:113(writeGroups) | |
1 0.000 0.000 0.000 0.000 font.py:90(groups) | |
4 0.000 0.000 0.000 0.000 layerSet.py:26(__iter__) | |
1 0.000 0.000 0.001 0.001 writer.py:47(getGlyphSet) | |
1 0.000 0.000 0.001 0.001 <attrs generated init 6e7e0dbf9570c31431a75257988fc818f50d1561>:1(__init__) | |
3 0.000 0.000 0.000 0.000 layerSet.py:38(defaultLayer) | |
1 0.000 0.000 0.000 0.000 reader.py:107(readGroups) | |
2 0.000 0.000 0.158 0.079 glyphSet.py:18(__attrs_post_init__) | |
17 0.000 0.000 0.000 0.000 plistlib.py:390(end_true) | |
1 0.000 0.000 0.001 0.001 cp1252.py:22(decode) | |
6 0.000 0.000 0.000 0.000 {method 'startswith' of 'bytes' objects} | |
1 0.000 0.000 0.000 0.000 layerSet.py:60(layerOrder) | |
1 0.000 0.000 0.000 0.000 genericpath.py:16(exists) | |
1 0.000 0.000 0.000 0.000 filters.py:11(_split_what) | |
6 0.000 0.000 0.000 0.000 <attrs generated init 5e8535b224bbbf36760727358c53d66360ac1c71>:1(__init__) | |
1 0.000 0.000 0.000 0.000 glyphSet.py:105(keys) | |
1 0.000 0.000 0.000 0.000 reader.py:27(_getDirectoryListing) | |
1 0.000 0.000 0.161 0.161 <attrs generated init 7b139731ca8ea88446927212bd68250500e3e435>:1(__init__) | |
1 0.000 0.000 0.000 0.000 reader.py:21(getDataDirectoryListing) | |
1 0.000 0.000 0.158 0.158 reader.py:72(getGlyphSet) | |
2 0.000 0.000 0.000 0.000 <attrs generated init 0f22a5ef181bf41acfe849126cc3b5599ebe31ea>:1(__init__) | |
1 0.000 0.000 0.002 0.002 cp1252.py:18(encode) | |
1 0.000 0.000 0.000 0.000 reader.py:43(getImageDirectoryListing) | |
2 0.000 0.000 0.000 0.000 misc.py:46(save) | |
1 0.000 0.000 0.017 0.017 <attrs generated init ea42c32b1981394832f27665c745a0c5c328d6c2>:1(__init__) | |
1 0.000 0.000 0.000 0.000 <attrs generated eq 77f26fc45d3da0c051c1fe16cb758d3de393979d>:1(__eq__) | |
3 0.000 0.000 0.000 0.000 {built-in method builtins.next} | |
1 0.000 0.000 0.000 0.000 codecs.py:259(__init__) | |
1 0.000 0.000 0.000 0.000 font.py:58(__iter__) | |
4 0.000 0.000 0.000 0.000 {method 'values' of 'collections.OrderedDict' objects} | |
1 0.000 0.000 0.000 0.000 filters.py:38(exclude) | |
2 0.000 0.000 0.000 0.000 filters.py:16(<genexpr>) | |
1 0.000 0.000 0.000 0.000 <attrs generated init 4cc9c92ac30fa5baeb607682e9d15c80b44efe73>:1(__init__) | |
1 0.000 0.000 0.000 0.000 codecs.py:185(__init__) | |
1 0.000 0.000 0.000 0.000 layerSet.py:11(__attrs_post_init__) | |
1 0.000 0.000 0.000 0.000 _make.py:1003(fields) | |
2 0.000 0.000 0.000 0.000 _compat.py:78(isclass) | |
1 0.000 0.000 0.000 0.000 font.py:131(layers) | |
1 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects} | |
2 0.000 0.000 0.000 0.000 layer.py:65(name) | |
1 0.000 0.000 0.000 0.000 font.py:84(guidelines) | |
1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects} | |
1 0.000 0.000 0.000 0.000 filters.py:17(<genexpr>) | |
1 0.000 0.000 0.000 0.000 layerSet.py:29(__len__) | |
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment