大理石图表生成器

dooble的Python项目详细描述


嘟嘟

https://img.shields.io/pypi/v/dooble.svghttps://img.shields.io/travis/MainRo/dooble.svg

Dooble是一个从文本生成大理石图表的工具。它简化了 以一致的方式使用ReactiveX标准和自定义运算符。

安装

pipinstalldooble

sphinx插件也可用:

pipinstallsphinxcontrib-dooble

使用量

文本语法允许轻松定义observatesoperators。地图 具有输入可观测和输出可观测的算子描述为 以下方式:

--1--2--3--4-->
[ map(i: i*2) ]
--2--4--6--8-->

将此文本保存在名为map.txt的文件中,然后将其呈现为图像:

dooble --input map.txt --output map.png

生成的图像如下:

examples/map.png

高阶观测值也可以很容易地记录下来:

--a-b-c---d-e-f-->
[     window     ]
--+-------+------>
          +d-e-f-|
  +a-b-c-|

将此文本保存在名为window.txt的文件中,然后将其呈现为图像:

dooble --input window.txt --output window.png

生成的图像如下:

examples/window.png

对于以几个观测值作为输入的运算符,可以标记 他们:

--1--2--3--*
         a-7-8-|
[   catch(a)   ]
--1--2--3--7-8-|

将此文本保存在名为catch.txt的文件中,然后将其呈现为图像:

dooble --input catch.txt --output catch.png

生成的图像如下:

examples/catch.png

完整语法

  • 每一个文本行代表一个可观察的或一个运算符
  • 观测值用虚线定义
  • 如果一个可观察到的事物以一个字母开头,则该字母被视为一个标签
  • 每个字符代表一个时间跨度
  • 字符|表示可观察到的完成
  • 字符*表示可观察到的错误
  • 字符>表示可观测的连续性
  • +字符用于定义高阶观测值的锚
  • 运算符以[开头,以]结尾

完整语法如下(在tatsu pseudo ebnf语法中):

@@grammar::dooble

start = { layer } $ ;

layer
=
| obs:observable
| op:operator
;

observable = {skipspan}* [prefix] {lifetime}* completion ;
operator = '[' description ']' ;

prefix = '+' | label ;

label = /[a-z]/ ;

lifetime
=
| ts:timespan
| item:item
;

completion = /[>|*]/ ;

skipspan = ' ' ;
timespan = '-' ;
item = /[a-zA-Z0-9+.,]+/ ;

description = /[a-zA-Z0-9,:+*() <>_]+/ ;

历史记录

0.1.0(2019-02-08)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法打印/获取2D数组的特定行   java替换JSP web应用程序中的默认resourceBundle和resourceControl实现   java将地图坐标转换为屏幕坐标   Guava地图中的java惰性驱逐   反射Java getDeclaredConstructor失败,来自JUnit的NoSuchMethodException   java有一个基于正则表达式的web servlet过滤器。xml?   java如何在Android中隐藏/显示表单?   java 7的简单代码度量独立maven插件   sockets java中哪种技术可用于在两个不同系统之间传输大量同步数据?   java无法处理我的导航菜单项的单击事件   java阵列输出必须是一年中的几个月   java Elasticsearch错误:MapperParsingException:无法分析   java 安卓复制文件显示错误   JSF2.2JavaJSF网站使用BootsFaces页面直接构建   Java中while循环的BigO   java如何使用AspectJ在AOP中创建每个类、每个对象和每个方法/源位置部分的方面   从地图查看java文本   java如何从线程触发PropertyChange事件?   java Spring引导在运行时添加和删除单例