package to manipulate graphs
Project description
graphpy
This is a package for the manipulation of graphs made for a class of graphs in the Brazilian university 'Universidade Tecnologica Federal do Paraná'
Installation
pip install graphpython
Complete Documentation
Graph
to use this class, the main element is Graph class
. With this class, you will be able to fill the graph with vertex and edges and do all the necessary operations
Graph([directed])
: create a graphdirected
: Defaults to False. tells if the graph is directed or not
Code example
# Create a new graph from graphpy.graph import Graph gp = Graph() # add a new vertex gp.add_vertex('vertex1') # to get the create vertex, you can use the [] operator vertex1 = gp['vertex1']
Vertex operations
The base of all graph is the vertex, to create a new vertex you got to use the follow functions

gp.add_vertex(name, [value])
: create a new vertex and insert to the graphname
: Unique identification to the vertex inside the graphvalue
: optional value to the vertex

gp.get_vertex(name)
orgp[name]
: return the vertex from the graphname
: Unique identification to the vertex inside the graph

gp.get_all_vertex()
: get a list with all vertex from the graph 
gp.adjacents_vertex(vtx)
: get all adjacent vertex from one vertexvtx
: vertex you want to know the adjacent

gp.remove_vertex(vertex_to_remove)
: Remove a vertex and all the connections he havevertex_to_remove
: vertex you want to remove
Code example
from graphpy.graph import Graph gp = Graph() gp.add_vertex('01') gp.remove_vertex(gp['01'])
Search in the graph
The main class has a search method and to use, you need to pass a by params an strategy to make the search.
Implement a new search strategy
In the class has two class strategies already implemented:
 BFSstrategy
 DFSstrategy
from graphpy.graph import Graph from graphpy.BFSstrategy import BFSstrategy graph = Graph() graph.search(BFSstrategy(INITIAL_VERTEX))
To extend all the search types you can create a new strategy extending the SearchStrategy class from search_strategy.
from graphpy.search_strategy import SearchStrategy class DFSstrategy(SearchStrategy): def __init__(self): self.__predecessors = {} self.__firstSee = {} self.__close = {} self.__time = 0 def __dfs_visit(self, vertex): self.__time = self.__time + 1 self.__firstSee[vertex] = self.__time vertex.set_color(1) for adjacent in self.get_adjacent_list()[vertex]: if adjacent.get_color() == 0: self.__predecessors[adjacent] = vertex self.__dfs_visit(adjacent) vertex.set_color(2) self.__time += 1 self.__close[vertex] = self.__time def search(self): # colors: # white: not visited # grey: in the queue # black: nothing more to do for key in self.get_adjacent_list(): # set color for all vertices to white key.set_color(0) self.__predecessors[key] = None self.__time = 0 for key in self.get_adjacent_list(): if key.get_color() == 0: self.__dfs_visit(key) return self.__firstSee, self.__close, self.__predecessors
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size & hash SHA256 hash help  File type  Python version  Upload date 

graphpython0.83py3noneany.whl (8.3 kB) Copy SHA256 hash SHA256  Wheel  py3  
graphpython0.83.tar.gz (6.4 kB) Copy SHA256 hash SHA256  Source  None 