comparison env/lib/python3.7/site-packages/networkx/readwrite/gpickle.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
comparison
equal deleted inserted replaced
4:79f47841a781 5:9b1c78e6ba9c
1 """
2 **************
3 Pickled Graphs
4 **************
5 Read and write NetworkX graphs as Python pickles.
6
7 "The pickle module implements a fundamental, but powerful algorithm
8 for serializing and de-serializing a Python object
9 structure. "Pickling" is the process whereby a Python object hierarchy
10 is converted into a byte stream, and "unpickling" is the inverse
11 operation, whereby a byte stream is converted back into an object
12 hierarchy."
13
14 Note that NetworkX graphs can contain any hashable Python object as
15 node (not just integers and strings). For arbitrary data types it may
16 be difficult to represent the data as text. In that case using Python
17 pickles to store the graph data can be used.
18
19 Format
20 ------
21 See https://docs.python.org/2/library/pickle.html
22 """
23 __author__ = """Aric Hagberg (hagberg@lanl.gov)\nDan Schult (dschult@colgate.edu)"""
24 # Copyright (C) 2004-2019 by
25 # Aric Hagberg <hagberg@lanl.gov>
26 # Dan Schult <dschult@colgate.edu>
27 # Pieter Swart <swart@lanl.gov>
28 # All rights reserved.
29 # BSD license.
30
31 __all__ = ['read_gpickle', 'write_gpickle']
32
33 import networkx as nx
34 from networkx.utils import open_file
35
36 try:
37 import cPickle as pickle
38 except ImportError:
39 import pickle
40
41
42 @open_file(1, mode='wb')
43 def write_gpickle(G, path, protocol=pickle.HIGHEST_PROTOCOL):
44 """Write graph in Python pickle format.
45
46 Pickles are a serialized byte stream of a Python object [1]_.
47 This format will preserve Python objects used as nodes or edges.
48
49 Parameters
50 ----------
51 G : graph
52 A NetworkX graph
53
54 path : file or string
55 File or filename to write.
56 Filenames ending in .gz or .bz2 will be compressed.
57
58 protocol : integer
59 Pickling protocol to use. Default value: ``pickle.HIGHEST_PROTOCOL``.
60
61 Examples
62 --------
63 >>> G = nx.path_graph(4)
64 >>> nx.write_gpickle(G, "test.gpickle")
65
66 References
67 ----------
68 .. [1] https://docs.python.org/2/library/pickle.html
69 """
70 pickle.dump(G, path, protocol)
71
72
73 @open_file(0, mode='rb')
74 def read_gpickle(path):
75 """Read graph object in Python pickle format.
76
77 Pickles are a serialized byte stream of a Python object [1]_.
78 This format will preserve Python objects used as nodes or edges.
79
80 Parameters
81 ----------
82 path : file or string
83 File or filename to write.
84 Filenames ending in .gz or .bz2 will be uncompressed.
85
86 Returns
87 -------
88 G : graph
89 A NetworkX graph
90
91 Examples
92 --------
93 >>> G = nx.path_graph(4)
94 >>> nx.write_gpickle(G, "test.gpickle")
95 >>> G = nx.read_gpickle("test.gpickle")
96
97 References
98 ----------
99 .. [1] https://docs.python.org/2/library/pickle.html
100 """
101 return pickle.load(path)
102
103
104 # fixture for pytest
105 def teardown_module(module):
106 import os
107 os.unlink('test.gpickle')