latch 2.45.2.dev2__tar.gz → 2.45.2.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 (172) hide show
  1. {latch-2.45.2.dev2/latch.egg-info → latch-2.45.2.dev3}/PKG-INFO +1 -1
  2. {latch-2.45.2.dev2 → latch-2.45.2.dev3/latch.egg-info}/PKG-INFO +1 -1
  3. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/nextflow/workflow.py +22 -10
  4. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/setup.py +1 -1
  5. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/LICENSE +0 -0
  6. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/MANIFEST.in +0 -0
  7. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/README.md +0 -0
  8. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/__init__.py +0 -0
  9. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/account.py +0 -0
  10. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/executions.py +0 -0
  11. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/functions/__init__.py +0 -0
  12. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/functions/messages.py +0 -0
  13. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/functions/operators.py +0 -0
  14. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/functions/secrets.py +0 -0
  15. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/__init__.py +0 -0
  16. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/__init__.py +0 -0
  17. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/download.py +0 -0
  18. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/manager.py +0 -0
  19. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/node.py +0 -0
  20. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/progress.py +0 -0
  21. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/remote_copy.py +0 -0
  22. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/throttle.py +0 -0
  23. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/upload.py +0 -0
  24. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/_transfer/utils.py +0 -0
  25. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/path.py +0 -0
  26. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/ldata/type.py +0 -0
  27. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/__init__.py +0 -0
  28. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/project.py +0 -0
  29. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/record.py +0 -0
  30. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/table.py +0 -0
  31. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/types.py +0 -0
  32. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/upstream_types/__init__.py +0 -0
  33. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/upstream_types/types.py +0 -0
  34. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/upstream_types/values.py +0 -0
  35. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/registry/utils.py +0 -0
  36. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/__init__.py +0 -0
  37. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/conditional.py +0 -0
  38. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/dynamic.py +0 -0
  39. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/launch_plan.py +0 -0
  40. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/map_tasks.py +0 -0
  41. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/reference_workflow.py +0 -0
  42. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/tasks.py +0 -0
  43. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/resources/workflow.py +0 -0
  44. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/__init__.py +0 -0
  45. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/directory.py +0 -0
  46. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/file.py +0 -0
  47. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/glob.py +0 -0
  48. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/json.py +0 -0
  49. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/metadata.py +0 -0
  50. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/types/utils.py +0 -0
  51. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/utils.py +0 -0
  52. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/__init__.py +0 -0
  53. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/deseq2.py +0 -0
  54. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/mafft.py +0 -0
  55. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/pathway.py +0 -0
  56. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/rnaseq.py +0 -0
  57. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch/verified/trim_galore.py +0 -0
  58. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch.egg-info/SOURCES.txt +0 -0
  59. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch.egg-info/dependency_links.txt +0 -0
  60. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch.egg-info/entry_points.txt +0 -0
  61. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch.egg-info/requires.txt +0 -0
  62. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch.egg-info/top_level.txt +0 -0
  63. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/__init__.py +0 -0
  64. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/auth/__init__.py +0 -0
  65. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/auth/csrf.py +0 -0
  66. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/auth/oauth2.py +0 -0
  67. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/auth/pkce.py +0 -0
  68. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/auth/utils.py +0 -0
  69. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/centromere/__init__.py +0 -0
  70. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/centromere/ctx.py +0 -0
  71. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/centromere/utils.py +0 -0
  72. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/click_utils.py +0 -0
  73. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/constants.py +0 -0
  74. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/docker_utils/__init__.py +0 -0
  75. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/exceptions/__init__.py +0 -0
  76. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/exceptions/cache.py +0 -0
  77. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/exceptions/errors.py +0 -0
  78. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/exceptions/handler.py +0 -0
  79. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/exceptions/traceback.py +0 -0
  80. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/main.py +0 -0
  81. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/menus.py +0 -0
  82. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/nextflow/__init__.py +0 -0
  83. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/nextflow/dependencies.py +0 -0
  84. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/nextflow/utils.py +0 -0
  85. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/__init__.py +0 -0
  86. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/cp/__init__.py +0 -0
  87. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/cp/autocomplete.py +0 -0
  88. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/cp/glob.py +0 -0
  89. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/cp/main.py +0 -0
  90. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/cp/utils.py +0 -0
  91. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/execute/__init__.py +0 -0
  92. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/execute/main.py +0 -0
  93. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/execute/utils.py +0 -0
  94. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/get.py +0 -0
  95. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/get_executions.py +0 -0
  96. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/get_params.py +0 -0
  97. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/__init__.py +0 -0
  98. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
  99. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
  100. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/.env +0 -0
  101. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  102. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  103. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  104. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  105. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  106. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  107. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/common/.dockerignore +0 -0
  108. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_conda/__init__.py +0 -0
  109. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_conda/conda_task.py +0 -0
  110. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_conda/environment.yaml +0 -0
  111. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_docker/__init__.py +0 -0
  112. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_docker/task.py +0 -0
  113. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  114. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  115. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_nfcore/task.py +0 -0
  116. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_r/__init__.py +0 -0
  117. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_r/environment.R +0 -0
  118. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_r/r_task.py +0 -0
  119. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  120. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  121. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  122. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  123. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  124. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  125. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  126. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/example_snakemake/version +0 -0
  127. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/init.py +0 -0
  128. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/template/LICENSE +0 -0
  129. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/template/README.md +0 -0
  130. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/template/__init__.py +0 -0
  131. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/init/template/task.py +0 -0
  132. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/launch.py +0 -0
  133. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/local_dev.py +0 -0
  134. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/local_dev_old.py +0 -0
  135. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/login.py +0 -0
  136. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/ls.py +0 -0
  137. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/mkdir.py +0 -0
  138. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/move.py +0 -0
  139. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/preview.py +0 -0
  140. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/register/__init__.py +0 -0
  141. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/register/constants.py +0 -0
  142. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/register/register.py +0 -0
  143. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/register/utils.py +0 -0
  144. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/rm.py +0 -0
  145. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/stop_pod.py +0 -0
  146. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/sync.py +0 -0
  147. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/test_data/__init__.py +0 -0
  148. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/test_data/ls.py +0 -0
  149. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/test_data/remove.py +0 -0
  150. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/test_data/upload.py +0 -0
  151. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/test_data/utils.py +0 -0
  152. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/services/workspace.py +0 -0
  153. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/__init__.py +0 -0
  154. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/config/__init__.py +0 -0
  155. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/config/parser.py +0 -0
  156. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/config/utils.py +0 -0
  157. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/serialize.py +0 -0
  158. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/serialize_utils.py +0 -0
  159. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/single_task_snakemake.py +0 -0
  160. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/utils.py +0 -0
  161. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/snakemake/workflow.py +0 -0
  162. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/tinyrequests.py +0 -0
  163. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/tui/__init__.py +0 -0
  164. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/utils/__init__.py +0 -0
  165. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/utils/path.py +0 -0
  166. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/latch_cli/workflow_config.py +0 -0
  167. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/pyproject.toml +0 -0
  168. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/setup.cfg +0 -0
  169. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/tests/__init__.py +0 -0
  170. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/tests/cp/__init__.py +0 -0
  171. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/tests/fixtures.py +0 -0
  172. {latch-2.45.2.dev2 → latch-2.45.2.dev3}/tests/test_ls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: latch
