networkx.readwrite.gml.generate_gml¶
-
generate_gml
(G, stringizer=None)[source]¶ Generate a single entry of the graph
G
in GML format.- Parameters
G (NetworkX graph) – The graph to be converted to GML.
stringizer (callable, optional) – A
stringizer
which converts non-int/non-float/non-dict values into strings. If it cannot convert a value into a string, it should raise aValueError
to indicate that. Default value: None.
- Returns
lines – Lines of GML data. Newlines are not appended.
- Return type
generator of strings
- Raises
NetworkXError – If
stringizer
cannot convert a value into a string, or the value to convert is not a string whilestringizer
is None.
Notes
Graph attributes named ‘directed’, ‘multigraph’, ‘node’ or ‘edge’, node attributes named ‘id’ or ‘label’, edge attributes named ‘source’ or ‘target’ (or ‘key’ if
G
is a multigraph) are ignored because these attribute names are used to encode the graph structure.GML files are stored using a 7-bit ASCII encoding with any extended ASCII characters (iso8859-1) appearing as HTML character entities. Without specifying a
stringizer
/destringizer
, the code is capable of handlingint
/float
/str
/dict
/list
data as required by the GML specification. For other data types, you need to explicitly supply astringizer
/destringizer
.For additional documentation on the GML file format, please see the GML url.
See the module docstring
networkx.readwrite.gml
for more details.Examples
>>> G = nx.Graph() >>> G.add_node("1") >>> print("\n".join(nx.generate_gml(G))) graph [ node [ id 0 label "1" ] ] >>> G = nx.OrderedMultiGraph([("a", "b"), ("a", "b")]) >>> print("\n".join(nx.generate_gml(G))) graph [ multigraph 1 node [ id 0 label "a" ] node [ id 1 label "b" ] edge [ source 0 target 1 key 0 ] edge [ source 0 target 1 key 1 ] ]