### Navigation

- index
- next |
- previous |
- Tulip-Python v3.8.0 documentation »

# `tulip` module API

## Utility functions

### Graph management

`tlp.``newGraph`()

  Creates and returns a new empty graph.

  Return type: | `tlp.Graph`

`tlp.``loadGraph`(filename)

  Loads a graph in the tlp format from a file (extension can be .tlp or .tlp.gz). Returns a new graph or `None` if the import fails.

  Parameters: | filename (string) – the path to the tlp file
  Return type: | `tlp.Graph`

`tlp.``saveGraph`(graph, filename)

  Saves a graph to a file in the tlp format. Extension of the destination file can be either .tlp (raw export) or .tlp.gz (compressed export). Returns `True` if the graph has been successfully saved.

  Parameters:

  - graph (`tlp.Graph`) – the graph to export
  - filename (string) – the path to the destination file

  Return type: | boolean

`tlp.``importGraph`(importPluginName, dataSet[, newGraph = None])

  Imports a graph using a Tulip import plugin (must be loaded). Import plugins are objects implementing the tlp::ImportModule interface in C++ or the `tlp.ImportModule` interface in Python. The list of currently loaded import plugins can be retrieved through the `tlp.getImportPluginsList()` function. Returns a new graph or None if the import fails.

  Parameters:

  - importPluginName (string) – the name of the Tulip import plugin
  - dataSet (`tlp.DataSet`) – a dataset filled with parameters to transmit to the import plugin
  - newGraph (`tlp.Graph`) – if provided, add imported graph elements in that graph

  Return type: | `tlp.Graph`
  Throws : | an exception if the requested import plugin is not registered in the plugins database.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call import modules (see Loading Tulip plugins)).

`tlp.``exportGraph`(graph, outputFilePath, exportPluginName, dataSet)

  Exports a graph to a file using a Tulip export plugin (must be loaded). Export plugins are objects implementing the tlp::ExportModule interface in C++ or the `tlp.ExportModule` interface in Python. The list of currently loaded export plugins can be retrieved through the `tlp.getExportPluginsList()` function.

  Parameters:

  - graph (`tlp.Graph`) – the graph to export
  - outputFilePath (string) – the path of the file the export plugin will write to
  - exportPluginName (string) – the name of the Tulip export plugin to execute
  - dataSet (`tlp.DataSet`) – a dataset filled with parameters to transmit to the export plugin

  Return type: | boolean
  Throws : | an exception if the requested export plugin is not registered in the plugins database.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call export modules (see Loading Tulip plugins)).

`tlp.``applyAlgorithm`(graph, dataSet, algoName)

  Deprecated since version 3.7: use `tlp.Graph.applyAlgorithm()` instead

  Applies an algorithm plugin (must be loaded) on a graph . Algorithm plugins are objects implementing the tlp::Algorithm interface in C++ or the `tlp.Algorithm` interface in Python. The list of currently loaded algorithm plugins can be retrieved through the `tlp.getAlgorithmPluginsList()` function. Parameters can be transmit to the algorithm trough a DataSet object (refer to the plugin documentation to get its parameters list).

  Returns a tuple whose first member is a boolean indicating if the algorithm has been successfully applied and second member is a string that can contain an error message if the algorithms fails during its execution.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to apply the algorithm
  - dataSet (`tlp.DataSet`) – a dataset filled with parameters to transmit to the algorithm
  - algoName (string) – the name of the algorithm plugin to call

  Return type: | (boolean, string)
  Throws : | an exception if the requested algorithm plugin is not registered in the plugins database.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call algorithms (see Loading Tulip plugins)).

`tlp.``newSubGraph`(root[, name = "unnamed"])

  Deprecated since version 3.7: use `tlp.Graph.addSubGraph()` instead

  Creates and returns an empty subgraph of a graph.

  Parameters:

  - root (`tlp.Graph`) – the graph on which the subgraph will be created
  - name (string) – the subgraph name

  Return type: | `tlp.Graph`

`tlp.``newCloneSubGraph`(root[, name = "unnamed"])

  Deprecated since version 3.7: use `tlp.Graph.addCloneSubGraph()` instead

  Creates and returns a subgraph of a graph root that is equal to that graph (a clone subgraph).

  Parameters:

  - root (`tlp.Graph`) – the graph on which the subgraph will be created
  - name (string) – the subgraph name

  Return type: | `tlp.Graph`

`tlp.``getSource`(graph)

  Deprecated since version 3.7: use `tlp.Graph.getSource()` instead

  Finds the first node whose input degree equals 0. Returns a tuple whose first member is a boolean indicating if such node exists and second member is the found node (invalid if there is no source);

  Parameters: | graph (`tlp.Graph`) – the graph on which to find a source
  Return type: | (boolean, `tlp.node`)

`tlp.``copyToGraph`(outGraph, inGraph[, inSelection = None, outSelection = None])

  Appends the selected part of a graph (properties, nodes and edges) into another one. If no selection is done, the whole input graph graph is appended. The output selection is used to select the appended nodes & edges

  Parameters:

  - outGraph (`tlp.Graph`) – the graph on which to append elements
  - inGraph (`tlp.Graph`) – the graph to append
  - inSelection (`tlp.BooleanProperty`) – boolean property attached to inGraph, only selected elements will be appended if provided
  - outSelection (`tlp.BooleanProperty`) – boolean property attached to outGraph, appended nodes and edges will be selected if provided

  Warning

  The input selection is extended to all selected edge ends.

`tlp.``removeFromGraph`(inGraph[, inSelection = None])

  Removes the selected part of a graph (properties values, nodes and edges). If no selection is done, the whole graph is reseted to default value.

  Parameters:

  - inGraph (`tlp.Graph`) – the graph on which to remove elements
  - inSelection (`tlp.BooleanProperty`) – boolean property attached to inGraph, only selected elements will be removed if provided

  Warning

  The selection is extended to all selected edge ends.

### Graph measures

`tlp.``averagePathLength`(graph)

  Returns the average path length of a graph, that is the sum of the shortest distances for all pair of distinct nodes in that graph divided by the number of those pairs. For a pair of non connected nodes, the shorted distance is set to 0.

  Parameters: | graph (`tlp.Graph`) – the graph on which to compute the average path length
  Return type: | float

`tlp.``averageClusteringCoefficient`(graph)

  Returns the clustering coefficient of a graph as the average of the local clustering coefficients (see `tlp.clusteringCoefficient()`) of all the nodes.

  Parameters: | graph (`tlp.Graph`) – the graph on wich to compute the average clustering coefficient
  Return type: | float

`tlp.``clusteringCoefficient`(graph, result[, maxDepth = 1])

  Assigns to each node its local clustering coefficient that is the proportion of edges between the nodes within its neighbourhood divided by the number of edges that could possibly exist between them. This quantifies how close its neighbors are to being a clique.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute the clustering coefficient for each node
  - result (`tlp.DoubleProperty`) – a graph property in which the results will be stored
  - maxDepth (integer) – the maximum distance between each node and its neighbours.

`tlp.``dagLevel`(graph, result)

  Assigns to each node of a Directed Acyclic Graph a level such that if the edge e(u,v) exists level(u) < level(v). The algorithm ensures that the number of level used is minimal.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute the dag level
  - result (`tlp.IntegerProperty`) – a graph property in which the results will be stored

  Warning

  The graph must be acyclic (no self loops).

`tlp.``minDegree`(graph)

  Returns the minimum degree of the graph’s nodes.

  Parameters: | graph (`tlp.Graph`) – the graph on which to compute the minimum degree
  Return type: | integer

`tlp.``maxDegree`(graph)

  Returns the maximum degree of the graph’s nodes.

  Parameters: | graph (`tlp.Graph`) – the graph on which to compute the maximum degree
  Return type: | integer

`tlp.``maxDistance`(graph, node, result, direction)

  Computes the distances from a node to all the other nodes of a graph and return the maximum one.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute the maximum distance
  - node (`tlp.node`) – an existing graph node
  - result (`tlp.IntegerProperty`) – a graph property in which the results will be stored
  - direction (tlp.DIRECTED, tlp.INV_DIRECTED, tlp.UNDIRECTED) – specify if the graph must be directed or not

  Return type: | integer
  Throws : | an exception if the node does not belong to the graph

`tlp.``reachableNodes`(graph, startNode, maxDistance, direction)

  Returns the nodes that can be reached from a node, according to a direction, at distance less or equal to a maximum one.

  Parameters:

  - graph (`tlp.Graph`) – the graph to work on
  - startNode (`tlp.node`) – an existing graph node
  - maxDistance (integer) – the maximum distance to reach nodes
  - direction (tlp.DIRECTED, tlp.INV_DIRECTED, tlp.UNDIRECTED) – specify if the graph must be directed or not

  Return type: | list of `tlp.node`
  Throws : | an exception if the node does not belong to the graph

### Geometry

`tlp.``computeBoundingBox`(graph[, selection = None])

  New in version 3.8.

  Computes the bounding box of a graph according to nodes positions and edges bends defined in the default layout property “viewLayout”, nodes z-rotations defined in the default double property “viewRotation” and sizes of elements defined in the default size property “viewSize”.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its bounding box
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the bounding box to selected elements (if provided)

  Return type: | `tlp.BoundingBox`
  Throws : | an exception if the provided boolean property is not attached to the graph

`tlp.``computeBoundingBox`(graph, layout, size, rotation[, selection = None])

  Computes the bounding box of a graph according to nodes positions, edges bends, nodes z-rotations and sizes of elements.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its bounding box
  - layout (`tlp.LayoutProperty`) – a layout property containing positions of the graph elements
  - size (`tlp.SizeProperty`) – a size property containing the sizes of the graph elements.
  - rotation (`tlp.DoubleProperty`) – a double property containing the z-rotations of nodes
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the bounding box to selected elements (if provided)

  Return type: | `tlp.BoundingBox`
  Throws : | an exception if the provided properties are not attached to the graph

`tlp.``computeBoundingRadius`(graph[, selection = None])

  New in version 3.8.

  Computes a bounding sphere (or a bounding circle if the graph has a 2D layout) of a graph according to nodes positions and edges bends defined in the default layout property “viewLayout”, nodes z-rotations defined in the default double property “viewRotation” and sizes of elements defined in the default size property “viewSize”.

  Returns a tuple of `tlp.Coord` whose first member is the center of the bounding sphere (circle for 2D layout) and second member is the farthest point from the center (computed from graph elements positions). To get the bounding radius, you have to compute the distance between the two members of the tuple (use the `tlp.Vec3f.dist()` method).

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its bounding sphere
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the bounding sphere to selected elements (if provided)

  Return type: | (`tlp.Coord`, `tlp.Coord`)
  Throws : | an exception if the provided boolean property is not attached to the graph

`tlp.``computeBoundingRadius`(graph, layout, size, rotation[, selection = None])

  Computes a bounding sphere (or a bounding circle if the graph has a 2D layout) of a graph according to node position edge bends node z-rotation, and size of elements.

  Returns a tuple of `tlp.Coord` whose first member is the center of the bounding sphere (circle for 2D layout) and second member is the farthest point from the center (computed from graph elements positions). To get the bounding radius, you have to compute the distance between the two members of the tuple (use the `tlp.Vec3f.dist()` method).

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its bounding sphere
  - layout (`tlp.LayoutProperty`) – a layout property containing positions of the graph elements
  - size (`tlp.SizeProperty`) – a size property containing the sizes of the graph elements.
  - rotation (`tlp.DoubleProperty`) – a double property containing the z-rotations of nodes
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the bounding sphere to selected elements (if provided)

  Return type: | (`tlp.Coord`, `tlp.Coord`)
  Throws : | an exception if the provided properties are not attached to the graph

`tlp.``computeConvexHull`(points)

  New in version 3.8.

  Computes a convex hull of a set of points. Only works with 2D layouts. Returns a list of `tlp.Coord` containing the vertices of the points convex hull correctly ordered.

  Parameters: | points (:list of class:tlp.Coord) – the points on which to compute a conbex hull
  Return type: | list of `tlp.Coord`

`tlp.``computeConvexHull`(graph[, selection = None])

  New in version 3.8.

  Computes a convex hull of a graph according to nodes positions and edges bends defined in the default layout property “viewLayout”, nodes z-rotations defined in the default double property “viewRotation” and sizes of elements defined in the default size property “viewSize”. Only works with 2D layouts. Returns a list of `tlp.Coord` containing the vertices of the graph convex hull correctly ordered.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its convex hull
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the convex hull to selected elements (if provided)

  Return type: | list of `tlp.Coord`
  Throws : | an exception if the provided boolean property is not attached to the graph

`tlp.``computeConvexHull`(graph, layout, size, rotation[, selection = None])

  Computes a convex hull of a graph according to nodes positions, edges bends, nodes z-rotations, and sizes of elements. Only works with 2D layouts. Returns a list of `tlp.Coord` containing the vertices of the graph convex hull correctly ordered.

  Parameters:

  - graph (`tlp.Graph`) – the graph on which to compute its convex hull
  - layout (`tlp.LayoutProperty`) – a layout property containing positions of the graph elements
  - size (`tlp.SizeProperty`) – a size property containing the sizes of the graph elements.
  - rotation (`tlp.DoubleProperty`) – a double property containing the z-rotations of nodes
  - selection (`tlp.BooleanProperty`) – a boolean property to restrain the computation of the convex hull to selected elements (if provided)

  Return type: | list of `tlp.Coord`
  Throws : | an exception if the provided properties are not attached to the graph

`tlp.``computeLinesIntersection`(line1, line2)

  New in version 3.8.

  Computes the intersection point (if any) of two 3d lines. Returns a tuple whose first member is a boolean indicating if the lines intersect (if `False` it means that lines are parallel or skew) and second member is the intersection point (if any).

  Parameters:

  - line1 ((`tlp.Coord` , `tlp.Coord`)) – the coordinates of the two points defining the first line
  - line2 ((`tlp.Coord` , `tlp.Coord`)) – the coordinates of the two points defining the second line

  Return type: | (boolean, `tlp.Coord`)

`tlp.``computePolygonCentroid`(points)

  New in version 3.8.

  Computes the centroid of a polygon.

  Parameters: | points (list of `tlp.Coord`) – the vertices of the polygon correctly ordered
  Return type: | `tlp.Coord`

