Skip to content

Commit

Permalink
tested quitBwb on mac
Browse files Browse the repository at this point in the history
  • Loading branch information
lhhunghimself committed Jan 24, 2024
1 parent 87e2da8 commit 6d3fae5
Show file tree
Hide file tree
Showing 50 changed files with 1,506 additions and 0 deletions.
23 changes: 23 additions & 0 deletions nfcore_star_salmon/nfcore_star_salmon.ows
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" ?><scheme description="" title="nfcore-star-salmon" version="2.0">
<nodes>
<node id="0" name="starAlign" position="(489.0, 178.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWstarAlign.OWstarAlign" title="starAlign" version=""/>
<node id="1" name="starIndex" position="(361.0, 179.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWstarIndex.OWstarIndex" title="starIndex" version=""/>
<node id="2" name="downloadURL" position="(168.0, 159.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWdownloadURL.OWdownloadURL" title="downloadURL" version=""/>
<node id="3" name="S3_download" position="(132.0, 248.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWS3_download.OWS3_download" title="S3_download" version=""/>
<node id="4" name="igv" position="(623.0, 165.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWigv.OWigv" title="igv" version=""/>
<node id="5" name="fastqc" position="(728.0, 157.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWfastqc.OWfastqc" title="fastqc" version=""/>
<node id="6" name="salmon" position="(307.0, 335.0)" project_name="nfcore-star-salmon" qualified_name="nfcore_star_salmon.OWsalmon.OWsalmon" title="Salmon quantify" version=""/>
</nodes>
<links/>
<annotations/>
<thumbnail/>
<node_properties>
<properties format="literal" node_id="0">{'alignEndsProtrude': ['0', 'ConcordantPair'], 'alignEndsType': 'Local', 'alignIntronMax': 0, 'alignIntronMin': 21, 'alignMatesGapMax': 0, 'alignSJDBoverhangMin': 3, 'alignSJoverhangMin': 5, 'alignSJstitchMismatchNmax': 0, 'alignSoftClipAtReferenceEnds': 'Yes', 'alignSplicedMateMapLmin': 0, 'alignSplicedMateMapLminOverLmate': 0.66, 'alignTranscriptsPerReadNmax': 10000, 'alignTranscriptsPerWindowNmax': 100, 'alignWindowsPerReadNmax': 10000, 'apelist': False, 'bamRemoveDuplicatesMate2basesN': 0, 'bamRemoveDuplicatesType': '', 'chimFilter': 'banGenomicN', 'chimJunctionOverhangMin': 20, 'chimOutType': 'SeparateSAMold', 'chimScoreDropMax': 20, 'chimScoreJunctionNonGTAG': -1, 'chimScoreMin': 0, 'chimScoreSeparation': 10, 'chimSegmentMin': 0, 'chimSegmentReadGapMax': 0, 'clip3pAdapterMMp': ['0.1'], 'clip3pAdapterSeq': [], 'clip3pAfterAdapterNbases': ['0'], 'clip3pNbases': ['0'], 'clip5pNbases': ['0'], 'controlAreaVisible': True, 'exportGraphics': False, 'genomeDir': '/data/GenomeDir', 'genomeLoad': 'NoSharedMemory', 'inputConnectionsStore': {}, 'iterate': False, 'iterateSettings': {'iterableAttrs': ['readFilesIn', 'clip3pNbases', 'clip5pNbases', 'clip3pAdapterSeq', 'clip3pAdapterMMp', 'clip3pAfterAdapterNbases', 'alignEndsProtrude']}, 'limitIObufferSize': 150000000, 'limitOutSAMoneReadBytes': 100000, 'multipleSample': False, 'nWorkers': 1, 'optionsChecked': {'apelist': False, 'spelist': False, 'parametersFiles': False, 'sysShell': False, 'runThreadN': False, 'runRNGseed': False, 'readFilesCommand': False, 'readMapNumber': False, 'readMatesLengthsIn': False, 'readNameSeparator': False, 'clip3pNbases': False, 'clip5pNbases': False, 'clip3pAdapterSeq': False, 'clip3pAdapterMMp': False, 'clip3pAfterAdapterNbases': False, 'limitIObufferSize': False, 'limitOutSAMoneReadBytes': False, 'outTmpDir': False, 'outStd': False, 'outReadsUnmapped': False, 'outMultimapperOrder': False, 'outSAMtype': False, 'outSAMmode': False, 'outSAMstrandField': False, 'outSAMattributes': False, 'outSAMattrIHstart': False, 'outSAMunmapped': False, 'outSAMorder': False, 'outSAMprimaryFlag': False, 'outSAMreadID': False, 'outSAMmapqUnique': False, 'outSAMflagOR': False, 'outSAMflagAND': False, 'outSAMattrRGline': False, 'outSAMheaderHD': False, 'outSAMheaderPG': False, 'outSAMheaderCommentFile': False, 'outSAMfilter': False, 'outSAMmultNmax': False, 'outBAMcompression': False, 'outBAMsortingThreadN': False, 'bamRemoveDuplicatesType': False, 'bamRemoveDuplicatesMate2basesN': False, 'outWigType': False, 'outWigStrand': False, 'outWigReferencesPrefix': False, 'outWigNorm': False, 'outFilterType': False, 'outFilterMultimapScoreRange': False, 'outFilterMultimapNmax': False, 'outFilterMismatchNmax': False, 'outFilterMismatchNoverLmax ': False, 'outFilterMismatchNoverReadLmax': False, 'outFilterScoreMin': False, 'outFilterScoreMinOverLread': False, 'outFilterMatchNmin': False, 'outFilterMatchNminOverLread': False, 'outFilterIntronMotifs': False, 'scoreGap': False, 'scoreGapNoncan': False, 'scoreGapGCAG': False, 'scoreGapATAC': False, 'scoreGenomicLengthLog2scale': False, 'scoreDelOpen': False, 'scoreDelBase': False, 'scoreInsOpen': False, 'scoreInsBase': False, 'scoreStitchSJshift': False, 'seedSearchStartLmax': False, 'seedSearchStartLmaxOverLread': False, 'seedSearchLmax': False, 'seedMultimapNmax': False, 'seedPerReadNmax': False, 'seedPerWindowNmax': False, 'seedNoneLociPerWindow': False, 'alignIntronMin': False, 'alignIntronMax': False, 'alignMatesGapMax': False, 'alignSJoverhangMin': False, 'alignSJstitchMismatchNmax': False, 'alignSJDBoverhangMin': False, 'alignSplicedMateMapLmin': False, 'alignSplicedMateMapLminOverLmate': False, 'alignWindowsPerReadNmax': False, 'alignTranscriptsPerWindowNmax': False, 'alignTranscriptsPerReadNmax': False, 'alignEndsType': False, 'alignEndsProtrude': False, 'alignSoftClipAtReferenceEnds': False, 'winAnchorMultimapNmax': False, 'winBinNbits': False, 'winAnchorDistNbins': False, 'winFlankNbins': False, 'winReadCoverageRelativeMin': False, 'winReadCoverageBasesMin': False, 'chimOutType': False, 'chimSegmentMin': False, 'chimScoreMin': False, 'chimScoreDropMax': False, 'chimScoreSeparation': False, 'chimScoreJunctionNonGTAG': False, 'chimJunctionOverhangMin': False, 'chimSegmentReadGapMax': False, 'chimFilter': False, 'quantMode': False, 'quantTranscriptomeBAMcompression': False, 'quantTranscriptomeBan': False, 'twopassMode': False, 'twopass1readsN ': False, 'genomeLoad': False, 'outputFilePrefix': False, 'multipleSample': False}, 'outBAMcompression': 1, 'outBAMsortingThreadN': 0, 'outFilterIntronMotifs': '', 'outFilterMatchNmin': 0, 'outFilterMatchNminOverLread': 0.66, 'outFilterMismatchNmax': 10, 'outFilterMismatchNoverLmax': 0.3, 'outFilterMismatchNoverReadLmax': 1.0, 'outFilterMultimapNmax': 10, 'outFilterMultimapScoreRange': 1, 'outFilterScoreMin': 0, 'outFilterScoreMinOverLread': 0.66, 'outFilterType': 'Normal', 'outMultimapperOrder': 'Old_2.4', 'outReadsUnmapped': '', 'outSAMattrIHstart': 1, 'outSAMattrRGline': '', 'outSAMattributes': 'Standard', 'outSAMfilter': '', 'outSAMflagAND': 65535, 'outSAMflagOR': 0, 'outSAMheaderCommentFile': '', 'outSAMheaderHD': '', 'outSAMheaderPG': '', 'outSAMmapqUnique': 255, 'outSAMmode': 'Full', 'outSAMmultNmax': -1, 'outSAMorder': 'Paired', 'outSAMprimaryFlag': 'OneBestScore', 'outSAMreadID': 'Standard', 'outSAMstrandField': '', 'outSAMtype': 'SAM', 'outSAMunmapped': '', 'outStd': 'Log', 'outTmpDir': '', 'outWigNorm': 'RPM', 'outWigReferencesPrefix': '', 'outWigStrand': 'Stranded', 'outWigType': '', 'outputDir': '', 'outputFilePrefix': '', 'parametersFiles': '', 'quantMode': '', 'quantTranscriptomeBAMcompression': 1, 'quantTranscriptomeBan': 'IndelSoftclipSingleend', 'readFilesCommand': '', 'readFilesIn': [], 'readMapNumber': -1, 'readMatesLengthsIn': 'NotEqual', 'readNameSeparator': '/', 'runMode': 0, 'runRNGseed': 777, 'runThreadN': 1, 'runTriggers': [], 'savedWidgetGeometry': None, 'scoreDelBase': -2, 'scoreDelOpen': -2, 'scoreGap': 0, 'scoreGapATAC': -8, 'scoreGapGCAG': -4, 'scoreGapNoncan': -8, 'scoreGenomicLengthLog2scale': -0.25, 'scoreInsBase': -2, 'scoreInsOpen': -2, 'scoreStitchSJshift': 1, 'seedMultimapNmax': 10000, 'seedNoneLociPerWindow': 10, 'seedPerReadNmax': 1000, 'seedPerWindowNmax': 50, 'seedSearchLmax': 0, 'seedSearchStartLmax': 50, 'seedSearchStartLmaxOverLread': 1.0, 'spelist': False, 'sysShell': '/bin/sh', 'triggerReady': {}, 'twopass1readsN': -1, 'twopassMode': '', 'useGpu': False, 'useScheduler': False, 'winAnchorDistNbins': 9, 'winAnchorMultimapNmax': 50, 'winBinNbits': 16, 'winFlankNbins': 4, 'winReadCoverageBasesMin': 0, 'winReadCoverageRelativeMin': 0.5, '__version__': 1}</properties>
<properties format="literal" node_id="1">{'controlAreaVisible': True, 'exportGraphics': False, 'genomeChrBinNbits': '18', 'genomeDir': '', 'genomeFastaFiles': [], 'genomeSAindexNbases': 14, 'genomeSAsparseD': 1, 'genomeSuffixLengthMax': -1, 'inputConnectionsStore': {}, 'iterate': False, 'iterateSettings': {'iterableAttrs': ['genomeFastaFiles', 'sjdbFileChrStartEnd ']}, 'nWorkers': 1, 'optionsChecked': {'genomeChrBinNbits': False, 'genomeSAindexNbases': False, 'genomeSAsparseD': False, 'genomeSuffixLengthMax': False, 'runThreadN': False, 'sjdbGTFfile': False, 'sjdbFileChrStartEnd ': False, 'sjdbGTFchrPrefix ': False, 'sjdbGTFfeatureExon': False, 'sjdbGTFtagExonParentTranscript': False, 'sjdbGTFtagExonParentGene': False, 'sjdbOverhang': False, 'sjdbScore': False, 'sjdbInsertSave ': False}, 'rmode': 'genomeGenerate', 'runMode': 0, 'runThreadN': 1, 'runTriggers': [], 'savedWidgetGeometry': None, 'sjdbFileChrStartEnd': [], 'sjdbGTFchrPrefix': 'chr', 'sjdbGTFfeatureExon': 'exon', 'sjdbGTFfile': '', 'sjdbGTFtagExonParentGene': 'gene_id', 'sjdbGTFtagExonParentTranscript': 'transcript_id', 'sjdbInsertSave': 'Basic', 'sjdbOverhang': 100, 'sjdbScore': 2, 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
<properties format="literal" node_id="2">{'URL': [], 'concatenateFile': '', 'controlAreaVisible': True, 'decompress': True, 'directory': '', 'exportGraphics': False, 'inputConnectionsStore': {}, 'iterate': False, 'iterateSettings': {'iterableAttrs': ['URL']}, 'nWorkers': 1, 'optionsChecked': {'decompress': False, 'concatenateFile': False}, 'runMode': 0, 'runTriggers': [], 'savedWidgetGeometry': None, 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
<properties format="literal" node_id="3">{'awsdir': '/data/.aws', 'bucket': 'myBucket', 'controlAreaVisible': True, 'dirs': [], 'downloadDir': '/data', 'exportGraphics': False, 'inputConnectionsStore': {}, 'iterate': False, 'iterateSettings': {'iterableAttrs': ['dirs']}, 'key': '', 'nWorkers': 1, 'nthreads': 0, 'optionsChecked': {'nthreads': False, 'key': False, 'secret': False, 'region': False}, 'region': 'us-east-2', 'runMode': 0, 'runTriggers': [], 'savedWidgetGeometry': None, 'secret': '', 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
<properties format="literal" node_id="4">{'autoDetermineRegions': True, 'batch': '', 'controlAreaVisible': True, 'exportGraphics': False, 'genome': 'hg38', 'inputConnectionsStore': {}, 'inputFile': [], 'iterate': False, 'iterateSettings': {'iterableAttrs': ['inputFile']}, 'nWorkers': 1, 'optionsChecked': {'genome': False, 'batch': False, 'autoDetermineRegions': False}, 'runMode': 0, 'runTriggers': [], 'savedWidgetGeometry': None, 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
<properties format="literal" node_id="5">{'controlAreaVisible': True, 'exportGraphics': False, 'inputConnectionsStore': {}, 'inputDir': '', 'inputFiles': [], 'iterate': False, 'iterateSettings': {'iterableAttrs': ['inputFiles']}, 'nWorkers': 1, 'optionsChecked': {'inputFiles': False, 'outputDir': False, 'inputDir': False}, 'outputDir': '', 'runMode': 0, 'runTriggers': [], 'savedWidgetGeometry': None, 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
<properties format="literal" node_id="6">{'command': 'quant', 'controlAreaVisible': True, 'exportGraphics': False, 'inputConnectionsStore': {}, 'iterate': False, 'iterateSettings': {'iterableAttrs': [], 'nWorkers': 1}, 'nWorkers': 1, 'optionsChecked': {'File': False}, 'runMode': 0, 'runTriggers': [], 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x7f\x00\x00\x04\x19\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x07\x7f\x00\x00\x04\x16\x00\x00\x00\x00\x02\x00\x00\x00\x07\x80', 'triggerReady': {}, 'useGpu': False, 'useScheduler': False, '__version__': 1}</properties>
</node_properties>
</scheme>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM python:3.8.0-alpine3.10
ARG CLI_VERSION=1.16.272
RUN apk upgrade && apk add --no-cache nano bash zip jq
RUN pip install --upgrade pip && pip install --no-cache-dir awscli==$CLI_VERSION && \
mkdir /root/.aws
COPY download.sh /usr/local/bin/download.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
#!/bin/bash

awsdir=$1
bucket=$2
outputDir=$3

error=0
mkdir -p outputDir
cp -r $awsdir/* /root/.aws || exit 1

copy_wildcard(){
echo "parsing wildcards in $1"
local my_str=$1
local max_attempts=4
#if there is no / then we search from the base bucket
local my_glob=""
local wildcard=$my_str
if [[ $glob == */* ]]; then
#split into a glob (directory) and wildcard string
no_wc="${my_str%%['!'@#\$%^\&*()+]*}"
my_glob="${no_wc%/*}"/
wildcard="${my_str#$my_glob}"
fi
local command=(nice aws s3 cp --exclude "*" --include="$wildcard" --recursive s3://$bucket/$my_glob $outputDir)
local attempts
for attempts in {1..$max_attempts}; do
echo "${command[@]}"
if "${command[@]}" ; then
return
fi
done
echo "error in ${command[@]}"
exit 1

}

copy_directory(){
echo "copying directory object $1"
local attempts
local max_attempts=2
local command=(nice aws s3 cp --recursive s3://$bucket/$1 $outputDir/$dest)
for attempts in {1..$max_attempts}; do
echo "${command[@]}"
if "${command[@]}" ; then
return
fi
done
echo "error in ${command[@]}"
exit 1

}

copy_file(){
echo "copying file object $1"
destination=basename $1
local attempts
local max_attempts=2
local command=(nice aws s3 cp s3://$bucket/$1 $outputDir/$dest)
for attempts in {1..$max_attempts}; do
echo "${command[@]}"
if "${command[@]}" ; then
return
fi
done
echo "error in ${command[@]}"
exit 1
}

copy(){
local my_glob=$1
echo "$my_glob"
if [[ $my_glob == *['!'@#\$%^\&*()+]* ]]; then
copy_wildcard $my_glob || error=1
elif [ "${my_glob: -1}" == "/" ]; then
copy_directory $my_glob || error=1
else
copy_file $my_glob || error=1
fi
}

multiCopy(){
lasti=$((${#globs[@]} - 1))
for i in $(seq 0 ${lasti}); do
if ( mkdir $lockDir/lock$i 2> /dev/null ); then
glob=${globs[i]}
echo "thread $1 copying $glob"
copy $glob
fi
done
}
if [ -z $DIRS ] || [ "$DIRS" == "[]" ]; then
echo "no bucket object given to download"
exit 1
fi
globs=( $(echo $DIRS | jq -r '.[]') )

if [ -z $nThreads ] || (( $nThreads == 1 )) || (( $nThreads == 0 )); then
#use single thread
echo "Using single thread"
for glob in "${globs[@]}"; do
copy $glob
done
else
lockDir=/tmp/locks.$$
mkdir -p $lockDir
for i in $(seq 2 $nThreads); do
multiCopy $i &
done
multiCopy 1 &
wait
rm -rf $lockDir
fi
exit $error
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"autoMap": null, "buildCommand": null, "command": null, "description": null, "docker_image_name": null, "docker_image_tag": null, "icon": null, "inputs": null, "name": "S3_upload", "outputs": null, "parameters": null, "priority": null, "volumes": null, "runDockerMap": null}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name": "S3_download", "description": "Enter and output a file", "docker_image_name": "biodepot/s3download", "docker_image_tag": "1.16.272__python_3.8.0__alpine-3.10__e2962454", "priority": "10", "icon": null, "inputs": {"py/reduce": [{"py/type": "collections.OrderedDict"}, {"py/tuple": []}, null, null, {"py/tuple": [{"py/tuple": ["Trigger", {"callback": null, "type": {"py/type": "builtins.str"}}]}, {"py/tuple": ["awsdir", {"callback": null, "type": {"py/type": "builtins.str"}}]}, {"py/tuple": ["bucket", {"callback": null, "type": {"py/type": "builtins.str"}}]}, {"py/tuple": ["downloadDir", {"callback": null, "type": {"py/type": "builtins.str"}}]}]}]}, "outputs": {"py/reduce": [{"py/type": "collections.OrderedDict"}, {"py/tuple": []}, null, null, {"py/tuple": [{"py/tuple": ["downloadDir", {"default": null, "type": {"py/type": "builtins.str"}}]}]}]}, "volumes": null, "ports": null, "parameters": {"py/reduce": [{"py/type": "collections.OrderedDict"}, {"py/tuple": []}, null, null, {"py/tuple": [{"py/tuple": ["awsdir", {"default": "/data/.aws", "flag": null, "argument": true, "label": "AWS directory", "type": "directory"}]}, {"py/tuple": ["bucket", {"default": "myBucket", "flag": null, "argument": true, "label": "S3 bucket", "type": "str"}]}, {"py/tuple": ["downloadDir", {"default": "/data", "flag": null, "argument": true, "label": "Directory to download to", "type": "directory"}]}, {"py/tuple": ["dirs", {"flag": null, "label": "S3 objects to download", "type": "text list", "env": "DIRS"}]}, {"py/tuple": ["nthreads", {"flag": null, "label": "Number of Threads", "type": "int", "env": "nThreads"}]}, {"py/tuple": ["key", {"flag": null, "label": "AWS Access key", "type": "str", "env": "AWS_ACCESS_KEY_ID"}]}, {"py/tuple": ["secret", {"flag": null, "label": "AWS Secret", "type": "str", "env": "AWS_SECRET_ACCESS_KEY"}]}, {"py/tuple": ["region", {"default": "us-east-2", "flag": null, "label": "Region", "type": "str", "env": "AWS_DEFAULT_REGION"}]}]}]}, "command": ["download.sh"], "autoMap": true, "runDockerMap": null, "persistentSettings": "all", "requiredParameters": ["awsdir", "bucket", "downloadDir", "dirs"]}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import os
import glob
import sys
import functools
import jsonpickle
from collections import OrderedDict
from Orange.widgets import widget, gui, settings
import Orange.data
from Orange.data.io import FileFormat
from DockerClient import DockerClient
from BwBase import OWBwBWidget, ConnectionDict, BwbGuiElements, getIconName, getJsonName
from PyQt5 import QtWidgets, QtGui

class OWS3_download(OWBwBWidget):
name = "S3_download"
description = "Enter and output a file"
priority = 10
icon = getIconName(__file__,"downloadS3.png")
want_main_area = False
docker_image_name = "biodepot/s3download"
docker_image_tag = "1.16.272__python_3.8.0__alpine-3.10__e2962454"
inputs = [("Trigger",str,"handleInputsTrigger"),("awsdir",str,"handleInputsawsdir"),("bucket",str,"handleInputsbucket"),("downloadDir",str,"handleInputsdownloadDir")]
outputs = [("downloadDir",str)]
pset=functools.partial(settings.Setting,schema_only=True)
runMode=pset(0)
exportGraphics=pset(False)
runTriggers=pset([])
triggerReady=pset({})
inputConnectionsStore=pset({})
optionsChecked=pset({})
awsdir=pset("/data/.aws")
bucket=pset("myBucket")
downloadDir=pset("/data")
dirs=pset([])
nthreads=pset(None)
key=pset(None)
secret=pset(None)
region=pset("us-east-2")
def __init__(self):
super().__init__(self.docker_image_name, self.docker_image_tag)
with open(getJsonName(__file__,"S3_download")) as f:
self.data=jsonpickle.decode(f.read())
f.close()
self.initVolumes()
self.inputConnections = ConnectionDict(self.inputConnectionsStore)
self.drawGUI()
def handleInputsTrigger(self, value, *args):
if args and len(args) > 0:
self.handleInputs("Trigger", value, args[0][0], test=args[0][3])
else:
self.handleInputs("inputFile", value, None, False)
def handleInputsawsdir(self, value, *args):
if args and len(args) > 0:
self.handleInputs("awsdir", value, args[0][0], test=args[0][3])
else:
self.handleInputs("inputFile", value, None, False)
def handleInputsbucket(self, value, *args):
if args and len(args) > 0:
self.handleInputs("bucket", value, args[0][0], test=args[0][3])
else:
self.handleInputs("inputFile", value, None, False)
def handleInputsdownloadDir(self, value, *args):
if args and len(args) > 0:
self.handleInputs("downloadDir", value, args[0][0], test=args[0][3])
else:
self.handleInputs("inputFile", value, None, False)
def handleOutputs(self):
outputValue=None
if hasattr(self,"downloadDir"):
outputValue=getattr(self,"downloadDir")
self.send("downloadDir", outputValue)
Loading

0 comments on commit 6d3fae5

Please sign in to comment.