search in docstrings

Search bar offers the following options:

- Term presence. The below example searches for documents that must contain “foo”, might contain “bar” and must not contain “baz”: `+foo bar -baz`
- Wildcards. The below example searches for documents with words beginning with “foo”: `foo*`
- Search in specific fields. The following search matches all objects in "twisted.mail" that matches “search”: `+qname:twisted.mail.* +search`

  Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'. Last two fields are only applicable if "search in docstrings" is enabled.

- Fuzzy matches. The following search matches all documents that have a word within 1 edit distance of “foo”: `foo~1`

Results provided by Lunr.js

# ``igraph`.`io`.`objects``

module documentation
(source)

Undocumented

Function | `_construct_graph_from_dataframe` | Generates a graph from one or two dataframes.
Function | `_construct_graph_from_dict_dict` | Constructs a graph from a dict-of-dicts representation.
Function | `_construct_graph_from_dict_list` | Constructs a graph from a list-of-dictionaries representation.
Function | `_construct_graph_from_list_dict` | Constructs a graph from a dict-of-lists representation.
Function | `_construct_graph_from_tuple_list` | Constructs a graph from a list-of-tuples representation.
Function | `_export_edge_dataframe` | Export edges with attributes to pandas.DataFrame
Function | `_export_graph_to_dict_dict` | Export graph to dictionary of dicts of edge attributes
Function | `_export_graph_to_dict_list` | Export graph as two lists of dictionaries, for vertices and edges.
Function | `_export_graph_to_list_dict` | Export graph to a dictionary of lists (or other sequences).
Function | `_export_graph_to_tuple_list` | Export graph to a list of edge tuples
Function | `_export_vertex_dataframe` | Export vertices with attributes to pandas.DataFrame

def _construct_graph_from_dataframe(cls, edges, directed: `bool` = True, vertices=None, use_vids: `bool` = True): (source)

Generates a graph from one or two dataframes.

Parameters
cls | Undocumented
edges | pandas DataFrame containing edges and metadata. The first two columns of this DataFrame contain the source and target vertices for each edge. These indicate the vertex IDs as nonnegative integers rather than vertex names unless `use_vids` is False. Further columns may contain edge attributes.
directed:`bool` | whether the graph is directed

vertices

None (default) or pandas DataFrame containing vertex metadata. The DataFrame's index must contain the vertex IDs as a sequence of intergers from 0 to `len(vertices) - 1`. If `use_vids` is `False`, the first column must contain the unique vertex names. Vertex names should be strings for full compatibility, but many functions will work if you set the name with any hashable object. All other columns will be added as vertex attributes by column name.

use_vids:`bool` | whether to interpret the first two columns of the `edges` argument as vertex ids (0-based integers) instead of vertex names. If this argument is set to True and the first two columns of `edges` are not integers, an error is thrown.
Returns
the graph Vertex names in either the `edges` or `vertices` arguments that are set to NaN (not a number) will be set to the string "NA". That might lead to unexpected behaviour: fill your NaNs with values before calling this function to mitigate.

def _construct_graph_from_dict_dict(cls, edges, directed: `bool` = False, vertex_name_attr: `str` = 'name'): (source)

Constructs a graph from a dict-of-dicts representation.

Each key can be an integer or a string and represent a vertex. Each value is a dict representing edges (outgoing if the graph is directed) from that vertex. Each dict key is an integer/string for a target vertex, such that an edge will be created between those two vertices. Integers are interpreted as vertex_ids from 0 (as used in igraph), strings are interpreted as vertex names, in which case vertices are given separate numeric ids. Each value is a dictionary of edge attributes for that edge.

Example:

    >>> {'Alice': {'Bob': {'weight': 1.5}, 'David': {'weight': 2}}}

creates a graph with three vertices (Alice, Bob, and David) and two edges:

- Alice - Bob (with weight 1.5)
- Alice - David (with weight 2)

Parameters
cls | Undocumented
edges | the dict of dict of dicts specifying the edges and their attributes
directed:`bool` | whether to create a directed graph
vertex_name_attr:`str` | vertex attribute that will store the names
Returns
a Graph object

def _construct_graph_from_dict_list(cls, vertices, edges, directed: `bool` = False, vertex_name_attr: `str` = 'name', edge_foreign_keys=('source', 'target'), iterative: `bool` = False): (source)

