A Python package for the Virgo language
Project description
PyVirgo
This is a Python implementation of Virgo, the graph declarative language.
You can find details of Virgo with the Go implementation at https://github.com/r2d4/virgo
Virgo is designed so that we can express graphs in a config file. These could be dependency graphs, for example of a build process, or any other graph structure.
To invoke PyVirgo:
>>> import virgo
>>> g = virgo.loads("a -> b, c <- d")
>>> g # doctest: +ELLIPSIS
<virgo.graph.Graph object at ...>
>>> sorted(list(g.direct_successors_of("a")))
['b', 'c']
It's more likely that we will want to load a graph from a file:
>>> g2 = virgo.load("test/files/make.vgo")
>>> g2 # doctest: +ELLIPSIS
<virgo.graph.Graph object at ...>
>>> g2.direct_successors_of("src files")
{'test'}
We can access the 'node data' for each node, by identifier.
>>> g2.nodes["src files"]
'go build ./...'
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
pyvirgo36-0.2.1.tar.gz
(4.5 kB
view hashes)
Built Distribution
Close
Hashes for pyvirgo36-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c5e5a92c1badefb3ceeb23ec15ee7a0fb9a05bbe226ca7742648385871294b9 |
|
MD5 | 5a01abe7f119055e1c01e54a99635637 |
|
BLAKE2b-256 | 4ac114a31dc87f6271f1d7c2c7cd120b7d9057352f3a9d60655f8c5f86583701 |