3
- Version: 2.45.2.dev2
3
+ Version: 2.45.2.dev3
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.45.2.dev2
3
+ Version: 2.45.2.dev3
4
4
  Summary: The Latch SDK
5
5
  Author-email: kenny@latch.bio
6
6
  Classifier: Programming Language :: Python :: 3.8
@@ -60,17 +60,19 @@ def initialize() -> str:
60
60
 
61
61
  {preambles}
62
62
 
63
- {samplesheet_constructors}
63
+ {samplesheet_funs}
64
64
 
65
65
  @nextflow_runtime_task(cpu={cpu}, memory={memory})
66
66
  def nextflow_runtime(pvc_name: str, {param_signature}) -> None:
67
67
  try:
68
68
  shared_dir = Path("/nf-workdir")
69
69
 
70
+ {samplesheet_constructors}
71
+
70
72
  shutil.copytree(
71
73
  Path("/root"),
72
74
  shared_dir,
73
- ignore=lambda src, names: ["latch", ".latch"],
75
+ ignore=lambda src, names: ["latch", ".latch", "nextflow", ".nextflow"],
74
76
  ignore_dangling_symlinks=True,
75
77
  dirs_exist_ok=True,
76
78
  )
@@ -95,12 +97,13 @@ def nextflow_runtime(pvc_name: str, {param_signature}) -> None:
95
97
  ],
