ufoLib ------ - UFOReader - need to add up-conversion for kerning and kerning groups - this needs to be done in three different methods: - readInfo - default suffixes can be set in __init__ - readGroups - maybe skim the kerning for referenced groups and rename on the fly. this creates a race condition of sorts in that he kerning could be modified after the groups have been read. there isn't any way around this. maybe the doc should say that for < version 3 kerning and groups should always be read at the same time. - readKerning - need to temporarily read the groups for conversion. see above. - readInfo - double check to make sure that no conversion is needed - add support for new attributes - add a method for getting the images path - add a method for getting the directory path - add a getLayerNames method - how will this handle indicating that a layer is the default? - getGlyphSet - add a layerName=None argument - UFOWriter - change default version - writeInfo - need down-convert function to filter out >= 3 attributes - add support for new attributes - writeKerning and writeGroups - down conversion of modified group names is going to be a problem when writing into an existing < 3 file. - getGlyphSet - add layerName=None argument - add the user name to file name conversion abstraction to glifLib - add an isDefaultLayer=True (or something) argument for when the default layer has a name - update layercontents.plist each time a glyph set is created or make the caller do it? - add a method for getting the images path - add a method for getting the directory path - change the directory mod time for each write - build version 3 attribute definitions - maybe do a dynamic copy of the version 2 data - update validation functions - are the in place version converters necessary? glifLib ------- X roll in server optimizations - make GlyphSet a new style class - GlyphSet - add a readLayerInfo(info) method - add a writeLayerInfo(info) method - writeGlyph - need to support guides - glyph object must have a list like object located at the guidelines attribute. the objects returned from that object must have a dict like behavior. API sketch: for guideline in glyph.guidelines: x = guideline["x"] y = guideline["y"] ... - need to support images - glyph object must have a dict like object located at the image attribute. API sketch: fileName = glyph.image["fileName"] xScale = glyph.image["xScale"] - readGlyph - need to support guides - glyph object must accept a list of dicts at the guidelines attribute. API sketch: glyph.guidelines = [ dict(x=100, y=100, angle=12.3, name="name", color="0,0,0,1", identified="identifier1"), dict(x=100, y=100, angle=12.3, name="name", color="0,0,0,1", identified="identifier2") ] - need to support images - glyph object must accept a dict at the image attribute. API sketch: glyph.image = dict(fileName="foo.png", xScale=1, yScale=1, ..., color="1,0,0,0.5") - GLIFPointPen - update to new API - writeGlyphToString needs to be adapted - add a formatVersion=3 argument - add a buildOutline_Format2 function - add the user name to file name conversion from the UFO spec - don't write "180.0" point pen protocol ------------------ - add an identifier=None to the beginPath method - add an identifier=None to the addComponent method - add an identifier=None to the addPoint method? - add **kwargs to beginPath and addComponent? RoboFab ------- - remove - anything with a DeprecationWarning (except the font.info attribute mapping) - pens - TransoformationPointPen needs to retain point data - make point pens new style classes? - reverse contour pen needs to retain kwargs