public void ReadXml(XmlReader reader) { var serializationMode = Serialization.Selected; if (serializationMode == Serialization.Mode.SpacyAndDotNet) { reader.ReadStartElement(); Debug.Assert(reader.Name == $"{Serialization.Prefix}:PyObj"); var bytesB64 = reader.ReadElementContentAsString(); var bytes = Convert.FromBase64String(bytesB64); using (Py.GIL()) { dynamic spacy = Py.Import("spacy"); PyVocab = spacy.vocab.Vocab.__call__(); var pyBytes = ToPython.GetBytes(bytes); PyVocab.from_bytes(pyBytes); } reader.ReadEndElement(); } else { reader.Skip(); } Debug.Assert(serializationMode != Serialization.Mode.Spacy); }
public void FromDisk(string path) { if (Serialization.Selected != Serialization.Mode.Spacy) { throw new NotImplementedException(); } using (Py.GIL()) { var pyPath = new PyString(path); PyVocab.from_disk(pyPath); } }
public void WriteXml(XmlWriter writer) { var serializationMode = Serialization.Selected; Debug.Assert(serializationMode != Serialization.Mode.Spacy); if (serializationMode == Serialization.Mode.SpacyAndDotNet) { using (Py.GIL()) { var pyObj = Interop.GetBytes(PyVocab.to_bytes()); var pyObjB64 = Convert.ToBase64String(pyObj); writer.WriteElementString("PyObj", Serialization.Namespace, pyObjB64); } } }