Constructs a graph from a list-of-dictionaries representation.

This function is useful when you have two lists of dictionaries, one for vertices and one for edges, each containing their attributes (e.g. name, weight). Of course, the edge dictionary must also contain two special keys that indicate the source and target vertices connected by that edge. Non-list iterables should work as long as they yield dictionaries or dict-like objects (they should have the 'items' and '__getitem__' methods). For instance, a database query result is likely to be fit as long as it's iterable and yields dict-like objects with every iteration.

Parameters
cls | Undocumented
vertices | the list of dictionaries for the vertices or `None` if there are no special attributes assigned to vertices and we should simply use the edge list of dicts to infer vertex names.
edges | the list of dictionaries for the edges. Each dict must have at least the two keys specified by edge_foreign_keys to label the source and target vertices, while additional items will be treated as edge attributes.
directed:`bool` | whether the constructed graph will be directed
vertex_name_attr:`str` | the name of the distinguished key in the dicts in the vertex data source that contains the vertex names. Ignored if `vertices` is `None`.
edge_foreign_keys | tuple specifying the attributes in each edge dictionary that contain the source (1st) and target (2nd) vertex names. These items of each dictionary are also added as edge_attributes.
iterative:`bool` | whether to add the edges to the graph one by one, iteratively, or to build a large edge list first and use that to construct the graph. The latter approach is faster but it may not be suitable if your dataset is large. The default is to add the edges in a batch from an edge list.
Returns

the graph that was constructed

Example:

    >>> vertices = [{'name': 'apple'}, {'name': 'pear'}, {'name': 'peach'}]
    >>> edges = [{'source': 'apple', 'target': 'pear', 'weight': 1.2},
    ...          {'source': 'apple', 'target': 'peach', 'weight': 0.9}]
    >>> g = Graph.DictList(vertices, edges)

The graph has three vertices with names and two edges with weights.

def _construct_graph_from_list_dict(cls, edges, directed: `bool` = False, vertex_name_attr: `str` = 'name'): (source)

Constructs a graph from a dict-of-lists representation.

This function is used to construct a graph from a dictionary of lists. Other, non-list sequences (e.g. tuples) and lazy iterators are are accepted. For each key x, its corresponding value must be a sequence of multiple values y: the edge (x,y) will be created in the graph. x and y must be either one of:

- two integers: the vertices with those ids will be connected
- two strings: the vertices with those names will be connected

If names are used, the order of vertices is not guaranteed, and each vertex will be given the vertex_name_attr attribute.

Parameters
cls | Undocumented
edges | the dict of sequences describing the edges
directed:`bool` | whether to create a directed graph
vertex_name_attr:`str` | vertex attribute that will store the names
Returns

a Graph object

Example:

    >>> mydict = {'apple': ['pear', 'peach'], 'pear': ['peach']}
    >>> g = Graph.ListDict(mydict)

# The graph has three vertices with names and three edges connecting # each pair.

def _construct_graph_from_tuple_list(cls, edges, directed: `bool` = False, vertex_name_attr: `str` = 'name', edge_attrs=None, weights=False): (source)

Constructs a graph from a list-of-tuples representation.

This representation assumes that the edges of the graph are encoded in a list of tuples (or lists). Each item in the list must have at least two elements, which specify the source and the target vertices of the edge. The remaining elements (if any) specify the edge attributes of that edge, where the names of the edge attributes originate from the `edge_attrs` list. The names of the vertices will be stored in the vertex attribute given by `vertex_name_attr`.

The default parameters of this function are suitable for creating unweighted graphs from lists where each item contains the source vertex and the target vertex. If you have a weighted graph, you can use items where the third item contains the weight of the edge by setting `edge_attrs` to `"weight"` or `["weight"]`. If you have even more edge attributes, add them to the end of each item in the `edges` list and also specify the corresponding edge attribute names in `edge_attrs` as a list.

