Skip to content

Commit 7efb773

Browse files
committed
Switch to using function/call for utility functions.
Part of #20. Part of #52.
1 parent d740ff3 commit 7efb773

File tree

2 files changed

+88
-132
lines changed

2 files changed

+88
-132
lines changed

seeds/example-import.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
},
66
"seeds": {
77
"import-polymath": {
8-
"type": "let-multi",
9-
"values": {
8+
"type": "call",
9+
"arguments": {
1010
"arg:items": {
1111
"seed": "load-polymath"
1212
},
@@ -16,7 +16,7 @@
1616
"default": "polymath-import"
1717
}
1818
},
19-
"block": {
19+
"function": {
2020
"packet": "./example-utility.json",
2121
"seed": "memorize-items"
2222
}

seeds/example-utility.json

+85-129
Original file line numberDiff line numberDiff line change
@@ -30,159 +30,115 @@
3030
}
3131
},
3232
"remove-numbers": {
33-
"type": "array",
34-
"return": "last",
35-
"items": [
36-
{
37-
"type": "let",
38-
"name": "arg:args",
39-
"value": [
40-
"arg:input"
41-
],
42-
"block": {
43-
"seed": "expect"
44-
}
45-
},
46-
{
47-
"type": "join",
48-
"delimiter": "\n",
33+
"type": "function",
34+
"arguments": [
35+
"arg:input"
36+
],
37+
"block": {
38+
"type": "join",
39+
"delimiter": "\n",
40+
"items": {
41+
"type": "map",
4942
"items": {
50-
"type": "map",
51-
"items": {
52-
"type": "split",
53-
"input": {
54-
"type": "var",
55-
"name": "arg:input"
56-
},
57-
"delimiter": "\n"
43+
"type": "split",
44+
"input": {
45+
"type": "var",
46+
"name": "arg:input"
5847
},
59-
"block": {
60-
"type": "let",
61-
"name": "arg:input",
62-
"value": {
48+
"delimiter": "\n"
49+
},
50+
"block": {
51+
"type": "call",
52+
"arguments": {
53+
"arg:input": {
6354
"type": "var",
6455
"name": "value"
65-
},
66-
"block": {
67-
"seed": "remove-item-number"
6856
}
57+
},
58+
"function": {
59+
"seed": "remove-item-number"
6960
}
7061
}
7162
}
72-
]
63+
}
7364
},
7465
"remove-item-number": {
7566
"description": "Removes a possible 1) or 1. from the front of a line",
76-
"type": "array",
77-
"return": "last",
78-
"items": [
79-
{
80-
"type": "let",
81-
"name": "arg:args",
82-
"value": [
83-
"arg:input"
84-
],
85-
"block": {
86-
"seed": "expect"
67+
"type": "function",
68+
"arguments": [
69+
"arg:input"
70+
],
71+
"block": {
72+
"type": "property",
73+
"object": {
74+
"type": "extract",
75+
"template": "{{index|int|optional}}{{separator|choice:'. '|choice:') '|optional}}{{content}}",
76+
"input": {
77+
"type": "var",
78+
"name": "arg:input"
8779
}
8880
},
89-
{
81+
"property": "content"
82+
}
83+
},
84+
"memorize-items": {
85+
"type": "function",
86+
"arguments": [
87+
"arg:items",
88+
"arg:memory"
89+
],
90+
"block": {
91+
"type": "let",
92+
"name": "length",
93+
"value": {
9094
"type": "property",
9195
"object": {
92-
"type": "extract",
93-
"template": "{{index|int|optional}}{{separator|choice:'. '|choice:') '|optional}}{{content}}",
94-
"input": {
95-
"type": "var",
96-
"name": "arg:input"
97-
}
96+
"type": "var",
97+
"name": "arg:items"
9898
},
99-
"property": "content"
100-
}
101-
]
102-
},
103-
"memorize-items": {
104-
"type": "array",
105-
"return": "last",
106-
"items": [
107-
{
108-
"type": "let",
109-
"comment": "Verify that the caller set arg:items and arg:memory",
110-
"name": "arg:args",
111-
"value": [
112-
"arg:items",
113-
"arg:memory"
114-
],
115-
"block": {
116-
"seed": "expect"
117-
}
99+
"property": "length"
118100
},
119-
{
120-
"type": "let",
121-
"name": "length",
122-
"value": {
123-
"type": "property",
124-
"object": {
125-
"type": "var",
126-
"name": "arg:items"
127-
},
128-
"property": "length"
101+
"block": {
102+
"type": "map",
103+
"items": {
104+
"type": "var",
105+
"name": "arg:items"
129106
},
130-
"block":
131-
{
132-
"type": "map",
133-
"items": {
134-
"type": "var",
135-
"name": "arg:items"
136-
},
137-
"block": {
138-
"type": "array",
139-
"return": "last",
140-
"items": [
141-
{
142-
"type": "log",
143-
"value": {
144-
"type": "render",
145-
"template": "Memorizing item {{i}}/{{length}}",
146-
"vars": {
147-
"i": {
148-
"type": "var",
149-
"name": "key"
150-
},
151-
"length": {
152-
"type": "var",
153-
"name": "length"
154-
}
107+
"block": {
108+
"type": "array",
109+
"return": "last",
110+
"items": [
111+
{
112+
"type": "log",
113+
"value": {
114+
"type": "render",
115+
"template": "Memorizing item {{i}}/{{length}}",
116+
"vars": {
117+
"i": {
118+
"type": "var",
119+
"name": "key"
120+
},
121+
"length": {
122+
"type": "var",
123+
"name": "length"
155124
}
156125
}
126+
}
127+
},
128+
{
129+
"type": "memorize",
130+
"memory": {
131+
"type": "var",
132+
"name": "arg:memory"
157133
},
158-
{
159-
"type": "memorize",
160-
"memory": {
161-
"type": "var",
162-
"name": "arg:memory"
163-
},
164-
"value": {
165-
"type": "var",
166-
"name": "value"
167-
}
134+
"value": {
135+
"type": "var",
136+
"name": "value"
168137
}
169-
]
170-
}
138+
}
139+
]
171140
}
172141
}
173-
]
174-
},
175-
"expect-test": {
176-
"type": "let",
177-
"private": true,
178-
"comment": "This should throw because `not_set` is not set",
179-
"name": "arg:args",
180-
"value": [
181-
"openai_api_key",
182-
"not_set"
183-
],
184-
"block": {
185-
"seed": "expect"
186142
}
187143
}
188144
}

0 commit comments

Comments
 (0)