nadi 0.7.0

CLI tool for running nadi task system
node dummy_ts(name="tss", start=2012-01-02, value=true)
network save_graphviz("/tmp/test.gz", node_attr="label=\\\"Node [{INDEX}]: {_NAME}\\\"", global_attrs="node [shape=rectangle]")
network fancy_print()
node print_node()
node show_ts("tss", header=true, hide_time = true)
node command("echo 'nadi:var:testvar = {NAME}'", verbose = false)
node command("echo 'hi {NAME}'", verbose = true, echo = true)
network parallel("echo 'hi {NAME}'", echo= true)
network plot_timeseries(
 	"/home/gaurav/work/orise/sustainable-rivers/data/{_NAME}/daily.csv",
 	"date",
 	"flow",
 	"/tmp/test.gv",
 	skip_missing=true,
 	config = {
 		csv = true,
  		preamble="unset ytics\nunset yrange\n set xrange [\"1900-01-01\":\"2025-12-31\"]\n unset xlabel"
 	}
 )
 network render("test.template", "/tmp/rendered.md")
env.new = "this"
 env.other = [true, "what?"]
 env.other = {name=true, value=["what?", 12]}
 env.other = {name=true, value=[{an=12, b=1}, 1]}
 env.other = {test=12.2, this=[true, "what?", {"tes"="yes"}]}
env.new
 env.other
network load_file("routing.network")
network parallel("echo 'hi {NAME}'", echo = false, verbose=true)

node.NAME

# you can have different type attributes for different nodes, but this
# is not recommended. Most algorithms will assume same type for the
# attribute on all nodes.

node(test_attr?).testname = true
node(test_attr? & oatr?).testname = true
node(test_attr? | oatr?).testname = true
node(test_attr? & oatr | another & !"not this").testname = true

node.testname = true
node[markland -> smithland].testname = "hello"
node[elizabeth -> markland].testname = 12.0
node.testname
network.name = "Ohio River Network"
network.name2 = name

node.inpsval = inputs.value
node.outval = func(v = output.value, t = inputs.value)
node.val2 = func(node.value)
network.name2 = func(env.matter)

# future support for this syntax
# node(output.area > 0).name2 = func(env.matter)

help node render
help render
# help # todo