Parameters
cls | Undocumented
edges | the data source for the edges. This must be a list where each item is a tuple (or list) containing at least two items: the name of the source and the target vertex. Note that names will be assigned to the `name` vertex attribute (or another vertex attribute if `vertex_name_attr` is specified), even if all the vertex names in the list are in fact numbers.
directed:`bool` | whether the constructed graph will be directed
vertex_name_attr:`str` | the name of the vertex attribute that will contain the vertex names.
edge_attrs | the names of the edge attributes that are filled with the extra items in the edge list (starting from index 2, since the first two items are the source and target vertices). If `None` or an empty sequence, only the source and target vertices will be extracted and additional tuple items will be ignored. If a string, it is interpreted as a single edge attribute.

weights

alternative way to specify that the graph is weighted. If you set `weights` to `true` and `edge_attrs` is not given, it will be assumed that `edge_attrs` is `["weight"]` and igraph will parse the third element from each item into an edge weight. If you set `weights` to a string, it will be assumed that `edge_attrs` contains that string only, and igraph will store the edge weights in that attribute.

Returns
the graph that was constructed

def _export_edge_dataframe(graph): (source)

Export edges with attributes to pandas.DataFrame

If you want to use source and target vertex IDs as index, you can do:

    >>> from string import ascii_letters
    >>> graph = Graph.GRG(25, 0.4)
    >>> graph.vs["name"] = ascii_letters[:graph.vcount()]
    >>> df = graph.get_edge_dataframe()
    >>> df.set_index(['source', 'target'], inplace=True)

The index will be a pandas.MultiIndex. You can use the `drop=False` option to keep the `source` and `target` columns.

If you want to use vertex names in the source and target columns:

    >>> df = graph.get_edge_dataframe()
    >>> df_vert = graph.get_vertex_dataframe()
    >>> df['source'].replace(df_vert['name'], inplace=True)
    >>> df['target'].replace(df_vert['name'], inplace=True)
    >>> df_vert.set_index('name', inplace=True)  # Optional

Returns

a pandas.DataFrame representing edges and their attributes. The index uses edge IDs, from 0 to M - 1 where M is the number of edges. The first two columns of the dataframe represent the IDs of source and target vertices for each edge. These columns have names "source" and "target". If your edges have attributes with the same names, they will be present in the dataframe, but not in the first two columns.

def _export_graph_to_dict_dict(graph, use_vids: `bool` = True, edge_attrs: `Union[str, Sequence[str]]` = None, skip_none: `bool` = False, vertex_name_attr: `str` = 'name'): (source)

Export graph to dictionary of dicts of edge attributes

This function is the reverse of Graph.DictDict.

Example:

    >>> g = Graph.Full(3)
    >>> g.es['name'] = ['first_edge', 'second', 'third']
    >>> g.to_dict_dict()
    {0: {1: {'name': 'first_edge'}, 2: {'name': 'second'}}, 1: {2: {'name': 'third'}}}

Parameters
graph | Undocumented
use_vids:`bool` | whether to label vertices in the output data structure by their ids or their vertex_name_attr attribute. If use_vids=False but vertices lack a vertex_name_attr attribute, an AttributeError is raised.
edge_attrs:`Union[str, Sequence[str]]` | list of edge attributes to export. None (default) signified all attributes (unlike Graph.to_tuple_list). A string is acceptable to signify a single attribute and will be wrapped in a list internally.
skip_none:`bool` | whether to skip, for each edge, attributes that have a value of None. This is useful if only some edges are expected to possess an attribute.
vertex_name_attr:`str` | only used with use_vids=False to choose what vertex attribute to use to name your vertices in the output data structure.
Returns
dictionary of dictionaries of dictionaries, with the outer keys vertex ids/names, the middle keys ids/names of their neighbors, and the innermost dictionary representing attributes of that edge.

def _export_graph_to_dict_list(graph, use_vids: `bool` = True, skip_none: `bool` = False, vertex_name_attr: `str` = 'name'): (source)

Export graph as two lists of dictionaries, for vertices and edges.

This function is the reverse of Graph.DictList.

