def serialize(self, destination=None, format="json", **args): """Serialize the ProvDocument to destination If destination is None serialize method returns the serialization as a string. Format defaults to PROV-JSON. """ serializer = serializers.get(format)(self) if destination is None: stream = BytesIO() serializer.serialize(stream, **args) return stream.getvalue() if hasattr(destination, "write"): stream = destination serializer.serialize(stream, **args) else: location = destination scheme, netloc, path, params, _query, fragment = urlparse(location) if netloc != "": print("WARNING: not saving as location" + "is not a local file reference") return fd, name = tempfile.mkstemp() stream = os.fdopen(fd, "wb") serializer.serialize(stream, **args) stream.close() if hasattr(shutil, "move"): shutil.move(name, path) else: shutil.copy(name, path) os.remove(name)
def serialize(self, destination=None, format='json', **args): """Serialize the ProvDocument to destination If destination is None serialize method returns the serialization as a string. Format defaults to PROV-JSON. """ serializer = serializers.get(format)(self) if destination is None: stream = BytesIO() serializer.serialize(stream, **args) return stream.getvalue() if hasattr(destination, "write"): stream = destination serializer.serialize(stream, **args) else: location = destination scheme, netloc, path, params, _query, fragment = urlparse(location) if netloc != "": print("WARNING: not saving as location" + "is not a local file reference") return fd, name = tempfile.mkstemp() stream = os.fdopen(fd, "wb") serializer.serialize(stream, **args) stream.close() if hasattr(shutil, "move"): shutil.move(name, path) else: shutil.copy(name, path) os.remove(name)
def deserialize(source=None, content=None, format="json", **args): """Deserialize the ProvDocument from source (a stream or a filepath) or directly from a string content Format defaults to PROV-JSON. """ serializer = serializers.get(format)() if content is not None: stream = BytesIO(content) return serializer.deserialize(stream, **args) if source is not None: if hasattr(source, "read"): return serializer.deserialize(source, **args) else: with open(source) as f: return serializer.deserialize(f, **args)
def deserialize(source=None, content=None, format='json', **args): """Deserialize the ProvDocument from source (a stream or a filepath) or directly from a string content Format defaults to PROV-JSON. """ serializer = serializers.get(format)() if content is not None: stream = BytesIO(content) return serializer.deserialize(stream, **args) if source is not None: if hasattr(source, "read"): return serializer.deserialize(source, **args) else: with open(source) as f: return serializer.deserialize(f, **args)