`tlp.``delaunayTriangulation`(points)

  New in version 3.8.

  Computes the delaunay triangulation of a set of points and returns the set of delaunay edges and simplices (triangles in 2d, tetrahedra in 3d). Returns a tuple whose first member is the list of edges and second member is the list of simplices, or `None` if the triangulation failed. Edges and simplices are defined using indexes into the original list of points.

  Parameters: | points (list of `tlp.Coord`) – a list of points on which to compute a delaunay triangulation
  Return type: | (list of (integer, integer), list of integer) or `None`

class `tlp.``VoronoiDiagram`

  New in version 3.8.

  That class defines a voronoi diagram. Use the `tlp.voronoiDiagram()` function to get an instance of it.

  `cell`(cellIdx)

    Returns the ith voronoi cell. A cell is defined by a list of indexes in the voronoi vertices.

    Parameters: | cellIdx (integer) – the index of the cell to return
    Return type: | list of integer

  `degreeOfVertex`(vertexIdx)

    Returns the degree (number of incident edges) of the ith voronoi vertex

    Parameters: | vertexIdx (integer) – the index of the vertex on which to return the degree
    Return type: | integer

  `edge`(edgeIdx)

    Returns the ith voronoi edge. An edge is defined by two indexes in the voronoi vertices.

    Parameters: | edgeIdx (integer) – the index of the edge to return
    Return type: | (integer, integer)

  `nbEdges`()

    Returns the number of voronoi edges.

    Return type: | integer

  `nbSites`()

    Returns the number of voronoi sites.

    Return type: | integer

  `nbVertices`()

    Returns the number of voronoi vertices.

    Return type: | integer

  `site`(siteIdx)

    Returns the ith voronoi site.

    Parameters: | siteIdx (integer) – the index of the site to return
    Return type: | `tlp.Coord`

  `vertex`(vertexIdx)

    Returns the ith voronoi vertex.

    Parameters: | vertexIdx (integer) – the index of the vertex to return
    Return type: | `tlp.Coord`

  `voronoiCellForSite`(siteIdx)

    Returns the cell associated to the ith site.

    Parameters: | siteIdx (integer) – the index of the site on which to return the cell
    Return type: | list of integer

  `voronoiEdgesForSite`(siteIdx)

    Returns the voronoi edges surrounding the ith site.

    Parameters: | siteIdx (integer) – the index of the site on which to return edges
    Return type: | list of (integer, integer)

`tlp.``voronoiDiagram`(sites)

  New in version 3.8.

  Computes the voronoi diagram of a set of sites (for 2d and 3d layouts). It automatically computes the set of all voronoi vertices, edges and cells. In order to not have to deal with infinite voronoi rays, the input layout is enclosed in its convex hull in 2d or in its bounding box in 3d. It enables to have a connected voronoi cell for each input site.

  Parameters: | sites (list of `tlp.Coord`) – the sites from which to compute the voronoi diagram
  Return type: | `tlp.VoronoiDiagram`

### Plugins Management

`tlp.``getTulipRelease`()

  Returns the current version number of Tulip in the form X.Y.Z, X being the major version, Y the minor version, and Z the patch version.

  Return type: | string

`tlp.``initTulipLib`([appDirPath=None])

  Looks for the Tulip plugins directory and fills the Tulip path variables : tlp.TulipLibDir, tlp.TulipPluginsPath, tlp.TulipBitmapDir. The plug-ins directory can be defined in different ways, given by order of prevalence:

  > - the TLP_DIR environment variable, if it has a value
  > - from the optional appDirPath parameter that must point to the path where the tulip binary is located
  > - a fallback value of ‘C:/Tulip/lib/’ on windows, or ‘/usr/local/lib/’ on unix

  Parameters:

  appDirPath (string) – if provided, the Tulip plugins directory will be defined according to the provided Tulip binary path. This parameter should only be used when using the tulip module provided in a precompiled Tulip bundle (typically on MacOS and Windows) through the classical Python interpreter. In that case, the Tulip application directory has been hardcoded in the binaries when they were compiled and so does not match your local Tulip installation. If you do not provide the correct Tulip binary path, you won’t be able to load and call plugins.

`tlp.``loadPlugins`()

  Loads C++ plugins installed in the directories listed in the tlp.TulipPluginsPath variable (in the form “<path1>;<path2>” on windows and “<path1>:<path2>” on unix). The tlp.TulipPluginsPath can be initialized with standard Tulip directories by calling the `tlp.initTulipLib()` function.

`tlp.``loadPlugin`(filename)

  Loads a C++ plugin from a specific shared library. Returns `True` if the plugin was correctly loaded.

  Parameters: | filename (string) – the path to the shared library containing the Tulip plugin (file extension : .so on linux, .dylib on mac, .dll on windows)
  Return type: | boolean

`tlp.``loadPluginsFromDir`(dir)

  Loads C++ plugins located in a specific directory.

  Parameters: | dir (string) – the path to the directory containing the Tulip plugins

`tlp.``loadPluginsCheckDependencies`()

  Checks the dependencies of all C++ plugins loaded so far. If a plugin does not have all its dependencies fulfilled, it is unloaded and removed from the current plugins database.

`tlp.``getDefaultPluginParameters`(pluginName[, graph = None])

  Returns a dataset filled with default parameters (if any) for a given plugin (algorithm, import, property algorithm, ...).

  Parameters:

  - pluginName (string) – the name of the plugin on which to retrieve its default parameters
  - graph (`tlp.Graph`) – if provided, property parameters will be retrieved from the graph if they exist

  Return type: | `tlp.DataSet`

`tlp.``getImportPluginsList`()

  Return a list containing the names of the import plugins (written in C++ or Python) loaded so far. Import plugins are objects implementing the tlp::ImportModule interface in C++ or the `tlp.ImportModule` interface in Python.

  Return type: | list of string

`tlp.``getExportPluginsList`()

  Return a list containing the names of the export plugins (written in C++ or Python) loaded so far. Export plugins are objects implementing the tlp::ExportModule interface in C++ or the `tlp.ExportModule` interface in Python.

  Return type: | list of string

`tlp.``getAlgorithmPluginsList`()

  Return a list containing the names of the algorithm plugins (written in C++ or Python) loaded so far. Algorithm plugins are objects implementing the tlp::Algorithm interface in C++ or the `tlp.Algorithm` interface in Python.

  Return type: | list of string

`tlp.``getBooleanAlgorithmPluginsList`()

  Return a list containing the names of the boolean algorithm plugins (written in C++ or Python) loaded so far. Boolean algorithm plugins are objects implementing the tlp::BooleanAlgorithm interface in C++ or the `tlp.BooleanAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getColorAlgorithmPluginsList`()

  Return a list containing the names of the color algorithm plugins (written in C++ or Python) loaded so far. Color algorithm plugins are objects implementing the tlp::ColorAlgorithm interface in C++ or the `tlp.ColorAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getDoubleAlgorithmPluginsList`()

  Return a list containing the names of the double algorithm plugins (written in C++ or Python) loaded so far. Double algorithm plugins are objects implementing the tlp::DoubleAlgorithm interface in C++ or the `tlp.DoubleAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getIntegerAlgorithmPluginsList`()

  Return a list containing the names of the integer algorithm plugins (written in C++ or Python) loaded so far. Integer algorithm plugins are objects implementing the tlp::IntegerAlgorithm interface in C++ or the `tlp.IntegerAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getLayoutAlgorithmPluginsList`()

  Return a list containing the names of the layout algorithm plugins (written in C++ or Python) loaded so far. Layout algorithm plugins are objects implementing the tlp::LayoutAlgorithm interface in C++ or the `tlp.LayoutAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getSizeAlgorithmPluginsList`()

  Return a list containing the names of the size algorithm plugins (written in C++ or Python) loaded so far. Size algorithm plugins are objects implementing the tlp::SizeAlgorithm interface in C++ or the `tlp.SizeAlgorithm` interface in Python.

  Return type: | list of string

`tlp.``getStringAlgorithmPluginsList`()

  Return a list containing the names of the string algorithm plugins (written in C++ or Python) loaded so far. String algorithm plugins are objects implementing the tlp::StringAlgorithm interface in C++ or the `tlp.StringAlgorithm` interface in Python.

  Return type: | list of string

## Graph elements classes

### tlp.node

class `tlp.``node`

  An instance of this class represent a node in a Tulip graph. It encapsulates an integer identifier. Use specific methods in the `tlp.Graph` class to get references on such objects ( for instance `tlp.Graph.addNode()`, `tlp.Graph.getNodes()`, `tlp.Graph.getOutNodes()`, ...). Node objects can be used as keys in a Python dictionnary.

  The node identifier can be accessed through the id class member.

  `isValid`()

    Returns `True` if the node is a valid one, meaning it is attached to a graph.

    Return type: | boolean

### tlp.edge

class `tlp.``edge`

  An instance of this class represent an edge in a Tulip graph. It encapsulates an integer identifier. Use specific methods in the `tlp.Graph` class to get references on such objects ( for instance `tlp.Graph.addEdge()`, `tlp.Graph.getEdges()`, `tlp.Graph.getInEdges()`, ...). Edge objects can be used as keys in a Python dictionnary.

  The edge identifier can be accessed through the id class member.

  `isValid`()

    Returns `True` if the edge is a valid one, meaning it is attached to a graph.

    Return type: | boolean

## The tlp.Graph class

class `tlp.``Graph`

  This is the main Tulip class. It enables to :

  > - create a directed graph
  > - create and manipulate a sub-graphs hierarchy
  > - get semantic iterators on graph elements
  > - create and retrieve properties of different types to get/set data on the graph

  This class can not be instanced directly. Use `tlp.newGraph()` to create a new empty graph.

### Modification of the graph structure

`tlp.Graph.``clear`()

  Remove all nodes, edges and subgraphs from the graph .

`tlp.Graph.``addNode`()

  Adds a new node in the graph and returns it. This node is also added in all the graph’s ancestors to maintain the sub-graph relation between graphs.

  Return type: | `tlp.node`

`tlp.Graph.``addNodes`(nbNodes)

  New in version 3.7.

  Adds new nodes in the graph and returns them in a list. The new nodes are also added in all the graph ancestors to maintain the sub-graph relation between graphs.

  Parameters: | nbNodes (integer) – the number of nodes to add in the graph
  Return type: | list of `tlp.node`

  Warning

  the addedNodes vector is cleared before adding nodes.

`tlp.Graph.``addNode`(node)

  Adds an existing node in the graph. This node is also added in all the graph ancestors to maintain the sub-graph relation between graphs.

  Parameters: | node (`tlp.node`) – an existing node to add to the graph
  Throws : | an exception if the node does not belong to the root graph

  Warning

  The node must be an element of the graph hierarchy, thus it must be an element of the root graph.

  Warning

  One can’t add an existing node to the root graph.

`tlp.Graph.``addNodes`(itNodes)

  New in version 3.7.

  Adds existing nodes in the graph. The nodes are also added in all the graph ancestors to maintain the sub-graph relation between graphs.

  Parameters: | itNodes (a Tulip iterator on `tlp.node` objects) – an iterator on nodes to add
  Throws : | an exception if one of the node to add is not an element of the root graph.

  Warning

  The added nodes must be elements of the graph hierarchy, thus they must be elements of the root graph.

  Warning

  One can’t add existing nodes to the root graph.

`tlp.Graph.``delNode`(node[, deleteInAllGraphs = False])

  Deletes a node in the graph. This node is also removed in all the sub-graphs of the graph to maintain the sub-graph relation between graphs.

  Parameters:

  - node (`tlp.node`) – the node to delete
  - deleteInAllGraphs (boolean) – if `True`, remove the node in all the hierarchy of graphs

  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``delNodes`(itNodes[, deleteInAllGraphs=False])

  New in version 3.7.

  Deletes nodes in the graph. These nodes are also removed in the sub-graphs hierarchy of the current graph to maintain the sub-graph relation between graphs.

  Parameters:

  - itNodes (a Tulip iterator on `tlp.node` objects) – an iterator on the nodes to add
  - deleteInAllGraphs (boolean) – if `True`, these nodes are deleted in the whole hierarchy of graphs.

  Throws : | an exception if one of the node to delete is not an element of the graph.

`tlp.Graph.``addEdge`(src, tgt)

  Adds a new edge in the graph and returns it. This edge is also added in all the graph’s ancestors to maintain the sub-graph relation between graphs.

  Parameters:

  - src (`tlp.node`) – the source node of the new edge
  - tgt (`tlp.node`) – the target node of the new edge

  Return type: | `tlp.edge`
  Throws : | an exception if the provided source or target node does not belong to the graph

`tlp.Graph.``addEdges`(edges)

  New in version 3.7.

  Adds new edges in the graph and returns them in a list. The new edges are also added in all the graph ancestors to maintain the sub-graph relation between graphs.

  Parameters: | edges (list of tuples containing two `tlp.node` objects) – the list of edges to add described by a pair of nodes
  Return type: | list of `tlp.edge`
  Throws : | an exception if of the provided nodes to link is not an element of the graph.

`tlp.Graph.``addEdge`(edge)

  Adds an existing edge in the graph. This edge is also added in all the graph’s ancestors to maintain the sub-graph relation between graphs.

  Parameters: | edge (`tlp.edge`) – an existing edge to add to the graph
  Throws : | an exception if the edge does not belong to the root graph of if the source and target node of the edge are not elements of the graph

  Warning

  The edge must be an element of the graph hierarchy, thus it must be an element of the root graph.

  Warning

  One can’t add an existing edge to the root graph.

`tlp.Graph.``addEdges`(itEdges)

  New in version 3.7.

  Adds existing edges in the graph. The edges are also added in all the graph ancestors to maintain the sub-graph relation between graphs.

  Parameters: | itEdges (a Tulip iterator on `tlp.edge` objects) – an iterator on the edges to add
  Throws : | an exception if one of the edge to add is not an element of the root graph or if one of the edges extremities is not an element of the graph.

  Warning

  The added edges must be elements of the graph hierarchy, thus they must be elements of the root graph.

`tlp.Graph.``delEdge`(edge[, deleteInAllGraphs = False])

  Deletes an edge in the graph. This edge is also removed in all the sub-graphs of the graph to maintain the sub-graph relation between graphs. The ordering of edges is preserved.

  Parameters:

  - edge (`tlp.edge`) – the edge to delete
  - deleteInAllGraphs (boolean) – if `True`, remove the edge in all the hierarchy of graphs

  Throws : | an exception if the edge does not belong to the graph

`tlp.Graph.``delEdges`(itEdges[, deleteInAllGraphs=False])

  New in version 3.7.

  Deletes edges in the graph. These edges are also removed in the sub-graphs hierarchy of the current graph to maintain the sub-graph relation between graphs. The ordering of remaining edges is preserved.

  Parameters:

  - itEdges (a Tulip iterator on `tlp.edge` objects) – an iterator on the edges to delete
  - deleteInAllGraphs – If `True`, the edges are deleted in the whole hierarchy of graphs.
  - deleteInAllGraphs – boolean

  Throws : | an exception if one of the edge to delete is not an element of the graph

`tlp.Graph.``setEdgeOrder`(node, edges)

  Sets the order of the edges around a node. This operation ensures that adjacent edges of a node will be ordered as they are in the list of edges given in parameter.

  Parameters:

  - node (`tlp.node`) – the node on which to set edges ordering
  - edges (list of `tlp.edge`) – the list of edges adjacent to the node

  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``swapEdgeOrder`(node, edge1, edge2)

  Swaps two edges in the adjacency list of a node.

  Parameters:

  - node (`tlp.node`) – the node on which swapping two edges in its adjacency list
  - edge1 (`tlp.edge`) – an edge adjacent to the node
  - edge2 (`tlp.edge`) – another edge adjacent to the node

  Throws : | an exception if the node or one of the edges does not belong to the graph