Example:

    >>> g = Graph([(0, 1), (1, 2)])
    >>> g.vs["name"] = ["apple", "pear", "peach"]
    >>> g.es["name"] = ["first_edge", "second"]

    >>> g.to_dict_list()
    ([{"name": "apple"}, {"name": "pear"}, {"name": "peach"}],
     [{"source": 0, "target": 1, "name": "first_edge"},
      {"source" 0, "target": 2, name": "second"}])

    >>> g.to_dict_list(use_vids=False)
    ([{"name": "apple"}, {"name": "pear"}, {"name": "peach"}],
     [{"source": "apple", "target": "pear", "name": "first_edge"},
      {"source" "apple", "target": "peach", name": "second"}])

Parameters
graph | Undocumented
use_vids:`bool` | whether to label vertices in the output data structure by their ids or their vertex_name_attr attribute. If use_vids=False but vertices lack a vertex_name_attr attribute, an AttributeError is raised.
skip_none:`bool` | whether to skip, for each edge, attributes that have a value of None. This is useful if only some edges are expected to possess an attribute.
vertex_name_attr:`str` | only used with use_vids=False to choose what vertex attribute to use to name your vertices in the output data structure.
Returns
a tuple with two lists of dictionaries, representing the vertices and the edges, respectively, with their attributes.

def _export_graph_to_list_dict(graph, use_vids: `bool` = True, sequence_constructor: `callable` = list, vertex_name_attr: `str` = 'name'): (source)

Export graph to a dictionary of lists (or other sequences).

This function is the reverse of Graph.ListDict.

Example:

    >>> g = Graph.Full(3)
    >>> g.to_sequence_dict() -> {0: [1, 2], 1: [2]}
    >>> g.to_sequence_dict(sequence_constructor=tuple) -> {0: (1, 2), 1: (2,)}
    >>> g.vs['name'] = ['apple', 'pear', 'peach']
    >>> g.to_sequence_dict(use_vids=False)
    {'apple': ['pear', 'peach'], 'pear': ['peach']}

Parameters
graph | Undocumented
use_vids:`bool` | whether to label vertices in the output data structure by their ids or their vertex_name_attr attribute. If use_vids=False but vertices lack a vertex_name_attr attribute, an AttributeError is raised.
sequence_constructor:`callable` | constructor for the data structure to be used as values of the dictionary. The default (list) makes a dict of lists, with each list representing the neighbors of the vertex specified in the respective dictionary key.
vertex_name_attr:`str` | only used with use_vids=False to choose what vertex attribute to use to name your vertices in the output data structure.
Returns
dictionary of sequences, keyed by vertices, with each value containing the neighbors of that vertex.

def _export_graph_to_tuple_list(graph, use_vids: `bool` = True, edge_attrs: `Union[str, Sequence[str]]` = None, vertex_name_attr: `str` = 'name'): (source)

Export graph to a list of edge tuples

This function is the reverse of Graph.TupleList.

Example:

    >>> g = Graph.Full(3)
    >>> g.vs["name"] = ["apple", "pear", "peach"]
    >>> g.es["name"] = ["first_edge", "second", "third"]

    >>> # Get name of the edge
    >>> g.to_tuple_list(edge_attrs=["name"])
    [(0, 1, "first_edge"), (0, 2, "second"), (1, 2, "third")]

    >>> # Use vertex names, no edge attributes
    >>> g.to_tuple_list(use_vids=False)
    [("apple", "pear"), ("apple", "peach"), ("pear", "peach")]

Parameters
graph | Undocumented
use_vids:`bool` | whether to label vertices in the output data structure by their ids or their vertex_name_attr attribute. If use_vids=False but vertices lack a vertex_name_attr attribute, an AttributeError is raised.
edge_attrs:`Union[str, Sequence[str]]` | list of edge attributes to export in addition to source and target vertex, which are always the first two elements of each tuple. None (default) is equivalent to an empty list. A string is acceptable to signify a single attribute and will be wrapped in a list internally.
vertex_name_attr:`str` | only used with use_vids=False to choose what vertex attribute to use to name your vertices in the output data structure.
Returns
a list of tuples, each representing an edge of the graph.

def _export_vertex_dataframe(graph): (source)

Export vertices with attributes to pandas.DataFrame

If you want to use vertex names as index, you can do:

    >>> from string import ascii_letters
    >>> graph = Graph.GRG(25, 0.4)
    >>> graph.vs["name"] = ascii_letters[:graph.vcount()]
    >>> df = graph.get_vertex_dataframe()
    >>> df.set_index('name', inplace=True)

Returns
a pandas.DataFrame representing vertices and their attributes. The index uses vertex IDs, from 0 to N - 1 where N is the number of vertices.