Skip to content

Commit

Permalink
Prepare code gen for metadata in R and Python #220
Browse files Browse the repository at this point in the history
  • Loading branch information
m-mohr committed Nov 18, 2021
1 parent fe05fe9 commit d2fa4af
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 7 deletions.
19 changes: 14 additions & 5 deletions src/export/exporter.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export default class Exporter extends ProcessGraph {

generateBuilder() {}

generateMetadata(/*key, value*/) {}
generateMetadataEntry(/*variable, key, value*/) {}

generateMissingParameter() {}

Expand Down Expand Up @@ -125,7 +125,11 @@ export default class Exporter extends ProcessGraph {
}
}

generateMetadata() {
getMetadataPosition() {
return "start";
}

generateMetadata(variable) {
let hasComment = false;
for(let key in this.process) {
if (key === 'process_graph') {
Expand All @@ -146,7 +150,7 @@ export default class Exporter extends ProcessGraph {
this.comment(`Set the metadata for the process`);
hasComment = true;
}
this.generateMetadataEntry(key, val);
this.generateMetadataEntry(variable, key, val);
}
}

Expand Down Expand Up @@ -281,8 +285,10 @@ export default class Exporter extends ProcessGraph {
this.generateConnection();
this.generateAuthentication();
this.newLine();
this.generateBuilder();
this.generateMetadata();
let builderVar = this.generateBuilder();
if (this.getMetadataPosition() === "start") {
this.generateMetadata(builderVar);
}
this.newLine();
}
let params = this.getProcessParameters();
Expand All @@ -299,6 +305,9 @@ export default class Exporter extends ProcessGraph {
this.comment(`The process can be executed synchronously (see below), as batch job or as web service now`);
}
this.generateResult(this.getResultNode(), callback);
if (!callback && this.getMetadataPosition() === "end") {
this.generateMetadata();
}
return this.code.join('').trim();
}

Expand Down
1 change: 1 addition & 0 deletions src/export/javascript.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ export default class JavaScript extends Exporter {

generateBuilder() {
this.addCode(`let builder = await connection.buildProcess();`);
return 'builder';
}

generateMetadataEntry(key, value) {
Expand Down
6 changes: 5 additions & 1 deletion src/export/python.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ export default class Python extends Exporter {

generateBuilder() {}

generateMetadataEntry(key, value) {
getMetadataPosition() {
return "end";
}

generateMetadataEntry(variable, key, value) {
this.comment(`${key}: ${this.e(value)}`);
}

Expand Down
14 changes: 13 additions & 1 deletion src/export/r.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { ProcessSchema } from "@openeo/js-commons";
import Utils from "../utils";
import Exporter from "./exporter";

Expand Down Expand Up @@ -51,9 +52,20 @@ export default class R extends Exporter {

generateBuilder() {
this.addCode(`p = processes()`);
return 'p';
}

generateMetadataEntry(key, value) {
getMetadataPosition() {
return "end";
}

generateMetadataEntry(variable, key, value) {
switch(key) {
case 'id':
case 'summary':
case 'description':
setDescription
}
this.comment(`${key}: ${this.e(value)}`);
}

Expand Down

0 comments on commit d2fa4af

Please sign in to comment.