Editing, Viewing, and Layering Issues



  • I'm curious if anyone else has had randomly had problems with editing their glyphs, their default view setting upon opening, and layer errors?

    For about two weeks now, as I've been implementing Greek glyphs into a a previously drawn typeface, I've been getting an error when toggling between layers. It always allows me to keep working; however, throws an error callback:

    Traceback (most recent call last):
      File "lib/tools/misc.pyc", line 305, in wrapper
      File "lib/views/doodleLayers/glyphLayer.pyc", line 741, in setLayoutForObject_
      File "lib/views/doodleLayers/glyphLayer.pyc", line 744, in setGlyph_
      File "lib/views/doodleLayers/glyphLayer.pyc", line 754, in updateGlyph
      File "lib/views/doodleLayers/glyphLayer.pyc", line 512, in setGlyph_
    AttributeError: 'NoneType' object has no attribute 'getRepresentation'
    

    Yesterday, however, something more extreme occurred and I can't work on any UFO files anymore! When I open a glyph the editing window is white (screenshot below), and I get this callback:

    Traceback (most recent call last):
      File "lib/tools/misc.pyc", line 305, in wrapper
      File "lib/views/doodleLayerGlyphView.pyc", line 1881, in setGlyphRecords_
      File "lib/views/doodleLayers/drawingBoardLayer.pyc", line 35, in activateEditor_
      File "lib/views/doodleLayers/glyphLayer.pyc", line 148, in setGlyph_
      File "lib/views/doodleLayers/glyphMetricsLayer.pyc", line 30, in setGlyph_
    UnboundLocalError: local variable 'scale' referenced before assignment
    

    Editing window upon opening a glyph
    Screen Shot 2021-06-09 at 06.17.53.png
    Editing window upon pressing Command + 0 to zoom out, showing only the fill version of the drawing
    Screen Shot 2021-06-09 at 06.24.51.png

    Other associated callbacks that I received — while working on a layer named "follow", which resulted in me needing to restart RF and immediately after induced the main problem mentioned above — are below:

    1

    Traceback (most recent call last):
      File "lib/tools/misc.pyc", line 305, in wrapper
      File "lib/views/doodleLayers/glyphLayer.pyc", line 741, in setLayoutForObject_
      File "lib/views/doodleLayers/glyphLayer.pyc", line 744, in setGlyph_
      File "lib/views/doodleLayers/glyphLayer.pyc", line 754, in updateGlyph
      File "lib/views/doodleLayers/glyphLayer.pyc", line 512, in setGlyph_
    AttributeError: 'NoneType' object has no attribute 'getRepresentation'
    

    2

    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1218, in _keyDown
      File "lib/fontObjects/doodleSelection.pyc", line 1035, in selectionEditEnded
      File "lib/fontObjects/doodleLayer.pyc", line 403, in updateComponentReferences
      File "lib/fontObjects/doodleLayer.pyc", line 384, in _get_componentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 350, in getRepresentation
      File "lib/fontObjects/factories/componentReferencesFactory.pyc", line 18, in ComponentReferencesFactory
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 539, in getComponentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 335, in getGLIF
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/wrapfs.py", line 342, in readbytes
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 603, in readbytes
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/osfs.py", line 630, in open
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 1553, in check
    fs.errors.FilesystemClosed: attempt to use closed filesystem
    

    3

    Traceback (most recent call last):
      File "lib/doodleUndo.pyc", line 76, in undo_
      File "lib/fontObjects/doodleLayer.pyc", line 403, in updateComponentReferences
      File "lib/fontObjects/doodleLayer.pyc", line 384, in _get_componentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 350, in getRepresentation
        representation = factory["factory"](self, **kwargs)
      File "lib/fontObjects/factories/componentReferencesFactory.pyc", line 18, in ComponentReferencesFactory
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 539, in getComponentReferences
        text = self.getGLIF(glyphName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 335, in getGLIF
        return self.fs.readbytes(fileName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/wrapfs.py", line 342, in readbytes
        _bytes = _fs.readbytes(_path)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 603, in readbytes
        with closing(self.open(path, mode="rb")) as read_file:
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/osfs.py", line 630, in open
        self.check()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 1553, in check
        raise errors.FilesystemClosed()
    fs.errors.FilesystemClosed: attempt to use closed filesystem
    

    4

    Traceback (most recent call last):
      File "lib/views/doodleLayerGlyphView.pyc", line 1995, in undo_
      File "lib/doodleUndo.pyc", line 76, in undo_
      File "lib/fontObjects/doodleLayer.pyc", line 403, in updateComponentReferences
      File "lib/fontObjects/doodleLayer.pyc", line 384, in _get_componentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 350, in getRepresentation
        representation = factory["factory"](self, **kwargs)
      File "lib/fontObjects/factories/componentReferencesFactory.pyc", line 18, in ComponentReferencesFactory
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 539, in getComponentReferences
        text = self.getGLIF(glyphName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 335, in getGLIF
        return self.fs.readbytes(fileName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/wrapfs.py", line 342, in readbytes
        _bytes = _fs.readbytes(_path)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 603, in readbytes
        with closing(self.open(path, mode="rb")) as read_file:
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/osfs.py", line 630, in open
        self.check()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 1553, in check
        raise errors.FilesystemClosed()
    fs.errors.FilesystemClosed: attempt to use closed filesystem
    

    5

    Traceback (most recent call last):
      File "lib/doodleDelegate.pyc", line 96, in sendEvent_
      File "lib/views/doodleLayerGlyphView.pyc", line 1995, in undo_
      File "lib/doodleUndo.pyc", line 76, in undo_
      File "lib/fontObjects/doodleLayer.pyc", line 403, in updateComponentReferences
      File "lib/fontObjects/doodleLayer.pyc", line 384, in _get_componentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 350, in getRepresentation
        representation = factory["factory"](self, **kwargs)
      File "lib/fontObjects/factories/componentReferencesFactory.pyc", line 18, in ComponentReferencesFactory
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 539, in getComponentReferences
        text = self.getGLIF(glyphName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 335, in getGLIF
        return self.fs.readbytes(fileName)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/wrapfs.py", line 342, in readbytes
        _bytes = _fs.readbytes(_path)
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 603, in readbytes
        with closing(self.open(path, mode="rb")) as read_file:
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/osfs.py", line 630, in open
        self.check()
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 1553, in check
        raise errors.FilesystemClosed()
    fs.errors.FilesystemClosed: attempt to use closed filesystem
    

    6

    Traceback (most recent call last):
      File "lib/eventTools/editingTool.pyc", line 1175, in _keyDown
      File "lib/fontObjects/doodleSelection.pyc", line 1700, in deleteSelectionFromGlyph
      File "lib/fontObjects/doodleLayer.pyc", line 403, in updateComponentReferences
      File "lib/fontObjects/doodleLayer.pyc", line 384, in _get_componentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/defcon/objects/base.py", line 350, in getRepresentation
      File "lib/fontObjects/factories/componentReferencesFactory.pyc", line 18, in ComponentReferencesFactory
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 539, in getComponentReferences
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fontTools/ufoLib/glifLib.py", line 335, in getGLIF
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/wrapfs.py", line 342, in readbytes
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 603, in readbytes
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/osfs.py", line 630, in open
      File "/Applications/RoboFont.app/Contents/Resources/lib/python3.7/fs/base.py", line 1553, in check
    fs.errors.FilesystemClosed: attempt to use closed filesystem
    

    Has anyone else experienced this and/or solved this? Since it happened on the one UFO file, it's now consistent with every UFO on my machine — a major issue for me, to say the least, as I'm supposed to deliver the Greek set before the end of the week.

    Any help would be greatly appreciated.