latch 2.39.0.dev12__tar.gz → 2.39.0.dev14__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.dev14/PKG-INFO +39 -0
  2. latch-2.39.0.dev14/latch.egg-info/PKG-INFO +39 -0
  3. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch.egg-info/SOURCES.txt +1 -0
  4. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/build.py +2 -1
  5. latch-2.39.0.dev14/latch_cli/extras/nextflow/channel.py +39 -0
  6. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/adapters.py +20 -29
  7. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/operator.py +1 -0
  8. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/setup.py +1 -1
  9. latch-2.39.0.dev12/PKG-INFO +0 -13
  10. latch-2.39.0.dev12/latch.egg-info/PKG-INFO +0 -13
  11. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/LICENSE +0 -0
  12. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/MANIFEST.in +0 -0
  13. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/README.md +0 -0
  14. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/__init__.py +0 -0
  15. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/account.py +0 -0
  16. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/executions.py +0 -0
  17. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/functions/__init__.py +0 -0
  18. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/functions/messages.py +0 -0
  19. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/functions/operators.py +0 -0
  20. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/functions/secrets.py +0 -0
  21. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/__init__.py +0 -0
  22. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/__init__.py +0 -0
  23. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/download.py +0 -0
  24. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/manager.py +0 -0
  25. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/node.py +0 -0
  26. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/progress.py +0 -0
  27. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/remote_copy.py +0 -0
  28. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/throttle.py +0 -0
  29. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/upload.py +0 -0
  30. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/_transfer/utils.py +0 -0
  31. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/path.py +0 -0
  32. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/ldata/type.py +0 -0
  33. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/__init__.py +0 -0
  34. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/project.py +0 -0
  35. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/record.py +0 -0
  36. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/table.py +0 -0
  37. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/types.py +0 -0
  38. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/upstream_types/__init__.py +0 -0
  39. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/upstream_types/types.py +0 -0
  40. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/upstream_types/values.py +0 -0
  41. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/registry/utils.py +0 -0
  42. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/__init__.py +0 -0
  43. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/conditional.py +0 -0
  44. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/launch_plan.py +0 -0
  45. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/map_tasks.py +0 -0
  46. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/reference_workflow.py +0 -0
  47. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/tasks.py +0 -0
  48. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/resources/workflow.py +0 -0
  49. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/__init__.py +0 -0
  50. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/directory.py +0 -0
  51. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/file.py +0 -0
  52. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/glob.py +0 -0
  53. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/json.py +0 -0
  54. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/metadata.py +0 -0
  55. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/types/utils.py +0 -0
  56. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/__init__.py +0 -0
  57. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/deseq2.py +0 -0
  58. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/mafft.py +0 -0
  59. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/pathway.py +0 -0
  60. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/rnaseq.py +0 -0
  61. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch/verified/trim_galore.py +0 -0
  62. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch.egg-info/dependency_links.txt +0 -0
  63. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch.egg-info/entry_points.txt +0 -0
  64. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch.egg-info/requires.txt +0 -0
  65. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch.egg-info/top_level.txt +0 -0
  66. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/__init__.py +0 -0
  67. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/auth/__init__.py +0 -0
  68. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/auth/csrf.py +0 -0
  69. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/auth/oauth2.py +0 -0
  70. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/auth/pkce.py +0 -0
  71. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/auth/utils.py +0 -0
  72. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/centromere/__init__.py +0 -0
  73. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/centromere/ctx.py +0 -0
  74. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/centromere/utils.py +0 -0
  75. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/click_utils.py +0 -0
  76. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/constants.py +0 -0
  77. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/docker_utils/__init__.py +0 -0
  78. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/exceptions/__init__.py +0 -0
  79. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/exceptions/cache.py +0 -0
  80. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/exceptions/errors.py +0 -0
  81. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/exceptions/handler.py +0 -0
  82. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/exceptions/traceback.py +0 -0
  83. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/__init__.py +0 -0
  84. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/common/__init__.py +0 -0
  85. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/common/serialize.py +0 -0
  86. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/common/utils.py +0 -0
  87. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/__init__.py +0 -0
  88. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/dag.py +0 -0
  89. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/file_persistence.py +0 -0
  90. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/serialize.py +0 -0
  91. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
  92. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/base.py +0 -0
  93. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
  94. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/input.py +0 -0
  95. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/map.py +0 -0
  96. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
  97. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/output.py +0 -0
  98. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/tasks/process.py +0 -0
  99. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/nextflow/workflow.py +0 -0
  100. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/__init__.py +0 -0
  101. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/config/__init__.py +0 -0
  102. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/config/parser.py +0 -0
  103. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/config/utils.py +0 -0
  104. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/serialize.py +0 -0
  105. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
  106. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/utils.py +0 -0
  107. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/extras/snakemake/workflow.py +0 -0
  108. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/main.py +0 -0
  109. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/menus.py +0 -0
  110. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/__init__.py +0 -0
  111. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/cp/__init__.py +0 -0
  112. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/cp/autocomplete.py +0 -0
  113. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/cp/glob.py +0 -0
  114. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/cp/main.py +0 -0
  115. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/cp/utils.py +0 -0
  116. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/execute/__init__.py +0 -0
  117. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/execute/main.py +0 -0
  118. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/execute/utils.py +0 -0
  119. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/get.py +0 -0
  120. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/get_executions.py +0 -0
  121. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/get_params.py +0 -0
  122. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__init__.py +0 -0
  123. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  124. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
  125. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
  126. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
  127. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
  128. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
  129. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
  130. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
  131. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/.env +0 -0
  132. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  133. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  134. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  135. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
  136. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  137. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  138. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  139. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/common/.dockerignore +0 -0
  140. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_conda/__init__.py +0 -0
  141. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
  142. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_conda/conda_task.py +0 -0
  143. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_conda/environment.yaml +0 -0
  144. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_docker/__init__.py +0 -0
  145. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_docker/task.py +0 -0
  146. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
  147. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
  148. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
  149. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
  150. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
  151. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  152. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  153. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_nfcore/task.py +0 -0
  154. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_r/__init__.py +0 -0
  155. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
  156. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_r/environment.R +0 -0
  157. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_r/r_task.py +0 -0
  158. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  159. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  160. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  161. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  162. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  163. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  164. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  165. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/example_snakemake/version +0 -0
  166. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/init.py +0 -0
  167. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/template/LICENSE +0 -0
  168. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/template/README.md +0 -0
  169. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/template/__init__.py +0 -0
  170. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
  171. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/init/template/task.py +0 -0
  172. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/launch.py +0 -0
  173. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/local_dev.py +0 -0
  174. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/local_dev_old.py +0 -0
  175. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/login.py +0 -0
  176. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/ls.py +0 -0
  177. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/mkdir.py +0 -0
  178. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/move.py +0 -0
  179. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/preview.py +0 -0
  180. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/register/__init__.py +0 -0
  181. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/register/constants.py +0 -0
  182. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/register/register.py +0 -0
  183. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/register/utils.py +0 -0
  184. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/rm.py +0 -0
  185. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/stop_pod.py +0 -0
  186. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/sync.py +0 -0
  187. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/test_data/__init__.py +0 -0
  188. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/test_data/ls.py +0 -0
  189. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/test_data/remove.py +0 -0
  190. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/test_data/upload.py +0 -0
  191. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/test_data/utils.py +0 -0
  192. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/services/workspace.py +0 -0
  193. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/tinyrequests.py +0 -0
  194. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/tui/__init__.py +0 -0
  195. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/utils/__init__.py +0 -0
  196. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/utils/path.py +0 -0
  197. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/latch_cli/workflow_config.py +0 -0
  198. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/pyproject.toml +0 -0
  199. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/setup.cfg +0 -0
  200. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/tests/__init__.py +0 -0
  201. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/tests/cp/__init__.py +0 -0
  202. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/tests/fixtures.py +0 -0
  203. {latch-2.39.0.dev12 → latch-2.39.0.dev14}/tests/test_ls.py +0 -0
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.1
2
+ Name: latch
3
+ Version: 2.39.0.dev14
4
+ Summary: The Latch SDK
5
+ Author-email: kenny@latch.bio
6
+ Classifier: Programming Language :: Python :: 3.8
7
+ Classifier: Programming Language :: Python :: 3.9
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Requires-Python: >=3.8,<3.12
11
+ License-File: LICENSE
12
+ Requires-Dist: kubernetes>=24.2.0
13
+ Requires-Dist: pyjwt>=0.2.0
14
+ Requires-Dist: requests>=2.28.1
15
+ Requires-Dist: click>=8.0
16
+ Requires-Dist: docker>=5.0
17
+ Requires-Dist: paramiko>=3.2.0
18
+ Requires-Dist: scp>=0.14.0
19
+ Requires-Dist: boto3>=1.26.0
20
+ Requires-Dist: tqdm>=4.63.0
21
+ Requires-Dist: lytekit==0.15.3
22
+ Requires-Dist: lytekitplugins-pods==0.6.2
23
+ Requires-Dist: typing-extensions==4.7.1
24
+ Requires-Dist: apscheduler==3.9.1
25
+ Requires-Dist: gql==3.4.0
26
+ Requires-Dist: graphql-core==3.2.3
27
+ Requires-Dist: requests-toolbelt==0.10.1
28
+ Requires-Dist: latch-sdk-gql==0.0.6
29
+ Requires-Dist: latch-sdk-config==0.0.4
30
+ Requires-Dist: python-dateutil>=2.8
31
+ Requires-Dist: aioconsole==0.6.1
32
+ Requires-Dist: asyncssh==2.13.2
33
+ Requires-Dist: websockets==11.0.3
34
+ Requires-Dist: watchfiles==0.19.0
35
+ Provides-Extra: snakemake
36
+ Requires-Dist: snakemake<7.30.2,>=7.18.0; extra == "snakemake"
37
+ Requires-Dist: pulp<2.8,>=2.0; extra == "snakemake"
38
+ Provides-Extra: pandas
39
+ Requires-Dist: pandas>=2.0.0; extra == "pandas"
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.1
2
+ Name: latch
3
+ Version: 2.39.0.dev14
4
+ Summary: The Latch SDK
5
+ Author-email: kenny@latch.bio
6
+ Classifier: Programming Language :: Python :: 3.8
7
+ Classifier: Programming Language :: Python :: 3.9
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Requires-Python: >=3.8,<3.12
11
+ License-File: LICENSE
12
+ Requires-Dist: kubernetes>=24.2.0
13
+ Requires-Dist: pyjwt>=0.2.0
14
+ Requires-Dist: requests>=2.28.1
15
+ Requires-Dist: click>=8.0
16
+ Requires-Dist: docker>=5.0
17
+ Requires-Dist: paramiko>=3.2.0
18
+ Requires-Dist: scp>=0.14.0
19
+ Requires-Dist: boto3>=1.26.0
20
+ Requires-Dist: tqdm>=4.63.0
21
+ Requires-Dist: lytekit==0.15.3
22
+ Requires-Dist: lytekitplugins-pods==0.6.2
23
+ Requires-Dist: typing-extensions==4.7.1
24
+ Requires-Dist: apscheduler==3.9.1
25
+ Requires-Dist: gql==3.4.0
26
+ Requires-Dist: graphql-core==3.2.3
27
+ Requires-Dist: requests-toolbelt==0.10.1
28
+ Requires-Dist: latch-sdk-gql==0.0.6
29
+ Requires-Dist: latch-sdk-config==0.0.4
30
+ Requires-Dist: python-dateutil>=2.8
31
+ Requires-Dist: aioconsole==0.6.1
32
+ Requires-Dist: asyncssh==2.13.2
33
+ Requires-Dist: websockets==11.0.3
34
+ Requires-Dist: watchfiles==0.19.0
35
+ Provides-Extra: snakemake
36
+ Requires-Dist: snakemake<7.30.2,>=7.18.0; extra == "snakemake"
37
+ Requires-Dist: pulp<2.8,>=2.0; extra == "snakemake"
38
+ Provides-Extra: pandas
39
+ Requires-Dist: pandas>=2.0.0; extra == "pandas"
@@ -84,6 +84,7 @@ latch_cli/extras/common/serialize.py
84
84
  latch_cli/extras/common/utils.py
