dxpy 0.398.0__tar.gz → 0.399.1__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.
Files changed (189) hide show
  1. {dxpy-0.398.0 → dxpy-0.399.1}/MANIFEST.in +1 -0
  2. {dxpy-0.398.0 → dxpy-0.399.1}/PKG-INFO +14 -1
  3. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/parsers.py +12 -2
  4. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/scripts/dx_app_wizard.py +2 -2
  5. dxpy-0.399.1/dxpy/toolkit_version.py +1 -0
  6. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/completer.py +206 -96
  7. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/PKG-INFO +14 -1
  8. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/SOURCES.txt +16 -0
  9. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dx_bash_helpers.py +2 -2
  10. dxpy-0.398.0/dxpy/toolkit_version.py +0 -1
  11. {dxpy-0.398.0 → dxpy-0.399.1}/Readme.md +0 -0
  12. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/__init__.py +0 -0
  13. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/api.py +0 -0
  14. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/app_builder.py +0 -0
  15. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/app_categories.py +0 -0
  16. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/asset_builder.py +0 -0
  17. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/__init__.py +0 -0
  18. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/__init__.py +0 -0
  19. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/cmd_line_options_validator.py +0 -0
  20. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/data_transformations.py +0 -0
  21. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/dataset.py +0 -0
  22. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/json_validation_by_schema.py +0 -0
  23. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/schemas/__init__.py +0 -0
  24. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/schemas/assay_filtering_conditions.py +0 -0
  25. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/schemas/assay_filtering_json_schemas.py +0 -0
  26. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/schemas/input_arguments_validation_schemas.py +0 -0
  27. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/vizclient.py +0 -0
  28. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/vizserver_filters_from_json_parser.py +0 -0
  29. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/apollo/vizserver_payload_builder.py +0 -0
  30. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/auth.py +0 -0
  31. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/download_all_inputs.py +0 -0
  32. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxanalysis.py +0 -0
  33. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxapp.py +0 -0
  34. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxapp_container_functions.py +0 -0
  35. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxapplet.py +0 -0
  36. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxdatabase.py +0 -0
  37. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxdatabase_functions.py +0 -0
  38. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxdataobject_functions.py +0 -0
  39. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxfile.py +0 -0
  40. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxfile_functions.py +0 -0
  41. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxglobalworkflow.py +0 -0
  42. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxjob.py +0 -0
  43. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxproject.py +0 -0
  44. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxrecord.py +0 -0
  45. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/dxworkflow.py +0 -0
  46. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/mount_all_inputs.py +0 -0
  47. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/bindings/search.py +0 -0
  48. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/__init__.py +0 -0
  49. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/cp.py +0 -0
  50. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/dataset_utilities.py +0 -0
  51. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/download.py +0 -0
  52. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/exec_io.py +0 -0
  53. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/help_messages.py +0 -0
  54. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/org.py +0 -0
  55. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/output_handling.py +0 -0
  56. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/cli/workflow.py +0 -0
  57. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/compat.py +0 -0
  58. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest.json +0 -0
  59. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging.json +0 -0
  60. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging_vep.json +0 -0
  61. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_vep.json +0 -0
  62. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/__init__.py +0 -0
  63. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/cohort_filter_payload.py +0 -0
  64. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/column_conditions.json +0 -0
  65. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/column_conversion.json +0 -0
  66. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/filter_to_payload.py +0 -0
  67. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/germline_utils.py +0 -0
  68. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/input_validation.py +0 -0
  69. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/input_validation_somatic.py +0 -0
  70. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/retrieve_allele_schema.json +0 -0
  71. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/retrieve_annotation_schema.json +0 -0
  72. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/retrieve_bins.py +0 -0
  73. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/retrieve_genotype_schema.json +0 -0
  74. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/return_columns_allele.json +0 -0
  75. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/return_columns_annotation.json +0 -0
  76. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/return_columns_genotype.json +0 -0
  77. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/return_columns_genotype_only.json +0 -0
  78. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dx_extract_utils/somatic_filter_payload.py +0 -0
  79. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/dxlog.py +0 -0
  80. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/exceptions.py +0 -0
  81. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/executable_builder.py +0 -0
  82. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/ImageRef.py +0 -0
  83. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/ImageRefFactory.py +0 -0
  84. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/__init__.py +0 -0
  85. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/app_asset_projects_ids_prod.json +0 -0
  86. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/app_asset_projects_ids_staging.json +0 -0
  87. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/awscli_assets.json +0 -0
  88. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/awscli_assets.staging.json +0 -0
  89. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/collect_images.py +0 -0
  90. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextaur_assets.json +0 -0
  91. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextaur_assets.staging.json +0 -0
  92. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextflow_assets.json +0 -0
  93. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextflow_assets.staging.json +0 -0
  94. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextflow_builder.py +0 -0
  95. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextflow_templates.py +0 -0
  96. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/nextflow/nextflow_utils.py +0 -0
  97. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/packages/__init__.py +0 -0
  98. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/scripts/__init__.py +0 -0
  99. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/scripts/dx.py +0 -0
  100. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/scripts/dx_build_app.py +0 -0
  101. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/scripts/dx_build_applet.py +0 -0
  102. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/ssh_tunnel_app_support.py +0 -0
  103. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/system_requirements.py +0 -0
  104. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/__init__.py +0 -0
  105. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/bash.py +0 -0
  106. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/python.py +0 -0
  107. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/Readme.md +0 -0
  108. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/basic/dxapp.json +0 -0
  109. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/basic/src/code.sh +0 -0
  110. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/parallelized/dxapp.json +0 -0
  111. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/parallelized/src/code.sh +0 -0
  112. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/scatter-process-gather/dxapp.json +0 -0
  113. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/bash/scatter-process-gather/src/code.sh +0 -0
  114. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/nextflow/dxapp.json +0 -0
  115. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/nextflow/src/nextflow.sh +0 -0
  116. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/basic/dxapp.json +0 -0
  117. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/basic/src/code.py +0 -0
  118. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/basic/test/test.py +0 -0
  119. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/parallelized/dxapp.json +0 -0
  120. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/parallelized/src/code.py +0 -0
  121. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/parallelized/test/test.py +0 -0
  122. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/scatter-process-gather/dxapp.json +0 -0
  123. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/scatter-process-gather/src/code.py +0 -0
  124. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/templates/python/scatter-process-gather/test/test.py +0 -0
  125. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/templating/utils.py +0 -0
  126. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/__init__.py +0 -0
  127. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/batch_utils.py +0 -0
  128. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/config.py +0 -0
  129. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/describe.py +0 -0
  130. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/exec_utils.py +0 -0
  131. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/executable_unbuilder.py +0 -0
  132. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/file_handle.py +0 -0
  133. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/file_load_utils.py +0 -0
  134. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/genomic_utils.py +0 -0
  135. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/job_log_client.py +0 -0
  136. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/local_exec_utils.py +0 -0
  137. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/pathmatch.py +0 -0
  138. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/pretty_print.py +0 -0
  139. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/printing.py +0 -0
  140. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/resolver.py +0 -0
  141. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/spelling_corrector.py +0 -0
  142. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/utils/version.py +0 -0
  143. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy/workflow_builder.py +0 -0
  144. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/dependency_links.txt +0 -0
  145. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/entry_points.txt +0 -0
  146. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/not-zip-safe +0 -0
  147. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/requires.txt +0 -0
  148. {dxpy-0.398.0 → dxpy-0.399.1}/dxpy.egg-info/top_level.txt +0 -0
  149. {dxpy-0.398.0 → dxpy-0.399.1}/requirements.txt +0 -0
  150. {dxpy-0.398.0 → dxpy-0.399.1}/requirements_setuptools.txt +0 -0
  151. {dxpy-0.398.0 → dxpy-0.399.1}/requirements_test.txt +0 -0
  152. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-clone-asset +0 -0
  153. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-docker +0 -0
  154. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-download-all-inputs +0 -0
  155. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-fetch-bundled-depends +0 -0
  156. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-generate-dxapp +0 -0
  157. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-add-output +0 -0
  158. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-dxlink +0 -0
  159. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-get-identity-token +0 -0
  160. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-new-job +0 -0
  161. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-parse-link +0 -0
  162. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-jobutil-report-error +0 -0
  163. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-log-stream +0 -0
  164. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-mount-all-inputs +0 -0
  165. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-notebook-reconnect +0 -0
  166. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-print-bash-vars +0 -0
  167. {dxpy-0.398.0 → dxpy-0.399.1}/scripts/dx-upload-all-outputs +0 -0
  168. {dxpy-0.398.0 → dxpy-0.399.1}/setup.cfg +0 -0
  169. {dxpy-0.398.0 → dxpy-0.399.1}/setup.py +0 -0
  170. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_batch.py +0 -0
  171. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_create_cohort.py +0 -0
  172. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_describe.py +0 -0
  173. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dx-docker.py +0 -0
  174. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dx_app_wizard.py +0 -0
  175. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dx_completion.py +0 -0
  176. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dx_symlink.py +0 -0
  177. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxabs.py +0 -0
  178. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxasset.py +0 -0
  179. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxclient.py +0 -0
  180. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxpy.py +0 -0
  181. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxpy_utils.py +0 -0
  182. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_dxunpack.py +0 -0
  183. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_extract_assay.py +0 -0
  184. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_extract_dataset.py +0 -0
  185. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_extract_expression.py +0 -0
  186. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_extract_somatic.py +0 -0
  187. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_nextflow.py +0 -0
  188. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_nextflow_ImageRef.py +0 -0
  189. {dxpy-0.398.0 → dxpy-0.399.1}/test/test_nextflow_ImageRefFactory.py +0 -0
