latch 2.39.0.dev33__tar.gz → 2.39.0.dev35__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 (202) hide show
  1. {latch-2.39.0.dev33/latch.egg-info → latch-2.39.0.dev35}/PKG-INFO +1 -1
  2. {latch-2.39.0.dev33 → latch-2.39.0.dev35/latch.egg-info}/PKG-INFO +1 -1
  3. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/ctx.py +3 -1
  4. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/config.py +4 -4
  5. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/adapters.py +7 -20
  6. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/merge.py +2 -2
  7. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/operator.py +26 -21
  8. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/process.py +2 -2
  9. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/setup.py +2 -6
  10. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/LICENSE +0 -0
  11. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/MANIFEST.in +0 -0
  12. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/README.md +0 -0
  13. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/__init__.py +0 -0
  14. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/account.py +0 -0
  15. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/executions.py +0 -0
  16. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/__init__.py +0 -0
  17. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/messages.py +0 -0
  18. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/operators.py +0 -0
  19. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/secrets.py +0 -0
  20. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/__init__.py +0 -0
  21. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/__init__.py +0 -0
  22. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/download.py +0 -0
  23. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/manager.py +0 -0
  24. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/node.py +0 -0
  25. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/progress.py +0 -0
  26. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/remote_copy.py +0 -0
  27. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/throttle.py +0 -0
  28. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/upload.py +0 -0
  29. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/utils.py +0 -0
  30. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/path.py +0 -0
  31. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/type.py +0 -0
  32. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/__init__.py +0 -0
  33. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/project.py +0 -0
  34. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/record.py +0 -0
  35. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/table.py +0 -0
  36. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/types.py +0 -0
  37. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/__init__.py +0 -0
  38. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/types.py +0 -0
  39. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/values.py +0 -0
  40. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/utils.py +0 -0
  41. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/__init__.py +0 -0
  42. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/conditional.py +0 -0
  43. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/launch_plan.py +0 -0
  44. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/map_tasks.py +0 -0
  45. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/reference_workflow.py +0 -0
  46. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/tasks.py +0 -0
  47. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/workflow.py +0 -0
  48. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/__init__.py +0 -0
  49. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/directory.py +0 -0
  50. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/file.py +0 -0
  51. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/glob.py +0 -0
  52. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/json.py +0 -0
  53. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/metadata.py +0 -0
  54. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/utils.py +0 -0
  55. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/__init__.py +0 -0
  56. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/deseq2.py +0 -0
  57. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/mafft.py +0 -0
  58. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/pathway.py +0 -0
  59. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/rnaseq.py +0 -0
  60. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/trim_galore.py +0 -0
  61. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/SOURCES.txt +0 -0
  62. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/dependency_links.txt +0 -0
  63. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/entry_points.txt +0 -0
  64. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/requires.txt +0 -0
  65. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/top_level.txt +0 -0
  66. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/__init__.py +0 -0
  67. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/__init__.py +0 -0
  68. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/csrf.py +0 -0
  69. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/oauth2.py +0 -0
  70. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/pkce.py +0 -0
  71. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/utils.py +0 -0
  72. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/__init__.py +0 -0
  73. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/utils.py +0 -0
  74. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/click_utils.py +0 -0
  75. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/constants.py +0 -0
  76. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/docker_utils/__init__.py +0 -0
  77. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/__init__.py +0 -0
  78. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/cache.py +0 -0
  79. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/errors.py +0 -0
  80. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/handler.py +0 -0
  81. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/traceback.py +0 -0
  82. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/__init__.py +0 -0
  83. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/__init__.py +0 -0
  84. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/__init__.py +0 -0
  85. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/parser.py +0 -0
  86. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/utils.py +0 -0
  87. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/serialize.py +0 -0
  88. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/utils.py +0 -0
  89. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/__init__.py +0 -0
  90. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/build.py +0 -0
  91. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/channel.py +0 -0
  92. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/dag.py +0 -0
  93. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/file_persistence.py +0 -0
  94. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/serialize.py +0 -0
  95. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
  96. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/base.py +0 -0
  97. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
  98. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/map.py +0 -0
  99. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/workflow.py +0 -0
  100. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/__init__.py +0 -0
  101. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/config.py +0 -0
  102. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/serialize.py +0 -0
  103. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
  104. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/utils.py +0 -0
  105. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/workflow.py +0 -0
  106. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/main.py +0 -0
  107. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/menus.py +0 -0
  108. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/__init__.py +0 -0
  109. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/__init__.py +0 -0
  110. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/autocomplete.py +0 -0
  111. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/glob.py +0 -0
  112. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/main.py +0 -0
  113. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/utils.py +0 -0
  114. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/__init__.py +0 -0
  115. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/main.py +0 -0
  116. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/utils.py +0 -0
  117. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get.py +0 -0
  118. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get_executions.py +0 -0
  119. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get_params.py +0 -0
  120. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__init__.py +0 -0
  121. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  122. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
  123. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
  124. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
  125. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
  126. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
  127. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
  128. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
  129. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/.env +0 -0
  130. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  131. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  132. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  133. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
  134. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  135. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  136. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  137. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/common/.dockerignore +0 -0
  138. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/__init__.py +0 -0
  139. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
  140. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/conda_task.py +0 -0
  141. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/environment.yaml +0 -0
  142. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_docker/__init__.py +0 -0
  143. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_docker/task.py +0 -0
  144. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
  145. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
  146. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
  147. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
  148. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
  149. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  150. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  151. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/task.py +0 -0
  152. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/__init__.py +0 -0
  153. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
  154. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/environment.R +0 -0
  155. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/r_task.py +0 -0
  156. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  157. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  158. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  159. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  160. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  161. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  162. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  163. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/version +0 -0
  164. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/init.py +0 -0
  165. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/LICENSE +0 -0
  166. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/README.md +0 -0
  167. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/__init__.py +0 -0
  168. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
  169. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/task.py +0 -0
  170. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/launch.py +0 -0
  171. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/local_dev.py +0 -0
  172. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/local_dev_old.py +0 -0
  173. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/login.py +0 -0
  174. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/ls.py +0 -0
  175. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/mkdir.py +0 -0
  176. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/move.py +0 -0
  177. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/preview.py +0 -0
  178. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/__init__.py +0 -0
  179. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/constants.py +0 -0
  180. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/register.py +0 -0
  181. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/utils.py +0 -0
  182. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/rm.py +0 -0
  183. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/stop_pod.py +0 -0
  184. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/sync.py +0 -0
  185. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/__init__.py +0 -0
  186. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/ls.py +0 -0
  187. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/remove.py +0 -0
  188. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/upload.py +0 -0
  189. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/utils.py +0 -0
  190. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/workspace.py +0 -0
  191. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/tinyrequests.py +0 -0
  192. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/tui/__init__.py +0 -0
  193. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/__init__.py +0 -0
  194. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/path.py +0 -0
  195. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/workflow.py +0 -0
  196. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/workflow_config.py +0 -0
  197. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/pyproject.toml +0 -0
  198. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/setup.cfg +0 -0
  199. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/__init__.py +0 -0
  200. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/cp/__init__.py +0 -0
  201. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/fixtures.py +0 -0
  202. {latch-2.39.0.dev33 → latch-2.39.0.dev35}/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.dev33