`tlp.Graph.``setSource`(edge, src)

  Sets the source of an existing edge.

  Parameters:

  - edge (`tlp.edge`) – the edge on which to change the source node
  - src (`tlp.node`) – the new source node of the edge

  Throws : | an exception if the edge or the node does not belong to the graph

`tlp.Graph.``setTarget`(edge, tgt)

  Sets the target of an existing edge.

  Parameters:

  - edge (`tlp.edge`) – the edge on which to change the target node
  - tgt (`tlp.node`) – the new target node of the edge

  Throws : | an exception if the edge or node does not belong to the graph

`tlp.Graph.``setEnds`(edge, src, tgt)

  Sets both the source and target of an existing edge.

  Parameters:

  - edge (`tlp.edge`) – the edge on which to change the source and target nodes
  - src (`tlp.node`) – the new source node of the edge
  - tgt (`tlp.node`) – the new target node of the edge

  Throws : | an exception if the edge or one of the nodes does not belong to the graph

`tlp.Graph.``reverse`(edge)

  Reverses the direction of an edge, the source becomes the target and the target becomes the source.

  Parameters: | edge (`tlp.edge`) – the edge on which to revert the direction.
  Throws : | an exception if the edge does not belong to the graph

  Warning

  The ordering is global to the entire graph hierarchy. Thus, by changing the ordering in a graph you change the ordering in the hierarchy.

### Creation and Modification of the sub-graphs hierarchy

`tlp.Graph.``addSubGraph`([selection = None])

  Creates and returns a new sub-graph. The elements of the new sub-graph are those selected in the selection. If there is no selection an empty sub-graph is returned.

  Parameters: | selection (`tlp.BooleanProperty`) – a Boolean property whose selected elements will be added to the sub-graph
  Return type: | `tlp.Graph`

`tlp.Graph.``addSubGraph`(name)

  New in version 3.7.

  Creates and returns a new named sub-graph of this graph.

  Parameters: | name (string) – The name of the newly created subgraph.
  Return type: | `tlp.Graph`

`tlp.Graph.``addCloneSubGraph`(name = "unnamed")

  New in version 3.7.

  Creates and returns a subgraph of this graph that contains all its elements.

  Parameters: | name (string) – The name of the newly created subgraph. Defaults to “unnamed”.
  Return type: | `tlp.Graph`

`tlp.Graph.``inducedSubGraph`(nodeSet)

  Creates and returns a new sub-graph of the graph induced by a set of nodes. The sub-graph contains all the nodes of the set and all the existing edges between two nodes of the set including self-loops.

  Parameters: | nodeSet (list of `tlp.node`) – the set of nodes from which to build the induced sub-graph
  Return type: | `tlp.Graph`

`tlp.Graph.``delSubGraph`(subgraph)

  Delete a sub-graph of this graph. The sub-graph’s sub-graphs become sub-graphs of the graph.

  Parameters: | subgraph (`tlp.Graph`) – the sub-graph to remove

`tlp.Graph.``delAllSubGraphs`(subgraph)

  Delete a sub-graph of this graph and all its sub-graphs.

  Parameters: | subgraph (`tlp.Graph`) – the sub-graph to remove

`tlp.Graph.``getSuperGraph`()

  Returns the parent of the graph, if it has no parent (is the root graph), it returns itself.

  Return type: | `tlp.Graph`

`tlp.Graph.``getRoot`()

  Returns the root graph of the graph hierarchy.

  Return type: | `tlp.Graph`

`tlp.Graph.``setSuperGraph`(superGraph)

  Sets the parent of the graph (use very carefully). Standard users should never use this method.

  Parameters: | superGraph (`tlp.Graph`) – the new parent for the graph in the hierarchy.

`tlp.Graph.``getSubGraphs`()

  Returns an iterator on all the sub-graphs of the graph.

  Return type: | a Tulip iterator on `tlp.Graph` objects

`tlp.Graph.``isSubGraph`(graph)

  Returns `True` if the graph argument is a direct sub-graph of the graph.

  Parameters: | graph (`tlp.Graph`) – a graph
  Return type: | boolean

`tlp.Graph.``isDescendantGraph`(graph)

  Returns `True` if the graph argument is a descendant of this graph.

  Parameters: | graph (`tlp.Graph`) – a graph
  Return type: | boolean

`tlp.Graph.``getSubGraph`(id)

  Returns the sub-graph with the corresponding id or `None` if there is no sub-graph with that id.

  Parameters: | id (integer) – a graph id
  Return type: | `tlp.Graph` or `None`

`tlp.Graph.``getSubGraph`(name)

  New in version 3.7.

  Returns the sub-graph with the corresponding name or `None` if there is no sub-graph with that name.

  Parameters: | name (string) – the name of the sub-graph to return
  Return type: | `tlp.Graph` or `None`

`tlp.Graph.``getDescendantGraph`(id)

  Returns the descendant graph with the corresponding id or `None` if there is no descendant with that id.

  Parameters: | id (integer) – a graph id
  Return type: | `tlp.Graph` or `None`

`tlp.Graph.``getNthSubGraph`(n)

  New in version 3.7.

  Returns the nth subgraph or `None` if there is no such sub-graph. Since order cannot be ensured in every implementation, this method should be equivalent to:

      i = 0
      for sg in graph.getSubGraphs():
        if i++ == n:
          return sg
      return None

  Parameters: | n (integer) – the index of the sub-graph to return
  Return type: | `tlp.Graph` or `None`

`tlp.Graph.``numberOfSubGraphs`()

  New in version 3.7.

  Returns the number of direct sub-graphs.

  Return type: | integer

`tlp.Graph.``numberOfDescendantGraphs`()

  New in version 3.7.

  Returns the number of descendant graphs.

  Return type: | integer

### Iterators on the graph structure

All the provided iterators are stable, meaning you can safely delete a node/edge/subgraph from the graph while iterating on its nodes/edges/subgraphs.

`tlp.Graph.``getOneNode`()

  Returns an existing node of the graph.

  Return type: | `tlp.node`

`tlp.Graph.``getNodes`()

  Returns an iterator on the nodes.

  Return type: | a Tulip iterator on `tlp.node` objects

`tlp.Graph.``getInNode`(node, i)

  Returns the ith predecessor of a node.

  Parameters:

  - node (`tlp.node`) – an existing node of the graph
  - i (integer) – the position in the predecessor nodes list (warning : first index is 1 not 0)

  Throws : | an exception if the node does not belong to the graph or if the requested index is lesser than the number of predecessor nodes

`tlp.Graph.``getInNodes`(node)

  Return an iterator on the predecessors of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.node` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getOutNode`(node, i)

  Returns the ith successor of a node.

  Parameters:

  - node (`tlp.node`) – an existing node of the graph
  - i (integer) – the position in the successor nodes list (warning : first index is 1 not 0)

  Throws : | an exception if the node does not belong to the graph or if the requested index is lesser than the number of successor nodes

`tlp.Graph.``getOutNodes`(node)

  Returns an iterator on the successors of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.node` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getInOutNodes`(node)

  Returns an iterator on the neighbours of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.node` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getNodeMetaInfo`(node)

  Returns the underlying graph of a meta node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | `tlp.Graph`
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getOneEdge`()

  Returns an existing edge of the graph.

  Return type: | `tlp.edge`

`tlp.Graph.``getEdges`()

  Returns an iterator on the edges.

  Return type: | a Tulip iterator on `tlp.edge` objects

`tlp.Graph.``getOutEdges`(node)

  Returns a Tulip iterator on the outgoing edges of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.edge` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getInOutEdges`(node)

  Returns an iterator on the incoming and outgoing edges of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.edge` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getInEdges`(node)

  Returns an iterator on the incoming edges of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | a Tulip iterator on `tlp.edge` objects
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``getEdgeMetaInfo`(edge)

  Returns an iterator on the underlying edges of a meta edge.

  Parameters: | edge (`tlp.edge`) – an existing edge of the graph
  Return type: | a Tulip iterator on `tlp.edge` objects
  Throws : | an exception if the edge does not belong to the graph

### Informations about the graph stucture

`tlp.Graph.``getId`()

  Returns the graph’s id. This id is unique.

  Return type: | integer

`tlp.Graph.``getName`()

  Returns the name of the graph.

  Return type: | string

`tlp.Graph.``setName`(name)

  Sets the name of the graph.

  Parameters: | name (string) – the new name of the graph

`tlp.Graph.``getAttribute`(name)

  Returns a reference on an attribute of the graph or `None` if it does not exist.

  Parameters: | name (string) – the name of the attribute to return.
  Return type: | object

`tlp.Graph.``setAttribute`(name, val)

  Sets an attribute of the graph.

  Parameters:

  - name (string) – the name of the attribute to set
  - val – the value of the attribute
  - type – object

`tlp.Graph.``numberOfNodes`()

  Returns the number of nodes in the graph.

  Return type: | integer

`tlp.Graph.``numberOfEdges`()

  Returns the number of edges in the graph.

  Return type: | integer

