/
pyproject.toml
138 lines (107 loc) · 3.56 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[tool.poetry]
name = "scripts-project"
version = "0.1.0"
description = "scripts-project"
authors = ["Nat Noordanus <n@natn.me>"]
packages = [
{ include = "pkg" }
]
[tool.poe]
default_task_type = "script"
default_array_item_task_type = "cmd"
[tool.poe.tasks]
# Interpret subtasks as cmd instead of ref
composite_task = ["poe_test_echo Hello", "poe_test_echo World!"]
# test_setting_default_task_type
echo-args = "pkg:echo_args"
static-args-test = """
pkg:describe_args(
'pat a cake', 1, 1.2, False, True,
..., hex(99), chr(55), next(zip(['first'], ({'second': "lol"}).items())), bool(1),
**({"spread": set((1,2,3,2,1))}),
thing="stuff", data1=b'stuff', data2=bytes((66,67,68)), eight=(int('8'), 8.0, 8),
)
"""
# For testing that deep module scope references work & use_exec works with script tasks
call_attrs.script = "pkg:Scripts.Deep.fun(0)"
call_attrs.use_exec = true
greet = "pkg:greet"
[tool.poe.tasks.print-script-result]
script = "pkg:get_random_number"
print_result = true
[tool.poe.tasks.dont-print-script-result]
script = "pkg:get_random_number"
[tool.poe.tasks.greet-passed-args]
# weird formatting is intentional
script = """
pkg:greet(
greeting, user,
dêƒäült='👋', optional=optional,
upper=upper)"""
args = ["greeting", "user", "optional", "upper"]
[tool.poe.tasks.greet-full-args]
script = "pkg:greet(greeting, user, upper=(not upper), fvar=user_height, ivar=age)"
[tool.poe.tasks.greet-full-args.args.greeting]
options = ["--greeting", "-g"]
type = "string"
default = "hi"
[tool.poe.tasks.greet-full-args.args.user]
# defaults to string if no type given
[tool.poe.tasks.greet-full-args.args.upper]
default = true
type = "boolean"
[tool.poe.tasks.greet-full-args.args.age]
options = ["--age", "-a"]
type = "integer"
[tool.poe.tasks.greet-full-args.args.user_height]
options = ["--height", "-h"]
type = "float"
help = "The user's height in meters"
[tool.poe.tasks.greet-strict]
script = "pkg:greet(greeting, user=name)"
help = "All arguments are required"
env = { DOES = "does", STUFF = "matter" }
[tool.poe.tasks.greet-strict.args.greeting]
default = "${DOES}n't ${STUFF}"
required = true
help = "this one is required"
[tool.poe.tasks.greet-strict.args.name]
required = true
help = "and this one is required"
[tool.poe.tasks.greet-positional]
script = "pkg:greet(greeting, user=username, upper=uppercase)"
env.DEFAULT_GREETING.default = "yo"
[[tool.poe.tasks.greet-positional.args]]
name = "greeting"
positional = true
default = "${DEFAULT_GREETING}"
help = "this one is required"
[[tool.poe.tasks.greet-positional.args]]
name = "username"
positional = "user"
required = true
help = "and this one is required"
[[tool.poe.tasks.greet-positional.args]]
name = "uppercase"
options = ["--upper"]
type = "boolean"
[tool.poe.tasks.multiple-value-args]
script = "pkg:echo_script(first, second, widgets=widgets, engines=engines)"
[[tool.poe.tasks.multiple-value-args.args]]
name = "first"
positional = true
[[tool.poe.tasks.multiple-value-args.args]]
name = "second"
positional = true
multiple = true
type = "integer"
[[tool.poe.tasks.multiple-value-args.args]]
name = "widgets"
multiple = 2
[[tool.poe.tasks.multiple-value-args.args]]
name = "engines"
multiple = true
required = true
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"