# HG changeset patch # User fubar # Date 1603164032 0 # Node ID 68fbdbe35f08e66c1931744e82ffe4bfe81930be # Parent dcf59d4e45157155a985202ad2e44e72e2843da9 Uploaded diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/.shed.yml --- a/toolfactory/.shed.yml Mon Aug 31 00:20:27 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -name: toolfactory -owner: fubar -description: ToolFactory - tool to make Galaxy tools ready for the toolshed -homepage_url: https://github.com/fubar2/toolfactory -long_description: | - ToolFactory - turn executable packages and R/python/perl/bash scripts into ordinary Galaxy tools - - Creating re-usable tools from scripts: The Galaxy Tool Factory Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team - Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573 -remote_repository_url: https://github.com/fubar2/toolfactory -type: tool_dependency_definition -categories: -- Tool Generators diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/README.md --- a/toolfactory/README.md Mon Aug 31 00:20:27 2020 -0400 +++ b/toolfactory/README.md Tue Oct 20 03:20:32 2020 +0000 @@ -137,7 +137,29 @@ The Docker container is the best way to use the TF because it is preconfigured to automate new tool testing and has a built in local toolshed where each new tool -is uploaded. It is easy to install without Docker, but you will need to make some +is uploaded. If you grab the docker container, it should just work. + +If you build the container, there are some things to watch out for. Let it run for 10 minutes +or so once you build it - check with top until conda has finished fussing. Once everything quietens +down, find the container with +```docker ps``` +and use +```docker exec [containername] supervisorctl restart galaxy:``` +That colon is not a typographical mistake. +Not restarting after first boot seems to leave the job/worflow system confused and the workflow +just will not run properly until Galaxy has restarted. + +Login as admin@galaxy.org with password "password". Feel free to change it once you are logged in. +There should be a companion toolshed at localhost:9090. The history should have some sample data for +the workflow. + +Run the workflow and make sure the right dataset is selected for each of the input files. Most of the +examples use text files so should run, but the bwa example needs the right ones to work properly. + +When the workflow is finished, you will have half a dozen examples to rerun and play with. They have also +all been tested and installed so you should find them in your tool menu under "Generated Tools" + +It is easy to install without Docker, but you will need to make some configuration changes (TODO write a configuration). You can install it most conveniently using the administrative "Search and browse tool sheds" link. Find the Galaxy Main toolshed at https://toolshed.g2.bx.psu.edu/ and search for the toolfactory diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/images/dynamicScriptTool.png Binary file toolfactory/images/dynamicScriptTool.png has changed diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/rgToolFactory2.py --- a/toolfactory/rgToolFactory2.py Mon Aug 31 00:20:27 2020 -0400 +++ b/toolfactory/rgToolFactory2.py Tue Oct 20 03:20:32 2020 +0000 @@ -208,24 +208,14 @@ aCL(c) aXCL(c) else: - if self.args.runmode == "Executable": - if self.args.script_path: - aCL(self.executeme) - aCL(self.sfile) - aXCL(self.executeme) - aXCL("$runme") - else: - aCL(self.executeme) # this little CL will just run - aXCL(self.executeme) + if self.args.script_path: + aCL(self.executeme) + aCL(self.sfile) + aXCL(self.executeme) + aXCL("$runme") else: - if self.args.script_path: - aCL(self.executeme) - aCL(self.sfile) - aXCL(self.executeme) - aXCL("$runme") - else: - aCL(self.executeme) # this little CL will just run - aXCL(self.executeme) + aCL(self.executeme) # this little CL will just run + aXCL(self.executeme) self.elog = os.path.join(self.repdir, "%s_error_log.txt" % self.tool_name) self.tlog = os.path.join(self.repdir, "%s_runner_log.txt" % self.tool_name) @@ -531,9 +521,9 @@ Hmmm. How to get the command line into correct order... """ if self.command_override: - self.newtool.command_line_override = self.command_override # config file + self.newtool.command_override = self.command_override # config file else: - self.newtool.command_line_override = self.xmlcl + self.newtool.command_override = self.xmlcl if self.args.help_text: helptext = open(self.args.help_text, "r").readlines() safertext = [html_escape(x) for x in helptext] @@ -608,7 +598,7 @@ def run(self): """ generate test outputs by running a command line - won't work if command or test override in play - planemo is the + won't work if command or test override in play - planemo is the easiest way to generate test outputs for that case so is automagically selected """ @@ -617,32 +607,24 @@ scl = " ".join(self.cl) err = None if self.args.parampass != "0": - ste = open(self.elog, "wb") + if os.path.exists(self.elog): + ste = open(self.elog, "a") + else: + ste = open(self.elog, "w") if self.lastclredirect: sto = open(self.lastclredirect[1], "wb") # is name of an output file else: - sto = open(self.tlog, "wb") + if os.path.exists(self.tlog): + sto = open(self.tlog, "a") + else: + sto = open(self.tlog, "w") sto.write( - bytes( - "## Executing Toolfactory generated command line = %s\n" % scl, - "utf8", - ) + "## Executing Toolfactory generated command line = %s\n" % scl ) sto.flush() p = subprocess.run(self.cl, shell=False, stdout=sto, stderr=ste) sto.close() ste.close() - tmp_stderr = open(self.elog, "rb") - err = "" - buffsize = 1048576 - try: - while True: - err += str(tmp_stderr.read(buffsize)) - if not err or len(err) % buffsize != 0: - break - except OverflowError: - pass - tmp_stderr.close() retval = p.returncode else: # work around special case - stdin and write to stdout sti = open(self.infiles[0][IPATHPOS], "rb") @@ -695,7 +677,7 @@ "--tar", self.newtarpath, ] - p = subprocess.run(cll, shell=True) + p = subprocess.run(cll, shell=False) print("Ran", " ".join(cll), "got", p.returncode) tout.close() return p.returncode @@ -717,17 +699,14 @@ "--galaxy_root", self.args.galaxy_root, "--update_test_data", - "--galaxy_python_version", - "3.6", xreal, ] else: - cll = ["planemo", "test", "--galaxy_python_version", - "3.6", "--galaxy_root", + cll = ["planemo", "test", "--galaxy_root", self.args.galaxy_root, xreal,] p = subprocess.run( - cll, shell=True, cwd=self.tooloutdir, stderr=tout, stdout=tout + cll, shell=False, cwd=self.tooloutdir, stderr=tout, stdout=tout ) if genoutputs: with os.scandir(self.testdir) as outs: @@ -815,7 +794,7 @@ shutil.copyfile(pth, dest) def makeToolTar(self): - """ move outputs into test-data and prepare the tarball + """ move outputs into test-data and prepare the tarball """ for p in self.outfiles: src = p[ONAMEPOS] @@ -883,7 +862,6 @@ a("--parampass", default="positional") a("--tfout", default="./tfout") a("--new_tool", default="new_tool") - a("--runmode", default=None) a("--galaxy_url", default="http://localhost:8080") a("--galaxy_api_key", default="fakekey") a("--toolshed_url", default="http://localhost:9009") diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/rgToolFactory2.xml --- a/toolfactory/rgToolFactory2.xml Mon Aug 31 00:20:27 2020 -0400 +++ b/toolfactory/rgToolFactory2.xml Tue Oct 20 03:20:32 2020 +0000 @@ -1,5 +1,5 @@ - - Scripts into tools + + Scripts into tools v2 + - planemo - galaxyxml - lxml - ephemeris - bioblend + planemo + bioblend + galaxyxml + ephemeris + diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/test-data/input1_sample --- a/toolfactory/test-data/input1_sample Mon Aug 31 00:20:27 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -*WARNING before you start* - - Install this tool on a private Galaxy ONLY - Please NEVER on a public or production instance - -Updated august 2014 by John Chilton adding citation support - -Updated august 8 2014 to fix bugs reported by Marius van den Beek - -Please cite the resource at -http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref -if you use this tool in your published work. - -**Short Story** - -This is an unusual Galaxy tool capable of generating new Galaxy tools. -It works by exposing *unrestricted* and therefore extremely dangerous scripting -to all designated administrators of the host Galaxy server, allowing them to -run scripts in R, python, sh and perl over multiple selected input data sets, -writing a single new data set as output. - -*You have a working r/python/perl/bash script or any executable with positional or argparse style parameters* - -It can be turned into an ordinary Galaxy tool in minutes, using a Galaxy tool. - - -**Automated generation of new Galaxy tools for installation into any Galaxy** - -A test is generated using small sample test data inputs and parameter settings you supply. -Once the test case outputs have been produced, they can be used to build a -new Galaxy tool. The supplied script or executable is baked as a requirement -into a new, ordinary Galaxy tool, fully workflow compatible out of the box. -Generated tools are installed via a tool shed by an administrator -and work exactly like all other Galaxy tools for your users. - -**More Detail** - -To use the ToolFactory, you should have prepared a script to paste into a -text box, or have a package in mind and a small test input example ready to select from your history -to test your new script. - -```planemo test rgToolFactory2.xml --galaxy_root ~/galaxy --test_data ~/galaxy/tools/tool_makers/toolfactory/test-data``` works for me - -There is an example in each scripting language on the Tool Factory form. You -can just cut and paste these to try it out - remember to select the right -interpreter please. You'll also need to create a small test data set using -the Galaxy history add new data tool. - -If the script fails somehow, use the "redo" button on the tool output in -your history to recreate the form complete with broken script. Fix the bug -and execute again. Rinse, wash, repeat. - -Once the script runs sucessfully, a new Galaxy tool that runs your script -can be generated. Select the "generate" option and supply some help text and -names. The new tool will be generated in the form of a new Galaxy datatype -*toolshed.gz* - as the name suggests, it's an archive ready to upload to a -Galaxy ToolShed as a new tool repository. - -Once it's in a ToolShed, it can be installed into any local Galaxy server -from the server administrative interface. - -Once the new tool is installed, local users can run it - each time, the script -that was supplied when it was built will be executed with the input chosen -from the user's history. In other words, the tools you generate with the -ToolFactory run just like any other Galaxy tool,but run your script every time. - -Tool factory tools are perfect for workflow components. One input, one output, -no variables. - -*To fully and safely exploit the awesome power* of this tool, -Galaxy and the ToolShed, you should be a developer installing this -tool on a private/personal/scratch local instance where you are an -admin_user. Then, if you break it, you get to keep all the pieces see -https://bitbucket.org/fubar/galaxytoolfactory/wiki/Home - -**Installation** -This is a Galaxy tool. You can install it most conveniently using the -administrative "Search and browse tool sheds" link. Find the Galaxy Main -toolshed at https://toolshed.g2.bx.psu.edu/ and search for the toolfactory -repository. Open it and review the code and select the option to install it. - -If you can't get the tool that way, the xml and py files here need to be -copied into a new tools -subdirectory such as tools/toolfactory Your tool_conf.xml needs a new entry -pointing to the xml -file - something like:: - -
- -
- -If not already there, -please add: - -to your local data_types_conf.xml. - - -**Restricted execution** - -The tool factory tool itself will then be usable ONLY by admin users - -people with IDs in admin_users in universe_wsgi.ini **Yes, that's right. ONLY -admin_users can run this tool** Think about it for a moment. If allowed to -run any arbitrary script on your Galaxy server, the only thing that would -impede a miscreant bent on destroying all your Galaxy data would probably -be lack of appropriate technical skills. - -**What it does** - -This is a tool factory for simple scripts in python, R and -perl currently. Functional tests are automatically generated. How cool is that. - -LIMITED to simple scripts that read one input from the history. Optionally can -write one new history dataset, and optionally collect any number of outputs -into links on an autogenerated HTML index page for the user to navigate - -useful if the script writes images and output files - pdf outputs are shown -as thumbnails and R's bloated pdf's are shrunk with ghostscript so that and -imagemagik need to be available. - -Generated tools can be edited and enhanced like any Galaxy tool, so start -small and build up since a generated script gets you a serious leg up to a -more complex one. - -**What you do** - -You paste and run your script, you fix the syntax errors and -eventually it runs. You can use the redo button and edit the script before -trying to rerun it as you debug - it works pretty well. - -Once the script works on some test data, you can generate a toolshed compatible -gzip file containing your script ready to run as an ordinary Galaxy tool in -a repository on your local toolshed. That means safe and largely automated -installation in any production Galaxy configured to use your toolshed. - -**Generated tool Security** - -Once you install a generated tool, it's just -another tool - assuming the script is safe. They just run normally and their -user cannot do anything unusually insecure but please, practice safe toolshed. -Read the code before you install any tool. Especially this one - it is really scary. - -**Send Code** - -Patches and suggestions welcome as bitbucket issues please? - -**Attribution** - -Creating re-usable tools from scripts: The Galaxy Tool Factory -Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team -Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573 - -http://bioinformatics.oxfordjournals.org/cgi/reprint/bts573?ijkey=lczQh1sWrMwdYWJ&keytype=ref - -**Licensing** - -Copyright Ross Lazarus 2010 -ross lazarus at g mail period com - -All rights reserved. - -Licensed under the LGPL - -**Obligatory screenshot** - -http://bitbucket.org/fubar/galaxytoolmaker/src/fda8032fe989/images/dynamicScriptTool.png - diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/test-data/output2_sample --- a/toolfactory/test-data/output2_sample Mon Aug 31 00:20:27 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -*trats uoy erofeb GNINRAW* - -YLNO yxalaG etavirp a no loot siht llatsnI -ecnatsni noitcudorp ro cilbup a no REVEN esaelP - -troppus noitatic gnidda notlihC nhoJ yb 4102 tsugua detadpU - -keeB ned nav suiraM yb detroper sgub xif ot 4102 8 tsugua detadpU - -ta ecruoser eht etic esaelP -fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth -.krow dehsilbup ruoy ni loot siht esu uoy fi - -**yrotS trohS** - -.sloot yxalaG wen gnitareneg fo elbapac loot yxalaG lausunu na si sihT -gnitpircs suoregnad ylemertxe erofereht dna *detcirtsernu* gnisopxe yb skrow tI -ot meht gniwolla ,revres yxalaG tsoh eht fo srotartsinimda detangised lla ot -,stes atad tupni detceles elpitlum revo lrep dna hs ,nohtyp ,R ni stpircs nur -.tuptuo sa tes atad wen elgnis a gnitirw - -*sretemarap elyts esrapgra ro lanoitisop htiw elbatucexe yna ro tpircs hsab/lrep/nohtyp/r gnikrow a evah uoY* - -.loot yxalaG a gnisu ,setunim ni loot yxalaG yranidro na otni denrut eb nac tI - - -**yxalaG yna otni noitallatsni rof sloot yxalaG wen fo noitareneg detamotuA** - -.ylppus uoy sgnittes retemarap dna stupni atad tset elpmas llams gnisu detareneg si tset A -a dliub ot desu eb nac yeht ,decudorp neeb evah stuptuo esac tset eht ecnO -tnemeriuqer a sa dekab si elbatucexe ro tpircs deilppus ehT .loot yxalaG wen -.xob eht fo tuo elbitapmoc wolfkrow ylluf ,loot yxalaG yranidro ,wen a otni -rotartsinimda na yb dehs loot a aiv dellatsni era sloot detareneG -.sresu ruoy rof sloot yxalaG rehto lla ekil yltcaxe krow dna - -**liateD eroM** - -a otni etsap ot tpircs a deraperp evah dluohs uoy ,yrotcaFlooT eht esu oT -yrotsih ruoy morf tceles ot ydaer elpmaxe tupni tset llams a dna dnim ni egakcap a evah ro ,xob txet -.tpircs wen ruoy tset ot - -em rof skrow ```atad-tset/yrotcafloot/srekam_loot/sloot/yxalag/~ atad_tset-- yxalag/~ toor_yxalag-- lmx.2yrotcaFlooTgr tset omenalp``` - -uoY .mrof yrotcaF looT eht no egaugnal gnitpircs hcae ni elpmaxe na si erehT -thgir eht tceles ot rebmemer - tuo ti yrt ot eseht etsap dna tuc tsuj nac -gnisu tes atad tset llams a etaerc ot deen osla ll'uoY .esaelp reterpretni -.loot atad wen dda yrotsih yxalaG eht - -ni tuptuo loot eht no nottub "oder" eht esu ,wohemos sliaf tpircs eht fI -gub eht xiF .tpircs nekorb htiw etelpmoc mrof eht etaercer ot yrotsih ruoy -.taeper ,hsaw ,esniR .niaga etucexe dna - -tpircs ruoy snur taht loot yxalaG wen a ,yllufssecus snur tpircs eht ecnO -dna txet pleh emos ylppus dna noitpo "etareneg" eht tceleS .detareneg eb nac -epytatad yxalaG wen a fo mrof eht ni detareneg eb lliw loot wen ehT .seman -a ot daolpu ot ydaer evihcra na s'ti ,stseggus eman eht sa - *zg.dehsloot* -.yrotisoper loot wen a sa dehSlooT yxalaG - -revres yxalaG lacol yna otni dellatsni eb nac ti ,dehSlooT a ni s'ti ecnO -.ecafretni evitartsinimda revres eht morf - -tpircs eht ,emit hcae - ti nur nac sresu lacol ,dellatsni si loot wen eht ecnO -nesohc tupni eht htiw detucexe eb lliw tliub saw ti nehw deilppus saw taht -eht htiw etareneg uoy sloot eht ,sdrow rehto nI .yrotsih s'resu eht morf -.emit yreve tpircs ruoy nur tub,loot yxalaG rehto yna ekil tsuj nur yrotcaFlooT - -,tuptuo eno ,tupni enO .stnenopmoc wolfkrow rof tcefrep era sloot yrotcaf looT -.selbairav on - -,loot siht fo *rewop emosewa eht tiolpxe ylefas dna ylluf oT* -siht gnillatsni repoleved a eb dluohs uoy ,dehSlooT eht dna yxalaG -na era uoy erehw ecnatsni lacol hctarcs/lanosrep/etavirp a no loot -ees seceip eht lla peek ot teg uoy ,ti kaerb uoy fi ,nehT .resu_nimda -emoH/ikiw/yrotcaflootyxalag/rabuf/gro.tekcubtib//:sptth - -**noitallatsnI** -eht gnisu yltneinevnoc tsom ti llatsni nac uoY .loot yxalaG a si sihT -niaM yxalaG eht dniF .knil "sdehs loot esworb dna hcraeS" evitartsinimda -yrotcafloot eht rof hcraes dna /ude.usp.xb.2g.dehsloot//:sptth ta dehsloot -.ti llatsni ot noitpo eht tceles dna edoc eht weiver dna ti nepO .yrotisoper - -eb ot deen ereh selif yp dna lmx eht ,yaw taht loot eht teg t'nac uoy fI -sloot wen a otni deipoc -yrtne wen a sdeen lmx.fnoc_loot ruoY yrotcafloot/sloot sa hcus yrotceridbus -lmx eht ot gnitniop -::ekil gnihtemos - elif - ->"sredliubloot"=di "sloot gnidliub looT"=eman noitces< ->/"lmx.yrotcaFlooTgr/yrotcafloot"=elif loot< ->noitces/< - -,ereht ydaerla ton fI -:dda esaelp -"yraniB:yranib.sepytatad.yxalag"=epyt "zg.dehsloot"=noisnetxe epytatad< ->/ "eurT"=ssalcbus "pizg-x/trapitlum"=epytemim -.lmx.fnoc_sepyt_atad lacol ruoy ot - - -**noitucexe detcirtseR** - -- sresu nimda yb YLNO elbasu eb neht lliw flesti loot yrotcaf loot ehT -YLNO .thgir s'taht ,seY** ini.igsw_esrevinu ni sresu_nimda ni sDI htiw elpoep -ot dewolla fI .tnemom a rof ti tuoba knihT **loot siht nur nac sresu_nimda -dluow taht gniht ylno eht ,revres yxalaG ruoy no tpircs yrartibra yna nur -ylbaborp dluow atad yxalaG ruoy lla gniyortsed no tneb tnaercsim a edepmi -.slliks lacinhcet etairporppa fo kcal eb - -**seod ti tahW** - -dna R ,nohtyp ni stpircs elpmis rof yrotcaf loot a si sihT -.taht si looc woH .detareneg yllacitamotua era stset lanoitcnuF .yltnerruc lrep - -nac yllanoitpO .yrotsih eht morf tupni eno daer taht stpircs elpmis ot DETIMIL -stuptuo fo rebmun yna tcelloc yllanoitpo dna ,tesatad yrotsih wen eno etirw -- etagivan ot resu eht rof egap xedni LMTH detarenegotua na no sknil otni -nwohs era stuptuo fdp - selif tuptuo dna segami setirw tpircs eht fi lufesu -dna taht os tpircstsohg htiw knurhs era s'fdp detaolb s'R dna slianbmuht sa -.elbaliava eb ot deen kigamegami - -trats os ,loot yxalaG yna ekil decnahne dna detide eb nac sloot detareneG -a ot pu gel suoires a uoy steg tpircs detareneg a ecnis pu dliub dna llams -.eno xelpmoc erom - -**od uoy tahW** - -dna srorre xatnys eht xif uoy ,tpircs ruoy nur dna etsap uoY -erofeb tpircs eht tide dna nottub oder eht esu nac uoY .snur ti yllautneve -.llew ytterp skrow ti - gubed uoy sa ti nurer ot gniyrt - -elbitapmoc dehsloot a etareneg nac uoy ,atad tset emos no skrow tpircs eht ecnO -ni loot yxalaG yranidro na sa nur ot ydaer tpircs ruoy gniniatnoc elif pizg -detamotua ylegral dna efas snaem tahT .dehsloot lacol ruoy no yrotisoper a -.dehsloot ruoy esu ot derugifnoc yxalaG noitcudorp yna ni noitallatsni - -**ytiruceS loot detareneG** - -tsuj s'ti ,loot detareneg a llatsni uoy ecnO -rieht dna yllamron nur tsuj yehT .efas si tpircs eht gnimussa - loot rehtona -.dehsloot efas ecitcarp ,esaelp tub erucesni yllausunu gnihtyna od tonnac resu -.yracs yllaer si ti - eno siht yllaicepsE .loot yna llatsni uoy erofeb edoc eht daeR - -**edoC dneS** - -?esaelp seussi tekcubtib sa emoclew snoitseggus dna sehctaP - -**noitubirttA** - -yrotcaF looT yxalaG ehT :stpircs morf sloot elbasu-er gnitaerC -maeT yxalaG ehT ;nnameiZ kraM ;ipsaK ynotnA ;surazaL ssoR -375stb/scitamrofnioib/3901.01 :iod ;2102 scitamrofnioiB - -fer=epytyek&JWYdwMrWs1hQzcl=yekji?375stb/tnirper/igc/gro.slanruojdrofxo.scitamrofnioib//:ptth - -**gnisneciL** - -0102 surazaL ssoR thgirypoC -moc doirep liam g ta surazal ssor - -.devreser sthgir llA - -LPGL eht rednu desneciL - -**tohsneercs yrotagilbO** - -gnp.looTtpircScimanyd/segami/989ef2308adf/crs/rekamlootyxalag/rabuf/gro.tekcubtib//:ptth diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/test-data/pyrevpos.python --- a/toolfactory/test-data/pyrevpos.python Mon Aug 31 00:20:27 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -# reverse order of text by row -import sys -inp = sys.argv[1] -outp = sys.argv[2] -i = open(inp,'r').readlines() -o = open(outp,'w') -for row in i: - rs = row.rstrip() - rs = list(rs) - rs.reverse() - o.write(''.join(rs)) -o.close() - diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/test-data/test1_log.txt --- a/toolfactory/test-data/test1_log.txt Mon Aug 31 00:20:27 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -## Executing Toolfactory generated command line = python /tmp/pyrevposq5dmcdy1.python /tmp/tmpqrksf8sd/files/5/b/9/dataset_5b952a86-87df-44ad-a415-ea549f3f0cee.dat output2 diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/test-data/toolfactory_pyrevpos_tgz_sample Binary file toolfactory/test-data/toolfactory_pyrevpos_tgz_sample has changed diff -r dcf59d4e4515 -r 68fbdbe35f08 toolfactory/whoosh.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolfactory/whoosh.sh Tue Oct 20 03:20:32 2020 +0000 @@ -0,0 +1,16 @@ +# using the galaxy venv this seems to work +. /galaxy_venv/bin/activate +python scripts/tool_shed/build_ts_whoosh_index.py -c config/tool_shed.yml --config-section tool_shed +# eeesh. /etc/galaxy is where the actual galaxy.yml lives - despite other configs being where they might be expected +# fix tool_shed.yml to 0.0.0.0 and admin email +# add tgz to datatypes :( +# need to source a venv in /export/tool_deps/toolfactorydeps/0.01/fubar/toolfactorydeps/9e9428fe9134/env.sh +# as nothing was done by the setup_virtualenv step apparently. +# gcc and friends for planemo pip installation +# File "/galaxy-central/lib/galaxy/tool_util/verify/interactor.py", line 595, in +# test_user = [user for user in all_users if user["email"] == email][0] +# add local to tool_sheds_conf.xml +# +# +# mercurial > 5.5!! +