latch 2.76.6__tar.gz → 2.76.7__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 (200) hide show
  1. {latch-2.76.6 → latch-2.76.7}/PKG-INFO +1 -1
  2. {latch-2.76.6 → latch-2.76.7}/pyproject.toml +5 -1
  3. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/launch_plan.py +2 -2
  4. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/develop.py +1 -1
  5. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/type_converter.py +3 -3
  6. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/pods.py +8 -8
  7. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/register.py +12 -16
  8. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/workspace.py +1 -1
  9. {latch-2.76.6 → latch-2.76.7}/.gitignore +0 -0
  10. {latch-2.76.6 → latch-2.76.7}/LICENSE +0 -0
  11. {latch-2.76.6 → latch-2.76.7}/README.md +0 -0
  12. {latch-2.76.6 → latch-2.76.7}/src/latch/__init__.py +0 -0
  13. {latch-2.76.6 → latch-2.76.7}/src/latch/account.py +0 -0
  14. {latch-2.76.6 → latch-2.76.7}/src/latch/executions.py +0 -0
  15. {latch-2.76.6 → latch-2.76.7}/src/latch/functions/__init__.py +0 -0
  16. {latch-2.76.6 → latch-2.76.7}/src/latch/functions/messages.py +0 -0
  17. {latch-2.76.6 → latch-2.76.7}/src/latch/functions/operators.py +0 -0
  18. {latch-2.76.6 → latch-2.76.7}/src/latch/functions/secrets.py +0 -0
  19. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/common.py +0 -0
  20. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/launch_plan.py +0 -0
  21. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/schedule.py +0 -0
  22. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/workflow.py +0 -0
  23. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/condition.py +0 -0
  24. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/execution.py +0 -0
  25. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/identifier.py +0 -0
  26. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/interface.py +0 -0
  27. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/literals.py +0 -0
  28. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/security.py +0 -0
  29. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/tasks.py +0 -0
  30. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/types.py +0 -0
  31. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/workflow.py +0 -0
  32. {latch-2.76.6 → latch-2.76.7}/src/latch/idl/utils.py +0 -0
  33. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/__init__.py +0 -0
  34. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/__init__.py +0 -0
  35. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/download.py +0 -0
  36. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/manager.py +0 -0
  37. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/node.py +0 -0
  38. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/progress.py +0 -0
  39. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/remote_copy.py +0 -0
  40. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/throttle.py +0 -0
  41. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/upload.py +0 -0
  42. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/utils.py +0 -0
  43. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/path.py +0 -0
  44. {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/type.py +0 -0
  45. {latch-2.76.6 → latch-2.76.7}/src/latch/py.typed +0 -0
  46. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/__init__.py +0 -0
  47. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/project.py +0 -0
  48. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/record.py +0 -0
  49. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/table.py +0 -0
  50. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/types.py +0 -0
  51. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/__init__.py +0 -0
  52. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/types.py +0 -0
  53. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/values.py +0 -0
  54. {latch-2.76.6 → latch-2.76.7}/src/latch/registry/utils.py +0 -0
  55. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/__init__.py +0 -0
  56. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/conditional.py +0 -0
  57. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/dynamic.py +0 -0
  58. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/map_tasks.py +0 -0
  59. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/reference_workflow.py +0 -0
  60. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/tasks.py +0 -0
  61. {latch-2.76.6 → latch-2.76.7}/src/latch/resources/workflow.py +0 -0
  62. {latch-2.76.6 → latch-2.76.7}/src/latch/types/__init__.py +0 -0
  63. {latch-2.76.6 → latch-2.76.7}/src/latch/types/directory.py +0 -0
  64. {latch-2.76.6 → latch-2.76.7}/src/latch/types/file.py +0 -0
  65. {latch-2.76.6 → latch-2.76.7}/src/latch/types/glob.py +0 -0
  66. {latch-2.76.6 → latch-2.76.7}/src/latch/types/json.py +0 -0
  67. {latch-2.76.6 → latch-2.76.7}/src/latch/types/metadata.py +0 -0
  68. {latch-2.76.6 → latch-2.76.7}/src/latch/types/plots.py +0 -0
  69. {latch-2.76.6 → latch-2.76.7}/src/latch/types/samplesheet_item.py +0 -0
  70. {latch-2.76.6 → latch-2.76.7}/src/latch/types/utils.py +0 -0
  71. {latch-2.76.6 → latch-2.76.7}/src/latch/utils.py +0 -0
  72. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/__init__.py +0 -0
  73. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/deseq2.py +0 -0
  74. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/mafft.py +0 -0
  75. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/pathway.py +0 -0
  76. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/rnaseq.py +0 -0
  77. {latch-2.76.6 → latch-2.76.7}/src/latch/verified/trim_galore.py +0 -0
  78. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/__init__.py +0 -0
  79. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/__init__.py +0 -0
  80. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/csrf.py +0 -0
  81. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/oauth2.py +0 -0
  82. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/pkce.py +0 -0
  83. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/utils.py +0 -0
  84. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/__init__.py +0 -0
  85. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/ast_parsing.py +0 -0
  86. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/ctx.py +0 -0
  87. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/utils.py +0 -0
  88. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/click_utils.py +0 -0
  89. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/constants.py +0 -0
  90. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/docker_utils/__init__.py +0 -0
  91. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/__init__.py +0 -0
  92. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/cache.py +0 -0
  93. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/errors.py +0 -0
  94. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/handler.py +0 -0
  95. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/traceback.py +0 -0
  96. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/main.py +0 -0
  97. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/menus.py +0 -0
  98. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/__init__.py +0 -0
  99. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/config.py +0 -0
  100. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/forch_register.py +0 -0
  101. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/parse_schema.py +0 -0
  102. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/utils.py +0 -0
  103. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/workflow.py +0 -0
  104. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/py.typed +0 -0
  105. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/__init__.py +0 -0
  106. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/__init__.py +0 -0
  107. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/autocomplete.py +0 -0
  108. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/glob.py +0 -0
  109. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/main.py +0 -0
  110. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/utils.py +0 -0
  111. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/docker/__init__.py +0 -0
  112. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/docker/utils.py +0 -0
  113. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get.py +0 -0
  114. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get_executions.py +0 -0
  115. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get_params.py +0 -0
  116. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/gql/pod_ssh.graphql +0 -0
  117. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/gql/pods_list.graphql +0 -0
  118. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/__init__.py +0 -0
  119. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/.env +0 -0
  120. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
  121. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/README.md +0 -0
  122. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
  123. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
  124. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
  125. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
  126. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/common/.dockerignore +0 -0
  127. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/__init__.py +0 -0
  128. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/conda_task.py +0 -0
  129. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/environment.yaml +0 -0
  130. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_docker/__init__.py +0 -0
  131. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_docker/task.py +0 -0
  132. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
  133. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/__init__.py +0 -0
  134. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/task.py +0 -0
  135. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/__init__.py +0 -0
  136. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/environment.R +0 -0
  137. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/r_task.py +0 -0
  138. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
  139. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
  140. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/Snakefile +0 -0
  141. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/config.yaml +0 -0
  142. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
  143. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
  144. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
  145. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/version +0 -0
  146. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/init.py +0 -0
  147. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/LICENSE +0 -0
  148. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/README.md +0 -0
  149. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/__init__.py +0 -0
  150. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/task.py +0 -0
  151. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/__init__.py +0 -0
  152. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/attach.py +0 -0
  153. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/execute.py +0 -0
  154. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/utils.py +0 -0
  155. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/ws_utils.py +0 -0
  156. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/__init__.py +0 -0
  157. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/interface.py +0 -0
  158. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/launch.py +0 -0
  159. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/launch_v2.py +0 -0
  160. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/local_dev_old.py +0 -0
  161. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/login.py +0 -0
  162. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/ls.py +0 -0
  163. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/mkdir.py +0 -0
  164. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/move.py +0 -0
  165. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/preview.py +0 -0
  166. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/private_images.py +0 -0
  167. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/__init__.py +0 -0
  168. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/constants.py +0 -0
  169. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/staging.py +0 -0
  170. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/utils.py +0 -0
  171. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/rm.py +0 -0
  172. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/stop_pod.py +0 -0
  173. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/sync.py +0 -0
  174. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/__init__.py +0 -0
  175. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/ls.py +0 -0
  176. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/remove.py +0 -0
  177. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/upload.py +0 -0
  178. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/utils.py +0 -0
  179. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/__init__.py +0 -0
  180. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/__init__.py +0 -0
  181. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/parser.py +0 -0
  182. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/utils.py +0 -0
  183. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/serialize.py +0 -0
  184. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/serialize_utils.py +0 -0
  185. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/single_task_snakemake.py +0 -0
  186. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/utils.py +0 -0
  187. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/workflow.py +0 -0
  188. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/tinyrequests.py +0 -0
  189. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/tui/__init__.py +0 -0
  190. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/utils/__init__.py +0 -0
  191. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/utils/path.py +0 -0
  192. {latch-2.76.6 → latch-2.76.7}/src/latch_cli/workflow_config.py +0 -0
  193. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/__init__.py +0 -0
  194. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/latch.py +0 -0
  195. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/py.typed +0 -0
  196. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/user.py +0 -0
  197. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/__init__.py +0 -0
  198. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/execute.py +0 -0
  199. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/py.typed +0 -0
  200. {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: latch
3
- Version: 2.76.6
3
+ Version: 2.76.7
4
4
  Summary: The Latch SDK
5
5
  Project-URL: Homepage, https://latch.bio
6
6
  Project-URL: Documentation, https://latch.wiki
@@ -12,7 +12,7 @@ include = ["src/**/*.py", "src/**/*.graphql", "src/**/py.typed", "src/latch_cli/
12
12
 
13
13
  [project]
14
14
  name = "latch"
15
- version = "2.76.6"
15
+ version = "2.76.7"
16
16
  description = "The Latch SDK"
17
17
  authors = [{ name = "Kenny Workman", email = "kenny@latch.bio" }]
18
18
  maintainers = [{ name = "Kenny Workman", email = "kenny@latch.bio" }]
@@ -247,6 +247,10 @@ ignore = [
247
247
  "PLC1901",
248
248
  ]
249
249
 
250
+ [tool.ruff.lint.pyupgrade]
251
+ # Pydantic resolves annotations at runtime, where PEP 604 is unsupported on Python 3.9.
252
+ keep-runtime-typing = true
253
+
250
254
  [tool.ruff.format]
251
255
  preview = true
252
256
  skip-magic-trailing-comma = true
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import base64
4
- from typing import Any
4
+ from typing import Any, Optional
5
5
 
6
6
  from flytekit.core.launch_plan import LaunchPlan as _LaunchPlan
7
7
  from flytekit.core.workflow import PythonFunctionWorkflow
@@ -41,7 +41,7 @@ class LaunchPlan:
41
41
  name: str,
42
42
  default_params: dict[str, Any],
43
43
  *,
44
- description: str | None = None,
44
+ description: Optional[str] = None,
45
45
  ):
46
46
  labels = {}
47
47
  if description is not None:
@@ -306,7 +306,7 @@ def local_development(
306
306
  *,
307
307
  size: InstanceSize,
308
308
  skip_confirm_dialog: bool,
309
- wf_version: str | None,
309
+ wf_version: Optional[str],
310
310
  disable_sync: bool,
311
311
  ):
312
312
  if not disable_sync:
@@ -2,7 +2,7 @@ import dataclasses
2
2
  from dataclasses import asdict, is_dataclass
3
3
  from datetime import datetime, timedelta
4
4
  from enum import Enum
5
- from typing import Any
5
+ from typing import Any, Optional
6
6
 
7
7
  from flytekit.models import literals as _literals
8
8
  from flytekit.models import types as _types
@@ -59,7 +59,7 @@ def _convert_primitive(
59
59
  if simple_type == _types.SimpleType.STRUCT: # pyright: ignore[reportUnnecessaryComparison]
60
60
  return _convert_to_struct(value)
61
61
 
62
- primitive: _literals.Primitive | None = None
62
+ primitive: Optional[_literals.Primitive] = None
63
63
 
64
64
  if simple_type == _types.SimpleType.INTEGER: # pyright: ignore[reportUnnecessaryComparison]
65
65
  if isinstance(value, Enum):
@@ -243,7 +243,7 @@ def _convert_blob(
243
243
  blob_type: _core_types.BlobType,
244
244
  ) -> _literals.Literal:
245
245
 
246
- remote_uri: str | None = None
246
+ remote_uri: Optional[str] = None
247
247
  if isinstance(value, (LatchFile, LatchDir)):
248
248
  remote_uri = value.remote_path if value.remote_path is not None else value.path
249
249
  elif isinstance(value, LPath):
@@ -5,7 +5,7 @@ import os
5
5
  import shlex
6
6
  import time
7
7
  from importlib import resources
8
- from typing import TYPE_CHECKING, Any
8
+ from typing import TYPE_CHECKING, Any, Optional
9
9
  from urllib.parse import urljoin
10
10
 
11
11
  import click
@@ -46,20 +46,20 @@ pod_ssh_starting_statuses = {
46
46
  class CreatePodRequest(BaseModel):
47
47
  model_config = ConfigDict(extra="forbid")
48
48
 
49
- ws_account_id: str | None = Field(
49
+ ws_account_id: Optional[str] = Field(
50
50
  default=None, json_schema_extra={"default_description": "current workspace"}
51
51
  )
52
52
  display_name: str = Field(..., json_schema_extra={"template": "My Pod"})
53
53
  cpu: int = Field(..., json_schema_extra={"template": 2, "units": "cores"})
54
54
  memory: int = Field(..., json_schema_extra={"template": 8, "units": "GiB"})
55
55
  gpu: int = Field(default=0, json_schema_extra={"template": 0})
56
- gpu_type: Literal["nvidia-a10g", "nvidia-l40s"] | None = Field(
56
+ gpu_type: Optional[Literal["nvidia-a10g", "nvidia-l40s"]] = Field(
57
57
  default=None, json_schema_extra={"template": None}
58
58
  )
59
59
  storage_gigs: int = Field(
60
60
  default=20, json_schema_extra={"template": 20, "units": "GiB"}
61
61
  )
62
- backup_interval: Literal["daily", "weekly", "monthly"] | None = Field(
62
+ backup_interval: Optional[Literal["daily", "weekly", "monthly"]] = Field(
63
63
  default=None, json_schema_extra={"template": None}
64
64
  )
65
65
  target_region: Literal["us-west-2", "us-east-1", "eu-central-1", "eu-west-1"] = (
@@ -105,7 +105,7 @@ class PodInfosResponse(BaseModel):
105
105
 
106
106
 
107
107
  class PodSshResponse(BaseModel):
108
- pod_info: dict[str, Any] | None = Field(alias="podInfo")
108
+ pod_info: Optional[dict[str, Any]] = Field(alias="podInfo")
109
109
 
110
110
 
111
111
  def pod_list_fields(*, detailed: bool) -> list[str]:
@@ -295,8 +295,8 @@ def _format_pod_status(status: str) -> str:
295
295
 
296
296
 
297
297
  def _get_pod_ssh_args(
298
- pod_id: int, pod: dict[str, object], *, key: Path | None = None
299
- ) -> list[str] | None:
298
+ pod_id: int, pod: dict[str, object], *, key: Optional[Path] = None
299
+ ) -> Optional[list[str]]:
300
300
  deployment = pod.get("deployment")
301
301
  if not isinstance(deployment, dict):
302
302
  click.secho("Pod deployment information is unavailable.", fg="red")
@@ -331,7 +331,7 @@ def ssh_pod(
331
331
  pod_id: int,
332
332
  *,
333
333
  print_only: bool = False,
334
- key: Path | None = None,
334
+ key: Optional[Path] = None,
335
335
  poll_interval_seconds: float = pod_ssh_poll_interval_seconds,
336
336
  max_wait_seconds: float = pod_ssh_max_wait_seconds,
337
337
  exec_fn: Callable[[str, list[str]], object] = os.execvp,
@@ -62,6 +62,17 @@ def _print_window(cur_lines: List[str], line: str):
62
62
  docker_build_step_pat = re.compile("^Step [0-9]+/[0-9]+ :")
63
63
 
64
64
 
65
+ def _replace_task_protos(
66
+ protos: List[Path], new_protos: List[Path], task_name: str
67
+ ) -> List[Path]:
68
+ """Replace a task's default-image protobuf with its custom-image version."""
69
+ new_task_protos = {
70
+ proto.name: proto for proto in new_protos if task_name in proto.name
71
+ }
72
+
73
+ return [new_task_protos.get(proto.name, proto) for proto in protos]
74
+
75
+
65
76
  def print_and_write_build_logs(
66
77
  build_logs: Iterable[DockerBuildLogItem],
67
78
  image: str,
@@ -581,22 +592,7 @@ def register(
581
592
 
582
593
  new_protos = _recursive_list(local_task_td)
583
594
 
584
- try:
585
- split_task_name = task_name.split(".")
586
- task_name = ".".join(
587
- split_task_name[split_task_name.index(ctx.wf_module) :]
588
- )
589
- for new_proto in new_protos:
590
- if task_name in new_proto.name:
591
- protos = [
592
- new_proto if new_proto.name == f.name else f
593
- for f in protos
594
- ]
595
- except ValueError as e:
596
- raise ValueError(
597
- f"Unable to match {task_name} to any of the protobuf files"
598
- f" in {new_protos}"
599
- ) from e
595
+ protos = _replace_task_protos(protos, new_protos, task_name)
600
596
  except TypeError as e:
601
597
  raise ValueError(
602
598
  "The path to your provided dockerfile ",
@@ -19,7 +19,7 @@ def workspace(workspace_id: Optional[str] = None):
19
19
  """
20
20
  data = get_workspaces()
21
21
 
22
- old_id: str | None
22
+ old_id: Optional[str]
23
23
  try:
24
24
  old_id = current_workspace()
25
25
  except NoWorkspaceSelectedError:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes