dxpy 0.379.0__tar.gz → 0.381.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.
Files changed (187) hide show
  1. {dxpy-0.379.0 → dxpy-0.381.0}/PKG-INFO +3 -2
  2. {dxpy-0.379.0 → dxpy-0.381.0}/Readme.md +2 -1
  3. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/scripts/dx_build_app.py +1 -1
  4. dxpy-0.381.0/dxpy/toolkit_version.py +1 -0
  5. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/PKG-INFO +3 -2
  6. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxclient.py +10 -11
  7. dxpy-0.379.0/dxpy/toolkit_version.py +0 -1
  8. {dxpy-0.379.0 → dxpy-0.381.0}/MANIFEST.in +0 -0
  9. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/__init__.py +0 -0
  10. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/api.py +0 -0
  11. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/app_builder.py +0 -0
  12. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/app_categories.py +0 -0
  13. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/asset_builder.py +0 -0
  14. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/__init__.py +0 -0
  15. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/__init__.py +0 -0
  16. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/cmd_line_options_validator.py +0 -0
  17. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/data_transformations.py +0 -0
  18. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/dataset.py +0 -0
  19. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/json_validation_by_schema.py +0 -0
  20. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/schemas/__init__.py +0 -0
  21. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/schemas/assay_filtering_conditions.py +0 -0
  22. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/schemas/assay_filtering_json_schemas.py +0 -0
  23. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/schemas/input_arguments_validation_schemas.py +0 -0
  24. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/vizclient.py +0 -0
  25. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/vizserver_filters_from_json_parser.py +0 -0
  26. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/apollo/vizserver_payload_builder.py +0 -0
  27. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/auth.py +0 -0
  28. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/download_all_inputs.py +0 -0
  29. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxanalysis.py +0 -0
  30. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxapp.py +0 -0
  31. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxapp_container_functions.py +0 -0
  32. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxapplet.py +0 -0
  33. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxdatabase.py +0 -0
  34. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxdatabase_functions.py +0 -0
  35. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxdataobject_functions.py +0 -0
  36. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxfile.py +0 -0
  37. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxfile_functions.py +0 -0
  38. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxglobalworkflow.py +0 -0
  39. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxjob.py +0 -0
  40. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxproject.py +0 -0
  41. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxrecord.py +0 -0
  42. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/dxworkflow.py +0 -0
  43. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/mount_all_inputs.py +0 -0
  44. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/bindings/search.py +0 -0
  45. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/__init__.py +0 -0
  46. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/cp.py +0 -0
  47. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/dataset_utilities.py +0 -0
  48. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/download.py +0 -0
  49. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/exec_io.py +0 -0
  50. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/help_messages.py +0 -0
  51. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/org.py +0 -0
  52. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/output_handling.py +0 -0
  53. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/parsers.py +0 -0
  54. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/cli/workflow.py +0 -0
  55. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/compat.py +0 -0
  56. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest.json +0 -0
  57. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging.json +0 -0
  58. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging_vep.json +0 -0
  59. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_vep.json +0 -0
  60. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/__init__.py +0 -0
  61. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/cohort_filter_payload.py +0 -0
  62. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/column_conditions.json +0 -0
  63. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/column_conversion.json +0 -0
  64. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/filter_to_payload.py +0 -0
  65. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/germline_utils.py +0 -0
  66. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/input_validation.py +0 -0
  67. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/input_validation_somatic.py +0 -0
  68. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/retrieve_allele_schema.json +0 -0
  69. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/retrieve_annotation_schema.json +0 -0
  70. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/retrieve_bins.py +0 -0
  71. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/retrieve_genotype_schema.json +0 -0
  72. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/return_columns_allele.json +0 -0
  73. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/return_columns_annotation.json +0 -0
  74. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/return_columns_genotype.json +0 -0
  75. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/return_columns_genotype_only.json +0 -0
  76. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dx_extract_utils/somatic_filter_payload.py +0 -0
  77. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/dxlog.py +0 -0
  78. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/exceptions.py +0 -0
  79. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/executable_builder.py +0 -0
  80. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/ImageRef.py +0 -0
  81. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/ImageRefFactory.py +0 -0
  82. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/__init__.py +0 -0
  83. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/awscli_assets.json +0 -0
  84. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/awscli_assets.staging.json +0 -0
  85. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/collect_images.py +0 -0
  86. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextaur_assets.json +0 -0
  87. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextaur_assets.staging.json +0 -0
  88. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextflow_assets.json +0 -0
  89. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextflow_assets.staging.json +0 -0
  90. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextflow_builder.py +0 -0
  91. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextflow_templates.py +0 -0
  92. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/nextflow/nextflow_utils.py +0 -0
  93. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/packages/__init__.py +0 -0
  94. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/scripts/__init__.py +0 -0
  95. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/scripts/dx.py +0 -0
  96. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/scripts/dx_app_wizard.py +0 -0
  97. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/scripts/dx_build_applet.py +0 -0
  98. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/ssh_tunnel_app_support.py +0 -0
  99. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/system_requirements.py +0 -0
  100. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/__init__.py +0 -0
  101. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/bash.py +0 -0
  102. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/python.py +0 -0
  103. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/Readme.md +0 -0
  104. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/basic/dxapp.json +0 -0
  105. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/basic/src/code.sh +0 -0
  106. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/parallelized/dxapp.json +0 -0
  107. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/parallelized/src/code.sh +0 -0
  108. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/scatter-process-gather/dxapp.json +0 -0
  109. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/bash/scatter-process-gather/src/code.sh +0 -0
  110. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/nextflow/dxapp.json +0 -0
  111. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/nextflow/src/nextflow.sh +0 -0
  112. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/basic/dxapp.json +0 -0
  113. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/basic/src/code.py +0 -0
  114. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/basic/test/test.py +0 -0
  115. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/parallelized/dxapp.json +0 -0
  116. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/parallelized/src/code.py +0 -0
  117. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/parallelized/test/test.py +0 -0
  118. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/scatter-process-gather/dxapp.json +0 -0
  119. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/scatter-process-gather/src/code.py +0 -0
  120. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/templates/python/scatter-process-gather/test/test.py +0 -0
  121. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/templating/utils.py +0 -0
  122. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/__init__.py +0 -0
  123. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/batch_utils.py +0 -0
  124. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/completer.py +0 -0
  125. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/config.py +0 -0
  126. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/describe.py +0 -0
  127. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/exec_utils.py +0 -0
  128. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/executable_unbuilder.py +0 -0
  129. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/file_handle.py +0 -0
  130. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/file_load_utils.py +0 -0
  131. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/genomic_utils.py +0 -0
  132. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/job_log_client.py +0 -0
  133. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/local_exec_utils.py +0 -0
  134. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/pathmatch.py +0 -0
  135. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/pretty_print.py +0 -0
  136. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/printing.py +0 -0
  137. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/resolver.py +0 -0
  138. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/spelling_corrector.py +0 -0
  139. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/utils/version.py +0 -0
  140. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy/workflow_builder.py +0 -0
  141. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/SOURCES.txt +0 -0
  142. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/dependency_links.txt +0 -0
  143. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/entry_points.txt +0 -0
  144. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/not-zip-safe +0 -0
  145. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/requires.txt +0 -0
  146. {dxpy-0.379.0 → dxpy-0.381.0}/dxpy.egg-info/top_level.txt +0 -0
  147. {dxpy-0.379.0 → dxpy-0.381.0}/requirements.txt +0 -0
  148. {dxpy-0.379.0 → dxpy-0.381.0}/requirements_setuptools.txt +0 -0
  149. {dxpy-0.379.0 → dxpy-0.381.0}/requirements_test.txt +0 -0
  150. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-clone-asset +0 -0
  151. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-docker +0 -0
  152. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-download-all-inputs +0 -0
  153. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-fetch-bundled-depends +0 -0
  154. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-generate-dxapp +0 -0
  155. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-add-output +0 -0
  156. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-dxlink +0 -0
  157. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-get-identity-token +0 -0
  158. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-new-job +0 -0
  159. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-parse-link +0 -0
  160. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-jobutil-report-error +0 -0
  161. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-log-stream +0 -0
  162. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-mount-all-inputs +0 -0
  163. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-notebook-reconnect +0 -0
  164. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-print-bash-vars +0 -0
  165. {dxpy-0.379.0 → dxpy-0.381.0}/scripts/dx-upload-all-outputs +0 -0
  166. {dxpy-0.379.0 → dxpy-0.381.0}/setup.cfg +0 -0
  167. {dxpy-0.379.0 → dxpy-0.381.0}/setup.py +0 -0
  168. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_batch.py +0 -0
  169. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_create_cohort.py +0 -0
  170. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_describe.py +0 -0
  171. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dx-docker.py +0 -0
  172. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dx_app_wizard.py +0 -0
  173. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dx_bash_helpers.py +0 -0
  174. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dx_completion.py +0 -0
  175. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dx_symlink.py +0 -0
  176. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxabs.py +0 -0
  177. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxasset.py +0 -0
  178. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxpy.py +0 -0
  179. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxpy_utils.py +0 -0
  180. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_dxunpack.py +0 -0
  181. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_extract_assay.py +0 -0
  182. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_extract_dataset.py +0 -0
  183. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_extract_expression.py +0 -0
  184. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_extract_somatic.py +0 -0
  185. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_nextflow.py +0 -0
  186. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_nextflow_ImageRef.py +0 -0
  187. {dxpy-0.379.0 → dxpy-0.381.0}/test/test_nextflow_ImageRefFactory.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dxpy