@@ -1,3 +1,4 @@
1
1
  include requirements*.txt
2
2
  include Readme.md
3
3
  recursive-include dxpy/templating/templates *
4
+ recursive-include scripts *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dxpy
3
- Version: 0.398.0
3
+ Version: 0.399.1
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
@@ -16,8 +16,21 @@ Classifier: Programming Language :: Unix Shell
16
16
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
17
  Requires-Python: >=3.8
18
18
  Description-Content-Type: text/markdown
19
+ Requires-Dist: argcomplete>=2.0.0; python_version >= "3.10"
20
+ Requires-Dist: argcomplete<2.0.0,>=1.9.4; python_version < "3.10"
21
+ Requires-Dist: websocket-client<1.8.0,>=1.6.0
22
+ Requires-Dist: python-dateutil>=2.5
23
+ Requires-Dist: psutil>=5.9.3
24
+ Requires-Dist: certifi>=2024.7.4
25
+ Requires-Dist: urllib3<2.2,>=1.25
26
+ Requires-Dist: pyreadline3==3.4.1; sys_platform == "win32"
27
+ Requires-Dist: colorama<=0.4.6,>=0.4.4; sys_platform == "win32"
28
+ Requires-Dist: crc32c>=2.7.1
19
29
  Provides-Extra: pandas
