Note

This documents the development version of NetworkX. Documentation for the current release can be found here.

networkx.utils.decorators.open_file

open_file(path_arg, mode='r')[source]

Decorator to ensure clean opening and closing of files.

Parameters
path_argint

Location of the path argument in args. Even if the argument is a named positional argument (with a default value), you must specify its index as a positional argument.

modestr

String for opening mode.

Returns
_open_filefunction

Function which cleanly executes the io.

Examples

Decorate functions like this:

@open_file(0,'r')
def read_function(pathname):
    pass

@open_file(1,'w')
def write_function(G,pathname):
    pass

@open_file(1,'w')
def write_function(G, pathname='graph.dot')
    pass

@open_file('path', 'w+')
def another_function(arg, **kwargs):
    path = kwargs['path']
    pass