3
- Version: 0.379.0
3
+ Version: 0.381.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
@@ -21,8 +21,9 @@ Provides-Extra: xattr
21
21
 
22
22
  dxpy: DNAnexus Python API
23
23
  =========================
24
+ [DNAnexus Documentation](https://documentation.dnanexus.com/)
24
25
 
25
- [API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
26
+ [dxpy API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
26
27
 
27
28
  Building
28
29
  --------
@@ -1,7 +1,8 @@
1
1
  dxpy: DNAnexus Python API
2
2
  =========================
3
+ [DNAnexus Documentation](https://documentation.dnanexus.com/)
3
4
 
4
- [API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
5
+ [dxpy API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
5
6
 
6
7
  Building
7
8
  --------
@@ -1033,7 +1033,7 @@ def get_project_to_check(destination, extra_args):
1033
1033
 
1034
1034
  def verify_nf_license(destination, extra_args):
1035
1035
  dest_project_to_check = get_project_to_check(destination, extra_args)
1036
- features = dxpy.DXHTTPRequest("/" + dest_project_to_check + "/checkFeatureAccess", {"features": ["dxNextflow"]}).get("features", {})
1036
+ features = dxpy.DXHTTPRequest("/" + dest_project_to_check + "/checkFeatureAccess", {"features": ["dxNextflow"]}, always_retry=True).get("features", {})
1037
1037
  dx_nextflow_lic = features.get("dxNextflow", False)
1038
1038
  if not dx_nextflow_lic:
1039
1039
  raise dxpy.app_builder.AppBuilderException("PermissionDenied: billTo of the applet's destination project must have the dxNextflow feature enabled. For inquiries, please contact support@dnanexus.com")
@@ -0,0 +1 @@
1
+ version = '0.381.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dxpy
3
- Version: 0.379.0
3
+ Version: 0.381.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
@@ -21,8 +21,9 @@ Provides-Extra: xattr
21
21
 
22
22
  dxpy: DNAnexus Python API
23
23
  =========================
24
+ [DNAnexus Documentation](https://documentation.dnanexus.com/)
24
25
 
25
- [API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
26
+ [dxpy API Documentation](http://autodoc.dnanexus.com/bindings/python/current/)
26
27
 
27
28
  Building
28
29
  --------
@@ -5926,7 +5926,7 @@ class TestDXClientFind(DXTestCase):
5926
5926
  self.assertTrue(dxpy.api.org_describe(org_with_billable_activities)["allowBillableActivities"])
5927
5927
  org_without_billable_activities = "org-members_without_billing_rights"
5928
5928
  self.assertFalse(dxpy.api.org_describe(org_without_billable_activities)["allowBillableActivities"])
5929
- orgs_with_admin = ["org-piratelabs", "org-auth_file_app_download"]
5929
+ orgs_with_admin = ["org-piratelabs", "org-auth_file_app_download", "org-team_odd"]
5930
5930
  for org_with_admin in orgs_with_admin:
5931
5931
  self.assertTrue(dxpy.api.org_describe(org_with_admin)["level"] == "ADMIN")
5932
5932
 
@@ -6696,8 +6696,8 @@ class TestDXClientNewUser(DXTestCase):
6696
6696
  run(" ".join([cmd, invalid_opts]))
6697
6697
 
6698
6698
  resource_not_found_opts = [
6699
- "--username {u} --email {e} --first {f} --org does_not_exist".format(
6700
- u=username, e=email, f=first),
6699
+ "--username {u} --email {e} --first {f} --on-behalf-of {o} --org does_not_exist".format(
6700
+ u=username, e=email, f=first, o=self.org_id),
6701
6701
  ]
6702
6702
  for invalid_opts in resource_not_found_opts:
6703
6703
  with self.assertRaisesRegex(subprocess.CalledProcessError,
@@ -6740,16 +6740,15 @@ class TestDXClientNewUser(DXTestCase):
6740
6740
  # no org specified
6741
6741
  with self.assertRaisesRegex(subprocess.CalledProcessError,
6742
6742
  "error: argument --on-behalf-of: expected one argument"):
6743
- run(" ".join([cmd, baseargs,"--on-behalf-of" ]))
6743
+ run(" ".join([cmd, baseargs, "--on-behalf-of"]))
6744
6744
  # creating user on behalf of org that does not exist
6745
6745
  with self.assertRaisesRegex(subprocess.CalledProcessError,
6746
6746
  "ResourceNotFound"):
6747
- run(" ".join([cmd, baseargs,"--on-behalf-of org-does_not_exist"]))
6747
+ run(" ".join([cmd, baseargs, "--on-behalf-of org-does_not_exist"]))
6748
6748
  # creating user for org in which the adder does not have ADMIN permissions
6749
6749
  with self.assertRaisesRegex(subprocess.CalledProcessError,
6750
6750
  "(PermissionDenied)|(ResourceNotFound)"):
6751
- run(" ".join([cmd, baseargs,"--on-behalf-of org-dnanexus"]))
6752
-
6751
+ run(" ".join([cmd, baseargs, "--on-behalf-of org-dnanexus"]))
6753
6752
 
6754
6753
  def test_self_signup_negative(self):
6755
6754
  # How to unset context?
@@ -6793,7 +6792,7 @@ class TestDXClientNewUser(DXTestCase):
6793
6792
 
6794
6793
  # Grant default org membership level and permission flags.
6795
6794
  username, email = generate_unique_username_email()
6796
- user_id = run("{cmd} --username {u} --email {e} --first {f} --org {o} --brief".format(
6795
+ user_id = run("{cmd} --username {u} --email {e} --first {f} --on-behalf-of {o} --org {o} --brief".format(
6797
6796
  cmd=cmd, u=username, e=email, f=first,
6798
6797
  o=self.org_id)).strip()
6799
6798
  self._assert_user_desc(user_id, {"first": first})
@@ -6811,7 +6810,7 @@ class TestDXClientNewUser(DXTestCase):
6811
6810
  # has uppercase chars.
6812
6811
  username, email = generate_unique_username_email()
6813
6812
  username = username.upper()
6814
- user_id = run("{cmd} --username {u} --email {e} --first {f} --org {o} --brief".format(
6813
+ user_id = run("{cmd} --username {u} --email {e} --first {f} --on-behalf-of {o} --org {o} --brief".format(
6815
6814
  cmd=cmd, u=username, e=email, f=first,
6816
6815
  o=self.org_id)).strip()
6817
6816
  self._assert_user_desc(user_id, {"first": first})
@@ -6827,7 +6826,7 @@ class TestDXClientNewUser(DXTestCase):
6827
6826
 
6828
6827
  # Grant custom org membership level and permission flags.
6829
6828
  username, email = generate_unique_username_email()
6830
- user_id = run("{cmd} --username {u} --email {e} --first {f} --org {o} --level {l} --allow-billable-activities --no-app-access --project-access {pa} --brief".format(
6829
+ user_id = run("{cmd} --username {u} --email {e} --first {f} --on-behalf-of {o} --org {o} --level {l} --allow-billable-activities --no-app-access --project-access {pa} --brief".format(
6831
6830
  cmd=cmd, u=username, e=email, f=first,
6832
6831
  o=self.org_id, l="MEMBER", pa="VIEW")).strip()
6833
6832
  self._assert_user_desc(user_id, {"first": first})
@@ -6844,7 +6843,7 @@ class TestDXClientNewUser(DXTestCase):
6844
6843
  # Grant ADMIN org membership level; ignore all other org permission
6845
6844
  # options.
6846
6845
  username, email = generate_unique_username_email()
6847
- user_id = run("{cmd} --username {u} --email {e} --first {f} --org {o} --level {l} --no-app-access --project-access {pa} --brief".format(
6846
+ user_id = run("{cmd} --username {u} --email {e} --first {f} --on-behalf-of {o} --org {o} --level {l} --no-app-access --project-access {pa} --brief".format(
6848
6847
  cmd=cmd, u=username, e=email, f=first,
6849
6848
  o=self.org_id, l="ADMIN", pa="VIEW")).strip()
6850
6849
  self._assert_user_desc(user_id, {"first": first})
@@ -1 +0,0 @@
1
- version = '0.379.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
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
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