30
+ Requires-Dist: pandas==1.3.5; extra == "pandas"
31
+ Requires-Dist: numpy<2.0.0; extra == "pandas"
20
32
  Provides-Extra: xattr
33
+ Requires-Dist: xattr==0.10.1; (sys_platform == "linux2" or sys_platform == "linux") and extra == "xattr"
21
34
 
22
35
  dxpy: DNAnexus Python API
23
36
  =========================
@@ -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.instance_types.values(),
317
- column_names=list(InstanceTypesCompleter.instance_types.values())[0]._fields))
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.instance_types.values())[0]._fields))
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.instance_types.values())[0]._fields))
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.1'
@@ -410,111 +410,218 @@ class MultiCompleter():
410
410
  return None
411
411
 
412
412
  class InstanceTypesCompleter():
413
- InstanceTypeSpec = namedtuple('InstanceTypeSpec', ('Name', 'Memory_GB', 'Storage_GB', 'CPU_Cores'))
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, 2),
418
- InstanceTypeSpec('mem1_ssd1_v2_x4', 8.0, 100, 4),
419
- InstanceTypeSpec('mem1_ssd1_v2_x8', 16.0, 200, 8),
420
- InstanceTypeSpec('mem1_ssd1_v2_x16', 32.0, 400, 16),
421
- InstanceTypeSpec('mem1_ssd1_v2_x36', 72.0, 900, 36),
422
- InstanceTypeSpec('mem1_ssd1_v2_x72', 144.0, 1800, 72),
423
-
424
- InstanceTypeSpec('mem2_ssd1_v2_x2', 8.0, 75, 2),
425
- InstanceTypeSpec('mem2_ssd1_v2_x4', 16.0, 150, 4),
426
- InstanceTypeSpec('mem2_ssd1_v2_x8', 32.0, 300, 8),
427
- InstanceTypeSpec('mem2_ssd1_v2_x16', 64.0, 600, 16),
428
- InstanceTypeSpec('mem2_ssd1_v2_x32', 128.0, 1200, 32),
429
- InstanceTypeSpec('mem2_ssd1_v2_x48', 144.0, 1800, 48),
430
- InstanceTypeSpec('mem2_ssd1_v2_x64', 256.0, 2400, 64),
431
- InstanceTypeSpec('mem2_ssd1_v2_x96', 384.0, 3600, 96),
432
-
433
- InstanceTypeSpec('mem3_ssd1_v2_x2', 16.0, 75, 2),
434
- InstanceTypeSpec('mem3_ssd1_v2_x4', 32.0, 150, 4),
435
- InstanceTypeSpec('mem3_ssd1_v2_x8', 64.0, 300, 8),
436
- InstanceTypeSpec('mem3_ssd1_v2_x16', 128.0, 600, 16),
437
- InstanceTypeSpec('mem3_ssd1_v2_x32', 256.0, 1200, 32),
438
- InstanceTypeSpec('mem3_ssd1_v2_x48', 384.0, 1800, 48),
439
- InstanceTypeSpec('mem3_ssd1_v2_x64', 512.0, 3200, 64),
440
- InstanceTypeSpec('mem3_ssd1_v2_x96', 768.0, 3600, 96),
441
-
442
- InstanceTypeSpec('mem3_ssd3_x2', 16.0, 1250, 2),
443
- InstanceTypeSpec('mem3_ssd3_x4', 32.0, 2500, 4),
444
- InstanceTypeSpec('mem3_ssd3_x8', 64.0, 5000, 8),
445
- InstanceTypeSpec('mem3_ssd3_x12', 96.0, 7500, 12),
446
- InstanceTypeSpec('mem3_ssd3_x24', 192.0, 15000, 24),
447
- InstanceTypeSpec('mem3_ssd3_x48', 384.0, 30000, 48),
448
- InstanceTypeSpec('mem3_ssd3_x96', 768.0, 60000, 96),
449
-
450
- InstanceTypeSpec('mem4_ssd1_x128', 1952.0, 3840, 128),
451
-
452
- InstanceTypeSpec('mem1_ssd2_v2_x2', 4.0, 160, 2),
453
- InstanceTypeSpec('mem1_ssd2_v2_x4', 8.0, 320, 4),
454
- InstanceTypeSpec('mem1_ssd2_v2_x8', 16.0, 640, 8),
455
- InstanceTypeSpec('mem1_ssd2_v2_x16', 32.0, 1280, 16),
456
- InstanceTypeSpec('mem1_ssd2_v2_x36', 72.0, 2880, 36),
457
- InstanceTypeSpec('mem1_ssd2_v2_x72', 144.0, 5760, 72)):
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, 2),
463
- InstanceTypeSpec('azure:mem1_ssd1_x4', 7.8, 64, 4),
464
- InstanceTypeSpec('azure:mem1_ssd1_x8', 15.7, 128, 8),
465
- InstanceTypeSpec('azure:mem1_ssd1_x16', 31.4, 256, 16),
466
-
467
- InstanceTypeSpec('azure:mem2_ssd1_x1', 3.5, 128, 1),
468
- InstanceTypeSpec('azure:mem2_ssd1_x2', 7.0, 128, 2),
469
- InstanceTypeSpec('azure:mem2_ssd1_x4', 14.0, 128, 4),
470
- InstanceTypeSpec('azure:mem2_ssd1_x8', 28.0, 256, 8),
471
- InstanceTypeSpec('azure:mem2_ssd1_x16', 56.0, 512, 16),
472
-
473
- InstanceTypeSpec('azure:mem3_ssd1_x2', 14.0, 128, 2),
474
- InstanceTypeSpec('azure:mem3_ssd1_x4', 28.0, 128, 4),
475
- InstanceTypeSpec('azure:mem3_ssd1_x8', 56.0, 256, 8),
476
- InstanceTypeSpec('azure:mem3_ssd1_x16', 112.0, 512, 16),
477
- InstanceTypeSpec('azure:mem3_ssd1_x20', 140.0, 640, 20),
478
-
479
- InstanceTypeSpec('azure:mem4_ssd1_x2', 28.0, 128, 2),
480
- InstanceTypeSpec('azure:mem4_ssd1_x4', 56.0, 128, 4),
481
- InstanceTypeSpec('azure:mem4_ssd1_x8', 112.0, 256, 8),
482
- InstanceTypeSpec('azure:mem4_ssd1_x16', 224, 512, 16),
483
- InstanceTypeSpec('azure:mem4_ssd1_x32', 448, 1024, 32)):
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
- instance_types = OrderedDict()
486
- instance_types.update(aws_preferred_instance_types)
487
- instance_types.update(azure_preferred_instance_types)
488
-
489
- for i in (InstanceTypeSpec('mem1_ssd1_x2', 3.8, 32, 2),
490
- InstanceTypeSpec('mem1_ssd1_x4', 7.5, 80, 4),
491
- InstanceTypeSpec('mem1_ssd1_x8', 15.0, 160, 8),
492
- InstanceTypeSpec('mem1_ssd1_x16', 30.0, 320, 16),
493
- InstanceTypeSpec('mem1_ssd1_x32', 60.0, 640, 32),
494
-
495
- InstanceTypeSpec('mem2_ssd1_x2', 7.5, 32, 2),
496
- InstanceTypeSpec('mem2_ssd1_x4', 15.0, 80, 4),
497
- InstanceTypeSpec('mem2_ssd1_x8', 30.0, 160, 8),
498
-
499
- InstanceTypeSpec('mem3_ssd1_x2', 15.0, 32, 2),
500
- InstanceTypeSpec('mem3_ssd1_x4', 30.5, 80, 4),
501
- InstanceTypeSpec('mem3_ssd1_x8', 61.0, 160, 8),
502
- InstanceTypeSpec('mem3_ssd1_x16', 122.0, 320, 16),
503
- InstanceTypeSpec('mem3_ssd1_x32', 244.0, 640, 32),
504
-
505
- InstanceTypeSpec('mem1_ssd2_x2', 3.8, 160, 2),
506
- InstanceTypeSpec('mem1_ssd2_x4', 7.5, 320, 4),
507
- InstanceTypeSpec('mem1_ssd2_x8', 15, 640, 8),
508
- InstanceTypeSpec('mem1_ssd2_x16', 30, 1280, 16),
509
- InstanceTypeSpec('mem1_ssd2_x36', 60, 2880, 36),
510
- InstanceTypeSpec('mem2_hdd2_v2_x2', 8.0, 1000, 2),
511
- InstanceTypeSpec('mem2_hdd2_v2_x4', 16.0, 2000, 4),
512
-
513
- InstanceTypeSpec('mem3_hdd2_v2_x2', 16.0, 500, 2),
514
- InstanceTypeSpec('mem3_hdd2_v2_x4', 32.0, 1000, 4),
515
- InstanceTypeSpec('mem3_hdd2_v2_x8', 64.0, 2000, 8)):
516
- instance_types[i.Name] = i
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dxpy
3
- Version: 0.398.0
3
+ Version: 0.399.1
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
@@ -16,8 +16,21 @@ Classifier: Programming Language :: Unix Shell
16
16
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
17
  Requires-Python: >=3.8
