Graph Modeling Language (GML) standalone parser for Python 3.
Project description
PyGMLParser
is a Graph Modeling Language (GML) standalone parser for Python 3.
It is a fork of: icasdri/gml.py
Get it from PyPi by doing:
pip3 install PyGMLParser
Uses Travis CI for continuous integration.
The class documentation is here
The specific updates are:
- Updated to Python 3
- Use f-strings
- Separate files for each class
- Use packages instead of single file
- Updated GML format from Tulip .gml files to include the following keywords keyword used by the
Python Tulip gml exporter ('GML Export')
graphics
Line
point
- Use dataclasses for graphics and points
- Use type hinting and custom typing for readability and maintainability
- Use Python logging for debugging
- Introduced a set of small unit tests
The fast and the dirty
from org.hasii.pygmlparser.Parser import Parser from org.hasii.pygmlparser.Graph import Graph from org.hasii.pygmlparser.Edge import Edge from org.hasii.pygmlparser.Node import Node from org.hasii.pygmlparser.graphics.NodeGraphics import NodeGraphics from org.hasii.pygmlparser.graphics.EdgeGraphics import EdgeGraphics from org.hasii.pygmlparser.graphics.Point import Point # Instantiate a parser, load a file, and parse it! parser: Parser = Parser() parser.load_gml('/path/to/aGraph.gml') parser.parse() # Retrieve the graph nodes nodes: Graph.Nodes = graph.graphNodes # a map of id -> Node objects # Retrieve the graph edges edges: Graph.Edges = graph.graphEdges # list of Edge objects # Directly access the node or edge attributes node: Node = graph.graphNodes[0] edge: Edge = graph.graphEdges[0] node.id # the id of this node edge.source # the source id of this edge node.is_anon # whether or not this node actually appeared as a node block # in the input GML (or if it was inferred, via edge source/targets) # _True_ if inferred, False if actually appeared node.forward_edges # List of Edge instances whose source is this node node.backward_edges # List of Edge instances whose target is this node # Special attributes on Edges edge.source_node # Node object corresponding to edge.source (which is an id) edge.target_node # Node object corresponding to edge.target (which is an id) # Get the Tulip extensions edgeGraphics: EdgeGraphics = edge.graphics nodeGraphics: NodeGraphics = node.graphics # Get the edge line drawing description line: Tuple[Point] = edgeGraphics.line
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pygmlparser-1.0.1.tar.gz
(10.7 kB
view hashes)
Built Distribution
Close
Hashes for pygmlparser-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16eb104bb26bda771b554456c657d87bb00bee72868b2a7558aaf78d7cdcf38b |
|
MD5 | a40de0e970626c26f7378ad737a625c6 |
|
BLAKE2-256 | a556d643715723729de34ff72633ca9b5745dc8372e6fffea09f70394dcab5ee |