changeset 111:223b78754735 draft

Uploaded
author fubar
date Sun, 29 Nov 2020 07:51:53 +0000
parents ab2474035f81
children 5509dc4c1cf2
files toolfactory/rgToolFactory2.py toolfactory/rgToolFactory2.xml
diffstat 2 files changed, 26 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/toolfactory/rgToolFactory2.py	Sun Nov 29 06:16:34 2020 +0000
+++ b/toolfactory/rgToolFactory2.py	Sun Nov 29 07:51:53 2020 +0000
@@ -63,8 +63,8 @@
 <exit_code range="100:" level="debug" description="shite happens" />
 </stdio>"""
 
-# --input_files="$input_files~~~$CL~~~$input_formats~~~$input_label
-# ~~~$input_help"
+# --input_files="$intab.input_files~~~$intab.input_CL~~~$intab.input_formats\
+#~~~$intab.input_label~~~$intab.input_help"
 IPATHPOS = 0
 ICLPOS = 1
 IFMTPOS = 2
@@ -263,7 +263,7 @@
                 clsuffix.append(appendme)
                 xclsuffix.append(xappendme)
             for i, p in enumerate(self.outfiles):
-                if p[OOCLPOS] == "STDOUT":
+                if p[OCLPOS] == "STDOUT":
                     self.lastclredirect = [">", p[ONAMEPOS]]
                     self.lastxclredirect = [">", "$%s" % p[OCLPOS]]
                 else:
@@ -296,7 +296,7 @@
         tscript.write(self.script)
         tscript.close()
         self.escapedScript = [cheetah_escape(x) for x in rx]
-        self.spacedScript = [f"    {x}" for x in self.escapedScript]
+        self.spacedScript = [f"    {x}" for x in rx]
         art = "%s.%s" % (self.tool_name, self.executeme)
         artifact = open(art, "wb")
         artifact.write(bytes('\n'.join(self.escapedScript),'utf8'))
@@ -305,21 +305,23 @@
     def cleanuppar(self):
         """ positional parameters are complicated by their numeric ordinal"""
         for i, p in enumerate(self.infiles):
+            infp = copy.copy(p)
             if self.args.parampass == "positional":
-                assert p[
+                assert infp[
                     ICLPOS
                 ].isdigit(), "Positional parameters must be ordinal integers - got %s for %s" % (
-                    p[ICLPOS],
-                    p[ILABPOS],
+                    infp[ICLPOS],
+                    infp[ILABPOS],
                 )
-            p.append(p[ICLPOS])
-            if p[ICLPOS].isdigit() or self.args.parampass == "0":
+            icl = infp[ICLPOS]
+            infp.append(icl)
+            if infp[ICLPOS].isdigit() or self.args.parampass == "0":
                 scl = "input%d" % (i + 1)
-                p[ICLPOS] = scl
-            self.infiles[i] = p
+                infp[ICLPOS] = scl
+            self.infiles[i] = infp
         for i, p in enumerate(
             self.outfiles
-        ):  # trying to automagically gather using extensions
+        ):
             if self.args.parampass == "positional" and p[OCLPOS] != "STDOUT":
                 assert p[
                     OCLPOS
@@ -327,7 +329,7 @@
                     p[OCLPOS],
                     p[ONAMEPOS],
                 )
-            p.append(p[OCLPOS])
+            p.append(p[OCLPOS]) # keep copy
             if p[OCLPOS].isdigit() or p[OCLPOS] == "STDOUT":
                 scl = p[ONAMEPOS]
                 p[OCLPOS] = scl
@@ -412,19 +414,19 @@
 
     def doXMLparam(self):
         """flake8 made me do this..."""
-        for p in self.outfiles:
+        for p in self.outfiles: # --output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL~~~$otab.history_test"
             newname, newfmt, newcl, test, oldcl = p
             test = test.strip()
             ndash = self.getNdash(newcl)
-            aparm = gxtp.OutputData(newcl, format=newfmt, num_dashes=ndash)
+            aparm = gxtp.OutputData(name=newname, format=newfmt, num_dashes=ndash, label=newcl)
             aparm.positional = self.is_positional
             if self.is_positional:
                 if oldcl == "STDOUT":
                     aparm.positional = 9999999
-                    aparm.command_line_override = "> $%s" % newcl
+                    aparm.command_line_override = "> $%s" % newname
                 else:
                     aparm.positional = int(oldcl)
-                    aparm.command_line_override = "$%s" % newcl
+                    aparm.command_line_override = "$%s" % newname
             self.toutputs.append(aparm)
             ld = None
             if test.strip() > "":
@@ -582,7 +584,7 @@
                         + [">300 lines - stuff deleted", "......"]
                         + scr[-100:]
                     )
-                scr.append('\n------\n')
+                scr.append('\n')
                 safertext = safertext + "\n".join(scr)
             self.newtool.help = safertext
         else:
@@ -843,6 +845,7 @@
                 category_ids=catID,
             )
             tid = res.get("id", None)
+            sto.write(f"#####create_repository {self.args.tool_name} tid={tid} res={res}\n")
         else:
             i = rnames.index(self.tool_name)
             tid = rids[i]
@@ -850,10 +853,10 @@
             res = ts.repositories.update_repository(
                 id=tid, tar_ball_path=self.newtarpath, commit_message=None
             )
-            sto.write(f"#####update res={res}\n")
+            sto.write(f"#####update res id {id} ={res}\n")
         except ConnectionError:
             sto.write(
-                "Probably no change to repository - bioblend shed upload failed\n"
+                "Is the toolshed running and the API key correct? Bioblend shed upload failed\n"
             )
         sto.close()
 
--- a/toolfactory/rgToolFactory2.xml	Sun Nov 29 06:16:34 2020 +0000
+++ b/toolfactory/rgToolFactory2.xml	Sun Nov 29 07:51:53 2020 +0000
@@ -69,15 +69,15 @@
         </repeat>
         <repeat name="history_outputs" title="Add a tool run output file to the user's history from your tool - Use the '+' button to add as many as needed"
              help="The name will become a history item for users of the new tool you are making containing one of it's outputs">
-            <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" help=""/>
+            <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" help="Argparse will also use this name as --[name]"/>
             <param name="history_format" type="select" multiple="false" label="Select the datatype for this output"
               help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
                <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
                 <column name="value" index="0"/>
                </options>
             </param>
-            <param name="history_CL" type="text"  label="Positional: ordinal integer. Argparse: argument name expected for this output parameter. Use STDOUT if '>' required."
-              help="If positional parameters, enter the integer ordinal expected for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""/>
+            <param name="history_CL" type="text"  label="Positional: ordinal integer. Use STDOUT if '>' required. Otherwise ignored if argparse because name is used"
+              help="If positional parameters, enter the integer ordinal expected for this parameter. If argparse, ignore unless STDOUT needed" value=""/>
             <param name="history_test" type="text"  label="Test pass decision criterion for this output compared to test generation"
               help="Available options are diff:[lines], sim_size:[delta (integer) or delta_frac (float)" value="sim_size:0.01"/>
         </repeat>