Skip to main content

解析一串图形数据

项目描述

图解析器

graphparser 为使用字符串(例如作为 Jupyter 笔记本的一部分)输入微小图形提供了一个原始函数。函数“parsing.parse”读取多行字符串并返回节点和边。节点和边可以有属性。

节点是通过书写单词来定义的。边是为相邻单词(节点的 ID)隐式定义的。属性是由等号分隔的键值对字符串。节点的属性被放置在它们应该被分配到的节点之上或之下。边的属性放置在边的上方或下方(两个节点之间的空间)。

示例_1

                distance=23km            temperature=220_K
node1                                   node2                           node3
 color=red          cost=48              price=45EUR age=10e6_d
 hight=20.0cm

但是,目的是提供一些伪图形支持。非单词字符可用于使结构可见。

示例_2

                distance=23km            temperature=220_K
node1<<------------------------------->>node2<<----------------------->>node3
 color=red          cost=48              price=45EUR age=10e6_d
 hight=20.0cm

running[*parse(Example_1)]创建节点和边缘数据的列表:

[('node', 'node1', ('node2',), {'color': 'red', 'hight': '20.0cm'}),
 ('edge', ('node1', 'node2'), {'distance': '23km', 'cost': '48'}),
 ('node', 'node2', ('node1', 'node3'), 
     {'temperature': '220_K', 'price': '45EUR', 'age': '10e6_d'}),
 ('edge', ('node2', 'node3'), {}),
 ('node', 'node3', ('node2',), {})]

节点数据元组: 0. 'node' 1. 节点 ID(名称) 2. 相邻节点元组(节点 ID) 3. 属性字典

边缘数据元组: 0. 'edge' 1. 相邻节点的元组 (left_node, right_node) 2. 属性字典

一个文本行具有节点数据或属性数据。第一个检测到的实体的类型是完整行的类型。放置在节点行中的属性将被跳过,反之亦然。以“#”开头的行将被忽略。“空白”行既不是节点行,也不是边缘行,也不是注释行。到节点行之间必须至少存在一个“空白”行(任意非单词字符是可能的)。节点线和相关属性之间不存在“空白”线。

Example_3

                distance=23km            temperature=220_K
node1<<------------------------------->>node2<<----------------------->>node3
 color=red          cost=48              price=45EUR age=10e6_d
 hight=20.0cm

    ~~~        ~~~        ~~~        ~~~        ~~~        ~~~        ~~~       
    
                distance=23km            temperature=220_K
node4<<------------------------------->>node5<<----------------------->>node6
 color=red          cost=48              price=45EUR age=10e6_d
 hight=20.0cm
 

属性的第一个字符用于查找关联的节点/边。当节点以下划线开始/结束时,不会创建边。节点的第一个和最后一个下划线不是 ID(名称)的一部分。这提供了将节点放置在一个没有关系的文本行中的机会。属性链是由单个逗号或空格分隔的属性。再次使用属性序列的第一个字符来查找关联的节点/边。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

graphparser-0.8.1.tar.gz (21.8 kB 查看哈希

已上传 source

内置分布

graphparser-0.8.1-py3-none-any.whl (21.7 kB 查看哈希

已上传 py3