85
85
  latch_cli/extras/nextflow/__init__.py
86
86
  latch_cli/extras/nextflow/build.py
87
+ latch_cli/extras/nextflow/channel.py
87
88
  latch_cli/extras/nextflow/dag.py
88
89
  latch_cli/extras/nextflow/file_persistence.py
89
90
  latch_cli/extras/nextflow/serialize.py
@@ -410,7 +410,7 @@ def build_nf_wf(
410
410
  }
411
411
 
412
412
  if os.environ.get("LATCH_NEXTFLOW_DEV") is not None:
413
- env = {**os.environ}
413
+ env = os.environ
414
414
 
415
415
  try:
416
416
  subprocess.run(
@@ -501,6 +501,7 @@ def generate_nf_entrypoint(
501
501
 
502
502
  from flytekit.extras.persistence import LatchPersistence
503
503
  from latch_cli.extras.nextflow.file_persistence import download_files, stage_for_output, upload_files
504
+ from latch_cli.extras.nextflow.channel import get_mapper_inputs
504
505
  from latch_cli.utils import check_exists_and_rename, get_parameter_json_value, urljoins
505
506
 
506
507
  from latch.resources.tasks import custom_task
@@ -0,0 +1,39 @@
1
+ import json
2
+ from typing import Dict, List, Type, TypeVar
3
+
4
+ from latch.types.metadata import _IsDataclass
5
+
6
+ T = TypeVar("T", bound=_IsDataclass)
7
+
8
+
9
+ def get_mapper_inputs(
10
+ cls: Type[T],
11
+ wf_inputs: Dict[str, object],
12
+ channel_inputs: Dict[str, str],
13
+ ) -> List[T]:
14
+ value_channels = {}
15
+ queue_channels = {}
16
+
17
+ min_len = float("inf")
18
+ for param_name, channel in channel_inputs.items():
19
+ values = json.loads(channel)
20
+
21
+ if type(values) == list:
22
+ queue_channels[param_name] = values
23
+ min_len = min(min_len, len(values))
24
+ else:
25
+ value_channels[param_name] = values
26
+
27
+ if min_len == float("inf"):
28
+ min_len = 1
29
+
30
+ res: List[T] = []
31
+ for i in range(min_len):
32
+ kwargs = {**wf_inputs, **value_channels}
33
+
34
+ for k, v in queue_channels.items():
35
+ kwargs[k] = v[i]
36
+
37
+ res.append(cls(**kwargs))
38
+
39
+ return res
@@ -1,5 +1,5 @@
1
1
  import typing
2
- from dataclasses import dataclass, fields, make_dataclass
2
+ from dataclasses import Field, dataclass, fields, make_dataclass
3
3
  from pathlib import Path
4
4
  from typing import Dict, List, Mapping, Type, Union, get_args, get_origin
5
5
 
@@ -116,36 +116,27 @@ class NextflowProcessPreAdapterTask(NextflowBaseTask):
116
116
 
117
117
  fs = fields(self.dataclass)
118
118
 
119
- channel_fields = [f for f in fs if not f.name.startswith("wf_")]
120
- if len(channel_fields) == 0:
121
- field_str = ", ".join(f"{f.name}={f.name}" for f in fs)
122
-
123
- code_block += reindent(
124
- f"""
125
- result = [Dataclass_{self.id}(__fields__)]
126
- """.replace("__fields__", field_str),
127
- 2,
128
- )
129
- else:
130
- assignment_str = ", ".join(
131
- [f"{field.name}=x[{i}]" for i, field in enumerate(fs)]
132
- )
119
+ channel_fields: List[Field] = []
120
+ wf_fields: List[Field] = []
121
+ for f in fs:
122
+ if f.name.startswith("wf_"):
123
+ wf_fields.append(f)
124
+ else:
125
+ channel_fields.append(f)
133
126
 
134
- variables = ", ".join([
135
- (
136
- f"repeat({field.name})"
137
- if field.name.startswith("wf_")
138
- else f"map(lambda x: json.dumps([x]), json.loads({field.name}))"
139
- )
140
- for field in fs
141
- ])
127
+ wf_dict_str = (
128
+ "{" + ", ".join(f"{repr(f.name)}: {f.name}" for f in wf_fields) + "}"
129
+ )
130
+ channel_dict_str = (
131
+ "{" + ", ".join(f"{repr(f.name)}: {f.name}" for f in channel_fields) + "}"
132
+ )
142
133
 
143
- code_block += reindent(
144
- rf"""
145
- result = [Dataclass_{self.id}({assignment_str}) for x in zip({variables})]
146
- """,
147
- 2,
148
- )
134
+ code_block += reindent(
135
+ f"""
136
+ result = get_mapper_inputs({self.dataclass.__name__}, {wf_dict_str}, {channel_dict_str})
137
+ """,
138
+ 2,
139
+ )
149
140
 
150
141
  code_block += reindent(
151
142
  rf"""
@@ -160,6 +160,7 @@ class NextflowOperatorTask(NextflowBaseTask):
160
160
  "splitFastq",
161
161
  "splitJson",
162
162
  "splitText",
163
+ "fromPath",
163
164
  ]:
164
165
  if op_name in self.name:
165
166
  do_file_io = True
@@ -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.dev12",
16
+ version="v2.39.0.dev14",
17
17
  author_email="kenny@latch.bio",
18
18
  description="The Latch SDK",
19
19
  packages=find_packages(),
@@ -1,13 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: latch
3
- Version: 2.39.0.dev12
4
- Summary: The Latch SDK
5
- Author-email: kenny@latch.bio
6
- Classifier: Programming Language :: Python :: 3.8
7
- Classifier: Programming Language :: Python :: 3.9
8
- Classifier: Programming Language :: Python :: 3.10
9
- Classifier: Programming Language :: Python :: 3.11
10
- Requires-Python: >=3.8,<3.12
11
- Provides-Extra: snakemake
12
- Provides-Extra: pandas
13
- License-File: LICENSE
@@ -1,13 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: latch
3
- Version: 2.39.0.dev12
4
- Summary: The Latch SDK
5
- Author-email: kenny@latch.bio
6
- Classifier: Programming Language :: Python :: 3.8
7
- Classifier: Programming Language :: Python :: 3.9
8
- Classifier: Programming Language :: Python :: 3.10
9
- Classifier: Programming Language :: Python :: 3.11
10
- Requires-Python: >=3.8,<3.12
11
- Provides-Extra: snakemake
12
- Provides-Extra: pandas
13
- License-File: LICENSE
File without changes
File without changes
File without changes
File without changes