3
+ Version: 2.39.0.dev35
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.dev33
3
+ Version: 2.39.0.dev35
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -266,7 +266,9 @@ class _CentromereCtx:
266
266
  click.secho(
267
267
  dedent(
268
268
  "Make sure a `latch_metadata` package exists in the"
269
- " nextflow project root.",
269
+ " nextflow project root."
270
+ "\nYou can generate this package with the"
271
+ "`latch generate-metadata --nextflow <pkg_root>` command.",
270
272
  ),
271
273
  fg="red",
272
274
  )
@@ -140,21 +140,21 @@ def generate_nf_metadata(
140
140
  from latch.types.file import LatchFile
141
141
  from latch.types.directory import LatchDir
142
142
 
143
- __preambles__
143
+ ||preambles||
144
144
 
145
145
  # Import these into your `__init__.py` file:
146
146
  #
147
147
  # from .parameters import generated_parameters, file_metadata
148
148
 
149
149
  generated_parameters = {
150
- __params__
150
+ ||params||
151
151
  }
152
152
 
153
153
  """,
154
154
  0,
155
155
  )
156
- .replace("__preambles__", "".join(preambles))
157
- .replace("__params__", "\n".join(params))
156
+ .replace("||preambles||", "".join(preambles))
157
+ .replace("||params||", "\n".join(params))
158
158
  )
159
159
 
160
160
  write_metadata(
@@ -46,11 +46,11 @@ def get_dataclass_code(cls: Type[_IsDataclass]) -> str:
46
46
  rf"""
47
47
  @dataclass
48
48
  class {cls.__name__}:
49
- __output_fields__
49
+ ||output|fields||
50
50
 
51
51
  """,
52
52
  0,
53
- ).replace("__output_fields__", output_fields)
53
+ ).replace("||output|fields||", output_fields)
54
54
 
55
55
 
56
56
  class NextflowProcessPreAdapterTask(NextflowBaseTask):
@@ -105,11 +105,11 @@ class NextflowProcessPreAdapterTask(NextflowBaseTask):
105
105
  rf"""
106
106
  @task(cache=True)
107
107
  def {self.name}(
108
- __params__
108
+ ||params||
109
109
  ) -> Res_{self.id}:
110
110
  """,
111
111
  0,
112
- ).replace("__params__", params_str)
112
+ ).replace("||params||", params_str)
113
113
 
114
114
  return res
115
115
 
@@ -198,11 +198,11 @@ class NextflowProcessPostAdapterTask(NextflowBaseTask):
198
198
  res += reindent(
199
199
  rf"""
200
200
  class Res{self.name}(NamedTuple):
201
- __output_fields__
201
+ ||output|fields||
202
202
 
203
203
  """,
204
204
  0,
205
- ).replace("__output_fields__", output_fields)
205
+ ).replace("||output|fields||", output_fields)
206
206
 
207
207
  res += get_dataclass_code(self.dataclass)
208
208
 
@@ -219,25 +219,12 @@ class NextflowProcessPostAdapterTask(NextflowBaseTask):
219
219
  return res
220
220
 
221
221
  def get_fn_return_stmt(self):
222
- results: List[str] = []
223
- for out_name in self._python_outputs.keys():
224
- results.append(
225
- reindent(
226
- rf"""
227
- {out_name}=json.dumps([*chain.from_iterable([json.loads(x.{out_name}) for x in default])])
228
- """,
229
- 1,
230
- ).rstrip()
231
- )
232
-
233
- return_str = ",\n".join(results)
234
-
235
222
  return reindent(
236
223
  rf"""
237
224
  return get_mapper_outputs(Res{self.name}, default)
238
225
  """,
239
226
  1,
240
- ).replace("__return_str__", return_str)
227
+ )
241
228
 
242
229
  def get_fn_code(self, nf_script_path_in_container: Path):
243
230
  code_block = self.get_fn_interface()
@@ -74,11 +74,11 @@ class NextflowMergeTask(NextflowOperatorTask):
74
74
  return reindent(
75
75
  rf"""
76
76
  return Res{self.name}(
77
- __return_str__
77
+ ||return|str||
78
78
  )
79
79
  """,
80
80
  0,
81
- ).replace("__return_str__", return_str)
81
+ ).replace("||return|str||", return_str)
82
82
 
83
83
  def get_fn_code(self, nf_script_path_in_container: Path):
84
84
  code_block = self.get_fn_interface()
@@ -50,11 +50,11 @@ class NextflowOperatorTask(NextflowBaseTask):
50
50
  res += reindent(
51
51
  rf"""
52
52
  class Res{self.name}(NamedTuple):
53
- __output_fields__
53
+ ||output|fields||
54
54
 
55
55
  """,
56
56
  0,
57
- ).replace("__output_fields__", output_fields)
57
+ ).replace("||output|fields||", output_fields)
58
58
 
59
59
  outputs_str = f"Res{self.name}:"
60
60
 
@@ -73,13 +73,13 @@ class NextflowOperatorTask(NextflowBaseTask):
73
73
  rf"""
74
74
  @task(cache=True)
75
75
  def {self.name}(
76
- __params__
77
- ) -> __outputs__
76
+ ||params||
77
+ ) -> ||outputs||
78
78
  """,
79
79
  0,
80
80
  )
81
- .replace("__params__", params_str)
82
- .replace("__outputs__", outputs_str)
81
+ .replace("||params||", params_str)
82
+ .replace("||outputs||", outputs_str)
83
83
  )
84
84
 
85
85
  return res
@@ -101,11 +101,11 @@ class NextflowOperatorTask(NextflowBaseTask):
101
101
  return reindent(
102
102
  rf"""
103
103
  return Res{self.name}(
104
- __return_str__
104
+ ||return|str||
105
105
  )
106
106
  """,
107
107
  0,
108
- ).replace("__return_str__", return_str)
108
+ ).replace("||return|str||", return_str)
109
109
 
110
110
  def get_fn_code(self, nf_script_path_in_container: Path):
111
111
  code_block = self.get_fn_interface()
@@ -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")]
@@ -214,12 +219,12 @@ class NextflowOperatorTask(NextflowBaseTask):
214
219
  _override_task_status(status="SKIPPED")
215
220
  except Exception as e:
216
221
  print(f"Failed to override task status: {{e}}")
217
- out_channels = {{__skip__}}
222
+ out_channels = {{||skip||}}
218
223
 
219
224
  """,
220
225
  1,
221
226
  ).replace(
222
- "__skip__",
227
+ "||skip||",
223
228
  ", ".join([f"{repr(o)}: None" for o in self._python_outputs.keys()]),
224
229
  )
225
230
 
@@ -96,11 +96,11 @@ class NextflowProcessTask(NextflowBaseTask):
96
96
  return reindent(
97
97
  rf"""
98
98
  return {res_type.__name__}(
99
- __return_str__
99
+ ||return|str||
100
100
  )
101
101
  """,
102
102
  0,
103
- ).replace("__return_str__", return_str)
103
+ ).replace("||return|str||", return_str)
104
104
 
105
105
  def get_fn_code(self, nf_script_path_in_container: Path):
106
106
  code_block = self.get_fn_interface()
@@ -13,17 +13,13 @@ if cur_ver < (3, 8) or cur_ver > (3, 11):
13
13
 
14
14
  setup(
15
15
  name="latch",
16
- version="v2.39.0.dev33",
16
+ version="v2.39.0.dev35",
17
17
  author_email="kenny@latch.bio",
18
18
  description="The Latch SDK",
19
19
  packages=find_packages(),
20
20
  include_package_data=True,
21
21
  python_requires=">=3.8,<3.12",
22
- entry_points={
23
- "console_scripts": [
24
- "latch=latch_cli.main:main",
25
- ]
26
- },
22
+ entry_points={"console_scripts": ["latch=latch_cli.main:main"]},
27
23
  install_requires=[
28
24
  "kubernetes>=24.2.0",
29
25
  "pyjwt>=0.2.0",
File without changes
File without changes
File without changes
File without changes