diff --git a/docs/2_tools.html b/docs/2_tools.html
index 529eed4..e1ccfbb 100644
--- a/docs/2_tools.html
+++ b/docs/2_tools.html
@@ -3429,7 +3429,7 @@
1,Yh[N.g.rb]=1,Yh[N.g.Ic]=1,Yh[N.g.aa]=1,Yh[N.g.Zf]=1,Yh[N.g.Nc]=1,Yh[N.g.Bd]=1,Yh[N.g.Cd]=1,Yh[N.g.Dd]=1,Yh[N.g.kg]=1,Yh[N.g.eb]=1,Yh[N.g.mg]=1,Yh[N.g.Hd]=1,Yh[N.g.Ye]=1,Yh[N.g.Jb]=1,Yh[N.g.vb]=1,Yh[N.g.Da]=1,Yh[N.g.af]=1,Yh[N.g.Kd]=1,Yh[N.g.Lb]=1,Yh[N.g.Ma]=1,Yh[N.g.Mb]=1,Yh[N.g.Ld]=1,Yh[N.g.Sc]=1,Yh[N.g.cf]=1,Yh[N.g.Tc]=1,Yh[N.g.Nb]=1,Yh[N.g.Ob]=1,Yh[N.g.Xd]=1,Yh[N.g.Na]=1,Yh[N.g.fe]=1,Yh));Object.freeze([N.g.ra,N.g.Ea,N.g.xb,N.g.Ia,N.g.bf,N.g.za,N.g.We,N.g.gi]);
var $h={},ai=Object.freeze(($h[N.g.Vh]=1,$h[N.g.Wh]=1,$h[N.g.Xh]=1,$h[N.g.Yh]=1,$h[N.g.Zh]=1,$h[N.g.ai]=1,$h[N.g.bi]=1,$h[N.g.di]=1,$h[N.g.ei]=1,$h[N.g.od]=1,$h)),bi={},ci=Object.freeze((bi[N.g.Uf]=1,bi[N.g.Vf]=1,bi[N.g.ac]=1,bi[N.g.bc]=1,bi[N.g.Wf]=1,bi[N.g.Fb]=1,bi[N.g.fc]=1,bi[N.g.Xa]=1,bi[N.g.ob]=1,bi[N.g.Ya]=1,bi[N.g.ma]=1,bi[N.g.hc]=1,bi[N.g.Ba]=1,bi[N.g.Xf]=1,bi)),di=Object.freeze([N.g.da,N.g.qb,N.g.rb,N.g.Ob]),ei=Object.freeze([].concat(di)),fi=Object.freeze([N.g.Ha,N.g.Cd,N.g.Sc,N.g.cf,N.g.yd]),
gi=Object.freeze([].concat(fi)),hi={},ii=(hi[N.g.I]="1",hi[N.g.R]="2",hi[N.g.N]="3",hi[N.g.nb]="4",hi),ji={},ki=Object.freeze((ji[N.g.da]=1,ji[N.g.pd]=1,ji[N.g.Ga]=1,ji[N.g.Gb]=1,ji[N.g.Re]=1,ji[N.g.rd]=1,ji[N.g.sd]=1,ji[N.g.ud]=1,ji[N.g.Z]=1,ji[N.g.vd]=1,ji[N.g.Ka]=1,ji[N.g.Ca]=1,ji[N.g.Sa]=1,ji[N.g.Ha]=1,ji[N.g.Ta]=1,ji[N.g.La]=1,ji[N.g.qa]=1,ji[N.g.wd]=1,ji[N.g.aa]=1,ji[N.g.ki]=1,ji[N.g.zd]=1,ji[N.g.Ad]=1,ji[N.g.We]=1,ji[N.g.Dd]=1,ji[N.g.Jb]=1,ji[N.g.vb]=1,ji[N.g.Ia]=1,ji[N.g.Oc]=1,ji[N.g.ra]=
-1,ji[N.g.Ea]=1,ji[N.g.sg]=1,ji[N.g.ug]=1,ji[N.g.vg]=1,ji[N.g.wg]=1,ji[N.g.Lb]=1,ji[N.g.Ma]=1,ji[N.g.Mb]=1,ji[N.g.Ld]=1,ji[N.g.Tc]=1,ji[N.g.sa]=1,ji[N.g.Nb]=1,ji[N.g.Ob]=1,ji[N.g.Ab]=1,ji[N.g.wa]=1,ji[N.g.za]=1,ji[N.g.fa]=1,ji)),li={},mi=Object.freeze((li[N.g.Xj]="s",li[N.g.Zj]="y",li[N.g.Uj]="n",li[N.g.Vj]="c",li[N.g.Wj]="p",li[N.g.Yj]="h",li[N.g.Tj]="a",li));Object.freeze(N.g);var ni={},oi=z.google_tag_manager=z.google_tag_manager||{},pi=Math.random();ni.Lg="38u0";ni.ee=Number("0")||0;ni.ia="dataLayer";ni.Rj="ChEI8PTApwYQ8sjgkqfb7u2KARIlAAN4hmsLXQwNbW+L3p6maq66nQ0Dh6SP46sRoFp5Ldxeqs6jMRoCnmM\x3d";var qi={__cl:1,__ecl:1,__ehl:1,__evl:1,__fal:1,__fil:1,__fsl:1,__hl:1,__jel:1,__lcl:1,__sdl:1,__tl:1,__ytl:1},ri={__paused:1,__tg:1},si;for(si in qi)qi.hasOwnProperty(si)&&(ri[si]=1);var ti=Ma(""),ui,vi=!1;vi=!0;
+1,ji[N.g.Ea]=1,ji[N.g.sg]=1,ji[N.g.ug]=1,ji[N.g.vg]=1,ji[N.g.wg]=1,ji[N.g.Lb]=1,ji[N.g.Ma]=1,ji[N.g.Mb]=1,ji[N.g.Ld]=1,ji[N.g.Tc]=1,ji[N.g.sa]=1,ji[N.g.Nb]=1,ji[N.g.Ob]=1,ji[N.g.Ab]=1,ji[N.g.wa]=1,ji[N.g.za]=1,ji[N.g.fa]=1,ji)),li={},mi=Object.freeze((li[N.g.Xj]="s",li[N.g.Zj]="y",li[N.g.Uj]="n",li[N.g.Vj]="c",li[N.g.Wj]="p",li[N.g.Yj]="h",li[N.g.Tj]="a",li));Object.freeze(N.g);var ni={},oi=z.google_tag_manager=z.google_tag_manager||{},pi=Math.random();ni.Lg="38u0";ni.ee=Number("0")||0;ni.ia="dataLayer";ni.Rj="ChEI8OnlpwYQuJTc8ab5i5yFARIlAIxhzZD3g10bzuJ1o0fvvRrr/LNJGYn371YEZ2AlBfHqsfzC4xoCG+s\x3d";var qi={__cl:1,__ecl:1,__ehl:1,__evl:1,__fal:1,__fil:1,__fsl:1,__hl:1,__jel:1,__lcl:1,__sdl:1,__tl:1,__ytl:1},ri={__paused:1,__tg:1},si;for(si in qi)qi.hasOwnProperty(si)&&(ri[si]=1);var ti=Ma(""),ui,vi=!1;vi=!0;
ui=vi;var wi,xi=!1;wi=xi;var yi,zi=!1;yi=zi;var Ai,Bi=!1;Ai=Bi;ni.Oe="www.googletagmanager.com";
var Ci=""+ni.Oe+(ui?"/gtag/js":"/gtm.js"),Di=null,Ei=null,Fi={},Gi={},Hi={},Ii=function(){var a=oi.sequence||1;oi.sequence=a+1;return a};ni.Qj="true";var Pi="";ni.nf=Pi;var Qi=new Ha,Ri={},Si={},Vi={name:ni.ia,set:function(a,b){lb(Za(a,b),Ri);Ti()},get:function(a){return Ui(a,2)},reset:function(){Qi=new Ha;Ri={};Ti()}},Ui=function(a,b){return 2!=b?Qi.get(a):Wi(a)},Wi=function(a,b){var c=a.split(".");b=b||[];for(var d=Ri,e=0;eToolFinder
-
-
+
+
Note:
-
Table last updated 2023-09-01.
+
Table last updated 2023-09-07.
The Tool identifier column (hidden by default) contains
an identifier for the tool / workflow: typically the module name (used
for matching to HPC lists).
diff --git a/docs/5_attributions.html b/docs/5_attributions.html
index fd0d7c2..589e377 100644
--- a/docs/5_attributions.html
+++ b/docs/5_attributions.html
@@ -448,7 +448,7 @@
1,Yh[N.g.rb]=1,Yh[N.g.Ic]=1,Yh[N.g.aa]=1,Yh[N.g.Zf]=1,Yh[N.g.Nc]=1,Yh[N.g.Bd]=1,Yh[N.g.Cd]=1,Yh[N.g.Dd]=1,Yh[N.g.kg]=1,Yh[N.g.eb]=1,Yh[N.g.mg]=1,Yh[N.g.Hd]=1,Yh[N.g.Ye]=1,Yh[N.g.Jb]=1,Yh[N.g.vb]=1,Yh[N.g.Da]=1,Yh[N.g.af]=1,Yh[N.g.Kd]=1,Yh[N.g.Lb]=1,Yh[N.g.Ma]=1,Yh[N.g.Mb]=1,Yh[N.g.Ld]=1,Yh[N.g.Sc]=1,Yh[N.g.cf]=1,Yh[N.g.Tc]=1,Yh[N.g.Nb]=1,Yh[N.g.Ob]=1,Yh[N.g.Xd]=1,Yh[N.g.Na]=1,Yh[N.g.fe]=1,Yh));Object.freeze([N.g.ra,N.g.Ea,N.g.xb,N.g.Ia,N.g.bf,N.g.za,N.g.We,N.g.gi]);
var $h={},ai=Object.freeze(($h[N.g.Vh]=1,$h[N.g.Wh]=1,$h[N.g.Xh]=1,$h[N.g.Yh]=1,$h[N.g.Zh]=1,$h[N.g.ai]=1,$h[N.g.bi]=1,$h[N.g.di]=1,$h[N.g.ei]=1,$h[N.g.od]=1,$h)),bi={},ci=Object.freeze((bi[N.g.Uf]=1,bi[N.g.Vf]=1,bi[N.g.ac]=1,bi[N.g.bc]=1,bi[N.g.Wf]=1,bi[N.g.Fb]=1,bi[N.g.fc]=1,bi[N.g.Xa]=1,bi[N.g.ob]=1,bi[N.g.Ya]=1,bi[N.g.ma]=1,bi[N.g.hc]=1,bi[N.g.Ba]=1,bi[N.g.Xf]=1,bi)),di=Object.freeze([N.g.da,N.g.qb,N.g.rb,N.g.Ob]),ei=Object.freeze([].concat(di)),fi=Object.freeze([N.g.Ha,N.g.Cd,N.g.Sc,N.g.cf,N.g.yd]),
gi=Object.freeze([].concat(fi)),hi={},ii=(hi[N.g.I]="1",hi[N.g.R]="2",hi[N.g.N]="3",hi[N.g.nb]="4",hi),ji={},ki=Object.freeze((ji[N.g.da]=1,ji[N.g.pd]=1,ji[N.g.Ga]=1,ji[N.g.Gb]=1,ji[N.g.Re]=1,ji[N.g.rd]=1,ji[N.g.sd]=1,ji[N.g.ud]=1,ji[N.g.Z]=1,ji[N.g.vd]=1,ji[N.g.Ka]=1,ji[N.g.Ca]=1,ji[N.g.Sa]=1,ji[N.g.Ha]=1,ji[N.g.Ta]=1,ji[N.g.La]=1,ji[N.g.qa]=1,ji[N.g.wd]=1,ji[N.g.aa]=1,ji[N.g.ki]=1,ji[N.g.zd]=1,ji[N.g.Ad]=1,ji[N.g.We]=1,ji[N.g.Dd]=1,ji[N.g.Jb]=1,ji[N.g.vb]=1,ji[N.g.Ia]=1,ji[N.g.Oc]=1,ji[N.g.ra]=
-1,ji[N.g.Ea]=1,ji[N.g.sg]=1,ji[N.g.ug]=1,ji[N.g.vg]=1,ji[N.g.wg]=1,ji[N.g.Lb]=1,ji[N.g.Ma]=1,ji[N.g.Mb]=1,ji[N.g.Ld]=1,ji[N.g.Tc]=1,ji[N.g.sa]=1,ji[N.g.Nb]=1,ji[N.g.Ob]=1,ji[N.g.Ab]=1,ji[N.g.wa]=1,ji[N.g.za]=1,ji[N.g.fa]=1,ji)),li={},mi=Object.freeze((li[N.g.Xj]="s",li[N.g.Zj]="y",li[N.g.Uj]="n",li[N.g.Vj]="c",li[N.g.Wj]="p",li[N.g.Yj]="h",li[N.g.Tj]="a",li));Object.freeze(N.g);var ni={},oi=z.google_tag_manager=z.google_tag_manager||{},pi=Math.random();ni.Lg="38u0";ni.ee=Number("0")||0;ni.ia="dataLayer";ni.Rj="ChEI8PTApwYQ8sjgkqfb7u2KARIlAAN4hmsLXQwNbW+L3p6maq66nQ0Dh6SP46sRoFp5Ldxeqs6jMRoCnmM\x3d";var qi={__cl:1,__ecl:1,__ehl:1,__evl:1,__fal:1,__fil:1,__fsl:1,__hl:1,__jel:1,__lcl:1,__sdl:1,__tl:1,__ytl:1},ri={__paused:1,__tg:1},si;for(si in qi)qi.hasOwnProperty(si)&&(ri[si]=1);var ti=Ma(""),ui,vi=!1;vi=!0;
+1,ji[N.g.Ea]=1,ji[N.g.sg]=1,ji[N.g.ug]=1,ji[N.g.vg]=1,ji[N.g.wg]=1,ji[N.g.Lb]=1,ji[N.g.Ma]=1,ji[N.g.Mb]=1,ji[N.g.Ld]=1,ji[N.g.Tc]=1,ji[N.g.sa]=1,ji[N.g.Nb]=1,ji[N.g.Ob]=1,ji[N.g.Ab]=1,ji[N.g.wa]=1,ji[N.g.za]=1,ji[N.g.fa]=1,ji)),li={},mi=Object.freeze((li[N.g.Xj]="s",li[N.g.Zj]="y",li[N.g.Uj]="n",li[N.g.Vj]="c",li[N.g.Wj]="p",li[N.g.Yj]="h",li[N.g.Tj]="a",li));Object.freeze(N.g);var ni={},oi=z.google_tag_manager=z.google_tag_manager||{},pi=Math.random();ni.Lg="38u0";ni.ee=Number("0")||0;ni.ia="dataLayer";ni.Rj="ChEI8OnlpwYQuJTc8ab5i5yFARIlAIxhzZD3g10bzuJ1o0fvvRrr/LNJGYn371YEZ2AlBfHqsfzC4xoCG+s\x3d";var qi={__cl:1,__ecl:1,__ehl:1,__evl:1,__fal:1,__fil:1,__fsl:1,__hl:1,__jel:1,__lcl:1,__sdl:1,__tl:1,__ytl:1},ri={__paused:1,__tg:1},si;for(si in qi)qi.hasOwnProperty(si)&&(ri[si]=1);var ti=Ma(""),ui,vi=!1;vi=!0;
ui=vi;var wi,xi=!1;wi=xi;var yi,zi=!1;yi=zi;var Ai,Bi=!1;Ai=Bi;ni.Oe="www.googletagmanager.com";
var Ci=""+ni.Oe+(ui?"/gtag/js":"/gtm.js"),Di=null,Ei=null,Fi={},Gi={},Hi={},Ii=function(){var a=oi.sequence||1;oi.sequence=a+1;return a};ni.Qj="true";var Pi="";ni.nf=Pi;var Qi=new Ha,Ri={},Si={},Vi={name:ni.ia,set:function(a,b){lb(Za(a,b),Ri);Ti()},get:function(a){return Ui(a,2)},reset:function(){Qi=new Ha;Ri={};Ti()}},Ui=function(a,b){return 2!=b?Qi.get(a):Wi(a)},Wi=function(a,b){var c=a.split(".");b=b||[];for(var d=Ri,e=0;e=b&&(b=e+864E5,d=5E3);if(1>d)return!1;c=Math.min(c+(e-a)/1E3*5,20);a=e;if(1>c)return!1;d--;c--;return!0}};
var pE=function(a,b){if(Jj()||Q(45))a.gcs=im(),Q(49)&&(a.gcd=mm(b.s)),b.metadata.is_consent_update&&(a.gcu="1");Q(104)&&(hm(b.s)&&(Q(85)||nC())?Q(53)&&(a.npa="0"):a.npa="1")},sE=function(a){if(a.metadata.is_merchant_center)return"https://www.merchant-center-analytics.goog/mc/collect";var b=zt(Bt(a.s),"/g/collect");if(b)return b;var c=wp(a,N.g.eb,U(a.s,N.g.eb));c=c||HD(a);var d=U(a.s,
-N.g.qb);return c&&!mj()&&!1!==d&&mC()&&S(N.g.I)&&S(N.g.R)?qE():rE()},tE=!1;tE=!0;var uE={};uE[N.g.Za]="cid";uE[N.g.We]="_fid";uE[N.g.lg]="_geo";uE[N.g.ub]="gdid";uE[N.g.Id]="ir";uE[N.g.Ia]="ul";uE[N.g.Rc]="_rdi";uE[N.g.yb]="sr";uE[N.g.Gi]="tid";uE[N.g.ef]="tt";uE[N.g.ff]="ec_mode";uE[N.g.Pi]="gtm_up";uE[N.g.Pd]="uaa",uE[N.g.Qd]="uab",uE[N.g.Rd]="uafvl",uE[N.g.Sd]="uamb",uE[N.g.Td]="uam",uE[N.g.Ud]="uap",uE[N.g.Vd]="uapv",uE[N.g.Wd]="uaw";
+N.g.qb);return c&&!mj()&&!1!==d&&mC()&&S(N.g.I)&&S(N.g.R)?qE():rE()},tE=!1;tE=!0;var uE={};uE[N.g.Za]="cid";uE[N.g.We]="_fid";uE[N.g.lg]="_geo";uE[N.g.ub]="gdid";uE[N.g.Id]="ir";uE[N.g.Ia]="ul";uE[N.g.Rc]="_rdi";uE[N.g.yb]="sr";uE[N.g.Gi]="tid";uE[N.g.ef]="tt";uE[N.g.ff]="ec_mode";uE[N.g.Pi]="gtm_up";uE[N.g.Pd]="uaa",uE[N.g.Qd]="uab",uE[N.g.Rd]="uafvl",uE[N.g.Sd]="uamb",uE[N.g.Td]="uam",uE[N.g.Ud]="uap",uE[N.g.Vd]="uapv",uE[N.g.Wd]="uaw";uE[N.g.Hb]="are";
uE[N.g.xi]="lps";var vE={};vE[N.g.zc]="cc";vE[N.g.Ac]="ci";vE[N.g.Bc]="cm";vE[N.g.Cc]="cn";vE[N.g.Ec]="cs";vE[N.g.Fc]="ck";vE[N.g.qa]="cu";vE[N.g.ra]="dl";vE[N.g.Ea]="dr";vE[N.g.xb]="dt";vE[N.g.Md]="seg";vE[N.g.zb]="sid";vE[N.g.Nd]="sct";vE[N.g.za]="uid";Q(36)&&
(vE[N.g.Pc]="dp");var wE={};wE[N.g.yd]="_et";wE[N.g.sb]="edid";var xE={};xE[N.g.zc]="cc";xE[N.g.Ac]="ci";xE[N.g.Bc]="cm";xE[N.g.Cc]="cn";xE[N.g.Ec]="cs";xE[N.g.Fc]="ck";var yE={},zE=Object.freeze((yE[N.g.wa]=1,yE)),rE=function(){var a="www";tE&&nj()&&(a=nj());return"https://"+a+".google-analytics.com/g/collect"},qE=function(){var a;tE&&""!==nj()&&(a=nj());return"https://"+(a?a+".":"")+"analytics.google.com/g/collect"},AE=function(a,b,c){var d={},e={},f={};d.v="2";d.tid=a.target.ba;
HD(a)&&!mj()&&(d._ono=1);d.gtm=cn();d._p=SD();c&&(d.em=c);a.metadata.create_google_join&&(d._gaz=1);pE(d,a);Q(51)&&(qm()&&(d.dma_cps=nm()),d.dma=pm());Q(85)&&Kl(Tl())&&(d.tcfd=rm());var g=a.h[N.g.ub];g&&(d.gdid=g);e.en=String(a.eventName);a.metadata.is_first_visit&&(e._fv=a.metadata.is_first_visit_conversion?2:1);a.metadata.is_new_to_site&&(e._nsi=1);a.metadata.is_session_start&&(e._ss=a.metadata.is_session_start_conversion?2:1);a.metadata.is_conversion&&
diff --git a/finders/common.py b/finders/common.py
index aa44d5c..d4cf06d 100644
--- a/finders/common.py
+++ b/finders/common.py
@@ -159,6 +159,21 @@ def get_data(self):
return pd.DataFrame(data)
+
+ def get_data_only(self):
+ data = []
+ for i in self.db:
+ line = []
+ for dp in self.dataprovider:
+ line.append(dp.render(self.db[i]))
+ result = {}
+ for element in line:
+ result.update(element)
+ data.append(result)
+
+ return data
+
+
@abstractmethod
def get_formatted_table(self) -> pd.DataFrame:
pass
\ No newline at end of file
diff --git a/finders/toolfinder.py b/finders/toolfinder.py
index f7e3105..f594efc 100644
--- a/finders/toolfinder.py
+++ b/finders/toolfinder.py
@@ -108,7 +108,8 @@ def __init__(self, parent, look_up_file):
def _query_remote(self):
self.available_data = {}
- req = requests.request("get", "https://usegalaxy.org.au/api/tools")
+ #req = requests.request("get", "https://usegalaxy.org.au/api/tools/?in_panel=False")
+ req = requests.request("get", "https://usegalaxy.org.au/api/tools/")
if req.status_code != 200:
raise FileNotFoundError(req.url)
tool_sections = json.loads(req.text)
@@ -120,6 +121,7 @@ def _query_remote(self):
other_galaxy_id_types = {}
for tool in tools:
galaxy_id = tool["id"]
+ version = tool["version"]
# https://stackoverflow.com/a/70672659
# https://stackoverflow.com/a/12595082
# https://stackoverflow.com/a/4843178
@@ -133,14 +135,12 @@ def _query_remote(self):
galaxy_id = galaxy_id
#print(other_galaxy_id_types[galaxy_id]["id"])
### example datasource_tool link "/tool_runner/data_source_redirect?tool_id=ucsc_table_direct1"
- if isinstance(tool["model_class"], str) and tool["model_class"] != "ToolSectionLabel" and tool["model_class"] != "ToolSection":
+ if tool["model_class"] != "ToolSectionLabel" and tool["model_class"] != "ToolSection":
if tool["model_class"] == "DataSourceTool":
tool["link"] = tool["link"]
- if tool["model_class"] == "Tool":
+ else:
# https://stackoverflow.com/a/4945558
tool["link"] = "root?" + tool["link"][13:]
- #else:
- # tool["link"] = "root?" + tool["link"][13:]
biotools_id = None
if "xrefs" in tool:
for item in tool["xrefs"]:
@@ -161,7 +161,7 @@ def _query_remote(self):
def _render(self, data):
retval = {}
- retval[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK] = [(d["link"], d["name"]) for d in data if "link" in d and "name" in d]
+ retval[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK] = [(d["link"], d["name"], d["version"]) for d in data if "link" in d and "name" in d and "version" in d]
return retval
def get_alt_ids(self):
@@ -342,6 +342,7 @@ def __init__(self, tool_matrix_file):
def get_formatted_table(self):
import urllib
tool_table = self.get_data()
+ tool_data = self.get_data_only()
formatted_list = []
for index, row in tool_table.iterrows():
if not row[Dataprovider.FIELD_NAMES.INCLUSION]:
@@ -377,7 +378,7 @@ def get_formatted_table(self):
# see https://stackoverflow.com/a/2906586
# see https://stackoverflow.com/questions/5618878/how-to-convert-list-to-string
#tool_line.append(" ".join(["""""" %d for d in row[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK]]))
- a = [""""""% (x[0], row[Dataprovider.FIELD_NAMES.TOOL_IDENTIFIER], x[1]) for x in row[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK]]
+ a = [""""""% (x[0], row[Dataprovider.FIELD_NAMES.TOOL_IDENTIFIER], x[1] + "-" + x[2]) for x in row[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK]]
#%d for d in row[Dataprovider.FIELD_NAMES.GALAXY_AUSTRALIA_LAUNCH_LINK]]
if len(a)>1:
tool_line.append("""