Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }