{"action":"created","issue":{"url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/464","repository_url":"https://api.github.com/repos/googlei18n/glyphsLib","labels_url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/464/labels{/name}","comments_url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/464/comments","events_url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/464/events","html_url":"https://github.com/googlei18n/glyphsLib/issues/464","id":381285697,"node_id":"MDU6SXNzdWUzODEyODU2OTc=","number":464,"title":"glyphs2ufo: chokes on data folder restoration on Windows","user":{"login":"madig","id":380829,"node_id":"MDQ6VXNlcjM4MDgyOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/380829?v=4","gravatar_id":"","url":"https://api.github.com/users/madig","html_url":"https://github.com/madig","followers_url":"https://api.github.com/users/madig/followers","following_url":"https://api.github.com/users/madig/following{/other_user}","gists_url":"https://api.github.com/users/madig/gists{/gist_id}","starred_url":"https://api.github.com/users/madig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madig/subscriptions","organizations_url":"https://api.github.com/users/madig/orgs","repos_url":"https://api.github.com/users/madig/repos","events_url":"https://api.github.com/users/madig/events{/privacy}","received_events_url":"https://api.github.com/users/madig/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-11-15T18:27:50Z","updated_at":"2018-11-15T18:45:02Z","closed_at":null,"author_association":"COLLABORATOR","body":"On Windows, nested files in the data/ folder may get different path slashes inserted, confusing `fs`.\r\n\r\n1. Download [testufo.zip](https://github.com/googlei18n/glyphsLib/files/2586552/testufo.zip)\r\n2. `ufo2glyphs 1.ufo`\r\n3. `glyphs2ufo Test.glyphs`\r\n\r\n```\r\nTraceback (most recent call last):\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\runpy.py\", line 193, in _run_module_as_main\r\n    \"__main__\", mod_spec)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\runpy.py\", line 85, in _run_code\r\n    exec(code, run_globals)\r\n  File \"C:\\Users\\nikolaus.waxweiler\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\glyphs2ufo.exe\\__main__.py\", line 9, in <module>\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\glyphsLib\\cli.py\", line 189, in _glyphs2ufo_entry_point\r\n    return main(args)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\glyphsLib\\cli.py\", line 153, in main\r\n    return options.func(options)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\glyphsLib\\cli.py\", line 181, in glyphs2ufo\r\n    generate_GDEF=options.generate_GDEF,\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\glyphsLib\\__init__.py\", line 137, in build_masters\r\n    source.font.save(ufo_path)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\defcon\\objects\\font.py\", line 861, in save\r\n    self.saveData(writer=writer, saveAs=saveAs, progressBar=progressBar)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\defcon\\objects\\font.py\", line 996, in saveData\r\n    self.data.save(writer, saveAs=saveAs, progressBar=progressBar)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\defcon\\objects\\dataSet.py\", line 134, in save\r\n    writer.writeBytesToPath(\"%s/%s\" % (\"data\", fileName), data[\"data\"])\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\fontTools\\ufoLib\\__init__.py\", line 1012, in writeBytesToPath\r\n    self.fs.setbytes(path, data)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\fs\\base.py\", line 1248, in setbytes\r\n\r\n    with closing(self.open(path, mode=\"wb\")) as write_file:\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\fs\\osfs.py\", line 594, in open\r\n    _path = self.validatepath(path)\r\n  File \"c:\\users\\nikolaus.waxweiler\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\fs\\base.py\", line 1437, in validatepath\r\n    raise errors.InvalidCharsInPath(path)\r\nfs.errors.InvalidCharsInPath: path 'data/test\\TSI3.ttx' contains invalid characters\r\n```"},"comment":{"url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/comments/439147625","html_url":"https://github.com/googlei18n/glyphsLib/issues/464#issuecomment-439147625","issue_url":"https://api.github.com/repos/googlei18n/glyphsLib/issues/464","id":439147625,"node_id":"MDEyOklzc3VlQ29tbWVudDQzOTE0NzYyNQ==","user":{"login":"anthrotype","id":6939968,"node_id":"MDQ6VXNlcjY5Mzk5Njg=","avatar_url":"https://avatars3.githubusercontent.com/u/6939968?v=4","gravatar_id":"","url":"https://api.github.com/users/anthrotype","html_url":"https://github.com/anthrotype","followers_url":"https://api.github.com/users/anthrotype/followers","following_url":"https://api.github.com/users/anthrotype/following{/other_user}","gists_url":"https://api.github.com/users/anthrotype/gists{/gist_id}","starred_url":"https://api.github.com/users/anthrotype/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anthrotype/subscriptions","organizations_url":"https://api.github.com/users/anthrotype/orgs","repos_url":"https://api.github.com/users/anthrotype/repos","events_url":"https://api.github.com/users/anthrotype/events{/privacy}","received_events_url":"https://api.github.com/users/anthrotype/received_events","type":"User","site_admin":false},"created_at":"2018-11-15T18:45:02Z","updated_at":"2018-11-15T18:45:02Z","author_association":"MEMBER","body":"no, it's not a bug in fs. we must always use forward slashes when interacting with fs."}}
{"actor":{"display_login":"anthrotype"}}