Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/networkx/readwrite/nx_yaml.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/planemo/lib/python3.7/site-packages/networkx/readwrite/nx_yaml.py Fri Jul 31 00:32:28 2020 -0400 @@ -0,0 +1,114 @@ +""" +**** +YAML +**** +Read and write NetworkX graphs in YAML format. + +"YAML is a data serialization format designed for human readability +and interaction with scripting languages." +See http://www.yaml.org for documentation. + +Format +------ +http://pyyaml.org/wiki/PyYAML + +""" +__author__ = """Aric Hagberg (hagberg@lanl.gov)""" +# Copyright (C) 2004-2019 by +# Aric Hagberg <hagberg@lanl.gov> +# Dan Schult <dschult@colgate.edu> +# Pieter Swart <swart@lanl.gov> +# All rights reserved. +# BSD license. + +__all__ = ['read_yaml', 'write_yaml'] + +import networkx as nx +from networkx.utils import open_file + + +@open_file(1, mode='w') +def write_yaml(G_to_be_yaml, path_for_yaml_output, **kwds): + """Write graph G in YAML format to path. + + YAML is a data serialization format designed for human readability + and interaction with scripting languages [1]_. + + Parameters + ---------- + G : graph + A NetworkX graph + path : file or string + File or filename to write. + Filenames ending in .gz or .bz2 will be compressed. + + Notes + ----- + To use encoding on the output file include e.g. `encoding='utf-8'` + in the keyword arguments. + + Examples + -------- + >>> G=nx.path_graph(4) + >>> nx.write_yaml(G,'test.yaml') + + References + ---------- + .. [1] http://www.yaml.org + """ + try: + import yaml + except ImportError: + raise ImportError("write_yaml() requires PyYAML: http://pyyaml.org/") + yaml.dump(G_to_be_yaml, path_for_yaml_output, **kwds) + + +@open_file(0, mode='r') +def read_yaml(path): + """Read graph in YAML format from path. + + YAML is a data serialization format designed for human readability + and interaction with scripting languages [1]_. + + Parameters + ---------- + path : file or string + File or filename to read. Filenames ending in .gz or .bz2 + will be uncompressed. + + Returns + ------- + G : NetworkX graph + + Examples + -------- + >>> G=nx.path_graph(4) + >>> nx.write_yaml(G,'test.yaml') + >>> G=nx.read_yaml('test.yaml') + + References + ---------- + .. [1] http://www.yaml.org + + """ + try: + import yaml + except ImportError: + raise ImportError("read_yaml() requires PyYAML: http://pyyaml.org/") + + G = yaml.load(path, Loader=yaml.FullLoader) + return G + + +# fixture for pytest +def setup_module(module): + try: + import yaml + except: + from pytest import skip + skip("PyYAML not available", allow_module_level=True) + +# fixture for pytest +def teardown_module(module): + import os + os.unlink('test.yaml')