96
98
  env=env,
97
99
  check=True,
100
+ cwd=str(shared_dir),
98
101
  )
99
102
  except subprocess.CalledProcessError:
100
103
  remote = LPath(urljoins("{remote_output_dir}", _get_execution_name(), "nextflow.log"))
101
104
  print()
102
105
  print(f"Uploading .nextflow.log to {{remote.path}}")
103
- remote.upload_from(Path("/root/.nextflow.log"))
106
+ remote.upload_from(shared_dir / ".nextflow.log")
104
107
  raise
105
108
  finally:
106
109
  token = os.environ.get("FLYTE_INTERNAL_EXECUTION_ID")
@@ -172,7 +175,8 @@ def generate_nextflow_workflow(
172
175
  flags = []
173
176
  defaults: List[Tuple[str, str]] = []
174
177
  no_defaults: List[str] = []
175
- preambles: List[str] = []
178
+ preambles: set[str] = set()
179
+ samplesheet_funs: List[str] = []
176
180
  samplesheet_constructors: List[str] = []
177
181
  for param_name, param in parameters.items():
178
182
  sig = f"{param_name}: {type_repr(param.type)}"
@@ -195,7 +199,7 @@ def generate_nextflow_workflow(
195
199
  no_defaults.append(sig)
196
200
 
197
201
  if param.samplesheet:
198
- samplesheet_constructors.append(
202
+ samplesheet_funs.append(
199
203
  reindent(
200
204
  f"""
201
205
  {param_name}_construct_samplesheet = metadata._nextflow_metadata.parameters[{repr(param_name)}].samplesheet_constructor
@@ -204,10 +208,17 @@ def generate_nextflow_workflow(
204
208
  ),
205
209
  )
206
210
 
211
+ samplesheet_constructors.append(
212
+ reindent(
213
+ f"{param_name}_samplesheet ="
214
+ f" {param_name}_construct_samplesheet({param_name})",
215
+ 2,
216
+ ),
217
+ )
218
+
207
219
  flags.append(
208
220
  reindent(
209
- f"*get_flag({repr(param_name)},"
210
- f" {param_name}_construct_samplesheet({param_name}))",
221
+ f"*get_flag({repr(param_name)}, {param_name}_samplesheet)",
211
222
  4,
212
223
  )
213
224
  )
@@ -215,8 +226,8 @@ def generate_nextflow_workflow(
215
226
  flags.append(reindent(f"*get_flag({repr(param_name)}, {param_name})", 4))
216
227
 
217
228
  preamble = get_preamble(param.type)
218
- if len(preamble) > 0:
219
- preambles.append(preamble)
229
+ if len(preamble) > 0 and preamble not in preambles:
230
+ preambles.add(preamble)
220
231
 
221
232
  if metadata._nextflow_metadata.output_dir is None:
222
233
  output_dir = "latch:///nextflow_outputs"
@@ -238,7 +249,8 @@ def generate_nextflow_workflow(
238
249
  execution_profile=(
239
250
  execution_profile if execution_profile is not None else "standard"
240
251
  ),
241
- preambles="\n\n".join(preambles),
252
+ preambles="\n\n".join(list(preambles)),
253
+ samplesheet_funs="\n".join(samplesheet_funs),
242
254
  samplesheet_constructors="\n".join(samplesheet_constructors),
243
255
  cpu=resources.cpus,
244
256
  memory=resources.memory,
@@ -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.45.2.dev2",
16
+ version="v2.45.2.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