dxpy 0.398.0__tar.gz → 0.399.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dxpy-0.398.0 → dxpy-0.399.0}/PKG-INFO +4 -1
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/parsers.py +12 -2
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/scripts/dx_app_wizard.py +2 -2
- dxpy-0.399.0/dxpy/toolkit_version.py +1 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/completer.py +206 -96
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/PKG-INFO +4 -1
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/SOURCES.txt +16 -16
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/entry_points.txt +1 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dx_bash_helpers.py +2 -2
- dxpy-0.398.0/dxpy/toolkit_version.py +0 -1
- dxpy-0.398.0/scripts/dx-clone-asset +0 -220
- dxpy-0.398.0/scripts/dx-docker +0 -492
- dxpy-0.398.0/scripts/dx-download-all-inputs +0 -77
- dxpy-0.398.0/scripts/dx-fetch-bundled-depends +0 -44
- dxpy-0.398.0/scripts/dx-generate-dxapp +0 -341
- dxpy-0.398.0/scripts/dx-jobutil-add-output +0 -187
- dxpy-0.398.0/scripts/dx-jobutil-dxlink +0 -29
- dxpy-0.398.0/scripts/dx-jobutil-get-identity-token +0 -69
- dxpy-0.398.0/scripts/dx-jobutil-new-job +0 -104
- dxpy-0.398.0/scripts/dx-jobutil-parse-link +0 -39
- dxpy-0.398.0/scripts/dx-jobutil-report-error +0 -40
- dxpy-0.398.0/scripts/dx-log-stream +0 -69
- dxpy-0.398.0/scripts/dx-mount-all-inputs +0 -77
- dxpy-0.398.0/scripts/dx-notebook-reconnect +0 -41
- dxpy-0.398.0/scripts/dx-print-bash-vars +0 -47
- dxpy-0.398.0/scripts/dx-upload-all-outputs +0 -445
- {dxpy-0.398.0 → dxpy-0.399.0}/MANIFEST.in +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/Readme.md +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/api.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/app_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/app_categories.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/asset_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/cmd_line_options_validator.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/data_transformations.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/dataset.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/json_validation_by_schema.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/schemas/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/schemas/assay_filtering_conditions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/schemas/assay_filtering_json_schemas.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/schemas/input_arguments_validation_schemas.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/vizclient.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/vizserver_filters_from_json_parser.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/apollo/vizserver_payload_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/auth.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/download_all_inputs.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxanalysis.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxapp.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxapp_container_functions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxapplet.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxdatabase.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxdatabase_functions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxdataobject_functions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxfile.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxfile_functions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxglobalworkflow.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxjob.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxproject.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxrecord.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/dxworkflow.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/mount_all_inputs.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/bindings/search.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/cp.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/dataset_utilities.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/download.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/exec_io.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/help_messages.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/org.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/output_handling.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/cli/workflow.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/compat.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging_vep.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_vep.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/cohort_filter_payload.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/column_conditions.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/column_conversion.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/filter_to_payload.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/germline_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/input_validation.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/input_validation_somatic.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/retrieve_allele_schema.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/retrieve_annotation_schema.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/retrieve_bins.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/retrieve_genotype_schema.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/return_columns_allele.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/return_columns_annotation.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/return_columns_genotype.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/return_columns_genotype_only.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dx_extract_utils/somatic_filter_payload.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/dxlog.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/exceptions.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/executable_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/ImageRef.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/ImageRefFactory.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/app_asset_projects_ids_prod.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/app_asset_projects_ids_staging.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/awscli_assets.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/awscli_assets.staging.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/collect_images.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextaur_assets.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextaur_assets.staging.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextflow_assets.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextflow_assets.staging.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextflow_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextflow_templates.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/nextflow/nextflow_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/packages/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/scripts/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/scripts/dx.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/scripts/dx_build_app.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/scripts/dx_build_applet.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/ssh_tunnel_app_support.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/system_requirements.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/bash.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/python.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/Readme.md +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/basic/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/basic/src/code.sh +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/parallelized/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/parallelized/src/code.sh +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/scatter-process-gather/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/bash/scatter-process-gather/src/code.sh +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/nextflow/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/nextflow/src/nextflow.sh +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/basic/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/basic/src/code.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/basic/test/test.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/parallelized/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/parallelized/src/code.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/parallelized/test/test.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/scatter-process-gather/dxapp.json +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/scatter-process-gather/src/code.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/templates/python/scatter-process-gather/test/test.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/templating/utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/__init__.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/batch_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/config.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/describe.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/exec_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/executable_unbuilder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/file_handle.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/file_load_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/genomic_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/job_log_client.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/local_exec_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/pathmatch.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/pretty_print.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/printing.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/resolver.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/spelling_corrector.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/utils/version.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy/workflow_builder.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/dependency_links.txt +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/not-zip-safe +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/requires.txt +6 -6
- {dxpy-0.398.0 → dxpy-0.399.0}/dxpy.egg-info/top_level.txt +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/requirements.txt +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/requirements_setuptools.txt +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/requirements_test.txt +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/setup.cfg +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/setup.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_batch.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_create_cohort.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_describe.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dx-docker.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dx_app_wizard.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dx_completion.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dx_symlink.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxabs.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxasset.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxclient.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxpy.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxpy_utils.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_dxunpack.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_extract_assay.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_extract_dataset.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_extract_expression.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_extract_somatic.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_nextflow.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_nextflow_ImageRef.py +0 -0
- {dxpy-0.398.0 → dxpy-0.399.0}/test/test_nextflow_ImageRefFactory.py +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dxpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.399.0
|
|
4
4
|
Summary: DNAnexus Platform API bindings for Python
|
|
5
5
|
Home-page: https://github.com/dnanexus/dx-toolkit
|
|
6
6
|
Author: Aleksandra Zalcman, Andrey Kislyuk, Anurag Biyani, Geet Duggal, Katherine Lai, Kurt Jensen, Marek Hrvol, Ohad Rodeh, Phil Sung
|
|
7
7
|
Author-email: support@dnanexus.com
|
|
8
8
|
License: Apache Software License
|
|
9
|
+
Platform: UNKNOWN
|
|
9
10
|
Classifier: Environment :: Console
|
|
10
11
|
Classifier: Intended Audience :: Developers
|
|
11
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -124,3 +125,5 @@ We have the following convention for these scripts:
|
|
|
124
125
|
if __name__ == '__main__':
|
|
125
126
|
main()
|
|
126
127
|
```
|
|
128
|
+
|
|
129
|
+
|
|
@@ -313,8 +313,18 @@ class PrintInstanceTypeHelp(argparse.Action):
|
|
|
313
313
|
print()
|
|
314
314
|
print('Available instance types:')
|
|
315
315
|
print()
|
|
316
|
-
print(format_table(InstanceTypesCompleter.
|
|
317
|
-
column_names=list(InstanceTypesCompleter.
|
|
316
|
+
print(format_table(InstanceTypesCompleter.standard_instance_types.values(),
|
|
317
|
+
column_names=list(InstanceTypesCompleter.standard_instance_types.values())[0]._fields))
|
|
318
|
+
print()
|
|
319
|
+
print('GPU instance types:')
|
|
320
|
+
print()
|
|
321
|
+
print(format_table(InstanceTypesCompleter.gpu_instance_types.values(),
|
|
322
|
+
column_names=list(InstanceTypesCompleter.gpu_instance_types.values())[0]._fields))
|
|
323
|
+
print()
|
|
324
|
+
print('FPGA instance types:')
|
|
325
|
+
print()
|
|
326
|
+
print(format_table(InstanceTypesCompleter.fpga_instance_types.values(),
|
|
327
|
+
column_names=list(InstanceTypesCompleter.fpga_instance_types.values())[0]._fields))
|
|
318
328
|
parser.exit(0)
|
|
319
329
|
|
|
320
330
|
instance_type_arg = argparse.ArgumentParser(add_help=False)
|
|
@@ -366,10 +366,10 @@ array:boolean array:int boolean hash string''')
|
|
|
366
366
|
print('')
|
|
367
367
|
print(BOLD('Common AWS instance types:'))
|
|
368
368
|
print(format_table(InstanceTypesCompleter.aws_preferred_instance_types.values(),
|
|
369
|
-
column_names=list(InstanceTypesCompleter.
|
|
369
|
+
column_names=list(InstanceTypesCompleter.aws_preferred_instance_types.values())[0]._fields))
|
|
370
370
|
print(BOLD('Common Azure instance types:'))
|
|
371
371
|
print(format_table(InstanceTypesCompleter.azure_preferred_instance_types.values(),
|
|
372
|
-
column_names=list(InstanceTypesCompleter.
|
|
372
|
+
column_names=list(InstanceTypesCompleter.azure_preferred_instance_types.values())[0]._fields))
|
|
373
373
|
print(fill(BOLD('Default instance type:') + ' The instance type you select here will apply to all entry points in ' +
|
|
374
374
|
'your app unless you override it. See ' +
|
|
375
375
|
BOLD('https://documentation.dnanexus.com/developer/api/running-analyses/instance-types') + ' for more information.'))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '0.399.0'
|
|
@@ -410,111 +410,218 @@ class MultiCompleter():
|
|
|
410
410
|
return None
|
|
411
411
|
|
|
412
412
|
class InstanceTypesCompleter():
|
|
413
|
-
InstanceTypeSpec = namedtuple('InstanceTypeSpec', ('Name', '
|
|
413
|
+
InstanceTypeSpec = namedtuple('InstanceTypeSpec', ('Name', 'CPU_Cores', 'Memory_GiB', 'Storage_GB'))
|
|
414
|
+
GpuInstanceTypeSpec = namedtuple('GpuInstanceTypeSpec', ('Name', 'CPU_Cores', 'Memory_GiB', 'Storage_GB', 'GPU', 'GPU_Memory_GiB'))
|
|
415
|
+
FpgaInstanceTypeSpec = namedtuple('FpgaInstanceTypeSpec', ('Name', 'CPU_Cores', 'Memory_GiB', 'Storage_GB', 'FPGA'))
|
|
414
416
|
|
|
415
417
|
# AWS
|
|
416
418
|
aws_preferred_instance_types = OrderedDict()
|
|
417
|
-
for i in (InstanceTypeSpec('mem1_ssd1_v2_x2', 4.0, 50
|
|
418
|
-
InstanceTypeSpec('mem1_ssd1_v2_x4', 8.0, 100
|
|
419
|
-
InstanceTypeSpec('mem1_ssd1_v2_x8', 16.0, 200
|
|
420
|
-
InstanceTypeSpec('mem1_ssd1_v2_x16', 32.0, 400
|
|
421
|
-
InstanceTypeSpec('mem1_ssd1_v2_x36', 72.0, 900
|
|
422
|
-
InstanceTypeSpec('mem1_ssd1_v2_x72', 144.0, 1800
|
|
423
|
-
|
|
424
|
-
InstanceTypeSpec('
|
|
425
|
-
InstanceTypeSpec('
|
|
426
|
-
InstanceTypeSpec('
|
|
427
|
-
InstanceTypeSpec('
|
|
428
|
-
InstanceTypeSpec('
|
|
429
|
-
InstanceTypeSpec('
|
|
430
|
-
|
|
431
|
-
InstanceTypeSpec('
|
|
432
|
-
|
|
433
|
-
InstanceTypeSpec('
|
|
434
|
-
InstanceTypeSpec('
|
|
435
|
-
InstanceTypeSpec('
|
|
436
|
-
InstanceTypeSpec('
|
|
437
|
-
InstanceTypeSpec('
|
|
438
|
-
InstanceTypeSpec('
|
|
439
|
-
|
|
440
|
-
InstanceTypeSpec('
|
|
441
|
-
|
|
442
|
-
InstanceTypeSpec('
|
|
443
|
-
InstanceTypeSpec('
|
|
444
|
-
InstanceTypeSpec('
|
|
445
|
-
InstanceTypeSpec('
|
|
446
|
-
InstanceTypeSpec('
|
|
447
|
-
InstanceTypeSpec('
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
InstanceTypeSpec('
|
|
451
|
-
|
|
452
|
-
InstanceTypeSpec('
|
|
453
|
-
InstanceTypeSpec('
|
|
454
|
-
InstanceTypeSpec('
|
|
455
|
-
InstanceTypeSpec('
|
|
456
|
-
InstanceTypeSpec('
|
|
457
|
-
|
|
419
|
+
for i in (InstanceTypeSpec('mem1_ssd1_v2_x2', 2, 4.0, 50),
|
|
420
|
+
InstanceTypeSpec('mem1_ssd1_v2_x4', 4, 8.0, 100),
|
|
421
|
+
InstanceTypeSpec('mem1_ssd1_v2_x8', 8, 16.0, 200),
|
|
422
|
+
InstanceTypeSpec('mem1_ssd1_v2_x16', 16, 32.0, 400),
|
|
423
|
+
InstanceTypeSpec('mem1_ssd1_v2_x36', 36, 72.0, 900),
|
|
424
|
+
InstanceTypeSpec('mem1_ssd1_v2_x72', 72, 144.0, 1800),
|
|
425
|
+
|
|
426
|
+
InstanceTypeSpec('mem1_ssd2_v2_x2', 2, 4.0, 160),
|
|
427
|
+
InstanceTypeSpec('mem1_ssd2_v2_x4', 4, 8.0, 320),
|
|
428
|
+
InstanceTypeSpec('mem1_ssd2_v2_x8', 8, 16.0, 640),
|
|
429
|
+
InstanceTypeSpec('mem1_ssd2_v2_x16', 16, 32.0, 1280),
|
|
430
|
+
InstanceTypeSpec('mem1_ssd2_v2_x36', 36, 72.0, 2880),
|
|
431
|
+
InstanceTypeSpec('mem1_ssd2_v2_x72', 72, 144.0, 5760),
|
|
432
|
+
|
|
433
|
+
InstanceTypeSpec('mem2_ssd1_v2_x2', 2, 8.0, 75),
|
|
434
|
+
InstanceTypeSpec('mem2_ssd1_v2_x4', 4, 16.0, 150),
|
|
435
|
+
InstanceTypeSpec('mem2_ssd1_v2_x8', 8, 32.0, 300),
|
|
436
|
+
InstanceTypeSpec('mem2_ssd1_v2_x16', 16, 64.0, 600),
|
|
437
|
+
InstanceTypeSpec('mem2_ssd1_v2_x32', 32, 128.0, 1200),
|
|
438
|
+
InstanceTypeSpec('mem2_ssd1_v2_x48', 48, 144.0, 1800),
|
|
439
|
+
InstanceTypeSpec('mem2_ssd1_v2_x64', 64, 256.0, 2400),
|
|
440
|
+
InstanceTypeSpec('mem2_ssd1_v2_x96', 96, 384.0, 3600),
|
|
441
|
+
|
|
442
|
+
InstanceTypeSpec('mem2_ssd2_v2_x2', 2, 8.0, 160),
|
|
443
|
+
InstanceTypeSpec('mem2_ssd2_v2_x4', 4, 16.0, 320),
|
|
444
|
+
InstanceTypeSpec('mem2_ssd2_v2_x8', 8, 32.0, 640),
|
|
445
|
+
InstanceTypeSpec('mem2_ssd2_v2_x16', 16, 64.0, 1280),
|
|
446
|
+
InstanceTypeSpec('mem2_ssd2_v2_x32', 32, 128.0, 2560),
|
|
447
|
+
InstanceTypeSpec('mem2_ssd2_v2_x48', 48, 192.0, 3840),
|
|
448
|
+
InstanceTypeSpec('mem2_ssd2_v2_x64', 64, 256.0, 5120),
|
|
449
|
+
InstanceTypeSpec('mem2_ssd2_v2_x96', 96, 384.0, 7480),
|
|
450
|
+
|
|
451
|
+
InstanceTypeSpec('mem3_ssd1_v2_x2', 2, 16.0, 75),
|
|
452
|
+
InstanceTypeSpec('mem3_ssd1_v2_x4', 4, 32.0, 150),
|
|
453
|
+
InstanceTypeSpec('mem3_ssd1_v2_x8', 8, 64.0, 300),
|
|
454
|
+
InstanceTypeSpec('mem3_ssd1_v2_x16', 16, 128.0, 600),
|
|
455
|
+
InstanceTypeSpec('mem3_ssd1_v2_x32', 32, 256.0, 1200),
|
|
456
|
+
InstanceTypeSpec('mem3_ssd1_v2_x48', 48, 384.0, 1800),
|
|
457
|
+
InstanceTypeSpec('mem3_ssd1_v2_x64', 64, 512.0, 3200),
|
|
458
|
+
InstanceTypeSpec('mem3_ssd1_v2_x96', 96, 768.0, 3600),
|
|
459
|
+
|
|
460
|
+
InstanceTypeSpec('mem3_ssd2_v2_x2', 2, 15.25, 475),
|
|
461
|
+
InstanceTypeSpec('mem3_ssd2_v2_x4', 4, 30.5, 950),
|
|
462
|
+
InstanceTypeSpec('mem3_ssd2_v2_x8', 8, 61.0, 1900),
|
|
463
|
+
InstanceTypeSpec('mem3_ssd2_v2_x16', 16, 122.0, 3800),
|
|
464
|
+
InstanceTypeSpec('mem3_ssd2_v2_x32', 32, 244.0, 7600),
|
|
465
|
+
InstanceTypeSpec('mem3_ssd2_v2_x64', 64, 488.0, 15200),
|
|
466
|
+
|
|
467
|
+
InstanceTypeSpec('mem3_ssd3_x2', 2, 16.0, 1250),
|
|
468
|
+
InstanceTypeSpec('mem3_ssd3_x4', 4, 32.0, 2500),
|
|
469
|
+
InstanceTypeSpec('mem3_ssd3_x8', 8, 64.0, 5000),
|
|
470
|
+
InstanceTypeSpec('mem3_ssd3_x12', 12, 96.0, 7500),
|
|
471
|
+
InstanceTypeSpec('mem3_ssd3_x24', 24, 192.0, 15000),
|
|
472
|
+
InstanceTypeSpec('mem3_ssd3_x48', 48, 384.0, 30000),
|
|
473
|
+
InstanceTypeSpec('mem3_ssd3_x96', 96, 768.0, 60000),
|
|
474
|
+
|
|
475
|
+
InstanceTypeSpec('mem4_ssd1_x128', 128, 1952.0, 3840)):
|
|
458
476
|
aws_preferred_instance_types[i.Name] = i
|
|
459
477
|
|
|
460
478
|
# Azure
|
|
461
479
|
azure_preferred_instance_types = OrderedDict()
|
|
462
|
-
for i in (InstanceTypeSpec('azure:mem1_ssd1_x2', 3.9, 32
|
|
463
|
-
InstanceTypeSpec('azure:mem1_ssd1_x4', 7.8, 64
|
|
464
|
-
InstanceTypeSpec('azure:mem1_ssd1_x8', 15.7, 128
|
|
465
|
-
InstanceTypeSpec('azure:mem1_ssd1_x16', 31.4, 256
|
|
466
|
-
|
|
467
|
-
InstanceTypeSpec('azure:mem2_ssd1_x1', 3.5, 128
|
|
468
|
-
InstanceTypeSpec('azure:mem2_ssd1_x2', 7.0, 128
|
|
469
|
-
InstanceTypeSpec('azure:mem2_ssd1_x4', 14.0, 128
|
|
470
|
-
InstanceTypeSpec('azure:mem2_ssd1_x8', 28.0, 256
|
|
471
|
-
InstanceTypeSpec('azure:mem2_ssd1_x16', 56.0, 512
|
|
472
|
-
|
|
473
|
-
InstanceTypeSpec('azure:mem3_ssd1_x2', 14.0, 128
|
|
474
|
-
InstanceTypeSpec('azure:mem3_ssd1_x4', 28.0, 128
|
|
475
|
-
InstanceTypeSpec('azure:mem3_ssd1_x8', 56.0, 256
|
|
476
|
-
InstanceTypeSpec('azure:mem3_ssd1_x16', 112.0, 512
|
|
477
|
-
InstanceTypeSpec('azure:mem3_ssd1_x20', 140.0, 640
|
|
478
|
-
|
|
479
|
-
InstanceTypeSpec('azure:mem4_ssd1_x2', 28.0, 128
|
|
480
|
-
InstanceTypeSpec('azure:mem4_ssd1_x4', 56.0, 128
|
|
481
|
-
InstanceTypeSpec('azure:mem4_ssd1_x8', 112.0, 256
|
|
482
|
-
InstanceTypeSpec('azure:mem4_ssd1_x16', 224, 512
|
|
483
|
-
InstanceTypeSpec('azure:mem4_ssd1_x32', 448, 1024,
|
|
480
|
+
for i in (InstanceTypeSpec('azure:mem1_ssd1_x2', 2, 3.9, 32),
|
|
481
|
+
InstanceTypeSpec('azure:mem1_ssd1_x4', 4, 7.8, 64),
|
|
482
|
+
InstanceTypeSpec('azure:mem1_ssd1_x8', 8, 15.7, 128),
|
|
483
|
+
InstanceTypeSpec('azure:mem1_ssd1_x16', 16, 31.4, 256),
|
|
484
|
+
|
|
485
|
+
InstanceTypeSpec('azure:mem2_ssd1_x1', 1, 3.5, 128),
|
|
486
|
+
InstanceTypeSpec('azure:mem2_ssd1_x2', 2, 7.0, 128),
|
|
487
|
+
InstanceTypeSpec('azure:mem2_ssd1_x4', 4, 14.0, 128),
|
|
488
|
+
InstanceTypeSpec('azure:mem2_ssd1_x8', 8, 28.0, 256),
|
|
489
|
+
InstanceTypeSpec('azure:mem2_ssd1_x16', 16, 56.0, 512),
|
|
490
|
+
|
|
491
|
+
InstanceTypeSpec('azure:mem3_ssd1_x2', 2, 14.0, 128),
|
|
492
|
+
InstanceTypeSpec('azure:mem3_ssd1_x4', 4, 28.0, 128),
|
|
493
|
+
InstanceTypeSpec('azure:mem3_ssd1_x8', 8, 56.0, 256),
|
|
494
|
+
InstanceTypeSpec('azure:mem3_ssd1_x16', 16, 112.0, 512),
|
|
495
|
+
InstanceTypeSpec('azure:mem3_ssd1_x20', 20, 140.0, 640),
|
|
496
|
+
|
|
497
|
+
InstanceTypeSpec('azure:mem4_ssd1_x2', 2, 28.0, 128),
|
|
498
|
+
InstanceTypeSpec('azure:mem4_ssd1_x4', 4, 56.0, 128),
|
|
499
|
+
InstanceTypeSpec('azure:mem4_ssd1_x8', 8, 112.0, 256),
|
|
500
|
+
InstanceTypeSpec('azure:mem4_ssd1_x16', 16, 224.0, 512),
|
|
501
|
+
InstanceTypeSpec('azure:mem4_ssd1_x32', 32, 448.0, 1024),
|
|
502
|
+
|
|
503
|
+
InstanceTypeSpec('azure:mem5_ssd2_x64', 64, 1792.0, 8192),
|
|
504
|
+
InstanceTypeSpec('azure:mem5_ssd2_x128', 128, 3892.0, 16384)):
|
|
484
505
|
azure_preferred_instance_types[i.Name] = i
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
506
|
+
|
|
507
|
+
gpu_instance_types = OrderedDict()
|
|
508
|
+
for i in (GpuInstanceTypeSpec('mem2_ssd1_gpu_x16', 16, 64.0, 225, '1 NVIDIA T4', 16.0),
|
|
509
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu_x32', 32, 128.0, 900, '1 NVIDIA T4', 16.0),
|
|
510
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu1_x32', 32, 128.0, 900, '1 NVIDIA T4', 16.0),
|
|
511
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu_x64', 64, 256.0, 900, '1 NVIDIA T4', 16.0),
|
|
512
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu1_x64', 64, 256.0, 900, '1 NVIDIA T4', 16.0),
|
|
513
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu_x48', 48, 192.0, 900, '4 NVIDIA T4', 64.0),
|
|
514
|
+
GpuInstanceTypeSpec('mem2_ssd1_gpu4_x48', 48, 192.0, 900, '4 NVIDIA T4', 64.0),
|
|
515
|
+
|
|
516
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_x4', 4, 16.0, 250, '1 NVIDIA A10G', 24.0),
|
|
517
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_x8', 8, 32.0, 450, '1 NVIDIA A10G', 24.0),
|
|
518
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_x16', 16, 64.0, 600, '1 NVIDIA A10G', 24.0),
|
|
519
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_x32', 32, 128.0, 900, '1 NVIDIA A10G', 24.0),
|
|
520
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_x64', 64, 256.0, 1900, '1 NVIDIA A10G', 24.0),
|
|
521
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu4_x48', 48, 192.0, 3800, '4 NVIDIA A10G', 96.0),
|
|
522
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu4_x96', 96, 384.0, 3800, '4 NVIDIA A10G', 96.0),
|
|
523
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu8_x192', 192, 768.0, 7600, '8 NVIDIA A10G', 192.0),
|
|
524
|
+
|
|
525
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_v2_x4', 4, 16.0, 250, '1 NVIDIA L4', 24.0),
|
|
526
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_v2_x8', 8, 32.0, 450, '1 NVIDIA L4', 24.0),
|
|
527
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_v2_x16', 16, 64.0, 600, '1 NVIDIA L4', 24.0),
|
|
528
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_v2_x32', 32, 128.0, 900, '1 NVIDIA L4', 24.0),
|
|
529
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu1_v2_x64', 64, 256.0, 1880, '1 NVIDIA L4', 24.0),
|
|
530
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu4_v2_x48', 48, 192.0, 3760, '4 NVIDIA L4', 96.0),
|
|
531
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu4_v2_x96', 96, 384.0, 3760, '4 NVIDIA L4', 96.0),
|
|
532
|
+
GpuInstanceTypeSpec('mem2_ssd2_gpu8_v2_x192', 192, 768.0, 7520, '8 NVIDIA L4', 192.0),
|
|
533
|
+
GpuInstanceTypeSpec('mem3_ssd1_gpu1_x16', 16, 128.0, 600, '1 NVIDIA L4', 24.0),
|
|
534
|
+
GpuInstanceTypeSpec('mem3_ssd1_gpu1_x32', 32, 256.0, 900, '1 NVIDIA L4', 24.0),
|
|
535
|
+
|
|
536
|
+
GpuInstanceTypeSpec('mem3_ssd1_gpu_x8', 8, 61.0, 160, '1 NVIDIA V100', 16.0),
|
|
537
|
+
GpuInstanceTypeSpec('mem3_ssd1_gpu_x32', 32, 244.0, 640, '4 NVIDIA V100', 64.0),
|
|
538
|
+
GpuInstanceTypeSpec('mem3_ssd1_gpu_x64', 64, 488.0, 1280, '8 NVIDIA V100', 128.0),
|
|
539
|
+
GpuInstanceTypeSpec('azure:mem3_ssd2_gpu4_x64', 64, 488.0, 2048, '4 NVIDIA V100', 64.0)):
|
|
540
|
+
gpu_instance_types[i.Name] = i
|
|
541
|
+
|
|
542
|
+
fpga_instance_types = OrderedDict()
|
|
543
|
+
for i in (FpgaInstanceTypeSpec('mem3_ssd2_fpga1_x24', 24, 256.0, 940, 1),
|
|
544
|
+
FpgaInstanceTypeSpec('mem3_ssd2_fpga1_x48', 48, 512.0, 1880, 2),
|
|
545
|
+
FpgaInstanceTypeSpec('mem3_ssd2_fpga1_x192', 192, 2048.0, 7520, 8)):
|
|
546
|
+
fpga_instance_types[i.Name] = i
|
|
547
|
+
|
|
548
|
+
aws_other_instance_types = OrderedDict()
|
|
549
|
+
for i in (InstanceTypeSpec('mem1_ssd1_x2', 2, 3.8, 32),
|
|
550
|
+
InstanceTypeSpec('mem1_ssd1_x4', 4, 7.5, 80),
|
|
551
|
+
InstanceTypeSpec('mem1_ssd1_x8', 8, 15.0, 160),
|
|
552
|
+
InstanceTypeSpec('mem1_ssd1_x16', 16, 30.0, 320),
|
|
553
|
+
InstanceTypeSpec('mem1_ssd1_x32', 32, 60.0, 640),
|
|
554
|
+
|
|
555
|
+
InstanceTypeSpec('mem1_ssd2_x2', 2, 3.8, 160),
|
|
556
|
+
InstanceTypeSpec('mem1_ssd2_x4', 4, 7.5, 320),
|
|
557
|
+
InstanceTypeSpec('mem1_ssd2_x8', 8, 15.0, 640),
|
|
558
|
+
InstanceTypeSpec('mem1_ssd2_x16', 16, 30.0, 1280),
|
|
559
|
+
InstanceTypeSpec('mem1_ssd2_x36', 36, 60.0, 2880),
|
|
560
|
+
|
|
561
|
+
InstanceTypeSpec('mem2_ssd1_x2', 2, 7.5, 32),
|
|
562
|
+
InstanceTypeSpec('mem2_ssd1_x4', 4, 15.0, 80),
|
|
563
|
+
InstanceTypeSpec('mem2_ssd1_x8', 8, 30.0, 160),
|
|
564
|
+
|
|
565
|
+
InstanceTypeSpec('mem2_ssd2_x2', 2, 8.0, 160),
|
|
566
|
+
InstanceTypeSpec('mem2_ssd2_x4', 4, 16.0, 320),
|
|
567
|
+
InstanceTypeSpec('mem2_ssd2_x8', 8, 32.0, 1280),
|
|
568
|
+
InstanceTypeSpec('mem2_ssd2_x16', 16, 64.0, 2560),
|
|
569
|
+
InstanceTypeSpec('mem2_ssd2_x40', 40, 160.0, 3200),
|
|
570
|
+
InstanceTypeSpec('mem2_ssd2_x64', 64, 256.0, 5120),
|
|
571
|
+
|
|
572
|
+
InstanceTypeSpec('mem3_ssd1_x2', 2, 15.0, 32),
|
|
573
|
+
InstanceTypeSpec('mem3_ssd1_x4', 4, 30.5, 80),
|
|
574
|
+
InstanceTypeSpec('mem3_ssd1_x8', 8, 61.0, 160),
|
|
575
|
+
InstanceTypeSpec('mem3_ssd1_x16', 16, 122.0, 320),
|
|
576
|
+
InstanceTypeSpec('mem3_ssd1_x32', 32, 244.0, 640),
|
|
577
|
+
|
|
578
|
+
InstanceTypeSpec('mem3_ssd2_x4', 4, 30.5, 800),
|
|
579
|
+
InstanceTypeSpec('mem3_ssd2_x8', 8, 61.0, 1600),
|
|
580
|
+
InstanceTypeSpec('mem3_ssd2_x16', 16, 122.0, 3200),
|
|
581
|
+
InstanceTypeSpec('mem3_ssd2_x32', 32, 244.0, 6400),
|
|
582
|
+
|
|
583
|
+
InstanceTypeSpec('mem1_hdd1_x2', 2, 3.75, 200),
|
|
584
|
+
InstanceTypeSpec('mem1_hdd1_x4', 4, 7.5, 400),
|
|
585
|
+
InstanceTypeSpec('mem1_hdd1_x8', 8, 15.0, 800),
|
|
586
|
+
InstanceTypeSpec('mem1_hdd1_x16', 16, 30.0, 1600),
|
|
587
|
+
InstanceTypeSpec('mem1_hdd1_x36', 36, 60.0, 3200),
|
|
588
|
+
|
|
589
|
+
InstanceTypeSpec('mem1_hdd1_v2_x2', 2, 4.0, 200),
|
|
590
|
+
InstanceTypeSpec('mem1_hdd1_v2_x4', 4, 8.0, 400),
|
|
591
|
+
InstanceTypeSpec('mem1_hdd1_v2_x8', 8, 16.0, 800),
|
|
592
|
+
InstanceTypeSpec('mem1_hdd1_v2_x16', 16, 32.0, 1600),
|
|
593
|
+
InstanceTypeSpec('mem1_hdd1_v2_x36', 36, 72.0, 3600),
|
|
594
|
+
InstanceTypeSpec('mem1_hdd1_v2_x72', 72, 144.0, 7200),
|
|
595
|
+
InstanceTypeSpec('mem1_hdd1_v2_x96', 96, 192.0, 9600),
|
|
596
|
+
|
|
597
|
+
InstanceTypeSpec('mem1_hdd2_x1', 1, 1.7, 160),
|
|
598
|
+
InstanceTypeSpec('mem1_hdd2_x8', 8, 7.0, 1680),
|
|
599
|
+
InstanceTypeSpec('mem1_hdd2_x32', 32, 60.5, 3360),
|
|
600
|
+
|
|
601
|
+
InstanceTypeSpec('mem2_hdd2_x1', 1, 3.8, 410),
|
|
602
|
+
InstanceTypeSpec('mem2_hdd2_x2', 2, 7.5, 840),
|
|
603
|
+
InstanceTypeSpec('mem2_hdd2_x4', 4, 15.0, 1680),
|
|
604
|
+
|
|
605
|
+
InstanceTypeSpec('mem2_hdd2_v2_x2', 2, 8.0, 1000),
|
|
606
|
+
InstanceTypeSpec('mem2_hdd2_v2_x4', 4, 16.0, 2000),
|
|
607
|
+
|
|
608
|
+
InstanceTypeSpec('mem3_hdd2_v2_x2', 2, 16.0, 500),
|
|
609
|
+
InstanceTypeSpec('mem3_hdd2_v2_x4', 4, 32.0, 1000),
|
|
610
|
+
InstanceTypeSpec('mem3_hdd2_v2_x8', 8, 64.0, 2000)):
|
|
611
|
+
aws_other_instance_types[i.Name] = i
|
|
612
|
+
|
|
517
613
|
default_instance_type = aws_preferred_instance_types['mem1_ssd1_v2_x4']
|
|
614
|
+
|
|
615
|
+
standard_instance_types = OrderedDict()
|
|
616
|
+
standard_instance_types.update(aws_preferred_instance_types)
|
|
617
|
+
standard_instance_types.update(azure_preferred_instance_types)
|
|
618
|
+
standard_instance_types.update(aws_other_instance_types)
|
|
619
|
+
|
|
620
|
+
instance_types = OrderedDict()
|
|
621
|
+
instance_types.update(standard_instance_types)
|
|
622
|
+
instance_types.update(gpu_instance_types)
|
|
623
|
+
instance_types.update(fpga_instance_types)
|
|
624
|
+
|
|
518
625
|
instance_type_names = instance_types.keys()
|
|
519
626
|
|
|
520
627
|
def complete(self, text, state):
|
|
@@ -522,3 +629,6 @@ class InstanceTypesCompleter():
|
|
|
522
629
|
return self.instance_type_names[state]
|
|
523
630
|
except IndexError:
|
|
524
631
|
return None
|
|
632
|
+
|
|
633
|
+
def __call__(self, prefix, parsed_args, **kwargs):
|
|
634
|
+
return [name for name in self.instance_type_names if name.startswith(prefix)]
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dxpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.399.0
|
|
4
4
|
Summary: DNAnexus Platform API bindings for Python
|
|
5
5
|
Home-page: https://github.com/dnanexus/dx-toolkit
|
|
6
6
|
Author: Aleksandra Zalcman, Andrey Kislyuk, Anurag Biyani, Geet Duggal, Katherine Lai, Kurt Jensen, Marek Hrvol, Ohad Rodeh, Phil Sung
|
|
7
7
|
Author-email: support@dnanexus.com
|
|
8
8
|
License: Apache Software License
|
|
9
|
+
Platform: UNKNOWN
|
|
9
10
|
Classifier: Environment :: Console
|
|
10
11
|
Classifier: Intended Audience :: Developers
|
|
11
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -124,3 +125,5 @@ We have the following convention for these scripts:
|
|
|
124
125
|
if __name__ == '__main__':
|
|
125
126
|
main()
|
|
126
127
|
```
|
|
128
|
+
|
|
129
|
+
|
|
@@ -5,6 +5,22 @@ requirements_setuptools.txt
|
|
|
5
5
|
requirements_test.txt
|
|
6
6
|
setup.cfg
|
|
7
7
|
setup.py
|
|
8
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-clone-asset
|
|
9
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-docker
|
|
10
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-download-all-inputs
|
|
11
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-fetch-bundled-depends
|
|
12
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-generate-dxapp
|
|
13
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-add-output
|
|
14
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-dxlink
|
|
15
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-get-identity-token
|
|
16
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-new-job
|
|
17
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-parse-link
|
|
18
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-jobutil-report-error
|
|
19
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-log-stream
|
|
20
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-mount-all-inputs
|
|
21
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-notebook-reconnect
|
|
22
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-print-bash-vars
|
|
23
|
+
/home/kjensen/dx-toolkit/src/python/scripts/dx-upload-all-outputs
|
|
8
24
|
dxpy/__init__.py
|
|
9
25
|
dxpy/api.py
|
|
10
26
|
dxpy/app_builder.py
|
|
@@ -148,22 +164,6 @@ dxpy/utils/printing.py
|
|
|
148
164
|
dxpy/utils/resolver.py
|
|
149
165
|
dxpy/utils/spelling_corrector.py
|
|
150
166
|
dxpy/utils/version.py
|
|
151
|
-
scripts/dx-clone-asset
|
|
152
|
-
scripts/dx-docker
|
|
153
|
-
scripts/dx-download-all-inputs
|
|
154
|
-
scripts/dx-fetch-bundled-depends
|
|
155
|
-
scripts/dx-generate-dxapp
|
|
156
|
-
scripts/dx-jobutil-add-output
|
|
157
|
-
scripts/dx-jobutil-dxlink
|
|
158
|
-
scripts/dx-jobutil-get-identity-token
|
|
159
|
-
scripts/dx-jobutil-new-job
|
|
160
|
-
scripts/dx-jobutil-parse-link
|
|
161
|
-
scripts/dx-jobutil-report-error
|
|
162
|
-
scripts/dx-log-stream
|
|
163
|
-
scripts/dx-mount-all-inputs
|
|
164
|
-
scripts/dx-notebook-reconnect
|
|
165
|
-
scripts/dx-print-bash-vars
|
|
166
|
-
scripts/dx-upload-all-outputs
|
|
167
167
|
test/test_batch.py
|
|
168
168
|
test/test_create_cohort.py
|
|
169
169
|
test/test_describe.py
|
|
@@ -992,12 +992,12 @@ class TestDXBashHelperMethods(unittest.TestCase):
|
|
|
992
992
|
max_threads = 8
|
|
993
993
|
for inst in instance_types.values():
|
|
994
994
|
num_threads = _get_num_parallel_threads(
|
|
995
|
-
max_threads, inst.CPU_Cores, inst.
|
|
995
|
+
max_threads, inst.CPU_Cores, inst.Memory_GiB * 1024
|
|
996
996
|
)
|
|
997
997
|
self.assertTrue(num_threads >= 1 and num_threads <= max_threads)
|
|
998
998
|
self.assertTrue(num_threads <= inst.CPU_Cores)
|
|
999
999
|
self.assertTrue(
|
|
1000
|
-
num_threads * 1200 <= inst.
|
|
1000
|
+
num_threads * 1200 <= inst.Memory_GiB * 1024 or num_threads == 1
|
|
1001
1001
|
)
|
|
1002
1002
|
|
|
1003
1003
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = '0.398.0'
|