`tlp.Graph.``deg`(node)

  Returns the degree of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | integer
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``indeg`(node)

  Returns the incoming degree of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | integer
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``outdeg`(node)

  Returns the outgoing degree of a node.

  Parameters: | node (`tlp.node`) – an existing node of the graph
  Return type: | integer
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``source`(edge)

  Returns the source of the edge.

  Parameters: | edge (`tlp.edge`) – an existing edge of the graph
  Return type: | `tlp.node`
  Throws : | an exception if the edge does not belong to the graph

`tlp.Graph.``target`(edge)

  Returns the target of the edge.

  Parameters: | edge (`tlp.edge`) – an existing edge of the graph
  Return type: | `tlp.node`
  Throws : | an exception if the edge does not belong to the graph

`tlp.Graph.``ends`(edge)

  Returns a tuple containing the two end nodes of an edge

  Parameters: | edge – an existing edge of the graph
  Return type: | (`tlp.node`, `tlp.node`)
  Throws : | an exception if the edge does not belong to the graph

`tlp.Graph.``opposite`(edge, node)

  Returns the opposite node of the edge for the given node.

  Parameters: | edge (`tlp.edge`) – an existing edge of the graph
  Return type: | `tlp.node`
  Throws : | an exception if the edge does not belong to the graph or if the given node is not linked by the edge

`tlp.Graph.``isElement`(node)

  Returns `True` if the node is an element of the graph.

  Parameters: | node (`tlp.node`) – a node
  Return type: | boolean

`tlp.Graph.``isMetaNode`(node)

  Returns `True` if the node is a meta-node.

  Parameters: | node (`tlp.edge`) – an existing node of the graph
  Return type: | boolean
  Throws : | an exception if the node does not belong to the graph

`tlp.Graph.``isElement`(edge)

  Returns `True` if the edge is an element of the graph.

  Parameters: | edge (`tlp.edge`) – an edge
  Return type: | boolean

`tlp.Graph.``isElement`()

  Returns `True` if the node is an element of the graph.

  Parameters: | node (`tlp.node`) – a node
  Return type: | boolean

`tlp.Graph.``isMetaEdge`(edge)

  Returns `True` if the edge is a meta-edge.

  Parameters: | edge – an existing edge of the graph
  Return type: | boolean
  Throws : | an exception if the edge does not belong to the graph

`tlp.Graph.``existEdge`(node1, node2[, directed=True])

  Returns the edge if it exists an edge between two nodes. If no edge is found, returns an invalid edge.

  Parameters:

  - node1 (`tlp.node`) – an existing node of the graph
  - node2 (`tlp.node`) – an existing node of the graph
  - directed (boolean) – indicates if the direction of the edge (from source to target) must be taken in to account

  Return type: | boolean
  Throws : | an exception if one of the nodes does not belong to the graph

`tlp.Graph.``getSource`()

  New in version 3.7.

  Finds the first node whose input degree equals 0. Returns the found node (invalid if there is no source);

  Return type: | `tlp.node`

### Create/Access graph properties

`tlp.Graph.``getBooleanProperty`(name)

  Returns the boolean property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the boolean property to return or to create
  Return type: | `tlp.BooleanProperty`

`tlp.Graph.``getLocalBooleanProperty`(name)

  Returns the boolean property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the boolean property to return or to create
  Return type: | `tlp.BooleanProperty`

`tlp.Graph.``getBooleanVectorProperty`(name)

  Returns the boolean vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the boolean vector property to return or to create
  Return type: | `tlp.BooleanVectorProperty`

`tlp.Graph.``getLocalBooleanVectorProperty`(name)

  Returns the boolean vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the boolean vector property to return or to create
  Return type: | `tlp.BooleanVectorProperty`

`tlp.Graph.``getColorProperty`(name)

  Returns the color property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the color property to return or to create
  Return type: | `tlp.ColorProperty`

`tlp.Graph.``getLocalColorProperty`(name)

  Returns the color property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the color property to return or to create
  Return type: | `tlp.ColorProperty`

`tlp.Graph.``getColorVectorProperty`(name)

  Returns the color vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the color vector property to return or to create
  Return type: | `tlp.ColorVectorProperty`

`tlp.Graph.``getLocalColorVectorProperty`(name)

  Returns the color vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the color vector property to return or to create
  Return type: | `tlp.ColorVectorProperty`

`tlp.Graph.``getDoubleProperty`(name)

  Returns the double property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the double property to return or to create
  Return type: | `tlp.DoubleProperty`

`tlp.Graph.``getLocalDoubleProperty`(name)

  Returns the double property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the double property to return or to create
  Return type: | `tlp.DoubleProperty`

`tlp.Graph.``getDoubleVectorProperty`(name)

  Returns the double vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the double vector property to return or to create
  Return type: | `tlp.DoubleVectorProperty`

`tlp.Graph.``getLocalDoubleVectorProperty`(name)

  Returns the double vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the double vector property to return or to create
  Return type: | `tlp.DoubleVectorProperty`

`tlp.Graph.``getIntegerProperty`(name)

  Returns the integer property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the integer property to return or to create
  Return type: | `tlp.IntegerProperty`

`tlp.Graph.``getLocalIntegerProperty`(name)

  Returns the integer property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the integer property to return or to create
  Return type: | `tlp.IntegerProperty`

`tlp.Graph.``getIntegerVectorProperty`(name)

  Returns the integer vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the integer vector property to return or to create
  Return type: | `tlp.IntegerVectorProperty`

`tlp.Graph.``getLocalIntegerVectorProperty`(name)

  Returns the integer vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the integer vector property to return or to create
  Return type: | `tlp.IntegerVectorProperty`

`tlp.Graph.``getGraphProperty`(name)

  Returns the meta-graph property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the meta-graph property to return or to create
  Return type: | `tlp.GraphProperty`

`tlp.Graph.``getLocalGraphProperty`(name)

  Returns the meta-graph property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the meta-graph property to return or to create
  Return type: | `tlp.GraphProperty`

`tlp.Graph.``getLayoutProperty`(name)

  Returns the layout property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the layout property to return or to create
  Return type: | `tlp.LayoutProperty`

`tlp.Graph.``getLocalLayoutProperty`(name)

  Returns the layout property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the layout property to return or to create
  Return type: | `tlp.LayoutProperty`

`tlp.Graph.``getCoordVectorProperty`(name)

  Returns the coord vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the coord vector property to return or to create
  Return type: | `tlp.CoordVectorProperty`

`tlp.Graph.``getLocalCoordVectorProperty`(name)

  Returns the coord vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the coord vector property to return or to create
  Return type: | `tlp.CoordVectorProperty`

`tlp.Graph.``getSizeProperty`(name)

  Returns the size property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the size property to return or to create
  Return type: | `tlp.SizeProperty`

`tlp.Graph.``getLocalSizeProperty`(name)

  Returns the size property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the size property to return or to create
  Return type: | `tlp.SizeProperty`

`tlp.Graph.``getSizeVectorProperty`(name)

  Returns the size vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the size vector property to return or to create
  Return type: | `tlp.SizeVectorProperty`

`tlp.Graph.``getLocalSizeVectorProperty`(name)

  Returns the size vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the size vector property to return or to create
  Return type: | `tlp.SizeVectorProperty`

`tlp.Graph.``getStringProperty`(name)

  Returns the string property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the string property to return or to create
  Return type: | `tlp.StringProperty`

`tlp.Graph.``getLocalStringProperty`(name)

  Returns the string property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the string property to return or to create
  Return type: | `tlp.StringProperty`

`tlp.Graph.``getStringVectorProperty`(name)

  Returns the string vector property associated to name in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the string vector property to return or to create
  Return type: | `tlp.StringVectorProperty`

`tlp.Graph.``getLocalStringVectorProperty`(name)

  Returns the string vector property associated to name in the graph properties pool. If the property is not registered in the pool, it creates a new one and returns it. Using of `del` on that property will cause a segmentation violation (use `tlp.Graph.delLocalProperty()` instead).

  Parameters: | name (string) – the name of the string vector property to return or to create
  Return type: | `tlp.StringVectorProperty`

`tlp.Graph.``getProperty`(name)

  Returns the property associated to name in the graph properties pool.

  Parameters: | name (string) – the name of the property to return
  Return type: | a subclass of `tlp.PropertyInterface`
  Throws : | an exception is there is no property with that name in the properties pool.

`tlp.Graph.``existProperty`(name)

  Returns `True` if a property of that name exists in the graph properties pool or in the pool of an ancestor in the sub-graphs hierarchy.

  Parameters: | name (string) – the name of the property
  Return type: | boolean

`tlp.Graph.``existLocalProperty`(name)

  Returns `True` if a property of that name exists in the graph properties pool.

  Parameters: | name (string) – the name of the property
  Return type: | boolean

`tlp.Graph.``delLocalProperty`(name)

  Removes and deletes the property associated to name in the graph properties pool.

  Parameters: | name (string) – the name of the property to delete

`tlp.Graph.``getLocalProperties`()

  Returns an iterator on the names of the properties local to the graph.

  Return type: | a Tulip iterator on string objects

`tlp.Graph.``getInheritedProperties`()

  Returns an iterator on the names of the properties inherited from the graph’s ancestors.

  Return type: | a Tulip iterator on string objects

`tlp.Graph.``getProperties`()

  Returns an iterator on the names of all the properties attached to the graph.

  Return type: | a Tulip iterator on string objects

### Application of algorithms

`tlp.Graph.``applyAlgorithm`(algoName, dataSet)

  New in version 3.7.

  Applies an algorithm plugin, identified by its name. Algorithm plugins are objects implementing the tlp::Algorithm interface in C++ or the `tlp.Algorithm` interface in Python. The list of currently loaded algorithm plugins can be retrieved through the `tlp.getAlgorithmPluginsList()` function. Parameters can be transmit to the algorithm using a `tlp.DataSet`. To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – The name of the algorithm to apply.
  - dataSet (`tlp.DataSet`) – The parameters to the algorithm. Defaults to `None`.

  Return type: | (boolean, string)
  Throws : | an exception if the requested algorithm plugin is not registered in the plugins database.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeBooleanProperty`(algoName, result[, dataSet = None])

  Computes a boolean property on the current graph using an external named boolean algorithm (plugin). Boolean algorithm plugins are objects implementing the tlp::BooleanAlgorithm interface in C++ or the `tlp.BooleanAlgorithm` interface in Python. The list of currently loaded boolean algorithm plugins can be retrieved through the `tlp.getBooleanAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the boolean algorithm to call
  - result (`tlp.BooleanProperty`) – a boolean property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested boolean algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call boolean algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeColorProperty`(algoName, result[, dataSet = None])

  Computes a color property on the current graph using an external named color algorithm (plugin). Color algorithm plugins are objects implementing the tlp::ColorAlgorithm interface in C++ or the `tlp.ColorAlgorithm` interface in Python. The list of currently loaded color algorithm plugins can be retrieved through the `tlp.getColorAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the color algorithm to call
  - result (`tlp.ColorProperty`) – a color property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested color algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call color algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeDoubleProperty`(algoName, result[, dataSet = None])

  Computes a double property on the current graph using an external named double algorithm (plugin). Double algorithm plugins are objects implementing the tlp::DoubleAlgorithm interface in C++ or the `tlp.DoubleAlgorithm` interface in Python. The list of currently loaded double algorithm plugins can be retrieved through the `tlp.getDoubleAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the double algorithm to call
  - result (`tlp.DoublrProperty`) – a double property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested double algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call double algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeIntegerProperty`(algoName, result[, dataSet = None])

  Computes an integer property on the current graph using an external named integer algorithm (plugin). Integer algorithm plugins are objects implementing the tlp::IntegerAlgorithm interface in C++ or the `tlp.IntegerAlgorithm` interface in Python. The list of currently loaded integer algorithm plugins can be retrieved through the `tlp.getIntegerAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the integer algorithm to call
  - result (`tlp.IntegerProperty`) – an integer property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested integer algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call integer algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeLayoutProperty`(algoName, result[, dataSet = None])

  Computes a layout property on the current graph using an external named layout algorithm (plugin). Layout algorithm plugins are objects implementing the tlp::LayoutAlgorithm interface in C++ or the `tlp.LayoutAlgorithm` interface in Python. The list of currently loaded layout algorithm plugins can be retrieved through the `tlp.getLayoutAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the layout algorithm to call
  - result (`tlp.LayoutProperty`) – a layout property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested layout algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call layout algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeSizeProperty`(algoName, result[, dataSet = None])

  Computes a size property on the current graph using an external named size algorithm (plugin). Size algorithm plugins are objects implementing the tlp::SizeAlgorithm interface in C++ or the `tlp.SizeAlgorithm` interface in Python. The list of currently loaded size algorithm plugins can be retrieved through the `tlp.getSizeAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the size algorithm to call
  - result (`tlp.SizeProperty`) – a size property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested size algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call size algorithms (see Loading Tulip plugins)).

`tlp.Graph.``computeStringProperty`(algoName, result[, dataSet = None])

  Computes a string property on the current graph using an external named string algorithm (plugin). String algorithm plugins are objects implementing the tlp::StringAlgorithm interface in C++ or the `tlp.StringAlgorithm` interface in Python. The list of currently loaded string algorithm plugins can be retrieved through the `tlp.getStringAlgorithmPluginsList()` function. The computed values will be stored in result. Parameters can be transmit to the algorithm using a `tlp.DataSet` . In some cases, algorithms can use this `tlp.DataSet` in order to return some external information (not stored in result). To determine a plugin’s parameters, you can either:

  > - refer to its documentation
  > - call the `tlp.getDefaultPluginParameters()` with the name of the plugin

  Returns a tuple whose first member is a boolean indicating if the algorithm terminates successfully and second member is a string which can contain an error message.

  Parameters:

  - algoName (string) – the name of the string algorithm to call
  - result (`tlp.StringProperty`) – a string property in which result of the algorithm will be stored
  - dataSet (`tlp.DataSet`) – a data set containing some parameters to transmit to the algorithm

  Return type: | (boolean, string)
  Throws : | an exception if the requested string algorithm plugin is not registered in the plugins database.

  Warning

  Previous values stored in result will be deleted.

  Warning

  If you are using the bindings through the classical Python interpreter, Tulip plugins must be loaded in order to be able to call string algorithms (see Loading Tulip plugins)).

### Update management

`tlp.Graph.``push`([unpopAllowed=True])

  Marks the state of the current root graph in the hierarchy. The next updates will be recorded in order to be undone at the next call of the `tlp.Graph.pop()` method. Be careful that all the updates are undone except those who affect the ordering of edges.

  Parameters: | unpopAllowed (boolean) – If set to `False`, the next updates could not be replayed after undone. If some previously undonevupdates exist they could no longer be replayed.

`tlp.Graph.``pop`([unpopAllowed=True])

  Restores a previously marked state of the current root graph in the hierarchy. The restored state does not remain marked.

  Parameters: | unpopAllowed (boolean) – If set to `False`, the undone updates could not be replayed.

`tlp.Graph.``unpop`()

  Marks again the current state of the root graph hierarchy and replays the last updates previously undone.

`tlp.Graph.``canPop`()

  Returns `True` if a previously marked state can be restored.

  Return type: | boolean

`tlp.Graph.``canUnpop`()

  Returns `True` if some previously undone updates can be replayed.

  Return type: | boolean

`tlp.Graph.``canPopThenUnpop`()

  Returns `True` if the current state updates can be undone then replayed.

  Return type: | boolean

### Meta-nodes management

`tlp.Graph.``createMetaNode`(nodeSet[, multiEdges=True, delAllEdge=True])

  Closes a set of existing nodes into a metanode and returns it. Edges from nodes in the set to other nodes are replaced with edges from the metanode to the other nodes.

  Parameters:

  - nodeSet (list of `tlp.node`) – a set of existing nodes
  - multiEdges (boolean) – indicates if a meta edge will be created for each underlying edge
  - delAllEdge (boolean) – indicates if the underlying edges will be removed from the entire hierarchy

  Return type: | `tlp.node` Warning This method will fail when called on the root graph.

`tlp.Graph.``createMetaNodes`(itGraph, quotientGraph)

  Populates a quotient graph with one meta node for each iterated graph. Returns a list of created meta-nodes.

  Parameters:

  - itGraph (a Tulip iterator on `tlp.Graph` objects) – a graph iterator, (typically a subgraph iterator)
  - quotientGraph (`tlp.Graph`) – the graph that will contain the meta nodes

  Return type: | list of `tlp.node`

`tlp.Graph.``createMetaNode`(subgraph[, multiEdges=True, delAllEdge=True])

  Closes an existing subgraph into a metanode and returns it. Edges from nodes in the subgraph to nodes outside the subgraph are replaced with edges from the metanode to the nodes outside the subgraph.

  Parameters:

  - subgraph (`tlp.Graph`) – an existing subgraph
  - multiEdges (boolean) – indicates if a meta edge will be created for each underlying edge
  - delAllEdge (boolean) – indicates if the underlying edges will be removed from the entire hierarchy

  Return type: | `tlp.node`

  Warning

  This method will fail when called on the root graph.

`tlp.Graph.``openMetaNode`(metaNode[, updateProperties=True])

  Opens a metanode and replaces all edges between that meta node and other nodes in the graph.

  Parameters:

  - metaNode (`tlp.node`) – the meta-node to open
  - updateProperties (boolean) – If `True`, open meta node will update inner nodes layout, color, size, etc...

  Warning

  This method will fail when called on the root graph.

### Graph observation

`tlp.Graph.``addGraphObserver`(graphObserver)

  New in version 3.8.

  Registers a new graph observer object that will receive notifications when the graph is modified.

  Parameters: | graphObserver (`tlp.GraphObserver`) – the new graph observer to register

`tlp.Graph.``countGraphObservers`()

  New in version 3.8.

  Returns the number of registered graph observers.

  Return type: | integer

`tlp.Graph.``removeGraphObserver`(graphObserver)

  New in version 3.8.

  Removes a registered graph observer object.

  Parameters: | graphObserver (`tlp.GraphObserver`) – the graph observer to remove

## Tulip observation system

### tlp.GraphObserver

class `tlp.``GraphObserver`

  New in version 3.8.

  Derived implementation of that class receives a message (through a callback/handler method) after each modification of a `tlp.Graph` object.

  To receive notifications, the `tlp.GraphObserver` object must first be connected to the `tlp.Graph` object. This is done by calling the `tlp.Graph.addGraphObserver()` method.

  Depending on which messages you want to receive, you need to override different methods of `tlp.GraphObserver`.

  The Observer pattern is described in the lecture notes and pp293-304 of Design Patterns by Gamma, Helm, Johnson, and Vlissides. It is a framework for handling state dependency between observer and observed object.

  Below is a small example of an observer that displays a message on the standard output each time a node is added to a graph:

      class PrintObs(tlp.GraphObserver):
          def addNode(self, graph, node):
              print node, " added in ", graph

      printObs = PrintObs()

      def main(graph):
          graph.addGraphObserver(printObs)
          graph.addNode() // output : "<node ?> added in <graph ?>"

  `addEdge`(graph, edge)

    This method is called each time an edge is added in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - edge (`tlp.edge`) – the newly added edge

  `addInheritedProperty`(graph, propertyName)

    This method is called each time a new inherited property is attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the new inherited property

  `addLocalProperty`(graph, propertyName)

    This method is called each time a new local property is attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the new local property

  `addNode`(graph, node)

    This method is called each time a node is added in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - node (`tlp.node`) – the newly added node

  `addSubGraph`(graph, subgraph)

    This method is called each time a sub-graph is added in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - subgraph (`tlp.Graph`) – the newly added sub-graph

  `afterDelInheritedProperty`(graph, propertyName)

    This method is called after the deletion of an inherited property attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the inherited property that has been deleted

  `afterDelLocalProperty`(graph, propertyName)

    This method is called after the deletion of a local property attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the local property that has been deleted

  `afterSetAttribute`(graph, attributeName)

    This method is called after the creation/modification of an attribute in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - attributeName (string) – the name of the attribute that has been created/modified

  `afterSetEnds`(graph, edge)

    This method is called after the modification of the ends of an edge in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - edge (`tlp.edge`) – the edge whose ends have been modified

  `beforeDelInheritedProperty`(graph, propertyName)

    This method is called before the deletion of an inherited property attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the inherited property that will be deleted

  `beforeDelLocalProperty`(graph, propertyName)

    This method is called before the deletion of a local property attached to an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - propertyName (string) – the name of the local property that will be deleted

  `beforeSetAttribute`(graph, attributeName)

    This method is called before the creation/modification of an attribute in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - attributeName (string) – the name of the attribute that will be created/modified

  `beforeSetEnds`(graph, edge)

    This method is called before the modification of the ends of an edge in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - edge (`tlp.edge`) – the edge whose ends will be modified

  `delEdge`(graph, edge)

    This method is called each time an edge is deleted in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - edge (`tlp.edge`) – the deleted edge

  `delNode`(graph, node)

    This method is called each time a node is deleted in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - node (`tlp.node`) – the deleted node

  `delSubGraph`(graph, subgraph)

    This method is called each time a sub-graph is deleted in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - subgraph (`tlp.Graph`) – the deleted sub-graph

  `destroy`(graph)

    This method is called when an observed graph is deleted.

    Parameters: | graph (`tlp.Graph`) – the observed graph

  `removeAttribute`(graph, attributeName)

    This method is called each time an attribute of an observed graph is removed.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - attributeName (string) – the name of the removed attribute

  `reverseEdge`(graph, edge)

    This method is called each time the orientation of an edge is reversed in an observed graph.

    Parameters:

    - graph (`tlp.Graph`) – the observed graph
    - edge (`tlp.edge`) – the reversed edge

### tlp.PropertyObserver

class `tlp.``PropertyObserver`

  New in version 3.8.

  Derived implementation of that class receives a message (through a callback/handler method) after each modification of an object deriving from `tlp.PropertyInterface`.

  To receive notifications, the `tlp.PropertyObserver` object must first be connected to the `tlp.Graph` object. This is done by calling the `tlp.PropertyInterface.addPropertyObserver()` method.

  Depending on which messages you want to receive, you need to override different methods of `tlp.PropertyObserver`.

  The Observer pattern is described in the lecture notes and pp293-304 of Design Patterns by Gamma, Helm, Johnson, and Vlissides. It is a framework for handling state dependency between observer and observed object.

  `afterSetAllEdgeValue`(property)

    This method is called after setting the same value on all edges in an observed property.

    Parameters: | property (sub-classes of `tlp.PropertyInterface`) – the observed property

  `afterSetAllNodeValue`(property)

    This method is called after setting the same value on all nodes in an observed property.

    Parameters: | property (sub-classes of `tlp.PropertyInterface`) – the observed property

  `afterSetEdgeValue`(property, edge)

    This method is called after the modification of the value associated to an edge in an observed property.

    Parameters:

    - property (sub-classes of `tlp.PropertyInterface`) – the observed property
    - edge (`tlp.edge`) – the edge that had its value modified

  `afterSetNodeValue`(property, node)

    This method is called after the modification of the value associated to a node in an observed property.

    Parameters:

    - property (sub-classes of `tlp.PropertyInterface`) – the observed property
    - node (`tlp.node`) – the node that had its value modified

  `beforeSetAllEdgeValue`(property)

    This method is called before setting the same value on all edges in an observed property.

    Parameters: | property (sub-classes of `tlp.PropertyInterface`) – the observed property

  `beforeSetAllNodeValue`(property)

    This method is called before setting the same value on all nodes in an observed property.

    Parameters: | property (sub-classes of `tlp.PropertyInterface`) – the observed property

  `beforeSetEdgeValue`(property, edge)

    This method is called before the modification of the value associated to an edge in an observed property.

    Parameters:

    - property (sub-classes of `tlp.PropertyInterface`) – the observed property
    - edge (`tlp.edge`) – the edge that will have its value modified

  `beforeSetNodeValue`(property, node)

    This method is called before the modification of the value associated to a node in an observed property.

    Parameters:

    - property (sub-classes of `tlp.PropertyInterface`) – the observed property
    - node (`tlp.node`) – the node that will have its value modified

  `destroy`(property)

    This method is called when an observed property is deleted.

    Parameters: | property (sub-classes of `tlp.PropertyInterface`) – the observed property

## Tulip datatypes

### tlp.Vec3f

class `tlp.``Vec3f`

  This class represents a vector with 3 floating point components. It can be instantiated as illustrated in the code below:

      # Initializes a Vec3f with all components set to 0.0
      v = tlp.Vec3f()

      # Initializes a Vec3f with all components set to 1.0
      v2 = tlp.Vec3f(1.0)

      # Initializes a Vec3f by specifying the value of each component
      v3 = tlp.Vec3f(1.0, 2.0, 3.0)

      # Initializes a Vec3f by copy
      v4 = tlp.Vec3f(v3)

  Numerous mathematical operations are available to work with vectors. The sample code below illustrates them:

      # Instantiate two vectors
      v = tlp.Vec3f(4.5, 1.0, 3.0)
      v2 = tlp.Vec3f(1.5, 2.0, 6.0)

      # Add two vectors, operator += is also available
      v3 = v + v2

      # Add a value to all components of a vector, operator += is also available
      v4 = v + 2.0

      # Subtract two vectors, operator -= is also available
      v5 = v - v2

      # Subtract a value to all components of a vector, operator -= is also available
      v6 = v - 3.0

      # Multiply two vectors (not vector product), operator *= is also available
      v7 = v * v2

      # Multiply each component of a vector by a value, operator *= is also available
      v8 = v * 2.0

      # Divide two vectors, operator /= is also available
      v9 = v / v2

      # Divide each component of a vector by a value, operator /= is also available
      v10 = v / 2.0

      # Perform a vector product, operator ^= is also available
      v11 = v ^ v2

  Each component of the vector can be read / written through the [] operator:

      v = tlp.Vec3f(1.0, 2.0, 3.0)

      # read first component
      a = v[0]

      # write third component
      v[2] = 4.0

  Operators for vectors equality (==), vectors difference (!=) and vectors comparison (<, >) are also available.

  `dist`(v)

    Computes and returns the distance between the vector (3d point) and another one.

    Parameters: | v (`tlp.Vec3f`) – a vector
    Return type: | float

  `dotProduct`(v)

    Computes and returns the dot product (scalar product) of the vector with another one

    Parameters: | v (`tlp.Vec3f`) – a vector
    Return type: | float

  `fill`(val)

    Set the same value to each component of the vector.

    Parameters: | val (float) – a value

  `norm`()

    Computes and returns the euclidean norm of the vector.

    Return type: | float

### tlp.Vec4f

class `tlp.``Vec4f`

  This class represents a vector with 4 floating point components. Constructors, operators and methods are similar to those from the `tlp.Vec3f` class.

### tlp.Vec4i

class `tlp.``Vec4i`

  This class represents a vector with 4 integer components. Constructors, operators and methods are similar to those from the `tlp.Vec3f` class.

### tlp.Coord

class `tlp.``Coord`

  Bases: `tlp.Vec3f`

  This class represents a point (coordinates) in a third dimensional space . Constructors and operators are similar to those defined in its base class `tlp.Vec3f`.

  `get`()

    Returns the point as a tuple.

    Return type: | (float, float, float)

  `getX`()

    Returns the x coordinate of the point.

    Return type: | float

  `getY`()

    Returns the y coordinate of the point.

    Return type: | float

  `getZ`()

    Returns the z coordinate of the point.

    Return type: | float

  `set`(x, y, z)

    Sets each coordinate of the point.

    Parameters:

    - x (float) – a value
    - y (float) – a value
    - z (float) – a value

  `setX`(x)

    Sets the x coordinate of the point.

    Parameters: | x (float) – a value

  `setY`(y)

    Sets the y coordinate of the point.

    Parameters: | y (float) – a value

  `setZ`(z)

    Sets the z coordinate of the point.

    Parameters: | z (float) – a value

### tlp.BoundingBox

class `tlp.``BoundingBox`

  This class represents the 3D bounding box of an object. It is defined by two 3d points, the first one being the lowest point (bottom-left corner), the second being the highest (top-right corner).

  A bounding box can be instantiated and manipulated the following ways:

      # Initialize a non-valid bounding box.
      # The minimum is (1, 1, 1) and the maximum is (-1, -1, -1).
      bb = tlp.BoundingBox()

      # Initialize a bounding box by specifying the lowest and highest point.
      # The validity of the bounding box is checked in debug mode (an assertion is raised if it is not valid).
      bb2 = tlp.BoundingBox(tlp.Vec3f(0,0,0), tlp.Vec3f(10,10,10))

      # Reading / writing the bounding box components can be done through the [] operator
      min = bb2[0]
      max = bb2[1]

  `center`()

    Returns the geometrical center of the bounding box.

    Return type: | `tlp.Vec3f`

  `contains`(point)

    New in version 3.7.

    Checks if the given point is inside the current bounding box. If the bounding box is invalid the result is always `False`.

    Parameters: | point (`tlp.Vec3f`) – a point in the 3D space.
    Return type: | boolean

  `depth`()

    Returns the depth of the bounding box.

    Return type: | float

  `expand`(point)

    Expands the bounding box to one containing the vector passed as parameter. If the vector is inside the bounding box, it remains unchanged.

    Parameters: | point (`tlp.Vec3f`) – A point in the 3D space we want the bounding box to encompass.

  `height`()

    Returns the height of the bounding box.

    Return type: | float

  `intersect`(boundingBox)

    New in version 3.7.

    Checks if the given bounding box intersects the current one. If one of the bounding boxes is invalid returns `False`.

    Parameters: | boundingBox (`tlp.BoundingBox`) – the bounding box on which to check intersection
    Return type: | boolean

  `intersect`(segStart, segEnd)

    New in version 3.7.

    Checks if the bounding box intersects the given line segment. If the bounding box is invalid the result is always `False`.

    Parameters:

    - segStart (`tlp.Vec3f`) – the start point of the line segment on which to check intersection
    - segEnd (`tlp.Vec3f`) – the end point of the line segment on which to check intersection

    Return type: | boolean

  `isValid`()

    Checks whether the bounding box’s lowest point is less than it’s highest point. “Less Than” means axis-by-axis comparison, i.e. x1 < x2 && y1 < y2 && z1 < z2.

    Return type: | boolean

  `translate`(displacement)

    Translates the bounding box by the displacement given by the vector passed as parameter.

    Parameters: | displacement (`tlp.Vec3f`) – The displacement vector in 3D space to translate this bounding box by.

  `width`()

    Returns the width of the bounding box.

    Return type: | float

### tlp.Size

class `tlp.``Size`

  Bases: `tlp.Vec3f`

  This class represents a size in a third dimensional space (width, height, depth). Constructors and operators are similar to those defined in its base class `tlp.Vec3f`.

  `get`()

    Returns the component of the size as a tuple.

    Return type: | (float, float, float)

  `getD`()

    Returns the depth component of the size.

    Return type: | float

  `getH`()

    Returns the height component of the size.

    Return type: | float

  `getW`()

    Returns the width component of the size.

    Return type: | float

  `set`(width, height, depth)

    Sets the three component of the size.

    Parameters:

    - width (float) – a value
    - height (float) – a value
    - depth (float) – a value

  `setD`(depth)

    Sets the depth component of the size.

    Parameters: | depth (float) – a value

  `setH`(height)

    Sets the height component of the size.

    Parameters: | height (float) – a value

  `setW`(width)

    Sets the width component of the size.

    Parameters: | width (float) – a value

### tlp.Color

class `tlp.``Color`

  This class represents a color using the RGBA color space. It can be instantiated the following way:

      # Each component must be in the range [0, 255]
      redOpaque = tlp.Color(255, 0, 0)

      blueTranslucent = tlp.Color(0, 0, 255, 100)

  The value of each component can be read / written using the [] operator.

  `getA`()

    Returns the alpha component of the color.

    Return type: | integer

  `getAGL`()

    Returns the alpha component of the color in the OpenGL format (a float value between 0.0 and 1.0).

    Return type: | float

  `getB`()

    Returns the blue component of the color.

    Return type: | integer

  `getBGL`()

    Returns the blue component of the color in the OpenGL format (a float value between 0.0 and 1.0).

    Return type: | float

  `getG`()

    Returns the green component of the color.

    Return type: | integer

  `getGGL`()

    Returns the green component of the color in the OpenGL format (a float value between 0.0 and 1.0).

    Return type: | float

  `getH`()

    Returns the hue component (in the range [0, 360]) of the color in the HSV color space.

    Return type: | integer

  `getR`()

    Returns the red component of the color.

    Return type: | integer

  `getRGL`()

    Returns the red component of the color in the OpenGL format (a float value between 0.0 and 1.0).

    Return type: | float

  `getS`()

    Returns the saturation component (in the range [0, 255]) of the color in the HSV color space.

    Return type: | integer

  `getV`()

    Returns the value component (in the range [0, 255]) of the color in the HSV color space.

    Return type: | integer

  `set`(red, green, blue, alpha)

    Sets each component of the color. Each component must be in the range [0, 255].

    Parameters:

    - red (integer) – the red component value
    - green (integer) – the green component value
    - blue (integer) – the blue component value
    - alpha (integer) – the alpha component value

  `setA`(alpha)

    Sets the alpha component of the color (must be in the range [0, 255]).

    Parameters: | alpha (integer) – the alpha component value

  `setB`(blue)

    Sets the blue component of the color (must be in the range [0, 255]).

    Parameters: | blue (integer) – the blue component value

  `setG`(green)

    Sets the green component of the color (must be in the range [0, 255]).

    Parameters: | green (integer) – the green component value

  `setH`(hue)

    Sets the hue component of the color in the HSV color space (must be in the range [0, 360]).

    Parameters: | hue (integer) – the hue component value

  `setR`(red)

    Sets the red component of the color (must be in the range [0, 255]).

    Parameters: | red (integer) – the red component value

  `setS`(saturation)

    Sets the saturation component of the color in the HSV color space (must be in the range [0, 255]).

    Parameters: | saturation (integer) – the saturation component value

  `setV`(value)

    Sets the value component of the color in the HSV color space (must be in the range [0, 255]).

    Parameters: | value (integer) – the value component value

### tlp.ColorScale

class `tlp.``ColorScale`

  This class represents a color scale to perform color mapping. The color scale can be either gradient (default) or predefined colors steps. If the color scale is a gradient, returned colors are interpolated in function of the position. If the color scale isn’t a gradient returned colors are the predefined colors steps.

  The sample code below illustrates how to create and manipulate a color scale:

      # Creating an empty color scale (default constructor creates a heatmap from blue to red).
      colorScale = tlp.ColorScale([])

      # Color scale initialization : from blue to red with gradient.
      colorScale.setColorAtPos(0.0, tlp.Color(0,0,255))
      colorScale.setColorAtPos(1.0, tlp.Color(255,0,0))

      # The following syntax could also be used
      # colors = [tlp.Color(0,0,255), tlp.Color(255,0,0)]
      # colorScale.setColorScale(colors)
      #    or
      # colorScale = tlp.ColorScale(colors)

      # Get the color for the position 0.5, i.e. Color(127,0,127).
      color = colorScale.getColorAtPos(0.5);

      # Reinitialize the color scale : from blue to red without gradient.
      newColors = []
      newColors.append(tlp.Color(0,0,255))
      newColors.append(tlp.Color(255,0,0))
      colorScale.setColorScale(newColors,False)

      # Get the color for the position 0.3, i.e. Color(0,0,255).
      color = colorScale.getColorAtPos(0.3)

      # Get the color for the position 0.7, i.e. Color(255,0,0).
      color = colorScale.getColorAtPos(0.7)

  `getColorAtPos`(pos)

    This method computes the color associated to a specific position in the color scale and returns it.

    Parameters: | pos (float) – This value defines the position of the color in the scale and must be between 0.0 and 1.0 (it will be clamped otherwise).
    Return type: | `tlp.Color`

  `getColorMap`()

    Returns a dictionary corresponding to the color scale.

    Return type: | a dictionary whose indexes are of type float and the values of type `tlp.Color`

  `isGradient`()

    Returns `True` if the color scale is a gradient.

    Return type: | boolean

  `setColorAtPos`(pos, color)

    This method adds a color to the color scale at a specific position.

    Parameters:

    - pos (float) – the position in the color scale (0.0 <= pos <= 1.0)
    - color (`tlp.Color`) – the color to add at the specified position

  `setColorScale`(colors[, gradient = True])

    This method configures the color scale. If the scale was previously configured the old configuration is lost.

    Parameters:

    - colors (list of `tlp.Color`) – The colors to use in the color scale.
    - gradient (boolean) – If set to `True`, the color scale is a gradient

### tlp.StringCollection

class `tlp.``StringCollection`

  This class represents a list of selectable string entries that can be used as plugin parameter. The list will appear as a combo box in the Plugin Parameter Dialog from the Tulip GUI.

  `at`(index)

    Returns the string element at a certain index in the collection.

    Parameters: | index (integer) – a valid index in the collection
    Return type: | string

  `empty`()

    Returns `True` if the collection is empty.

    Return type: | boolean

  `getCurrent`()

    Returns the index of the current selected string.

    Return type: | integer

  `getCurrentString`()

    Returns the current selected string value.

    Return type: | string

  `push_back`(element)

    Adds a string value to this string collection.

    Parameters: | element (string) – the string to add to the collection

  `setCurrent`(index)

    Sets the current selected string index. Returns `True` if the provided index is valid.

    Parameters: | index (integer) – a valid index in the string collection
    Return type: | boolean

  `setCurrent`(value)

    Sets the current selected string value. Returns `True` if the string value exists in the collection.

    Parameters: | value (string) – a string value from the collection
    Return type: | boolean

  `size`()

    Returns the number of strings in the collection.

    Return type: | integer

### tlp.DataSet

class `tlp.``DataSet`

  This class is used to store a set of parameters to transmit to a Tulip algorithm. Below is an exhaustive list of data types that can be stored in a Tulip data set:

  > - boolean
  > - integer
  > - float
  > - string
  > - `tlp.Coord`
  > - `tlp.Color`
  > - `tlp.Size`
  > - `tlp.DataSet`
  > - `tlp.ColorScale`
  > - `tlp.StringCollection`
  > - `tlp.BooleanProperty`
  > - `tlp.ColorProperty`
  > - `tlp.DoubleProperty`
  > - `tlp.IntegerProperty`
  > - `tlp.LayoutProperty`
  > - `tlp.SizeProperty`
  > - `tlp.StringProperty`
  > - `tlp.PropertyInterface`

  If you try to store an unsupported data type, an exception will be thrown. Each value stored in a data set is associated to a string key. Reading / Writing a value in a data set is done through the [] operator as illustrated below:

      # data set creation
      dataSet = tlp.DataSet()

      # writing integer values
      dataSet["height"] = 100
      dataSet["width"] = 300

      # reading integer values
      area = dataSet["height"] * dataSet["width"]

  When reading a data set value, a reference is returned not a copy.

  `exist`(key)

    Checks if the data set contains a value associated to a particular key.

    Parameters: | key (string) – the key to check
    Return type: | boolean

  `getKeys`()

    Returns the list of keys associated to the values stored in the data set.

    Return type: | list of string

  `remove`(key)

    Remove the value associated to a particular key from the data set if it exists.

    Parameters: | key (string) – the key of the value to remove.

  `size`()

    Returns the number of values stored in the data set.

    Return type: | integer

### tlp.PluginProgress

class `tlp.``PluginProgress`

  This interface allows to notify and control the progression of a process.

  `cancel`()

    Sets the state flag to cancel, notifying to the process that the user wants to cancel it. Canceling a process must stop it and revert all the changes performed since its start.

  `getError`()

    Returns a message describing the error encountered during the process. If no error has been encountered, an empty string is returned.

    Return type: | string

  `isPreviewMode`()

    Returns `True` if the preview mode is enabled. The preview mode redraws the graph while applying the algorithm, making it slower.

    Return type: | boolean

  `progress`(step, maxStep)

    Use this method to notify the progression of the process.

    Parameters:

    - step (integer) – the current step number
    - maxStep (integer) – the total number of steps

    Return type: | a value indicating whether the progress has been stopped (`tlp.TLP_STOP`), cancelled (`tlp.TLP_CANCEL`), or will continue (`tlp.TLP_CONTINUE`).

  `setComment`(msg)

    Changes the comment about the process progression.

    Parameters: | msg (string) – A description of what the process is currently doing, displayed to inform the user.

  `setError`(errorMsg)

    Sets the message describing the error encountered during the process.

    Parameters: | errorMsg (string) – the error message to set

  `setPreviewMode`(preview)

    Enables / disables the preview mode. The preview mode redraws the graph while applying the algorithm, making it slower.

    Parameters: | preview (boolean) – indicates if the preview mode should be activated

  `showPreview`(showPreview)

    This tells the widget associated to this PluginProgress if it should show a preview checkbox, allowing the user to decide if the algorithm should draw a preview or not.

    Parameters: | showPreview (boolean) – whether the progress widget should contain a preview checkbox or not.

  `state`()

    Gets the current internal state of the PluginProgress.

    Return type: | a value indicating whether the progress has been stopped (`tlp.TLP_STOP`), cancelled (`tlp.TLP_CANCEL`), or will continue (`tlp.TLP_CONTINUE`).

  `stop`()

    Sets the state flag to stop, notifying to the process that the user wants to stop it. Stopping a process does not revert changes.

## Graph properties classes

### tlp.PropertyInterface

class `tlp.``PropertyInterface`
  `addPropertyObserver`(propertyObserver)

    New in version 3.8.

    Registers a new property observer object that will receive notifications when the property is modified.

    Parameters: | propertyObserver (`tlp.PropertyObserver`) – the new property observer to register

  `countPropertyObservers`()

    New in version 3.8.

    Returns the number of registered property observers.

    Return type: | integer

  `erase`(node)

    Removes the value stored for the node given in parameter. The new value for the node is the default one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeDefaultStringValue`()

    Returns a string representation of the edge default value.

    Return type: | string

  `getEdgeStringValue`(edge)

    Returns a string conversion of the value registered for the given edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | string
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getGraph`()

    Returns the graph on which the property has been defined.

    Return type: | `tlp.Graph`

    Warning

    If the property is inherited the graph could be different that the one used to get that property.

  `getName`()

    Returns the name of the property.

    Return type: | string

  `getNodeDefaultStringValue`()

    Returns a string representation of the node default value.

    Return type: | string

  `getNodeStringValue`(node)

    Returns a string conversion of the value registered for the given node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | string
    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNonDefaultValuatedEdges`([subgraph = None])

    Returns an iterator on all edges whose value is different from the default value.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter. In that case, only the edges owned by this sub-graph are returned by the iterator.
    Return type: | `tlp.IteratorEdge`

  `getNonDefaultValuatedNodes`([subgraph = None])

    Returns an iterator on all nodes whose value is different from the default value.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter. In that case, only the nodes owned by this sub-graph are returned by the iterator.
    Return type: | `tlp.IteratorNode`

  `getTypename`()

    Returns a string describing the type of the property, i.e. “graph”, “double”, “layout”, “string”, “integer”, “color”, “size”, ...

    Return type: | string

  `removePropertyObserver`(propertyObserver)

    New in version 3.8.

    Removes a registered property observer object.

    Parameters: | propertyObserver (`tlp.PropertyObserver`) – the property observer to remove

  `setAllEdgeStringValue`(str)

    Clears all edges registered values, and sets a new edge default value in converting the given string representation of a value. Returns `True` if the given string representation has been successfully converted to a value, `False` otherwise.

    Parameters: | str (string) – a string representation of a value
    Return type: | boolean

  `setAllNodeStringValue`(str)

    Clears all nodes registered values, and sets a new node default value in converting the given string representation of a value. Returns `True` if the given string representation has been successfully converted to a value, `False` otherwise.

    Parameters: | str (string) – a string representation of a value
    Return type: | boolean

  `setEdgeStringValue`(edge, str)

    Registers a new value for the given edge in converting the given string representation. Returns `True` if the given string representation has been successfully converted to a value, `False` otherwise.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - str (string) – a string representation of a value

    Return type: | boolean
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeStringValue`(node, str)

    Registers a new value for the given node in converting the given string representation. Returns `True` if the given string representation has been successfully converted to a value, `False` otherwise.

    Parameters:

    - node (`tlp.node`) – an existing node
    - str (string) – a string representation of a value

    Return type: | boolean
    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.BooleanProperty

class `tlp.``BooleanProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.BooleanProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.BooleanProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.BooleanProperty`) – the property to copy

  `getNodesEqualTo`(val[, graph = None])

    Returns an iterator through all nodes belonging to the attached graph whose associated value is equal to the one given in parameter.

    Parameters:

    - val (boolean) – a value
    - graph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case returns an iterator on nodes only belonging to that sub-graph

    Return type: | `tlp.IteratorNode`

  `getEdgesEqualTo`(val[, graph = None])

    Returns an iterator through all edges belonging to the attached graph whose associated value is equal to the one given in parameter.

    Parameters:

    - val (boolean) – a value
    - graph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case returns an iterator on edges only belonging to that sub-graph

    Return type: | `tlp.IteratorEdge`

  `reverse`()

    Reverses all values associated to graph elements, i.e `True` => `False`, `False` => `True` .

  `reverseEdgeDirection`()

    Reverses all the direction of edges in the attached graph which are set to `True` in this boolean property.

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | boolean

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | boolean
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | boolean

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | boolean
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (boolean) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (boolean) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (boolean) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (boolean) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.ColorProperty

class `tlp.``ColorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.ColorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.ColorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.ColorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | `tlp.Color`

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | `tlp.Color`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | `tlp.Color`

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | `tlp.Color`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (`tlp.Color`) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (`tlp.Color`) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (`tlp.Color`) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Color`) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.DoubleProperty

class `tlp.``DoubleProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.DoubleProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.DoubleProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.DoubleProperty`) – the property to copy

  `getNodeMin`([subgraph = None])

    Returns the minimum value on the nodes for that double property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum value on the nodes belonging to that sub-graph.
    Return type: | float

  `getNodeMax`([subgraph = None])

    Returns the maximum value on the nodes for that double property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum value on the nodes belonging to that sub-graph.
    Return type: | float

  `getEdgeMin`([subgraph = None])

    Returns the minimum value on the edges for that double property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum value on the edges belonging to that sub-graph.
    Return type: | float

  `getEdgeMax`([subgraph = None])

    Returns the maximum value on the edges for that double property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum value on the edges belonging to that sub-graph.
    Return type: | float

  `uniformQuantification`(n)

    Performs an uniform quantification on nodes and edges based on the values stored in that double property. An uniform quantification tries to separate the nodes and edges in n classes of equivalent size according to theirs values in increasing order.

    Parameters: | n (integer) – the number of desired classes

    Warning

    All previous values on nodes and edges will be erased and replaced by the id of the class they belong to.

  `nodesUniformQuantification`(n)

    Performs an uniform quantification on nodes based on the values stored in that double property. An uniform quantification tries to separate the nodes in n classes of equivalent size according to theirs values in increasing order.

    Parameters: | n (integer) – the number of desired classes

    Warning

    All previous values on nodes will be erased and replaced by the id of the class they belong to.

  `edgesUniformQuantification`(n)

    Performs an uniform quantification on edges based on the values stored in that double property. An uniform quantification tries to separate the edges in n classes of equivalent size according to theirs values in increasing order.

    Parameters: | n (integer) – the number of desired classes

    Warning

    All previous values on edges will be erased and replaced by the id of the class they belong to.

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | float

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | float
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | float

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | float
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (float) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (float) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (float) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (float) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.IntegerProperty

class `tlp.``IntegerProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.IntegerProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.IntegerProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.IntegerProperty`) – the property to copy

  `getNodeMin`([subgraph = None])

    Returns the minimum value on the nodes for that integer property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum value on the nodes belonging to that sub-graph.
    Return type: | integer

  `getNodeMax`([subgraph = None])

    Returns the maximum value on the nodes for that integer property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum value on the nodes belonging to that sub-graph.
    Return type: | integer

  `getEdgeMin`([subgraph = None])

    Returns the minimum value on the edges for that integer property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum value on the edges belonging to that sub-graph.
    Return type: | integer

  `getEdgeMax`([subgraph = None])

    Returns the maximum value on the edges for that integer property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum value on the edges belonging to that sub-graph.
    Return type: | integer

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | integer

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | integer
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | integer

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | integer
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (integer) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (integer) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (integer) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (integer) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.LayoutProperty

class `tlp.``LayoutProperty`

  Bases: `tlp.PropertyInterface`

  `angularResolutions`(node[, subgraph=None])

    Returns a list of all angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinates is omitted

    Parameters:

    - node (`tlp.node`) – an existing node
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case returns the list of angular resolution for the node in that sub-graph

    Return type: | list of float
    Throws : | an exception if the node does not belong to the graph attached to the property or if the provided sub-graph is not a descendant of the graph attached to the property

  `averageAngularResolution`([subgraph = None])

    Returns the average angular resolution of the layout. It is only defined for 2D drawing, meaning the third coordinate is omitted

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case computes the average angular resolution for the layout of the nodes belonging to that sub-graph.
    Return type: | float
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `averageAngularResolution`(node[, subgraph = None])

    Returns the average angular resolution of a node. It is only defined for 2D drawing, meaning the third coordinate is omitted

    Parameters:

    - node (`tlp.node`) – an existing node
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case computes the average angular resolution of a node in that sub-graph.

    Return type: | float
    Throws : | an exception if the node does not belong to the graph attached to the property or if the provided sub-graph is not a descendant of the graph attached to the property

  `averageEdgeLength`([subgraph=None])

    New in version 3.7.

    Returns the average edge length of the layout, the bends are taken into account.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case only computes the average edge length for that sub-graph.
    Return type: | float
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `center`([subgraph = None])

    Centers the layout, meaning translating it in order that the center of its bounding box is (0,0,0)

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case only centers the layout of that sub-graph.
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `center`(newCenter[, subgraph = None])

    New in version 3.7.

    Centers the layout to newCenter, meaning translating it in order that the center of its bounding box is equal to newCenter.

    Parameters:

    - newCenter (`tlp.Vec3f`) – the new center of the layout
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case only centers the layout of that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `computeEmbedding`([subgraph=None])

    Fixes embedding of the graph according to the layout, ie. sort edges around nodes according to their neighbors/bends position in the layout. Only works in 2D, the third coordinate is not taken into account.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case fixes embedding of that sub-graph
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `computeEmbedding`(node[, subgraph=None])

    Fixes embedding of the node according to the layout, ie. sort edges around the node according to their neighbors/bends position in the layout. Only works in 2D, the third coordinate is not taken into account.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case fixes embedding of the node in that sub-graph
    Throws : | an exception if the node does not belong to the graph attached to the property or if the provided sub-graph is not a descendant of the graph attached to the property

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.LayoutProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.LayoutProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.LayoutProperty`) – the property to copy

  `crossingNumber`()

    Returns the number of edges crossings in the layout.

  `edgeLength`(edge)

    Returns the length of an edge, the bends are taken into account. Thus, it measures the length of a polyline.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | float
    Throws : | an exception if the edge does not belong to the graph attached to the property

    Warning

    This function only measures the length of the polyline between bends, when using curves like Bezier etc... the result will not be the length of the curve.

  `getMin`([subgraph = None])

    Returns the minimum coordinate in that layout property, i.e. the bottom-left corner of the graph drawing bounding box.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum coordinate of the sub-graph layout.
    Return type: | `tlp.Coord`
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `getMax`([subgraph = None])

    Returns the maximum coordinate in that layout property, i.e. the top-right corner of the graph drawing bounding box.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum coordinate of the sub-graph layout.
    Return type: | `tlp.Coord`
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `normalize`([subgraph = None])

    Normalizes the layout, meaning dividing each nodes and edges coordinate by the maximum magnitude of the whole coordinates set

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case only normalizes the layout of that sub-graph.
    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `perfectAspectRatio`()

    Scales the layout in order to approach an aspect ratio (width / height) of 1.0 .

  `rotateX`(alpha[, subgraph = None])

    New in version 3.7.

    Rotates the layout around the X-axis according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case rotates the layout of the nodes belonging to that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `rotateX`(alpha, itNodes, itEdges)

    Rotates the layout around the X-axis of the nodes and edges provided through iterators according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `rotateY`(alpha[, subgraph = None])

    New in version 3.7.

    Rotates the layout around the Y-axis according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case rotates the layout of the nodes belonging to that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `rotateY`(alpha, itNodes, itEdges)

    Rotates the layout around the Y-axis of the nodes and edges provided through iterators according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `rotateZ`(alpha[, subgraph = None])

    Rotates the layout around the Z-axis according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case rotates the layout of the nodes belonging to that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `rotateZ`(alpha, itNodes, itEdges)

    Rotates the layout around the Z-axis of the nodes and edges provided through iterators according to an angle in degrees.

    Parameters:

    - alpha (float) – an angle in degrees
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `scale`(scaleFactors[, subgraph = None])

    Scales the layout according to a vector of scale factors (sx, sy, sz).

    Parameters:

    - move (`tlp.Vec3f`) – a vector of scale factors
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case scales the layout of the nodes belonging to that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `scale`(scaleFactors, itNodes, itEdges)

    Scales the layout of the nodes and edges provided through iterators according to a vector of scale factors (sx, sy, sz).

    Parameters:

    - move (`tlp.Vec3f`) – a vector of scale factors
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `translate`(move[, subgraph = None])

    Translates the current layout according to a movement vector.

    Parameters:

    - move (`tlp.Vec3f`) – a movement vector
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case translates the layout of the nodes belonging to that sub-graph.

    Throws : | an exception if the provided sub-graph is not a descendant of the graph attached to the property

  `translate`(move, itNodes, itEdges)

    Translates the layout of a set of nodes and edges provided through iterators according to a movement vector.

    Parameters:

    - move (`tlp.Vec3f`) – a movement vector
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | list of `tlp.Coord`

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of `tlp.Coord`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | `tlp.Coord`

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | `tlp.Coord`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (list of `tlp.Coord`) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (`tlp.Coord`) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of `tlp.Coord`) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Coord`) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.SizeProperty

class `tlp.``SizeProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.SizeProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.SizeProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.SizeProperty`) – the property to copy

  `getMin`([subgraph = None])

    Returns the minimum value on the nodes for that size property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the minimum value on the nodes belonging to that sub-graph.
    Return type: | `tlp.Size`

  `getMax`([subgraph = None])

    Returns the maximum value on the nodes for that size property.

    Parameters: | subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case return the maximum value on the nodes belonging to that sub-graph.
    Return type: | `tlp.Size`

  `scale`(scaleFactors[, subgraph = None])

    Scales the sizes of the nodes and edges according to a scale factors vector (sx, sy, sz).

    Parameters:

    - scaleFactors (`tlp.Size`) – a vector of scales factor
    - subgraph (`tlp.Graph`) – a sub-graph can be given in parameter, in that case scales the size of the nodes belonging to that sub-graph.

  `scale`(scaleFactors, itNodes, itEdges)

    Scales the sizes of the nodes and edges provided through iterators according to a scale factors vector (sx, sy, sz).

    Parameters:

    - scaleFactors (`tlp.Size`) – a vector of scale factors
    - itNodes (`tlp.IteratorNode`) – an iterator on graph nodes
    - itEdges (`tlp.IteratorEdge`) – an iterator on graph edges

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | `tlp.Size`

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | `tlp.Size`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | `tlp.Size`

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | `tlp.Size`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (`tlp.Size`) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (`tlp.Size`) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (`tlp.Size`) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Size`) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.StringProperty

