Skip to content

Commit d2fa4af

Browse files
committed
Prepare code gen for metadata in R and Python #220
1 parent fe05fe9 commit d2fa4af

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

src/export/exporter.js

+14-5
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default class Exporter extends ProcessGraph {
5555

5656
generateBuilder() {}
5757

58-
generateMetadata(/*key, value*/) {}
58+
generateMetadataEntry(/*variable, key, value*/) {}
5959

6060
generateMissingParameter() {}
6161

@@ -125,7 +125,11 @@ export default class Exporter extends ProcessGraph {
125125
}
126126
}
127127

128-
generateMetadata() {
128+
getMetadataPosition() {
129+
return "start";
130+
}
131+
132+
generateMetadata(variable) {
129133
let hasComment = false;
130134
for(let key in this.process) {
131135
if (key === 'process_graph') {
@@ -146,7 +150,7 @@ export default class Exporter extends ProcessGraph {
146150
this.comment(`Set the metadata for the process`);
147151
hasComment = true;
148152
}
149-
this.generateMetadataEntry(key, val);
153+
this.generateMetadataEntry(variable, key, val);
150154
}
151155
}
152156

@@ -281,8 +285,10 @@ export default class Exporter extends ProcessGraph {
281285
this.generateConnection();
282286
this.generateAuthentication();
283287
this.newLine();
284-
this.generateBuilder();
285-
this.generateMetadata();
288+
let builderVar = this.generateBuilder();
289+
if (this.getMetadataPosition() === "start") {
290+
this.generateMetadata(builderVar);
291+
}
286292
this.newLine();
287293
}
288294
let params = this.getProcessParameters();
@@ -299,6 +305,9 @@ export default class Exporter extends ProcessGraph {
299305
this.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);
300306
}
301307
this.generateResult(this.getResultNode(), callback);
308+
if (!callback && this.getMetadataPosition() === "end") {
309+
this.generateMetadata();
310+
}
302311
return this.code.join('').trim();
303312
}
304313

src/export/javascript.js

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export default class JavaScript extends Exporter {
116116

117117
generateBuilder() {
118118
this.addCode(`let builder = await connection.buildProcess();`);
119+
return 'builder';
119120
}
120121

121122
generateMetadataEntry(key, value) {

src/export/python.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ export default class Python extends Exporter {
4141

4242
generateBuilder() {}
4343

44-
generateMetadataEntry(key, value) {
44+
getMetadataPosition() {
45+
return "end";
46+
}
47+
48+
generateMetadataEntry(variable, key, value) {
4549
this.comment(`${key}: ${this.e(value)}`);
4650
}
4751

src/export/r.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ProcessSchema } from "@openeo/js-commons";
12
import Utils from "../utils";
23
import Exporter from "./exporter";
34

@@ -51,9 +52,20 @@ export default class R extends Exporter {
5152

5253
generateBuilder() {
5354
this.addCode(`p = processes()`);
55+
return 'p';
5456
}
5557

56-
generateMetadataEntry(key, value) {
58+
getMetadataPosition() {
59+
return "end";
60+
}
61+
62+
generateMetadataEntry(variable, key, value) {
63+
switch(key) {
64+
case 'id':
65+
case 'summary':
66+
case 'description':
67+
setDescription
68+
}
5769
this.comment(`${key}: ${this.e(value)}`);
5870
}
5971

0 commit comments

Comments
 (0)