Commands in files
This example shows how to distribute your code if you want to separate the node handler classes to external files.
tree.py: Instantiate the CommandTree class in an extra file
| from command_tree import CommandTree
tree = CommandTree()
|
node1.py: Define the node1
| from tree import tree
@tree.node()
class Node1(object):
@tree.leaf()
@tree.argument()
def divide(self, arg1):
return int(arg1) / 2
|
node2.py: Define the node2
| from tree import tree
@tree.node()
class Node2(object):
@tree.leaf()
@tree.argument()
def multiply(self, arg1):
return int(arg1) * 2
|
power.py: If you are brave enough, you can define leafs in separated files. But beware of the ‘self’ argument!
| from tree import tree
@tree.leaf()
@tree.argument()
def power(self, arg1):
return int(arg1) * int(arg1)
|
cli.py: This is the ‘root’ file where you collect the nodes and leafs from other files.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | from tree import tree
from node1 import Node1
from node2 import Node2
from power import power as Power
@tree.root()
class Root(object):
node1 = Node1
node2 = Node2
power = Power
print(tree.execute())
|