class `tlp.``StringProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.StringProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.StringProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.StringProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default value associated to the edges.

    Return type: | string

  `getEdgeValue`(edge)

    Returns the value associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | string
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default value associated to the nodes.

    Return type: | string

  `getNodeValue`(node)

    Returns the value associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | string
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same value on the whole set of edges.

    Parameters: | val (string) – the value to set on the edges.

  `setAllNodeValue`(val)

    Sets the same value on the whole set of nodes.

    Parameters: | val (string) – the value to set on the nodes.

  `setEdgeValue`(edge, val)

    Sets the value of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (string) – the value to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the value of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (string) – the value to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.BooleanVectorProperty

class `tlp.``BooleanVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.BooleanVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.BooleanVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.BooleanVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of boolean

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of boolean
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of boolean

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of boolean
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of boolean) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of boolean) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of boolean) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of boolean) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | boolean
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (boolean) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (boolean) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (boolean) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | boolean
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (boolean) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (boolean) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (boolean) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.CoordVectorProperty

class `tlp.``CoordVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.CoordVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.CoordVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.CoordVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of `tlp.Coord`

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of `tlp.Coord`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of `tlp.Coord`

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of `tlp.Coord`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of `tlp.Coord`) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of `tlp.Coord`) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of `tlp.Coord`) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of `tlp.Coord`) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | `tlp.Coord`
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (`tlp.Coord`) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Coord`) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (`tlp.Coord`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | `tlp.Coord`
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (`tlp.Coord`) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (`tlp.Coord`) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (`tlp.Coord`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.ColorVectorProperty

class `tlp.``ColorVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.ColorVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.ColorVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.ColorVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of `tlp.Color`

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of `tlp.Color`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of `tlp.Color`

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of `tlp.Color`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of `tlp.Color`) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of `tlp.Color`) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of `tlp.Color`) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of `tlp.Color`) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | `tlp.Color`
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (`tlp.Color`) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Color`) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (`tlp.Color`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | `tlp.Color`
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (`tlp.Color`) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (`tlp.Color`) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (`tlp.Color`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.DoubleVectorProperty

class `tlp.``DoubleVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.DoubleVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.DoubleVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.DoubleVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of float

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of float
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of float

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of float
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of float) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of float) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of float) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of float) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | float
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (float) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (float) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (float) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | float
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (float) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (float) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (float) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.IntegerVectorProperty

class `tlp.``IntegerVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.IntegerVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.IntegerVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.IntegerVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of integer

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of integer
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of integer

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of integer
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of integer) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of integer) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of integer) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of integer) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | integer
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (integer) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (integer) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (integer) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | integer
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (integer) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (integer) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (integer) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.SizeVectorProperty

