SMArt.graph package

Submodules

SMArt.graph.incl module

G - graph defined as a dictionary (G.adj) v - vertex e - edges

class SMArt.graph.incl.Graph(adj_dict_edges=None, flag_edges=False, adj_type=<class 'collections.defaultdict'>, adj_format_new_vertex=<class 'set'>, **kwargs)[source]

Bases: SMArt.incl.__VersionCompatibility

graph defined as a dictionary (adjacency list)

BFS(v, **kwargs)[source]

Breath-first search - generator :param v: :param kwargs:

flag_stack_level [True] flag_v_list stack_visited visited visited_from_stack [True]

Returns

BFS_d(v, d, **kwargs)[source]

Breath-first search with depth - finds first d neighbours (all from 1 to d) :param v: :param kwargs:

flag_stack_level [True] flag_v_list stack_visited visited visited_from_stack [True]

BFS_d_f(v, d, f, *args, **kwargs)[source]

Breath-first search with depth (see BFS_d) - together with an on-the-fly-function

example: def f(*args, **kwargs):

cur = kwargs[‘BFS_local’][0] kwargs[“all_v”].append(cur)

self.BFS_d_f(v,d,f,all_v=[])

returns ((), {‘all_v’:[v1,v2,v3,…]})

BFS_f(v, f, *args, **kwargs)[source]

Breath-first search - with an on-the-fly-function

example: def f(*args, **kwargs):

cur = kwargs[‘BFS_local’][0] kwargs[“all_v”].append(cur)

G.BFS_f(v,f,all_v=[])

returns ((), {‘all_v’:[v1,v2,v3,…]})

BFS_l(v, level, **kwargs)[source]

Breath-first search with level - finds all l-th neighbours (not including <l) :param v: :param kwargs:

flag_stack_level [True] flag_v_list stack_visited visited visited_from_stack [True]

DFS(v, **kwargs)[source]

Depth-first search - generator

DFS_f(v, f, *args, **kwargs)[source]

Depth-first search - with an on-the-fly-function

example: def f(*args, **kwargs):

cur = kwargs[‘DFS_local’][0] kwargs[“all_v”].append(cur)

self.DFS_f(v,f,all_v=[]) returns ((), {‘all_v’:[v1,v2,v3,…]})

add_edge(edge)[source]
add_edges(edges)[source]
check_G()[source]

check if adjacency list is correct

dist(v1, v2)[source]

distance between v1 and v2

edges2adj(edges)[source]

from edges to adjacency dictionary

find_rings(flag_root_at=False, **kwargs)[source]
find_rings_graph(flag_root_at=False, **kwargs)[source]
get_2D_repr(vertices=None, d_12=1.0, d_13=1.7, Fk=100, 50, 5, rest_pow=1, Nmaxiter=25, **kwargs)[source]
Parameters
  • vertices

  • kwargs – fig_name, step, init_struc

Returns

get_Gs()[source]

if G is not connected, finds separate Gs

get_edges()[source]

from graph to edges - generator

remove_edge(edge)[source]
set_adj_type_format(set_adj_type=None, set_adj_format=None, **kwargs)[source]
Parameters
  • set_adj_type – self.adj type

  • set_adj_format – type of each element in self.adj

  • kwargs

Returns

sub_graph(vertices, **kwargs)[source]

creates a subgraph :param vertices: :param kwargs:

adj_fromat (set, tuple)

Returns

update_adj(additional_adj)[source]
class SMArt.graph.incl.GraphDirected(adj_dict_edges=None, flag_edges=False, parents=None, **kwargs)[source]

Bases: SMArt.graph.incl.Graph

directed_BFS()[source]
find_shortest_rpath()[source]
get_add_missing_groups(**kwargs)[source]
get_p_c(**kwargs)[source]

iterate over vertices and get parents and children :param kwargs:

level - max level flag_children_level_map - if and how many levels to add to the map (default 0; -1 adds all levels)

Returns

get_parents(v, path=None)[source]
set_parents(*v, **kwargs)[source]
class SMArt.graph.incl.Vertex(l, p=None)[source]

Bases: SMArt.incl.__VersionCompatibility

add_c(c)[source]
add_p(p)[source]
c
l
p

Module contents