latch 2.40.4.dev2__tar.gz → 2.40.4.dev3__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.40.4.dev2/latch.egg-info → latch-2.40.4.dev3}/PKG-INFO +1 -1
  2. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/metadata.py +6 -0
  3. {latch-2.40.4.dev2 → latch-2.40.4.dev3/latch.egg-info}/PKG-INFO +1 -1
  4. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/utils.py +16 -2
  5. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/build.py +9 -1
  6. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/operator.py +9 -2
  7. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/process.py +14 -2
  8. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/main.py +0 -2
  9. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/utils.py +0 -1
  10. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/setup.py +1 -1
  11. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/LICENSE +0 -0
  12. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/MANIFEST.in +0 -0
  13. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/README.md +0 -0
  14. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/__init__.py +0 -0
  15. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/account.py +0 -0
  16. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/executions.py +0 -0
  17. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/__init__.py +0 -0
  18. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/messages.py +0 -0
  19. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/operators.py +0 -0
  20. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/secrets.py +0 -0
  21. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/__init__.py +0 -0
  22. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/__init__.py +0 -0
  23. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/download.py +0 -0
  24. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/manager.py +0 -0
  25. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/node.py +0 -0
  26. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/progress.py +0 -0
  27. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/remote_copy.py +0 -0
  28. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/throttle.py +0 -0
  29. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/upload.py +0 -0
  30. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/utils.py +0 -0
  31. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/path.py +0 -0
  32. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/type.py +0 -0
  33. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/__init__.py +0 -0
  34. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/project.py +0 -0
  35. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/record.py +0 -0
  36. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/table.py +0 -0
  37. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/types.py +0 -0
  38. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/__init__.py +0 -0
  39. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/types.py +0 -0
  40. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/values.py +0 -0
  41. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/utils.py +0 -0
  42. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/__init__.py +0 -0
  43. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/conditional.py +0 -0
  44. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/dynamic.py +0 -0
  45. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/launch_plan.py +0 -0
  46. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/map_tasks.py +0 -0
  47. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/reference_workflow.py +0 -0
  48. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/tasks.py +0 -0
  49. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/workflow.py +0 -0
  50. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/__init__.py +0 -0
  51. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/directory.py +0 -0
  52. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/file.py +0 -0
  53. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/glob.py +0 -0
  54. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/json.py +0 -0
  55. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/utils.py +0 -0
  56. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/utils.py +0 -0
  57. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/__init__.py +0 -0
  58. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/deseq2.py +0 -0
  59. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/mafft.py +0 -0
  60. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/pathway.py +0 -0
  61. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/rnaseq.py +0 -0
  62. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/trim_galore.py +0 -0
  63. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/SOURCES.txt +0 -0
  64. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/dependency_links.txt +0 -0
  65. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/entry_points.txt +0 -0
  66. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/requires.txt +0 -0
  67. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/top_level.txt +0 -0
  68. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/__init__.py +0 -0
  69. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/__init__.py +0 -0
  70. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/csrf.py +0 -0
  71. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/oauth2.py +0 -0
  72. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/pkce.py +0 -0
  73. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/utils.py +0 -0
  74. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/__init__.py +0 -0
  75. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/ctx.py +0 -0
  76. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/utils.py +0 -0
  77. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/click_utils.py +0 -0
  78. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/constants.py +0 -0
  79. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/docker_utils/__init__.py +0 -0
  80. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/__init__.py +0 -0
  81. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/cache.py +0 -0
  82. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/errors.py +0 -0
  83. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/handler.py +0 -0
  84. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/traceback.py +0 -0
  85. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/__init__.py +0 -0
  86. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/__init__.py +0 -0
  87. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/__init__.py +0 -0
  88. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/parser.py +0 -0
  89. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/utils.py +0 -0
  90. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/serialize.py +0 -0
  91. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/__init__.py +0 -0
  92. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/channel.py +0 -0
  93. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/config.py +0 -0
  94. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/dag.py +0 -0
  95. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/file_persistence.py +0 -0
  96. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/serialize.py +0 -0
  97. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
  98. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/adapters.py +0 -0
  99. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/base.py +0 -0
  100. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
  101. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/map.py +0 -0
  102. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
  103. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/workflow.py +0 -0
  104. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/__init__.py +0 -0
  105. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/config.py +0 -0
  106. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/serialize.py +0 -0
  107. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
  108. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/utils.py +0 -0
  109. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/workflow.py +0 -0
  110. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/menus.py +0 -0
  111. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/__init__.py +0 -0
  112. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/__init__.py +0 -0
  113. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/autocomplete.py +0 -0
  114. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/glob.py +0 -0
  115. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/main.py +0 -0
  116. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/utils.py +0 -0
  117. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/__init__.py +0 -0
  118. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/main.py +0 -0
  119. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/utils.py +0 -0
  120. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get.py +0 -0
  121. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get_executions.py +0 -0
  122. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get_params.py +0 -0
  123. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__init__.py +0 -0
  124. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  125. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
  126. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
  127. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
  128. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
  129. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
  130. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
  131. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
  132. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/.env +0 -0
  133. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  134. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  135. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  136. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
  137. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  138. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  139. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  140. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/common/.dockerignore +0 -0
  141. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/__init__.py +0 -0
  142. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
  143. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/conda_task.py +0 -0
  144. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/environment.yaml +0 -0
  145. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_docker/__init__.py +0 -0
  146. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_docker/task.py +0 -0
  147. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/main.nf +0 -0
  148. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/nextflow.config +0 -0
  149. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/workflow.nf +0 -0
  150. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
  151. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  152. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  153. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/task.py +0 -0
  154. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/__init__.py +0 -0
  155. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
  156. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/environment.R +0 -0
  157. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/r_task.py +0 -0
  158. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  159. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  160. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  161. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  162. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  163. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  164. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  165. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/version +0 -0
  166. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/init.py +0 -0
  167. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/LICENSE +0 -0
  168. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/README.md +0 -0
  169. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/__init__.py +0 -0
  170. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
  171. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/task.py +0 -0
  172. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/launch.py +0 -0
  173. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/local_dev.py +0 -0
  174. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/local_dev_old.py +0 -0
  175. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/login.py +0 -0
  176. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/ls.py +0 -0
  177. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/mkdir.py +0 -0
  178. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/move.py +0 -0
  179. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/preview.py +0 -0
  180. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/__init__.py +0 -0
  181. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/constants.py +0 -0
  182. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/register.py +0 -0
  183. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/rm.py +0 -0
  184. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/stop_pod.py +0 -0
  185. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/sync.py +0 -0
  186. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/__init__.py +0 -0
  187. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/ls.py +0 -0
  188. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/remove.py +0 -0
  189. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/upload.py +0 -0
  190. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/utils.py +0 -0
  191. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/workspace.py +0 -0
  192. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/tinyrequests.py +0 -0
  193. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/tui/__init__.py +0 -0
  194. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/__init__.py +0 -0
  195. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/path.py +0 -0
  196. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/workflow.py +0 -0
  197. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/workflow_config.py +0 -0
  198. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/pyproject.toml +0 -0
  199. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/setup.cfg +0 -0
  200. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/__init__.py +0 -0
  201. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/cp/__init__.py +0 -0
  202. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/fixtures.py +0 -0
  203. {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/test_ls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: latch
3
- Version: 2.40.4.dev2
3
+ Version: 2.40.4.dev3
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -4,7 +4,9 @@ from enum import Enum
4
4
  from pathlib import Path
5
5
  from textwrap import indent
6
6
  from typing import (
7
+ Annotated,
7
8
  Any,
9
+ Callable,
8
10
  ClassVar,
9
11
  Collection,
10
12
  Dict,
@@ -478,6 +480,10 @@ class NextflowParameter(Generic[T], LatchParameter):
478
480
  """
479
481
  default: Optional[T] = None
480
482
 
483
+ def __post_init__(self):
484
+ if self.samplesheet is True:
485
+ self.type = Annotated[self.type, "samplesheet"]
486
+
481
487
 
482
488
  @dataclass
483
489
  class NextflowFileParameter(NextflowParameter[Union[LatchFile, LatchDir]]):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: latch
3
- Version: 2.40.4.dev2
3
+ Version: 2.40.4.dev3
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -37,13 +37,23 @@ def is_blob_type(typ: Type) -> TypeGuard[Union[Type[LatchFile], Type[LatchDir]]]
37
37
 
38
38
 
39
39
  def is_downloadable_blob_type(typ: Type):
40
- if not is_blob_type(typ):
40
+ if not is_blob_type(typ) or typ is LatchOutputDir:
41
41
  return False
42
42
 
43
- return typ is not LatchOutputDir
43
+ origin = get_origin(typ)
44
+ if origin is not None:
45
+ return all([
46
+ is_downloadable_blob_type(sub_typ) or sub_typ is type(None)
47
+ for sub_typ in get_args(typ)
48
+ ])
49
+
50
+ return True
44
51
 
45
52
 
46
53
  def type_repr(t: Type, *, add_namespace: bool = False) -> str:
54
+ if get_origin(t) == Annotated:
55
+ return type_repr(get_args(t)[0])
56
+
47
57
  if getattr(t, "__name__", None) == "NoneType":
48
58
  return "None"
49
59
 
@@ -70,3 +80,7 @@ def type_repr(t: Type, *, add_namespace: bool = False) -> str:
70
80
  )
71
81
 
72
82
  return getattr(t, "__name__", repr(t))
83
+
84
+
85
+ def is_samplesheet_param(t: Type) -> bool:
86
+ return get_origin(t) == Annotated and get_args(t)[-1] == "samplesheet"
@@ -31,7 +31,7 @@ from ...click_utils import italic
31
31
  from ...menus import select_tui
32
32
  from ...utils import current_workspace, identifier_from_str
33
33
  from ..common.serialize import binding_from_python
34
- from ..common.utils import reindent
34
+ from ..common.utils import is_samplesheet_param, reindent
35
35
  from .dag import DAG, VertexType
36
36
  from .tasks.adapters import (
37
37
  NextflowProcessPostAdapterTask,
@@ -523,6 +523,14 @@ def generate_nf_entrypoint(
523
523
  0,
524
524
  )
525
525
 
526
+ if any([is_samplesheet_param(t) for t in wf.python_interface.inputs.values()]):
527
+ preamble += reindent(
528
+ r"""
529
+ from latch_metadata.parameters import construct_samplesheet
530
+ """,
531
+ 0,
532
+ )
533
+
526
534
  for t in wf.python_interface.inputs.values():
527
535
  preamble += get_preamble(t, make_optionals=True)
528
536
 
@@ -1,12 +1,12 @@
1
1
  import json
2
2
  from pathlib import Path
3
- from typing import Dict, List, Mapping, Type
3
+ from typing import Annotated, Dict, List, Mapping, Type, get_args, get_origin
4
4
 
5
5
  from latch.types.directory import LatchDir
6
6
  from latch.types.file import LatchFile
7
7
  from latch.types.metadata import ParameterType
8
8
 
9
- from ...common.utils import is_blob_type, reindent, type_repr
9
+ from ...common.utils import is_blob_type, is_samplesheet_param, reindent, type_repr
10
10
  from ..workflow import NextflowWorkflow
11
11
  from .base import NextflowBaseTask, NFTaskType
12
12
 
@@ -151,6 +151,13 @@ class NextflowOperatorTask(NextflowBaseTask):
151
151
  """,
152
152
  2,
153
153
  )
154
+ elif is_samplesheet_param(typ):
155
+ code_block += reindent(
156
+ f"""
157
+ {k} = construct_samplesheet({k})
158
+ """,
159
+ 2,
160
+ )
154
161
 
155
162
  # todo(ayush): figure out how to make this work
156
163
  do_file_io = False
@@ -1,13 +1,18 @@
1
1
  import json
2
2
  from dataclasses import fields, is_dataclass
3
3
  from pathlib import Path
4
- from typing import List, Mapping, Optional, Type
4
+ from typing import Annotated, List, Mapping, Optional, Type
5
+
6
+ try:
7
+ from typing import get_args, get_origin
8
+ except ImportError:
9
+ from typing_extensions import get_args, get_origin
5
10
 
6
11
  from latch.types.directory import LatchDir
7
12
  from latch.types.file import LatchFile
8
13
  from latch.types.metadata import ParameterType
9
14
 
10
- from ...common.utils import is_blob_type, reindent, type_repr
15
+ from ...common.utils import is_blob_type, is_samplesheet_param, reindent, type_repr
11
16
  from ..workflow import NextflowWorkflow
12
17
  from .base import NextflowBaseTask, NFTaskType
13
18
 
@@ -165,6 +170,13 @@ class NextflowProcessTask(NextflowBaseTask):
165
170
  """,
166
171
  1,
167
172
  )
173
+ elif is_samplesheet_param(typ):
174
+ code_block += reindent(
175
+ f"""
176
+ {k} = construct_samplesheet({k})
177
+ """,
178
+ 1,
179
+ )
168
180
 
169
181
  if self.script_path.resolve() != self.wf.nf_script.resolve():
170
182
  stem = self.script_path.resolve().relative_to(self.wf.pkg_root.resolve())
@@ -81,8 +81,6 @@ def main():
81
81
  fg="yellow",
82
82
  )
83
83
 
84
- # crash_handler.init()
85
-
86
84
 
87
85
  """
88
86
  LOGIN COMMANDS
@@ -102,7 +102,6 @@ def build_image(
102
102
  tag=f"{ctx.dkr_repo}/{image_name}",
103
103
  decode=True,
104
104
  )
105
-
106
105
  return build_logs
107
106
 
108
107
 
@@ -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.40.4.dev2",
16
+ version="v2.40.4.dev3",
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
File without changes
File without changes