class `tlp.``SizeVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.SizeVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.SizeVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.SizeVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of `tlp.Size`

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of `tlp.Size`
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of `tlp.Size`

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of `tlp.Size`
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of `tlp.Size`) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of `tlp.Size`) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of `tlp.Size`) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of `tlp.Size`) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | `tlp.Size`
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (`tlp.Size`) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (`tlp.Size`) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (`tlp.Size`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | `tlp.Size`
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (`tlp.Size`) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (`tlp.Size`) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (`tlp.Size`) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

### tlp.StringVectorProperty

class `tlp.``StringVectorProperty`

  Bases: `tlp.PropertyInterface`

  `copy`(nodeDst, nodeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on a node to another node on this property.

    Parameters:

    - nodeDst (`tlp.node`) – the node to copy the value to.
    - nodeSrc (`tlp.node`) – the node to copy the value from.
    - prop (`tlp.StringVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(edgeDst, edgeSrc, prop[, ifNotDefault=False])

    New in version 3.8.

    Copies the value hold by a property on an edge to another edge on this property.

    Parameters:

    - edgeDst (`tlp.edge`) – the node to copy the value to.
    - edgeSrc (`tlp.edge`) – the node to copy the value from.
    - prop (`tlp.StringVectorProperty`) – the property holding the value to copy.
    - ifNotDefault (boolean) – whether to ignore default-valuated nodes or not. Defaults to `False`.

  `copy`(prop)

    New in version 3.8.

    Copies the values hold by a property on this property.

    Parameters: | prop (`tlp.StringVectorProperty`) – the property to copy

  `getEdgeDefaultValue`()

    Returns the default list of values associated to the edges.

    Return type: | list of string

  `getEdgeValue`(edge)

    Returns the list of values associated to a particular edge.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Return type: | list of string
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `getNodeDefaultValue`()

    Returns the default list of values associated to the nodes.

    Return type: | list of string

  `getNodeValue`(node)

    Returns the list of values associated to a particular node.

    Parameters: | node (`tlp.node`) – an existing node
    Return type: | list of string
    Throws : | an exception if the node does not belong to the graph attached to the property

  `setAllEdgeValue`(val)

    Sets the same list of values on the whole set of edges.

    Parameters: | val (list of string) – the list of values to set on the edges

  `setAllNodeValue`(val)

    Sets the same list of values on the whole set of nodes.

    Parameters: | val (list of string) – the list of values to set on the nodes

  `setEdgeValue`(edge, val)

    Sets the list of values of a particular edge.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (list of string) – the list of values to set on the edge

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `setNodeValue`(node, val)

    Sets the list of values of a particular node.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (list of string) – the list of values to set on the node

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getNodeEltValue`(node, index)

    Returns the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list

    Return type: | string
    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `setNodeEltValue`(node, index, val)

    Sets the value in the list attached to a particular node at the given index.

    Parameters:

    - node (`tlp.node`) – an existing node
    - index (integer) – the index in the list
    - val (string) – the value to set in the list

    Throws : | an exception if the node does not belong to the graph attached to the property or if the list attached to the node has a size smaller than the given index.

  `pushBackNodeEltValue`(node, val)

    Inserts a value at the end of the list attached to a particular node. The size of the list is incremented by one.

    Parameters:

    - node (`tlp.node`) – an existing node
    - val (string) – the value to add in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `popBackNodeEltValue`(node)

    Removes the value at the end of the list (if not empty) attached to a particular node. The size of the list is decremented by one.

    Parameters: | node (`tlp.node`) – an existing node
    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size)

    Resizes the list attached to a particular node. A default value will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `resizeNodeValue`(node, size, val)

    Resizes the list attached to a particular node. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - node (`tlp.node`) – an existing node
    - size (integer) – the new size of the list
    - val (string) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

  `getEdgeEltValue`(edge, index)

    Returns the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list

    Return type: | string
    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `setEdgeEltValue`(edge, index, val)

    Sets the value in the list attached to a particular edge at the given index.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - index (integer) – the index in the list
    - val (string) – the value to set in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property or if the list attached to the edge has a size smaller than the given index.

  `pushBackEdgeEltValue`(edge, val)

    Inserts a value at the end of the list attached to a particular edge. The size of the list is incremented by one.

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - val (string) – the value to add in the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `popBackEdgeEltValue`(edge)

    Removes the value at the end of the list (if not empty) attached to a particular edge. The size of the list is decremented by one.

    Parameters: | edge (`tlp.edge`) – an existing edge
    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size)

    Resizes the list attached to a particular edge. A default value will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list

    Throws : | an exception if the edge does not belong to the graph attached to the property

  `resizeEdgeValue`(edge, size, val)

    Resizes the list attached to a particular edge. The value given in paramater will be assigned to new elements (if any).

    Parameters:

    - edge (`tlp.edge`) – an existing edge
    - size (integer) – the new size of the list
    - val (string) – the value to assign on new elements in the list

    Throws : | an exception if the node does not belong to the graph attached to the property

## Tulip plugins classes

### tlp.WithParameter

class `tlp.``WithParameter`

  This class describes parameters for a plug-in. These parameters can be of multiple types, and are used to generate a GUI that will be shown when the plug-in in invoked by the user.

  `addBooleanParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a boolean parameter to the plug-in.

    Parameters:

    - name (string) – the name of the boolean parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (“true” or “false”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addBooleanPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.BooleanProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.BooleanProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addColorParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.Color` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.Color` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “(R, G, B, A)”, e.g. for red : “(255,0,0,255)”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addColorPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.ColorProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.ColorProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addColorScaleParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.ColorScale` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.ColorScale` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “((R, G, B, A), ..., (R, G, B, A))”, e.g. gradient from black to white : “((0,0,0,255), (255,255,255,255))”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addDoublePropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.DoubleProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.DoubleProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addFloatParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a floating point number parameter to the plug-in.

    Parameters:

    - name (string) – the name of the floating point number parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “[0-9]*[.][0-9]+”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addIntegerParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds an integer parameter to the plug-in.

    Parameters:

    - name (string) – the name of the integer parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “[0-9]+”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addIntegerPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.IntegerProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.IntegerProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addLayoutPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.LayoutProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.LayoutProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.PropertyInterface` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.PropertyInterface` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addSizePropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.SizeProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.SizeProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addStringCollectionParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.StringCollection` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.StringCollection` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “entry1;entry2;...;entryN”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addStringParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a string parameter to the plug-in.

    Parameters:

    - name (string) – the name of the string parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

  `addStringPropertyParameter`(name[, help = None, defaultValue = None, isMandatory = True])

    Adds a `tlp.StringProperty` parameter to the plug-in.

    Parameters:

    - name (string) – the name of the `tlp.StringProperty` parameter to add
    - help (string) – a description of the parameter, that will be displayed to the user
    - defaultValue (string) – the default value (in the form “<property_name>”) the parameter should take, to be the initial value in the GUI
    - isMandatory (boolean) – specify whether this parameter requires a value or not

### tlp.Algorithm

class `tlp.``Algorithm`

  Bases: `tlp.WithParameter`

  This abstract class describes a general algorithm plugin. Basic functionality consists in checking the algorithm can run on the current Graph (e.g. is the graph simple ?) then running the algorithm. The algorithm can and should report progress and which task it is performing if it is decomposed in multiple phases (e.g. layouting the graph, coloring it, ...).

  class attributes

  `graph`

    The `tlp.Graph` this algorithm will be run on.

  `dataSet`

    A `tlp.DataSet` containing parameters for this algorithm, if any.

  `pluginProgress`

    A `tlp.PluginProgress` to give feedback to the user. It can be `None`, so use with caution.

  class methods

  `check`()

    This method is called before applying the algorithm on the input graph. You can perform some precondition checks here. Derived classes can reimplement it. Must return a tuple whose first member indicates if the algorithm can be applied and the second one can be used to provide an error message

    Return type: | (boolean, string)

  `run`()

    This method is the entry point of the algorithm when it is called. Derived classes must implement it. It is a good practice to report progress through the PluginProgress. The PluginProgress should also be used to report errors, if any. A boolean must also be returned to indicate if the algorithm was successful.

    Return type: | boolean

### tlp.BooleanAlgorithm

class `tlp.``BooleanAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for selection plugins.

  class attributes

  `booleanResult`

    The result of the algorithm must be stored in this `tlp.BooleanProperty`.

### tlp.ColorAlgorithm

class `tlp.``ColorAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for color plugins.

  class attributes

  `colorResult`

    The result of the algorithm must be stored in this `tlp.ColorProperty`.

### tlp.DoubleAlgorithm

class `tlp.``DoubleAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for metric plugins.

  class attributes

  `doubleResult`

    The result of the algorithm must be stored in this `tlp.DoubleProperty`.

### tlp.IntegerAlgorithm

class `tlp.``IntegerAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for integer plugins.

  class attributes

  `integerResult`

    The result of the algorithm must be stored in this `tlp.IntegerProperty`.

### tlp.LayoutAlgorithm

class `tlp.``LayoutAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for layout plugins.

  class attributes

  `layoutResult`

    The result of the algorithm must be stored in this `tlp.LayoutProperty`.

### tlp.SizeAlgorithm

class `tlp.``SizeAlgorithm`

  Bases: `tlp.Algorithm`

  This class is the base interface for size plugins.

  class attributes

  `sizeResult`

    The result of the algorithm must be stored in this `tlp.SizeProperty`.

### tlp.ImportModule

class `tlp.``ImportModule`

  Bases: `tlp.WithParameter`

  This abstract class describes an import plugin.

  class attributes

  `graph`

    An empty `tlp.Graph` to populate when running the import process

  `dataSet`

    A `tlp.DataSet` containing parameters for this import plugin, if any

  `pluginProgress`

    A `tlp.PluginProgress` to give feedback to the user. It can be `None`, so use with caution

  class methods

  `importGraph`()

    This method is called to import a graph. Derived classes must implement it. A boolean must also be returned to indicate if the import was successful.

    Return type: | boolean

### tlp.ExportModule

class `tlp.``ExportModule`

  Bases: `tlp.WithParameter`

  This abstract class describes an export plugin.

  class attributes

  `graph`

    The `tlp.Graph` to export

  `dataSet`

    A `tlp.DataSet` containing parameters for this export plugin, if any

  `pluginProgress`

    A `tlp.PluginProgress` to give feedback to the user. It can be `None`, so use with caution

  class methods

  `exportGraph`(os)

    This method is called to export the graph to a file. Derived classes must implement it.

    The os parameter is an output file stream (initialized by the Tulip GUI or by the `tlp.exportGraph()` function.). To write data to the file, you have to use the following syntax:

        # write the number of nodes and edges to the file
        os << self.graph.numberOfNodes() << "\n"
        os << self.graph.numberOfEdges() << "\n"

    A boolean must also be returned to indicate if the export was successful.

    Parameters: | os (std.ostream) – an output file stream
    Return type: | boolean

## Graph test classes

### tlp.SelfLoops

class `tlp.``SelfLoops`

  The tlp.SelfLoops class represents a self loop that has been replaced by two nodes and three edges. The method `tlp.AcyclicTest.makeAcyclic()` returns a list of this type.

  It contains the following variables :

  - old (`tlp.edge`) : the self loop edge that has been replaced
  - n1 (`tlp.node`) : the first node added
  - n2 (`tlp.node`) : the second node added
  - e1 (`tlp.edge`) : the edge added between the node at the extremity of the loop and n1
  - e2 (`tlp.edge`) : the edge added between n1 and n2
  - e3 (`tlp.edge`) : the edge added between the node at the extremity of the loop and n2

### tlp.AcyclicTest

class `tlp.``AcyclicTest`
  `acyclicTest`(graph)

    Returns a tuple whose first member is a boolean indicating if the graph is acyclic or not and second member is a list of edges that create cycle (when the graph is not acyclic).

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the acyclic test
    Return type: | (boolean, list of `tlp.edge`)

  `isAcyclic`(graph)

    Returns `True` if the graph is acyclic, `False` if not. The result is cached (ie. the next call with the same graph is done in O(1) time)

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the acyclic test
    Return type: | boolean

  `makeAcyclic`(graph)

    Makes the graph acyclic, by reversing edge direction (feedback arc set problem). If there is self loops, a new node is added with two edges that points to it. Returns a tuple containing whose first member is a list of reversed edges and second member is a list of transformed self loops.

    Parameters: | graph (`tlp.Graph`) – the graph to make acyclic
    Return type: | (list of `tlp.edge`, list of `tlp.SelfLoops`)

### tlp.BiconnectedTest

class `tlp.``BiconnectedTest`
  `isBiconnected`(graph)

    Returns `True` if the graph is biconnected (ie. one must remove at least two nodes in order to disconnect the graph), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the biconnected test
    Return type: | boolean

  `makeBiconnected`(graph)

    If the graph is not biconnected, adds edges in order to make the graph biconnected. Returns a list of added edges.

    Parameters: | graph (`tlp.Graph`) – the graph to make biconnected.
    Return type: | list of `tlp.edge`

### tlp.ConnectedTest

class `tlp.``ConnectedTest`
  `computeConnectedComponents`(graph)

    Computes the sets of connected components. Returns a list of connected components.

    Parameters: | graph (`tlp.Graph`) – the graph on which to compute the sets of connected components
    Return type: | list of list of `tlp.node`

  `isConnected`(graph)

    Returns `True` if the graph is connected (ie. it exists an undirected path between each pair of nodes), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the connected test
    Return type: | boolean

  `makeConnected`(graph)

    If the graph is not connected, adds edges in order to make the graph connected. Returns a list of added edges.

    Parameters: | graph (`tlp.Graph`) – the graph to make connected
    Return type: | list of `tlp.edge`

  `numberOfConnectedComponents`(graph)

    Returns the number of connected components in the graph.

    Parameters: | graph (`tlp.Graph`) – the graph on which to compute the number of connected components
    Return type: | integer

### tlp.OuterPlanarTest

class `tlp.``OuterPlanarTest`
  `isOuterPlanar`(graph)

    Returns `True` if the graph is outerplanar (i.e. a graph with an embedding in the plane such that all vertices belong to the unbounded face of the embedding), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the outerplanarity test
    Return type: | boolean

### tlp.PlanarityTest

class `tlp.``PlanarityTest`
  `getObstructionsEdges`(graph)

    Returns a list of edges that prevents to make the graph planar (ie. part of the minor of K3,3 or K5).

    Parameters: | graph (`tlp.Graph`) – the graph on which to compute the obstruction edges
    Return type: | list of `tlp.edge`

  `isPlanar`(graph)

    Returns `True` if the graph is planar (i.e. the graph can be drawn in such a way that no edges cross each other), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the planarity test
    Return type: | boolean

  `isPlanarEmbedding`(graph)

    Returns `True` if the current embedding of the graph is planar, `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the planar embedding test
    Return type: | boolean

  `planarEmbedding`(graph)

    Changes the order of edges around the nodes in order to make the embedding planar (the graph must be planar for that). Returns `True` if the graph is planar, `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to compute a planar embedding
    Return type: | boolean

### tlp.SimpleTest

class `tlp.``SimpleTest`
  `isSimple`(graph)

    Returns `True` if the graph is simple (i.e. it contains no self loops or parallel edges), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the simple test
    Return type: | boolean

  `makeSimple`(graph)

    Makes the graph simple by removing self loops and parallel edges if any. Returns a list of removed edges.

    Parameters: | graph (`tlp.Graph`) – the graph to make simple
    Return type: | list of `tlp.edge`

  `simpleTest`(graph)

    Performs a simple test and returns a tuple with 3 elements. The first element is a boolean indicating the result of the test. The second element is a list of found parallel edges. The third element is a list of found self loops.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the simple test
    Return type: | (boolean, list of `tlp.edge`, list of `tlp.edge`)

### tlp.TreeTest

class `tlp.``TreeTest`
  `cleanComputedTree`(graph, tree)

    Cleans the graph from a tree previously computed with the `tlp.TreeTest.computeTree()` method.

    Parameters:

    - graph (`tlp.Graph`) – the graph to clean from a tree
    - tree (`tlp.Graph`) – the tree to remove from the graph

  `computeTree`(graph)

    Computes a rooted tree from the graph. The algorithm is the following :

    - if the graph is a rooted tree, returns the graph
    - if the graph is a free tree, returns a rooted clone subgraph
    - if the graph is connected, makes a clone subgraph and returns a rooted spanning tree of that clone
    - if the graph is not connected, makes a clone subgraph, computes a tree for each of its connected components, adds a simple source and returns the clone.

    Parameters: | graph (`tlp.Graph`) – the graph on which to compute a rooted tree
    Return type: | `tlp.Graph`

  `isFreeTree`(graph)

    Returns `True` if the graph is a topological tree (i.e. if the graph was undirected, there would be no cycle), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the free tree test
    Return type: | boolean

  `isTree`(graph)

    Returns `True` if the graph is a rooted tree (i.e. a graph with one node designated as the root), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the tree test
    Return type: | boolean

  `makeRootedTree`(graph, root)

    Turns a free tree into a rooted tree.

    Parameters:

    - graph (`tlp.Graph`) – the tree to make rooted
    - root (`tlp.node`) – the node to designate as the root of the tree

### tlp.TriconnectedTest

class `tlp.``TriconnectedTest`
  `isTriconnected`(graph)

    Returns `True` if the graph is triconnected (i.e. a connected graph such that deleting any two nodes (and incident edges) results in a graph that is still connected), `False` otherwise.

    Parameters: | graph (`tlp.Graph`) – the graph on which to perform the triconnected test
    Return type: | boolean

### Navigation

- index
- next |
- previous |
- Tulip-Python v3.8.0 documentation »