latch 2.39.0.dev32__tar.gz → 2.39.0.dev34__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 (203) hide show
  1. {latch-2.39.0.dev32/latch.egg-info → latch-2.39.0.dev34}/PKG-INFO +1 -1
  2. {latch-2.39.0.dev32 → latch-2.39.0.dev34/latch.egg-info}/PKG-INFO +1 -1
  3. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/SOURCES.txt +0 -11
  4. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/build.py +50 -26
  5. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/operator.py +17 -12
  6. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/process.py +2 -2
  7. latch-2.39.0.dev34/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  8. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
  9. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/setup.py +1 -1
  10. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  11. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
  12. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
  13. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
  14. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
  15. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
  16. latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
  17. latch-2.39.0.dev32/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
  18. latch-2.39.0.dev32/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
  19. latch-2.39.0.dev32/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
  20. latch-2.39.0.dev32/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
  21. latch-2.39.0.dev32/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
  22. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/LICENSE +0 -0
  23. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/MANIFEST.in +0 -0
  24. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/README.md +0 -0
  25. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/__init__.py +0 -0
  26. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/account.py +0 -0
  27. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/executions.py +0 -0
  28. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/__init__.py +0 -0
  29. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/messages.py +0 -0
  30. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/operators.py +0 -0
  31. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/secrets.py +0 -0
  32. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/__init__.py +0 -0
  33. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/__init__.py +0 -0
  34. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/download.py +0 -0
  35. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/manager.py +0 -0
  36. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/node.py +0 -0
  37. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/progress.py +0 -0
  38. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/remote_copy.py +0 -0
  39. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/throttle.py +0 -0
  40. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/upload.py +0 -0
  41. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/utils.py +0 -0
  42. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/path.py +0 -0
  43. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/type.py +0 -0
  44. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/__init__.py +0 -0
  45. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/project.py +0 -0
  46. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/record.py +0 -0
  47. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/table.py +0 -0
  48. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/types.py +0 -0
  49. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/__init__.py +0 -0
  50. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/types.py +0 -0
  51. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/values.py +0 -0
  52. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/utils.py +0 -0
  53. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/__init__.py +0 -0
  54. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/conditional.py +0 -0
  55. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/launch_plan.py +0 -0
  56. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/map_tasks.py +0 -0
  57. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/reference_workflow.py +0 -0
  58. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/tasks.py +0 -0
  59. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/workflow.py +0 -0
  60. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/__init__.py +0 -0
  61. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/directory.py +0 -0
  62. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/file.py +0 -0
  63. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/glob.py +0 -0
  64. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/json.py +0 -0
  65. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/metadata.py +0 -0
  66. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/utils.py +0 -0
  67. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/__init__.py +0 -0
  68. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/deseq2.py +0 -0
  69. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/mafft.py +0 -0
  70. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/pathway.py +0 -0
  71. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/rnaseq.py +0 -0
  72. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/trim_galore.py +0 -0
  73. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/dependency_links.txt +0 -0
  74. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/entry_points.txt +0 -0
  75. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/requires.txt +0 -0
  76. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/top_level.txt +0 -0
  77. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/__init__.py +0 -0
  78. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/__init__.py +0 -0
  79. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/csrf.py +0 -0
  80. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/oauth2.py +0 -0
  81. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/pkce.py +0 -0
  82. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/utils.py +0 -0
  83. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/__init__.py +0 -0
  84. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/ctx.py +0 -0
  85. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/utils.py +0 -0
  86. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/click_utils.py +0 -0
  87. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/constants.py +0 -0
  88. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/docker_utils/__init__.py +0 -0
  89. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/__init__.py +0 -0
  90. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/cache.py +0 -0
  91. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/errors.py +0 -0
  92. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/handler.py +0 -0
  93. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/traceback.py +0 -0
  94. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/__init__.py +0 -0
  95. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/__init__.py +0 -0
  96. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/__init__.py +0 -0
  97. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/parser.py +0 -0
  98. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/utils.py +0 -0
  99. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/serialize.py +0 -0
  100. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/utils.py +0 -0
  101. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/__init__.py +0 -0
  102. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/channel.py +0 -0
  103. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/config.py +0 -0
  104. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/dag.py +0 -0
  105. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/file_persistence.py +0 -0
  106. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/serialize.py +0 -0
  107. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
  108. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/adapters.py +0 -0
  109. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/base.py +0 -0
  110. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
  111. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/map.py +0 -0
  112. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
  113. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/workflow.py +0 -0
  114. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/__init__.py +0 -0
  115. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/config.py +0 -0
  116. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/serialize.py +0 -0
  117. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
  118. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/utils.py +0 -0
  119. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/workflow.py +0 -0
  120. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/main.py +0 -0
  121. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/menus.py +0 -0
  122. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/__init__.py +0 -0
  123. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/__init__.py +0 -0
  124. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/autocomplete.py +0 -0
  125. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/glob.py +0 -0
  126. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/main.py +0 -0
  127. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/utils.py +0 -0
  128. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/__init__.py +0 -0
  129. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/main.py +0 -0
  130. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/utils.py +0 -0
  131. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get.py +0 -0
  132. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get_executions.py +0 -0
  133. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get_params.py +0 -0
  134. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/__init__.py +0 -0
  135. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/.env +0 -0
  136. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  137. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  138. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  139. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  140. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  141. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  142. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/common/.dockerignore +0 -0
  143. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/__init__.py +0 -0
  144. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/conda_task.py +0 -0
  145. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/environment.yaml +0 -0
  146. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_docker/__init__.py +0 -0
  147. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_docker/task.py +0 -0
  148. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
  149. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
  150. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
  151. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
  152. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  153. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  154. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/task.py +0 -0
  155. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/__init__.py +0 -0
  156. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/environment.R +0 -0
  157. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/r_task.py +0 -0
  158. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  159. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  160. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  161. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  162. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  163. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  164. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  165. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/version +0 -0
  166. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/init.py +0 -0
  167. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/LICENSE +0 -0
  168. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/README.md +0 -0
  169. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/__init__.py +0 -0
  170. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/task.py +0 -0
  171. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/launch.py +0 -0
  172. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/local_dev.py +0 -0
  173. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/local_dev_old.py +0 -0
  174. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/login.py +0 -0
  175. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/ls.py +0 -0
  176. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/mkdir.py +0 -0
  177. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/move.py +0 -0
  178. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/preview.py +0 -0
  179. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/__init__.py +0 -0
  180. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/constants.py +0 -0
  181. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/register.py +0 -0
  182. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/utils.py +0 -0
  183. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/rm.py +0 -0
  184. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/stop_pod.py +0 -0
  185. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/sync.py +0 -0
  186. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/__init__.py +0 -0
  187. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/ls.py +0 -0
  188. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/remove.py +0 -0
  189. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/upload.py +0 -0
  190. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/utils.py +0 -0
  191. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/workspace.py +0 -0
  192. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/tinyrequests.py +0 -0
  193. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/tui/__init__.py +0 -0
  194. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/__init__.py +0 -0
  195. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/path.py +0 -0
  196. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/workflow.py +0 -0
  197. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/workflow_config.py +0 -0
  198. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/pyproject.toml +0 -0
  199. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/setup.cfg +0 -0
  200. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/__init__.py +0 -0
  201. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/cp/__init__.py +0 -0
  202. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/fixtures.py +0 -0
  203. {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/test_ls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: latch
3
- Version: 2.39.0.dev32
3
+ Version: 2.39.0.dev34
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: latch
3
- Version: 2.39.0.dev32
3
+ Version: 2.39.0.dev34
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -134,13 +134,7 @@ latch_cli/services/execute/utils.py
134
134
  latch_cli/services/init/__init__.py
135
135
  latch_cli/services/init/init.py
136
136
  latch_cli/services/init/__pycache__/__init__.cpython-310.pyc
137
- latch_cli/services/init/__pycache__/__init__.cpython-311.pyc
138
- latch_cli/services/init/__pycache__/__init__.cpython-38.pyc
139
- latch_cli/services/init/__pycache__/__init__.cpython-39.pyc
140
137
  latch_cli/services/init/__pycache__/init.cpython-310.pyc
141
- latch_cli/services/init/__pycache__/init.cpython-311.pyc
142
- latch_cli/services/init/__pycache__/init.cpython-38.pyc
143
- latch_cli/services/init/__pycache__/init.cpython-39.pyc
144
138
  latch_cli/services/init/assemble_and_sort/.env
145
139
  latch_cli/services/init/assemble_and_sort/LICENSE
146
140
  latch_cli/services/init/assemble_and_sort/README.md
@@ -148,26 +142,22 @@ latch_cli/services/init/assemble_and_sort/__init__.py
148
142
  latch_cli/services/init/assemble_and_sort/assemble.py
149
143
  latch_cli/services/init/assemble_and_sort/sort.py
150
144
  latch_cli/services/init/assemble_and_sort/system-requirements.txt
151
- latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc
152
145
  latch_cli/services/init/common/.dockerignore
153
146
  latch_cli/services/init/example_conda/__init__.py
154
147
  latch_cli/services/init/example_conda/conda_task.py
155
148
  latch_cli/services/init/example_conda/environment.yaml
156
- latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc
157
149
  latch_cli/services/init/example_docker/__init__.py
158
150
  latch_cli/services/init/example_docker/task.py
159
151
  latch_cli/services/init/example_nf_integration/Dockerfile
160
152
  latch_cli/services/init/example_nf_integration/main.nf
161
153
  latch_cli/services/init/example_nf_integration/workflow.nf
162
154
  latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py
163
- latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc
164
155
  latch_cli/services/init/example_nfcore/Dockerfile
165
156
  latch_cli/services/init/example_nfcore/__init__.py
166
157
  latch_cli/services/init/example_nfcore/task.py
167
158
  latch_cli/services/init/example_r/__init__.py
168
159
  latch_cli/services/init/example_r/environment.R
169
160
  latch_cli/services/init/example_r/r_task.py
170
- latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc
171
161
  latch_cli/services/init/example_snakemake/Dockerfile
172
162
  latch_cli/services/init/example_snakemake/Snakefile
173
163
  latch_cli/services/init/example_snakemake/config.yaml
@@ -180,7 +170,6 @@ latch_cli/services/init/template/LICENSE
180
170
  latch_cli/services/init/template/README.md
181
171
  latch_cli/services/init/template/__init__.py
182
172
  latch_cli/services/init/template/task.py
183
- latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc
184
173
  latch_cli/services/register/__init__.py
185
174
  latch_cli/services/register/constants.py
186
175
  latch_cli/services/register/register.py
@@ -1,12 +1,17 @@
1
1
  import glob
2
+ import multiprocessing
2
3
  import os
3
4
  import shutil
4
5
  import subprocess
5
6
  import sys
6
7
  from collections import OrderedDict, defaultdict
8
+ from concurrent.futures import ProcessPoolExecutor, as_completed, wait
9
+ from ctypes import c_int
10
+ from multiprocessing.managers import SyncManager
7
11
  from pathlib import Path
8
12
  from textwrap import dedent
9
13
  from typing import Dict, List, Optional, cast
14
+ from urllib.parse import urljoin, urlunparse
10
15
 
11
16
  import boto3
12
17
  import click
@@ -301,6 +306,50 @@ def build_from_nextflow_dag(
301
306
  wf._nodes = list(node_map.values()) + extra_nodes
302
307
 
303
308
 
309
+ def _do_download(
310
+ url: str,
311
+ output_path: Path,
312
+ total_count: int,
313
+ counter,
314
+ lock,
315
+ ): # todo(ayush): figure out the right type annotation for counter/lock
316
+ res = tinyrequests.get(url)
317
+ output_path.parent.mkdir(parents=True, exist_ok=True)
318
+ output_path.write_bytes(res.content)
319
+
320
+ with lock:
321
+ counter.value += 1
322
+ progress_str = f"{counter.value}/{total_count}"
323
+
324
+ click.echo("\x1b[0K", nl=False)
325
+ click.secho(progress_str, dim=True, italic=True, nl=False)
326
+ click.echo(f"\x1b[{len(progress_str)}D", nl=False)
327
+
328
+
329
+ def download_nf_jars(pkg_root: Path):
330
+ s3_resource = boto3.resource("s3")
331
+ bucket = s3_resource.Bucket("latch-public")
332
+
333
+ objects = list(bucket.objects.filter(Prefix=".nextflow/"))
334
+
335
+ click.secho(" Downloading Nextflow binaries: \x1b[?25l", italic=True, nl=False)
336
+
337
+ with SyncManager() as man:
338
+ counter = man.Value(c_int, 0)
339
+ lock = man.Lock()
340
+ with ProcessPoolExecutor() as exec:
341
+ for obj in objects:
342
+ url = urljoin(
343
+ "https://latch-public.s3.us-west-2.amazonaws.com/", obj.key
344
+ )
345
+ obj_path = pkg_root / ".latch" / obj.key
346
+
347
+ exec.submit(_do_download, url, obj_path, len(objects), counter, lock)
348
+
349
+ click.echo("\x1b[0K", nl=False)
350
+ click.secho("Done. \x1b[?25h", italic=True)
351
+
352
+
304
353
  # todo(ayush): add versioning system to nf download
305
354
  # todo(ayush): allow user to redownload nf anyway via cli option
306
355
  def ensure_nf_dependencies(pkg_root: Path, *, force_redownload: bool = False):
@@ -335,32 +384,7 @@ def ensure_nf_dependencies(pkg_root: Path, *, force_redownload: bool = False):
335
384
  nf_executable.chmod(0o700)
336
385
 
337
386
  if not nf_jars.exists():
338
- click.secho(
339
- " Downloading Nextflow binaries: \x1b[?25l",
340
- italic=True,
341
- nl=False,
342
- )
343
-
344
- s3_resource = boto3.resource("s3")
345
- bucket = s3_resource.Bucket("latch-public")
346
-
347
- objects = list(bucket.objects.filter(Prefix=".nextflow/"))
348
-
349
- # todo(ayush): parallelize
350
- for i, obj in enumerate(objects):
351
- obj_path = pkg_root / ".latch" / obj.key
352
- obj_path.parent.mkdir(parents=True, exist_ok=True)
353
-
354
- bucket.download_file(obj.key, str(obj_path))
355
-
356
- progress_str = f"{i + 1}/{len(objects)}"
357
-
358
- click.echo("\x1b[0K", nl=False)
359
- click.secho(progress_str, dim=True, italic=True, nl=False)
360
- click.echo(f"\x1b[{len(progress_str)}D", nl=False)
361
-
362
- click.echo("\x1b[0K", nl=False)
363
- click.secho("Done. \x1b[?25h", italic=True)
387
+ download_nf_jars(pkg_root)
364
388
 
365
389
 
366
390
  def build_nf_wf(
@@ -90,7 +90,7 @@ class NextflowOperatorTask(NextflowBaseTask):
90
90
  results.append(
91
91
  reindent(
92
92
  rf"""
93
- {out_name}=out_channels.get("{out_name}", "")
93
+ {out_name}=out_channels.get("{out_name}", "[]")
94
94
  """,
95
95
  2,
96
96
  ).rstrip()
@@ -188,17 +188,22 @@ class NextflowOperatorTask(NextflowBaseTask):
188
188
 
189
189
  {download_str}
190
190
 
191
- subprocess.run(
192
- [{', '.join([f"str({x})" if x.startswith("wf_") else repr(x) for x in run_task_entrypoint])}],
193
- env={{
194
- **os.environ,
195
- "LATCH_CONFIG_DIR_OVERRIDE": str(Path.cwd()),
196
- "LATCH_EXPRESSION": {repr(self.statement)},
197
- "LATCH_RETURN": {repr(json.dumps(self.ret))},
198
- "LATCH_PARAM_VALS": json.dumps(channel_vals),
199
- }},
200
- check=True,
201
- )
191
+ try:
192
+ subprocess.run(
193
+ [{', '.join([f"str({x})" if x.startswith("wf_") else repr(x) for x in run_task_entrypoint])}],
194
+ env={{
195
+ **os.environ,
196
+ "LATCH_CONFIG_DIR_OVERRIDE": str(Path.cwd()),
197
+ "LATCH_EXPRESSION": {repr(self.statement)},
198
+ "LATCH_RETURN": {repr(json.dumps(self.ret))},
199
+ "LATCH_PARAM_VALS": json.dumps(channel_vals),
200
+ }},
201
+ check=True,
202
+ )
203
+ except subprocess.CalledProcessError:
204
+ log = Path("/root/.nextflow.log").read_text()
205
+ print("\n\n\n\n\n" + log)
206
+ raise
202
207
 
203
208
  out_channels = {{}}
204
209
  files = [Path(f) for f in glob.glob(".latch/task-outputs/*.json")]
@@ -29,7 +29,7 @@ class NextflowProcessTask(NextflowBaseTask):
29
29
  wf: NextflowWorkflow,
30
30
  ):
31
31
  super().__init__(
32
- inputs, outputs, id, name, {}, wf, NFTaskType.Process, cpu=16, memory=48
32
+ inputs, outputs, id, name, {}, wf, NFTaskType.Process, cpu=16, memory=96
33
33
  )
34
34
 
35
35
  self.wf_inputs = {}
@@ -85,7 +85,7 @@ class NextflowProcessTask(NextflowBaseTask):
85
85
  results.append(
86
86
  reindent(
87
87
  rf"""
88
- {field.name}=out_channels.get(f"{field.name}", "")
88
+ {field.name}=out_channels.get(f"{field.name}", "[]")
89
89
  """,
90
90
  2,
91
91
  ).rstrip()
@@ -13,7 +13,7 @@ if cur_ver < (3, 8) or cur_ver > (3, 11):
13
13
 
14
14
  setup(
15
15
  name="latch",
16
- version="v2.39.0.dev32",
16
+ version="v2.39.0.dev34",
17
17
  author_email="kenny@latch.bio",
18
18
  description="The Latch SDK",
19
19
  packages=find_packages(),
File without changes
File without changes
File without changes
File without changes