dxpy 0.391.0__tar.gz → 0.393.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.391.0 → dxpy-0.393.0}/PKG-INFO +1 -1
  2. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxfile.py +15 -33
  3. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/scripts/dx_app_wizard.py +1 -1
  4. dxpy-0.393.0/dxpy/toolkit_version.py +1 -0
  5. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/PKG-INFO +1 -1
  6. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dx_app_wizard.py +1 -1
  7. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxpy.py +0 -20
  8. dxpy-0.391.0/dxpy/toolkit_version.py +0 -1
  9. {dxpy-0.391.0 → dxpy-0.393.0}/MANIFEST.in +0 -0
  10. {dxpy-0.391.0 → dxpy-0.393.0}/Readme.md +0 -0
  11. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/__init__.py +0 -0
  12. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/api.py +0 -0
  13. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/app_builder.py +0 -0
  14. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/app_categories.py +0 -0
  15. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/asset_builder.py +0 -0
  16. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/__init__.py +0 -0
  17. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/__init__.py +0 -0
  18. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/cmd_line_options_validator.py +0 -0
  19. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/data_transformations.py +0 -0
  20. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/dataset.py +0 -0
  21. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/json_validation_by_schema.py +0 -0
  22. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/schemas/__init__.py +0 -0
  23. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/schemas/assay_filtering_conditions.py +0 -0
  24. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/schemas/assay_filtering_json_schemas.py +0 -0
  25. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/schemas/input_arguments_validation_schemas.py +0 -0
  26. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/vizclient.py +0 -0
  27. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/vizserver_filters_from_json_parser.py +0 -0
  28. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/apollo/vizserver_payload_builder.py +0 -0
  29. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/auth.py +0 -0
  30. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/download_all_inputs.py +0 -0
  31. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxanalysis.py +0 -0
  32. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxapp.py +0 -0
  33. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxapp_container_functions.py +0 -0
  34. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxapplet.py +0 -0
  35. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxdatabase.py +0 -0
  36. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxdatabase_functions.py +0 -0
  37. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxdataobject_functions.py +0 -0
  38. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxfile_functions.py +0 -0
  39. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxglobalworkflow.py +0 -0
  40. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxjob.py +0 -0
  41. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxproject.py +0 -0
  42. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxrecord.py +0 -0
  43. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/dxworkflow.py +0 -0
  44. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/mount_all_inputs.py +0 -0
  45. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/bindings/search.py +0 -0
  46. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/__init__.py +0 -0
  47. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/cp.py +0 -0
  48. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/dataset_utilities.py +0 -0
  49. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/download.py +0 -0
  50. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/exec_io.py +0 -0
  51. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/help_messages.py +0 -0
  52. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/org.py +0 -0
  53. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/output_handling.py +0 -0
  54. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/parsers.py +0 -0
  55. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/cli/workflow.py +0 -0
  56. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/compat.py +0 -0
  57. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest.json +0 -0
  58. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging.json +0 -0
  59. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_staging_vep.json +0 -0
  60. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/Homo_sapiens_genes_manifest_vep.json +0 -0
  61. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/__init__.py +0 -0
  62. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/cohort_filter_payload.py +0 -0
  63. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/column_conditions.json +0 -0
  64. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/column_conversion.json +0 -0
  65. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/filter_to_payload.py +0 -0
  66. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/germline_utils.py +0 -0
  67. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/input_validation.py +0 -0
  68. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/input_validation_somatic.py +0 -0
  69. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/retrieve_allele_schema.json +0 -0
  70. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/retrieve_annotation_schema.json +0 -0
  71. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/retrieve_bins.py +0 -0
  72. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/retrieve_genotype_schema.json +0 -0
  73. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/return_columns_allele.json +0 -0
  74. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/return_columns_annotation.json +0 -0
  75. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/return_columns_genotype.json +0 -0
  76. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/return_columns_genotype_only.json +0 -0
  77. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dx_extract_utils/somatic_filter_payload.py +0 -0
  78. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/dxlog.py +0 -0
  79. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/exceptions.py +0 -0
  80. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/executable_builder.py +0 -0
  81. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/ImageRef.py +0 -0
  82. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/ImageRefFactory.py +0 -0
  83. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/__init__.py +0 -0
  84. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/awscli_assets.json +0 -0
  85. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/awscli_assets.staging.json +0 -0
  86. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/collect_images.py +0 -0
  87. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextaur_assets.json +0 -0
  88. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextaur_assets.staging.json +0 -0
  89. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextflow_assets.json +0 -0
  90. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextflow_assets.staging.json +0 -0
  91. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextflow_builder.py +0 -0
  92. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextflow_templates.py +0 -0
  93. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/nextflow/nextflow_utils.py +0 -0
  94. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/packages/__init__.py +0 -0
  95. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/scripts/__init__.py +0 -0
  96. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/scripts/dx.py +0 -0
  97. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/scripts/dx_build_app.py +0 -0
  98. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/scripts/dx_build_applet.py +0 -0
  99. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/ssh_tunnel_app_support.py +0 -0
  100. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/system_requirements.py +0 -0
  101. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/__init__.py +0 -0
  102. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/bash.py +0 -0
  103. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/python.py +0 -0
  104. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/Readme.md +0 -0
  105. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/basic/dxapp.json +0 -0
  106. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/basic/src/code.sh +0 -0
  107. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/parallelized/dxapp.json +0 -0
  108. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/parallelized/src/code.sh +0 -0
  109. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/scatter-process-gather/dxapp.json +0 -0
  110. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/bash/scatter-process-gather/src/code.sh +0 -0
  111. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/nextflow/dxapp.json +0 -0
  112. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/nextflow/src/nextflow.sh +0 -0
  113. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/basic/dxapp.json +0 -0
  114. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/basic/src/code.py +0 -0
  115. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/basic/test/test.py +0 -0
  116. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/parallelized/dxapp.json +0 -0
  117. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/parallelized/src/code.py +0 -0
  118. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/parallelized/test/test.py +0 -0
  119. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/scatter-process-gather/dxapp.json +0 -0
  120. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/scatter-process-gather/src/code.py +0 -0
  121. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/templates/python/scatter-process-gather/test/test.py +0 -0
  122. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/templating/utils.py +0 -0
  123. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/__init__.py +0 -0
  124. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/batch_utils.py +0 -0
  125. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/completer.py +0 -0
  126. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/config.py +0 -0
  127. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/describe.py +0 -0
  128. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/exec_utils.py +0 -0
  129. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/executable_unbuilder.py +0 -0
  130. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/file_handle.py +0 -0
  131. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/file_load_utils.py +0 -0
  132. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/genomic_utils.py +0 -0
  133. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/job_log_client.py +0 -0
  134. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/local_exec_utils.py +0 -0
  135. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/pathmatch.py +0 -0
  136. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/pretty_print.py +0 -0
  137. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/printing.py +0 -0
  138. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/resolver.py +0 -0
  139. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/spelling_corrector.py +0 -0
  140. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/utils/version.py +0 -0
  141. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy/workflow_builder.py +0 -0
  142. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/SOURCES.txt +0 -0
  143. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/dependency_links.txt +0 -0
  144. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/entry_points.txt +0 -0
  145. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/not-zip-safe +0 -0
  146. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/requires.txt +0 -0
  147. {dxpy-0.391.0 → dxpy-0.393.0}/dxpy.egg-info/top_level.txt +0 -0
  148. {dxpy-0.391.0 → dxpy-0.393.0}/requirements.txt +0 -0
  149. {dxpy-0.391.0 → dxpy-0.393.0}/requirements_setuptools.txt +0 -0
  150. {dxpy-0.391.0 → dxpy-0.393.0}/requirements_test.txt +0 -0
  151. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-clone-asset +0 -0
  152. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-docker +0 -0
  153. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-download-all-inputs +0 -0
  154. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-fetch-bundled-depends +0 -0
  155. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-generate-dxapp +0 -0
  156. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-add-output +0 -0
  157. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-dxlink +0 -0
  158. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-get-identity-token +0 -0
  159. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-new-job +0 -0
  160. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-parse-link +0 -0
  161. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-jobutil-report-error +0 -0
  162. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-log-stream +0 -0
  163. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-mount-all-inputs +0 -0
  164. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-notebook-reconnect +0 -0
  165. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-print-bash-vars +0 -0
  166. {dxpy-0.391.0 → dxpy-0.393.0}/scripts/dx-upload-all-outputs +0 -0
  167. {dxpy-0.391.0 → dxpy-0.393.0}/setup.cfg +0 -0
  168. {dxpy-0.391.0 → dxpy-0.393.0}/setup.py +0 -0
  169. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_batch.py +0 -0
  170. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_create_cohort.py +0 -0
  171. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_describe.py +0 -0
  172. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dx-docker.py +0 -0
  173. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dx_bash_helpers.py +0 -0
  174. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dx_completion.py +0 -0
  175. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dx_symlink.py +0 -0
  176. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxabs.py +0 -0
  177. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxasset.py +0 -0
  178. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxclient.py +0 -0
  179. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxpy_utils.py +0 -0
  180. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_dxunpack.py +0 -0
  181. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_extract_assay.py +0 -0
  182. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_extract_dataset.py +0 -0
  183. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_extract_expression.py +0 -0
  184. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_extract_somatic.py +0 -0
  185. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_nextflow.py +0 -0
  186. {dxpy-0.391.0 → dxpy-0.393.0}/test/test_nextflow_ImageRef.py +0 -0
  187. {dxpy-0.391.0 → dxpy-0.393.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.391.0
3
+ Version: 0.393.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
@@ -314,39 +314,19 @@ class DXFile(DXDataObject):
314
314
  raise
315
315
 
316
316
  def __iter__(self):
317
- _buffer = self.read(self._read_bufsize)
318
- done = False
319
- if USING_PYTHON2:
320
- while not done:
321
- if b"\n" in _buffer:
322
- lines = _buffer.splitlines()
323
- for i in range(len(lines) - 1):
324
- yield lines[i]
325
- _buffer = lines[len(lines) - 1]
326
- else:
327
- more = self.read(self._read_bufsize)
328
- if more == b"":
329
- done = True
330
- else:
331
- _buffer = _buffer + more
332
- else:
333
- if self._binary_mode:
334
- raise DXFileError("Cannot read lines when file opened in binary mode")
335
- # python3 is much stricter about distinguishing
336
- # 'bytes' from 'str'.
337
- while not done:
338
- if "\n" in _buffer:
339
- lines = _buffer.splitlines()
340
- for i in range(len(lines) - 1):
341
- yield lines[i]
342
- _buffer = lines[len(lines) - 1]
343
- else:
344
- more = self.read(self._read_bufsize)
345
- if more == "":
346
- done = True
347
- else:
348
- _buffer = _buffer + more
349
-
317
+ _buffer = ""
318
+ if self._binary_mode:
319
+ raise DXFileError("Cannot read lines when file opened in binary mode")
320
+ while True:
321
+ more = self.read(self._read_bufsize)
322
+ if not more:
323
+ break
324
+ _buffer += more
325
+ parts = _buffer.split("\n")
326
+ for i in range(len(parts) - 1):
327
+ yield parts[i]
328
+ # The final piece may be incomplete, so keep it in the buffer
329
+ _buffer = parts[-1]
350
330
  if _buffer:
351
331
  yield _buffer
352
332
 
@@ -961,6 +941,8 @@ class DXFile(DXDataObject):
961
941
  # return response.read()
962
942
 
963
943
  def read(self, length=None, use_compression=None, project=None, **kwargs):
944
+ if project is None and object_exists_in_project(self.get_id(), self.get_proj_id()):
945
+ project = self.get_proj_id()
964
946
  data = self._read2(length=length, use_compression=use_compression, project=project, **kwargs)
965
947
  if USING_PYTHON2:
966
948
  return data
@@ -395,7 +395,7 @@ array:boolean array:int boolean hash string''')
395
395
  ######################
396
396
 
397
397
  app_json['runSpec']['distribution'] = 'Ubuntu'
398
- app_json['runSpec']['release'] = '20.04'
398
+ app_json['runSpec']['release'] = '24.04'
399
399
  app_json['runSpec']['version'] = "0"
400
400
 
401
401
  #################
@@ -0,0 +1 @@
1
+ version = '0.393.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dxpy
3
- Version: 0.391.0
3
+ Version: 0.393.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
@@ -153,7 +153,7 @@ class TestDXAppWizard(DXTestCase):
153
153
  self.assertEqual(dxapp_json['regionalOptions']['aws:us-east-1']['systemRequirements']['*']['instanceType'],
154
154
  InstanceTypesCompleter.default_instance_type.Name)
155
155
  self.assertEqual(dxapp_json['runSpec']['distribution'], 'Ubuntu')
156
- self.assertEqual(dxapp_json['runSpec']['release'], '20.04')
156
+ self.assertEqual(dxapp_json['runSpec']['release'], '24.04')
157
157
  self.assertEqual(dxapp_json['runSpec']['version'], '0')
158
158
  self.assertEqual(dxapp_json['runSpec']['interpreter'], 'python3')
159
159
  self.assertEqual(dxapp_json['runSpec']['timeoutPolicy']['*']['hours'], 24)
@@ -2551,26 +2551,6 @@ class TestHTTPResponses(testutil.DXTestCaseCompat):
2551
2551
  with self.assertRaisesRegex((SSLError, IOError, OpenSSL.SSL.Error), "file"):
2552
2552
  dxpy.DXHTTPRequest("/system/whoami", {}, cert_file="nonexistent")
2553
2553
 
2554
- def test_fake_errors(self):
2555
- dxpy.DXHTTPRequest('/system/fakeError', {'errorType': 'Valid JSON'}, always_retry=True)
2556
-
2557
- # Minimal latency with retries, in seconds. This makes sure we actually did a retry.
2558
- min_sec_with_retries = 1
2559
- max_num_retries = 2
2560
- start_time = time.time()
2561
- with self.assertRaises(ValueError):
2562
- dxpy.DXHTTPRequest('/system/fakeError', {'errorType': 'Invalid JSON'},
2563
- max_retries=max_num_retries, always_retry=True)
2564
- end_time = time.time()
2565
- self.assertGreater(end_time - start_time, min_sec_with_retries)
2566
-
2567
- start_time = time.time()
2568
- with self.assertRaises(ValueError):
2569
- dxpy.DXHTTPRequest('/system/fakeError', {'errorType': 'Error not decodeable'},
2570
- max_retries=max_num_retries, always_retry=True)
2571
- end_time = time.time()
2572
- self.assertGreater(end_time - start_time, min_sec_with_retries)
2573
-
2574
2554
  def test_system_headers_user_agent(self):
2575
2555
  headers = dxpy.api.system_headers()
2576
2556
  self.assertTrue('user-agent' in headers)
@@ -1 +0,0 @@
1
- version = '0.391.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