--- /dev/null
+"""Load/dump geometries using the well-known binary (WKB) format
+"""
+
+from shapely import geos
+
+# Pickle-like convenience functions
+
+def loads(data, hex=False):
+ """Load a geometry from a WKB byte string, or hex-encoded string if
+ ``hex=True``.
+ """
+ reader = geos.WKBReader(geos.lgeos)
+ if hex:
+ return reader.read_hex(data)
+ else:
+ return reader.read(data)
+
+def load(fp, hex=False):
+ """Load a geometry from an open file."""
+ data = fp.read()
+ return loads(data, hex=hex)
+
+def dumps(ob, hex=False, **kw):
+ """Dump a WKB representation of a geometry to a byte string, or a
+ hex-encoded string if ``hex=True``.
+
+ See available keyword output settings in ``shapely.geos.WKBWriter``."""
+ writer = geos.WKBWriter(geos.lgeos, **kw)
+ if hex:
+ return writer.write_hex(ob)
+ else:
+ return writer.write(ob)
+
+
+def dump(ob, fp, hex=False, **kw):
+ """Dump a geometry to an open file."""
+ fp.write(dumps(ob, hex=hex, **kw))