From e665539f4bf99e41586f9e3fa84f57fee780160c Mon Sep 17 00:00:00 2001 From: Umesh Timalsina Date: Tue, 14 Jul 2020 11:30:25 -0500 Subject: [PATCH 1/5] Fix metadata parsing in FigureExtractor. Closes #1764. --- src/common/viz/FigureExtractor.js | 18 ++++++++++++++++-- src/seeds/devProject/devProject.webgmex | Bin 159232 -> 242991 bytes src/seeds/pipeline/pipeline.webgmex | Bin 35336 -> 35448 bytes src/seeds/pipeline/releases.jsonl | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/common/viz/FigureExtractor.js b/src/common/viz/FigureExtractor.js index 88da807d0..d5cd78053 100644 --- a/src/common/viz/FigureExtractor.js +++ b/src/common/viz/FigureExtractor.js @@ -4,6 +4,7 @@ define(['./Utils'], function (Utils) { this._client = client; this._metaNodesMap = this._initializeMetaNodesMap(); }; + const BASE_METADATA_TYPE = 'Metadata'; const EXTRACTORS = { GRAPH: 'Graph', SUBGRAPH: 'SubGraph', @@ -14,6 +15,10 @@ define(['./Utils'], function (Utils) { SCATTER_POINTS: 'ScatterPoints' }; + const canExtractMetadata = function(metaType) { + return Object.values(EXTRACTORS).includes(metaType); + }; + FigureExtractor.prototype._initializeMetaNodesMap = function () { const metaNodes = this._client.getAllMetaNodes(); const idsAndTypes = metaNodes.map(node => [node.getId(), node.getAttribute('name')]); @@ -22,7 +27,7 @@ define(['./Utils'], function (Utils) { FigureExtractor.prototype.extract = function(node) { const extractorFn = this.getMetaType(node); - if (!Object.values(EXTRACTORS).includes(extractorFn)){ + if (!canExtractMetadata(extractorFn)){ throw new Error(`Node of type ${extractorFn} is not supported yet.`); } else { return this[extractorFn](node); @@ -50,11 +55,20 @@ define(['./Utils'], function (Utils) { title: node.getAttribute('title'), }; - let childrenIds = node.getChildrenIds(); + const metadataBaseNodePath = Object.keys(this._metaNodesMap) + .filter(id => this._metaNodesMap[id] === BASE_METADATA_TYPE).pop(); + + let childrenIds = node.getChildrenIds().filter(id => { + return this._client.isTypeOf(id, metadataBaseNodePath); + }); + let childNode, childNodeFn; desc.subGraphs = childrenIds.map((childId) => { childNode = this._client.getNode(childId); childNodeFn = this.getMetaType(childNode); + if(!canExtractMetadata(childNodeFn)){ + throw new Error(`Node of type ${childNodeFn} is not supported yet.`); + } return this[childNodeFn](childNode); }); desc.subGraphs.sort(this.compareSubgraphIDs); diff --git a/src/seeds/devProject/devProject.webgmex b/src/seeds/devProject/devProject.webgmex index 8ffc334e68966834cef6b4855db5ad1d7703df4f..3b4d65a3d774c3ecf5bd73515621b6bbd5c6e845 100644 GIT binary patch literal 242991 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 Q-`8HaapUvGxN+lu02MY3OaK4? delta 3803 zcmb7G4{TM{8SlBbw0$jq2Ysx-fIb+!L0@~$x#ygFZrNs3#K%qb>NsE2t>P#XmtMJR1=w>J|~lYpoqC0Ej4QPDYLBO5q`I?*IejXE^-}gLz{3+ET0qCV;=PhB;4^K zA|zLr+vK)x60Nz$hjUxKEyCZSe>Uglr45>^leLc(WD{7^BrpoF?L$9wiQ_vi3jz`P zA+|Z>%n2#xRQMrrbj*1WhPs$QKqxGoBGpw1MjVIJfDnQMVtd>T5Rt%ui#(?DMMMaT zI>NOmLQEjbCx{ZptT1p8qAUz_G4hT_3v!RqyUPh2T`We(wyx5_B_W9D7Sq?J&!pSg__Ke1aaPeND+>`^}rr=9O4kn8S+D> z>kg6SIgEuiaOF!T%oAb>%q_xg7>1g0O}H+>_pnaa@*N8~z6h{yM^j4gG1MD7z~bn9 z*%V_JV^F7OS(*jrF$;RG?>h|JLPIl4|5Jw{N|Wq;f*q`xas&|?lQQ2SS}eBjF@`bq zZ3p_03OCLkhhg9a42CxJAk(s-IB=;p3b<{Bb^vWhSPn5Q&E$;B1$i)2$Wx?a1;W!O zr-|V%qg+cW5S(zT83+Wzgjv2TuVtW?s-QuL-7ti{MX?oVTTP2&L+H4KbK!XqA|A+F zE8!wesUUuUf{-&p8N`%RO$~xJ3T=JbNUOr;)X&wa?{tBJe5JBCI$HHwMy>k3ChC>y z*Gr@8GY%SR&IV&~^wZfBjp+H>KCt#P$Z*5vAlH~)>(V{npe{cNs-pMiHOvNWa_G%z zk+*b`37EWi>@Q$fqsuf63QIjoVC2cIesqE^;5*f$ei4^xbiE zdvo2;*Rrya5Uz`<=jYmF$I{254M%sH26du~$8OI=O??NevxS#slPC{K+r+@@e~&Ja8s^*Jo%{eoS@BX64F{&or)0+pF|Zj$E6x zB3Hfdfay`!FaJ6&wbW(D@2aB+ot3WYmk=hTh4bZA*!`o^4Fs_y9m4f5#FfYny_ z@TfA<3N=1vdFjfBYTH>bYhg;cs@l~?Hk$cvJBZz?qmx%_=A{18s_UmgR+Wwe>kS5# zI}V&PEU4K2WtV z<+nXyr1+O7!2EHlyInJxQd;WzDkEELehPfeO#F&39s*mfrr54VX$@2feRq@iy&?iS+)Hz!0L%kFjxKTFc>fI-aA9ReH4@%n*;TmUulK7MHyM{t4vo-WTXisG|d3~T(H^=&JcmsdWl#TIKj-5y)^G9=^ADz}pZUcPeq_%4Bmx>iSW{Qu{%7qS zk1+`9%U$OE2|$0Bnf)XH9Rc{^M`c^y)6Vf23-GVwW=jI_?HA43u>ejzv_=7*{_cY< zH?(s+#sc)57y+1i(#-vTfF%d3_x?>g$73u&*gXR9>+Vm<0FH8Stl`dYe0l~mdrWVV zCUNCW2c-7)n2Rgo#h86H&|_xJ-OYxYd&FF%j9znET(hd_HD{XV*CoqHZR$10*Tyb4 z(~We#!+j(o4b#dz|ViB;vO>7nl9kI&Hi@qivr3rMhwMof)F31p920 z+GJr%L!zsAtO$jIbmKx4xr-uh+>~y*>7skH5u_66MuMx(%TpJ+xr+;P&iU?q-<dfUAqMPNqRSDHpW`fC-rPdm4J;p>( z=e1yrc`YSXiUO(Nx*^UP?-NSG`3?6RGfZ4cEzf+y7rLgQ`czkXvEPnic{$Rr=Tce|}zqT8G-L?x(R-Zsm zZ9ClS+YMK1hvDCW-fR6A@`e8CN<@BpK3FMhoUiTJ);GWfiP3jxR5Cn2KOdu@P9}vGJPgj>prS{jH Yh{_{fuOGeU>l*yMMBb@i32$NPf0@F7+W-In delta 1199 zcma)+%S%*I9LML*OevaKG&3ed*d3%XXY{$stxT0hA{Iq;hK0tc#e$__iW#%6ggPf#G#V)BIWnzm>`G?4jB}+! zxki?tM0ia4Oxu((O)R3hFpK7tU7pfqv+K4w<6P11To_K6`M8&vMc7|cYRmgdAsc%V z5#Lr0vzf01XHrT)X32uceUdoUlZ**Vbhq< zF5#SVmtvPou7ZuUmu!puP^iwS;CapPUSkoCG-QI`Sz@HdJ1;>sHvo3iU>NsB@sFm# zedC=2TOD=mvNpTSP8^gD&ZP~s^7K$T88+crOJla4FjO>enq3lO_`p#e7BpHD0)IGa z65ClpE0s#oR2Id`l8nG;-mJ%HJ4rBtYXa9X6;)Eqp@$uS_u^#^ODo!Af!i( z-KvJ`g~PBW3t7syCDO7YN&iLdPeZkkugByc8o|(Rm9m&cX9+4JVQ=r%lV`n%g#O30 z1gv*tf>+kvWFfX0Cc2wbM`NmCbu1UGo+#JC?CH<(9W>c*72-Mw*7{EsV%w+V%+I#? z9P2Y#IA89D3vP4py6hQ%CU(K25d<`mA89Zzt(IlEB3BUr diff --git a/src/seeds/pipeline/releases.jsonl b/src/seeds/pipeline/releases.jsonl index 5011f29b8..6e493be8f 100644 --- a/src/seeds/pipeline/releases.jsonl +++ b/src/seeds/pipeline/releases.jsonl @@ -1,2 +1,4 @@ {"version":"0.20.0","changelog":"Add provenance info to Data nodes"} {"version":"0.21.0","changelog":"Add provenance to metadata (via WithProvenance mixin)"} +{"version":"0.21.1","changelog":"Update Inheritance of Subgraph, Line, Images, ScatterPoints etc.. nodes"} + From 69a3bde7ffe68bb90a62224ee13afa11c44d5690 Mon Sep 17 00:00:00 2001 From: Umesh Timalsina Date: Tue, 14 Jul 2020 11:54:12 -0500 Subject: [PATCH 2/5] refactor getting metadata children for a node to a function 1. Minor refactor of ordering of functions --- src/common/viz/FigureExtractor.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/common/viz/FigureExtractor.js b/src/common/viz/FigureExtractor.js index d5cd78053..b1d5bc5c0 100644 --- a/src/common/viz/FigureExtractor.js +++ b/src/common/viz/FigureExtractor.js @@ -1,9 +1,5 @@ /*globals define, _*/ define(['./Utils'], function (Utils) { - const FigureExtractor = function (client) { - this._client = client; - this._metaNodesMap = this._initializeMetaNodesMap(); - }; const BASE_METADATA_TYPE = 'Metadata'; const EXTRACTORS = { GRAPH: 'Graph', @@ -19,12 +15,19 @@ define(['./Utils'], function (Utils) { return Object.values(EXTRACTORS).includes(metaType); }; + const FigureExtractor = function (client) { + this._client = client; + this._metaNodesMap = this._initializeMetaNodesMap(); + }; + FigureExtractor.prototype._initializeMetaNodesMap = function () { const metaNodes = this._client.getAllMetaNodes(); const idsAndTypes = metaNodes.map(node => [node.getId(), node.getAttribute('name')]); return _.object(idsAndTypes); }; + FigureExtractor.prototype.constructor = FigureExtractor; + FigureExtractor.prototype.extract = function(node) { const extractorFn = this.getMetaType(node); if (!canExtractMetadata(extractorFn)){ @@ -35,12 +38,12 @@ define(['./Utils'], function (Utils) { }; FigureExtractor.prototype.extractChildrenOfType = function(node, metaType) { - const children = node.getChildrenIds().map(id => this._client.getNode(id)); + const children = this.getMetadataChildrenIds(node).map(id => this._client.getNode(id)); return children.filter(node => this.getMetaType(node) === metaType) .map(child => this.extract(child)); }; - FigureExtractor.prototype.constructor = FigureExtractor; + FigureExtractor.prototype[EXTRACTORS.GRAPH] = function(node) { const id = node.getId(), @@ -55,12 +58,7 @@ define(['./Utils'], function (Utils) { title: node.getAttribute('title'), }; - const metadataBaseNodePath = Object.keys(this._metaNodesMap) - .filter(id => this._metaNodesMap[id] === BASE_METADATA_TYPE).pop(); - - let childrenIds = node.getChildrenIds().filter(id => { - return this._client.isTypeOf(id, metadataBaseNodePath); - }); + let childrenIds = this.getMetadataChildrenIds(node); let childNode, childNodeFn; desc.subGraphs = childrenIds.map((childId) => { @@ -194,6 +192,13 @@ define(['./Utils'], function (Utils) { } }; + FigureExtractor.prototype.getMetadataChildrenIds = function (node) { + const metadataBaseNodePath = Object.keys(this._metaNodesMap) + .filter(id => this._metaNodesMap[id] === BASE_METADATA_TYPE).pop(); + + return node.getChildrenIds().filter(id => this._client.isTypeOf(id, metadataBaseNodePath)); + }; + FigureExtractor.prototype.getGraphNode = function(node) { return this._getContainmentParentNodeAt(node, 'Graph'); }; From 8b4210ebf0876f5c7da1731858812e3eac5cad79 Mon Sep 17 00:00:00 2001 From: Umesh Timalsina Date: Tue, 14 Jul 2020 12:46:41 -0500 Subject: [PATCH 3/5] Remove _metaNodesMap from references and address PR review 1. Remove _metaNodesMap from FigureExtractor 2. Use .find instead of .filter followed by .pop in getMetadataChildrenIds --- src/common/viz/FigureExtractor.js | 42 +++++++++++++------------------ 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/src/common/viz/FigureExtractor.js b/src/common/viz/FigureExtractor.js index b1d5bc5c0..d5c25059d 100644 --- a/src/common/viz/FigureExtractor.js +++ b/src/common/viz/FigureExtractor.js @@ -11,30 +11,22 @@ define(['./Utils'], function (Utils) { SCATTER_POINTS: 'ScatterPoints' }; - const canExtractMetadata = function(metaType) { - return Object.values(EXTRACTORS).includes(metaType); + const ensureCanExtract = function(metaType) { + if(!Object.values(EXTRACTORS).includes(metaType)) { + throw new Error(`Node of type ${metaType} is not supported yet.`); + } }; const FigureExtractor = function (client) { this._client = client; - this._metaNodesMap = this._initializeMetaNodesMap(); - }; - - FigureExtractor.prototype._initializeMetaNodesMap = function () { - const metaNodes = this._client.getAllMetaNodes(); - const idsAndTypes = metaNodes.map(node => [node.getId(), node.getAttribute('name')]); - return _.object(idsAndTypes); }; FigureExtractor.prototype.constructor = FigureExtractor; FigureExtractor.prototype.extract = function(node) { const extractorFn = this.getMetaType(node); - if (!canExtractMetadata(extractorFn)){ - throw new Error(`Node of type ${extractorFn} is not supported yet.`); - } else { - return this[extractorFn](node); - } + ensureCanExtract(extractorFn); + return this[extractorFn](node); }; FigureExtractor.prototype.extractChildrenOfType = function(node, metaType) { @@ -43,8 +35,6 @@ define(['./Utils'], function (Utils) { .map(child => this.extract(child)); }; - - FigureExtractor.prototype[EXTRACTORS.GRAPH] = function(node) { const id = node.getId(), execId = this.getExecutionId(node); @@ -64,16 +54,13 @@ define(['./Utils'], function (Utils) { desc.subGraphs = childrenIds.map((childId) => { childNode = this._client.getNode(childId); childNodeFn = this.getMetaType(childNode); - if(!canExtractMetadata(childNodeFn)){ - throw new Error(`Node of type ${childNodeFn} is not supported yet.`); - } + ensureCanExtract(childNodeFn); return this[childNodeFn](childNode); }); desc.subGraphs.sort(this.compareSubgraphIDs); return desc; }; - FigureExtractor.prototype[EXTRACTORS.SUBGRAPH] = function(node){ const id = node.getId(), graphId = node.getParentId(), @@ -193,10 +180,15 @@ define(['./Utils'], function (Utils) { }; FigureExtractor.prototype.getMetadataChildrenIds = function (node) { - const metadataBaseNodePath = Object.keys(this._metaNodesMap) - .filter(id => this._metaNodesMap[id] === BASE_METADATA_TYPE).pop(); - - return node.getChildrenIds().filter(id => this._client.isTypeOf(id, metadataBaseNodePath)); + const allMetaNodes = this._client.getAllMetaNodes(); + const metadataBaseNode = allMetaNodes + .find(node => node.getAttribute('name') === BASE_METADATA_TYPE); + + if(metadataBaseNode) { + return node.getChildrenIds().filter(id => { + return this._client.isTypeOf(id, metadataBaseNode.getId()); + }); + } }; FigureExtractor.prototype.getGraphNode = function(node) { @@ -216,7 +208,7 @@ define(['./Utils'], function (Utils) { FigureExtractor.prototype.getMetaType = function (node) { const metaTypeId = node.getMetaTypeId(); - return this._metaNodesMap[metaTypeId]; + return this._client.getNode(metaTypeId).getAttribute('name'); }; const extractPointsArray = function (pair) { From b745f36f26d799f9a2d25a3539cbd0d5cc4a6990 Mon Sep 17 00:00:00 2001 From: Umesh Timalsina Date: Tue, 14 Jul 2020 12:53:44 -0500 Subject: [PATCH 4/5] Fix return value in getMetadataChildrenIds --- src/common/viz/FigureExtractor.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/viz/FigureExtractor.js b/src/common/viz/FigureExtractor.js index d5c25059d..840868058 100644 --- a/src/common/viz/FigureExtractor.js +++ b/src/common/viz/FigureExtractor.js @@ -188,6 +188,8 @@ define(['./Utils'], function (Utils) { return node.getChildrenIds().filter(id => { return this._client.isTypeOf(id, metadataBaseNode.getId()); }); + } else { + return []; } }; From 28634803739d09e3548b77b45fb315b4bf569ebc Mon Sep 17 00:00:00 2001 From: Umesh Timalsina Date: Tue, 14 Jul 2020 12:57:22 -0500 Subject: [PATCH 5/5] WIP- eslint fix. Remove underscore(_) --- src/common/viz/FigureExtractor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/viz/FigureExtractor.js b/src/common/viz/FigureExtractor.js index 840868058..5e76bccc2 100644 --- a/src/common/viz/FigureExtractor.js +++ b/src/common/viz/FigureExtractor.js @@ -1,4 +1,4 @@ -/*globals define, _*/ +/* globals define */ define(['./Utils'], function (Utils) { const BASE_METADATA_TYPE = 'Metadata'; const EXTRACTORS = {