def write_attr(filename, nodeid, attr): """ Write a node meta file filename -- a filename or stream attr -- attribute dict """ if isinstance(filename, basestring): out = safefile.open(filename, "w", codec="utf-8") # Ensure nodeid is consistent if given. nodeid2 = attr.get('nodeid') if nodeid2: assert nodeid == nodeid2, (nodeid, nodeid2) version = attr.get('version', keepnote.notebook.NOTEBOOK_FORMAT_VERSION) out.write(u'<?xml version="1.0" encoding="UTF-8"?>\n' u'<node>\n' u'<version>%d</version>\n' u'<id>%s</id>\n' % (version, nodeid)) plist.dump(attr, out, indent=2, depth=0) out.write(u'</node>\n') if isinstance(filename, basestring): out.close()
def write_attr_v6(filename, attr): out = safefile.open(filename, "w", codec="utf-8") out.write(u'<?xml version="1.0" encoding="UTF-8"?>\n' u'<node>\n' u'<version>%d</version>\n' % attr["version"]) plist.dump(attr, out, indent=2, depth=0) out.write(u'</node>\n') out.close()
def test_read_write_file(self): data = { 'aaa': 444, '11': True, } plist_xml = ("<dict><key>aaa</key><integer>444</integer>" "<key>11</key><true/></dict>") elm = plist.load(StringIO(plist_xml)) self.assertEqual(elm, data) out = StringIO() plist.dump(elm, out) self.assertEqual(out.getvalue(), plist_xml)
def _write_attr(self, filename, attr): """Write a node meta data file""" self._attr_mask.set_dict(attr) try: out = safefile.open(filename, "w", codec="utf-8") out.write(u'<?xml version="1.0" encoding="UTF-8"?>\n' u'<node>\n' u'<version>%d</version>\n' % attr.get("version", keepnote.notebook.NOTEBOOK_FORMAT_VERSION)) plist.dump(self._attr_mask, out, indent=2, depth=0) out.write(u'</node>\n') out.close() except Exception, e: raise ConnectionError( _("Cannot write meta data" + " " + filename + ":" + str(e)), e)
def _write_attr(self, filename, attr): """Write a node meta data file""" self._attr_mask.set_dict(attr) try: out = safefile.open(filename, "w", codec="utf-8") out.write(u'<?xml version="1.0" encoding="UTF-8"?>\n' u'<node>\n' u'<version>%d</version>\n' % attr.get("version", keepnote.notebook.NOTEBOOK_FORMAT_VERSION)) plist.dump(self._attr_mask, out, indent=2, depth=0) out.write(u'</node>\n') out.close() except Exception as e: raise ConnectionError( _("Cannot write meta data" + " " + filename + ":" + str(e)), e)
def write(self): """Write preferences to file""" try: if not os.path.exists(self._pref_dir): init_user_pref_dir(self._pref_dir) out = safefile.open(get_user_pref_file(self._pref_dir), "w", codec="utf-8") out.write(u'<?xml version="1.0" encoding="UTF-8"?>\n' u'<keepnote>\n' u'<pref>\n') plist.dump(self._data, out, indent=4, depth=4) out.write(u'</pref>\n' u'</keepnote>\n') out.close() except (IOError, OSError), e: log_error(e, sys.exc_info()[2]) raise NoteBookError(_("Cannot save preferences"), e)