id = "dxpy" name = "dxpy" homepage = "https://github.com/dnanexus/dx-toolkit" description = "DNAnexus toolkit utilities and platform API bindings for Python" executables = ["dx"] [dotfiles] # https://documentation.dnanexus.com/user/environment-variables documents # ~/.dnanexus_config/environment.json as the dx configuration file; it stores # DX_SECURITY_CONTEXT and therefore can contain the authentication token. paths = [] secret = ["~/.dnanexus_config/environment.json"] [commands] format = 1 label = "DNAnexus dx" description = "Upload local files to a DNAnexus project and download data objects. All other dx commands (run, describe, build and so on) are not covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://documentation.dnanexus.com/user/helpstrings-of-sdk-command-line-utilities" revision = "2026-10-27" evidence = """ usage: dx upload [-h] ... usage: dx download [-h] ... """ [[commands.subcommand]] path = ["upload"] label = "Upload files" description = "Upload local files or directories to the current DNAnexus project and folder." [[commands.subcommand.source]] id = "help" kind = "help" url = "https://documentation.dnanexus.com/user/helpstrings-of-sdk-command-line-utilities" revision = "2026-10-27" evidence = """ usage: dx upload [-h] [--visibility {hidden,visible}] [--property KEY=VALUE] [--type TYPE] [--tag TAG] [--details DETAILS] [-p] [--brief | --verbose] [--env-help] [--path [PATH]] [-r] [--wait] [--no-progress] [--buffer-size WRITE_BUFFER_SIZE] [--singlethread] filename [filename ...] filename Local file or directory to upload ("-" indicates stdin --path, --destination [PATH] DNAnexus path to upload file(s) to (default uses -r, --recursive Upload directories recursively --wait Wait until the file has finished closing --no-progress Do not show a progress bar --tag TAG Tag of the data object; repeat as necessary --type TYPE Type of the data object; repeat as necessary -p, --parents Create any parent folders necessary """ [[commands.subcommand.field]] id = "filename" label = "Local files or directories" type = "path" position = 0 multiple = true min = 1 path = { kind = "any", role = "input", must_exist = true } sources = ["help"] [[commands.subcommand.field]] id = "path" label = "Destination path" description = "DNAnexus path. A trailing slash means a folder; otherwise it is the final name." type = "string" option = ["--path", "--destination"] sources = ["help"] [[commands.subcommand.field]] id = "recursive" label = "Upload directories recursively" type = "boolean" option = ["--recursive", "-r"] sources = ["help"] [[commands.subcommand.field]] id = "parents" label = "Create parent folders" type = "boolean" option = ["--parents", "-p"] sources = ["help"] [[commands.subcommand.field]] id = "tag" label = "Tag" type = "string" option = ["--tag"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "type" label = "Object type" type = "string" option = ["--type"] multiple = true sources = ["help"] [[commands.subcommand.field]] id = "wait" label = "Wait until closed" type = "boolean" option = ["--wait"] sources = ["help"] [[commands.subcommand.field]] id = "no_progress" label = "No progress bar" type = "boolean" option = ["--no-progress"] sources = ["help"] [[commands.subcommand.task]] id = "upload" label = "Upload files" fields = ["filename", "path"] required = ["filename"] [[commands.subcommand.task]] id = "upload_dir" label = "Upload a directory" fields = ["filename", "recursive", "path"] required = ["filename", "recursive"] set = { recursive = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["filename", "path", "recursive", "parents"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["tag", "type", "wait", "no_progress"] [[commands.subcommand]] path = ["download"] label = "Download data" description = "Download files or folders from DNAnexus to the local machine." [[commands.subcommand.source]] id = "help" kind = "help" url = "https://documentation.dnanexus.com/user/helpstrings-of-sdk-command-line-utilities" revision = "2026-10-27" evidence = """ usage: dx download [-h] [--env-help] [-o OUTPUT] [-f] [-r] [-a] [--no-progress] [--lightweight] path [path ...] path Data object ID or name, or folder to download -o, --output OUTPUT Local filename or directory to be used ("-" indicates -f, --overwrite Resume an interupted download if the local and remote -r, --recursive Download folders recursively -a, --all If multiple objects match the input, download all of --no-progress Do not show a progress bar """ [[commands.subcommand.field]] id = "path" label = "Objects or folders" description = "Data object IDs or names, or folders." type = "string" position = 0 multiple = true min = 1 sources = ["help"] [[commands.subcommand.field]] id = "output" label = "Local output" description = "Local filename or directory. Defaults to the object's name on the platform." type = "path" option = ["--output", "-o"] path = { kind = "any", role = "output", must_exist = false } sources = ["help"] [[commands.subcommand.field]] id = "overwrite" label = "Overwrite local file" description = "Resume an interrupted download if signatures match; otherwise overwrite the local file." type = "boolean" option = ["--overwrite", "-f"] effect = "overwrite" sources = ["help"] [[commands.subcommand.field]] id = "recursive" label = "Download folders recursively" type = "boolean" option = ["--recursive", "-r"] sources = ["help"] [[commands.subcommand.field]] id = "all" label = "Download all matches" type = "boolean" option = ["--all", "-a"] sources = ["help"] [[commands.subcommand.field]] id = "no_progress" label = "No progress bar" type = "boolean" option = ["--no-progress"] sources = ["help"] [[commands.subcommand.task]] id = "download" label = "Download objects" fields = ["path", "output"] required = ["path"] [[commands.subcommand.task]] id = "download_folder" label = "Download a folder" fields = ["path", "recursive", "output"] required = ["path", "recursive"] set = { recursive = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["path", "output", "recursive"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["overwrite", "all", "no_progress"]