18
18
  Description-Content-Type: text/markdown
19
+ Requires-Dist: argcomplete>=2.0.0; python_version >= "3.10"
20
+ Requires-Dist: argcomplete<2.0.0,>=1.9.4; python_version < "3.10"
21
+ Requires-Dist: websocket-client<1.8.0,>=1.6.0
22
+ Requires-Dist: python-dateutil>=2.5
23
+ Requires-Dist: psutil>=5.9.3
24
+ Requires-Dist: certifi>=2024.7.4
25
+ Requires-Dist: urllib3<2.2,>=1.25
26
+ Requires-Dist: pyreadline3==3.4.1; sys_platform == "win32"
27
+ Requires-Dist: colorama<=0.4.6,>=0.4.4; sys_platform == "win32"
28
+ Requires-Dist: crc32c>=2.7.1
19
29
  Provides-Extra: pandas
30
+ Requires-Dist: pandas==1.3.5; extra == "pandas"
31
+ Requires-Dist: numpy<2.0.0; extra == "pandas"
20
32
  Provides-Extra: xattr
33
+ Requires-Dist: xattr==0.10.1; (sys_platform == "linux2" or sys_platform == "linux") and extra == "xattr"
21
34
 
22
35
  dxpy: DNAnexus Python API
23
36
  =========================
@@ -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
@@ -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.Memory_GB * 1024
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.Memory_GB * 1024 or num_threads == 1
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'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes