flyte 0.0.1b0__py3-none-any.whl → 2.0.0b46__py3-none-any.whl

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 (455) hide show
  1. flyte/__init__.py +83 -30
  2. flyte/_bin/connect.py +61 -0
  3. flyte/_bin/debug.py +38 -0
  4. flyte/_bin/runtime.py +87 -19
  5. flyte/_bin/serve.py +351 -0
  6. flyte/_build.py +3 -2
  7. flyte/_cache/cache.py +6 -5
  8. flyte/_cache/local_cache.py +216 -0
  9. flyte/_code_bundle/_ignore.py +31 -5
  10. flyte/_code_bundle/_packaging.py +42 -11
  11. flyte/_code_bundle/_utils.py +57 -34
  12. flyte/_code_bundle/bundle.py +130 -27
  13. flyte/_constants.py +1 -0
  14. flyte/_context.py +21 -5
  15. flyte/_custom_context.py +73 -0
  16. flyte/_debug/constants.py +37 -0
  17. flyte/_debug/utils.py +17 -0
  18. flyte/_debug/vscode.py +315 -0
  19. flyte/_deploy.py +396 -75
  20. flyte/_deployer.py +109 -0
  21. flyte/_environment.py +94 -11
  22. flyte/_excepthook.py +37 -0
  23. flyte/_group.py +2 -1
  24. flyte/_hash.py +1 -16
  25. flyte/_image.py +544 -234
  26. flyte/_initialize.py +443 -294
  27. flyte/_interface.py +40 -5
  28. flyte/_internal/controllers/__init__.py +22 -8
  29. flyte/_internal/controllers/_local_controller.py +159 -35
  30. flyte/_internal/controllers/_trace.py +18 -10
  31. flyte/_internal/controllers/remote/__init__.py +38 -9
  32. flyte/_internal/controllers/remote/_action.py +82 -12
  33. flyte/_internal/controllers/remote/_client.py +6 -2
  34. flyte/_internal/controllers/remote/_controller.py +290 -64
  35. flyte/_internal/controllers/remote/_core.py +155 -95
  36. flyte/_internal/controllers/remote/_informer.py +40 -20
  37. flyte/_internal/controllers/remote/_service_protocol.py +2 -2
  38. flyte/_internal/imagebuild/__init__.py +2 -10
  39. flyte/_internal/imagebuild/docker_builder.py +391 -84
  40. flyte/_internal/imagebuild/image_builder.py +111 -55
  41. flyte/_internal/imagebuild/remote_builder.py +409 -0
  42. flyte/_internal/imagebuild/utils.py +79 -0
  43. flyte/_internal/resolvers/_app_env_module.py +92 -0
  44. flyte/_internal/resolvers/_task_module.py +5 -38
  45. flyte/_internal/resolvers/app_env.py +26 -0
  46. flyte/_internal/resolvers/common.py +8 -1
  47. flyte/_internal/resolvers/default.py +2 -2
  48. flyte/_internal/runtime/convert.py +322 -33
  49. flyte/_internal/runtime/entrypoints.py +106 -18
  50. flyte/_internal/runtime/io.py +71 -23
  51. flyte/_internal/runtime/resources_serde.py +21 -7
  52. flyte/_internal/runtime/reuse.py +125 -0
  53. flyte/_internal/runtime/rusty.py +196 -0
  54. flyte/_internal/runtime/task_serde.py +239 -66
  55. flyte/_internal/runtime/taskrunner.py +48 -8
  56. flyte/_internal/runtime/trigger_serde.py +162 -0
  57. flyte/_internal/runtime/types_serde.py +7 -16
  58. flyte/_keyring/file.py +115 -0
  59. flyte/_link.py +30 -0
  60. flyte/_logging.py +241 -42
  61. flyte/_map.py +312 -0
  62. flyte/_metrics.py +59 -0
  63. flyte/_module.py +74 -0
  64. flyte/_pod.py +30 -0
  65. flyte/_resources.py +296 -33
  66. flyte/_retry.py +1 -7
  67. flyte/_reusable_environment.py +72 -7
  68. flyte/_run.py +461 -132
  69. flyte/_secret.py +47 -11
  70. flyte/_serve.py +333 -0
  71. flyte/_task.py +245 -56
  72. flyte/_task_environment.py +219 -97
  73. flyte/_task_plugins.py +47 -0
  74. flyte/_tools.py +8 -8
  75. flyte/_trace.py +15 -24
  76. flyte/_trigger.py +1027 -0
  77. flyte/_utils/__init__.py +12 -1
  78. flyte/_utils/asyn.py +3 -1
  79. flyte/_utils/async_cache.py +139 -0
  80. flyte/_utils/coro_management.py +5 -4
  81. flyte/_utils/description_parser.py +19 -0
  82. flyte/_utils/docker_credentials.py +173 -0
  83. flyte/_utils/helpers.py +45 -19
  84. flyte/_utils/module_loader.py +123 -0
  85. flyte/_utils/org_discovery.py +57 -0
  86. flyte/_utils/uv_script_parser.py +8 -1
  87. flyte/_version.py +16 -3
  88. flyte/app/__init__.py +27 -0
  89. flyte/app/_app_environment.py +362 -0
  90. flyte/app/_connector_environment.py +40 -0
  91. flyte/app/_deploy.py +130 -0
  92. flyte/app/_parameter.py +343 -0
  93. flyte/app/_runtime/__init__.py +3 -0
  94. flyte/app/_runtime/app_serde.py +383 -0
  95. flyte/app/_types.py +113 -0
  96. flyte/app/extras/__init__.py +9 -0
  97. flyte/app/extras/_auth_middleware.py +217 -0
  98. flyte/app/extras/_fastapi.py +93 -0
  99. flyte/app/extras/_model_loader/__init__.py +3 -0
  100. flyte/app/extras/_model_loader/config.py +7 -0
  101. flyte/app/extras/_model_loader/loader.py +288 -0
  102. flyte/cli/__init__.py +12 -0
  103. flyte/cli/_abort.py +28 -0
  104. flyte/cli/_build.py +114 -0
  105. flyte/cli/_common.py +493 -0
  106. flyte/cli/_create.py +371 -0
  107. flyte/cli/_delete.py +45 -0
  108. flyte/cli/_deploy.py +401 -0
  109. flyte/cli/_gen.py +316 -0
  110. flyte/cli/_get.py +446 -0
  111. flyte/cli/_option.py +33 -0
  112. {union/_cli → flyte/cli}/_params.py +152 -153
  113. flyte/cli/_plugins.py +209 -0
  114. flyte/cli/_prefetch.py +292 -0
  115. flyte/cli/_run.py +690 -0
  116. flyte/cli/_serve.py +338 -0
  117. flyte/cli/_update.py +86 -0
  118. flyte/cli/_user.py +20 -0
  119. flyte/cli/main.py +246 -0
  120. flyte/config/__init__.py +3 -0
  121. flyte/config/_config.py +248 -0
  122. flyte/config/_internal.py +73 -0
  123. flyte/config/_reader.py +225 -0
  124. flyte/connectors/__init__.py +11 -0
  125. flyte/connectors/_connector.py +330 -0
  126. flyte/connectors/_server.py +194 -0
  127. flyte/connectors/utils.py +159 -0
  128. flyte/errors.py +134 -2
  129. flyte/extend.py +24 -0
  130. flyte/extras/_container.py +69 -56
  131. flyte/git/__init__.py +3 -0
  132. flyte/git/_config.py +279 -0
  133. flyte/io/__init__.py +8 -1
  134. flyte/io/{structured_dataset → _dataframe}/__init__.py +32 -30
  135. flyte/io/{structured_dataset → _dataframe}/basic_dfs.py +75 -68
  136. flyte/io/{structured_dataset/structured_dataset.py → _dataframe/dataframe.py} +207 -242
  137. flyte/io/_dir.py +575 -113
  138. flyte/io/_file.py +587 -141
  139. flyte/io/_hashing_io.py +342 -0
  140. flyte/io/extend.py +7 -0
  141. flyte/models.py +635 -0
  142. flyte/prefetch/__init__.py +22 -0
  143. flyte/prefetch/_hf_model.py +563 -0
  144. flyte/remote/__init__.py +14 -3
  145. flyte/remote/_action.py +879 -0
  146. flyte/remote/_app.py +346 -0
  147. flyte/remote/_auth_metadata.py +42 -0
  148. flyte/remote/_client/_protocols.py +62 -4
  149. flyte/remote/_client/auth/_auth_utils.py +19 -0
  150. flyte/remote/_client/auth/_authenticators/base.py +8 -2
  151. flyte/remote/_client/auth/_authenticators/device_code.py +4 -5
  152. flyte/remote/_client/auth/_authenticators/factory.py +4 -0
  153. flyte/remote/_client/auth/_authenticators/passthrough.py +79 -0
  154. flyte/remote/_client/auth/_authenticators/pkce.py +17 -18
  155. flyte/remote/_client/auth/_channel.py +47 -18
  156. flyte/remote/_client/auth/_client_config.py +5 -3
  157. flyte/remote/_client/auth/_keyring.py +15 -2
  158. flyte/remote/_client/auth/_token_client.py +3 -3
  159. flyte/remote/_client/controlplane.py +206 -18
  160. flyte/remote/_common.py +66 -0
  161. flyte/remote/_data.py +107 -22
  162. flyte/remote/_logs.py +116 -33
  163. flyte/remote/_project.py +21 -19
  164. flyte/remote/_run.py +164 -631
  165. flyte/remote/_secret.py +72 -29
  166. flyte/remote/_task.py +387 -46
  167. flyte/remote/_trigger.py +368 -0
  168. flyte/remote/_user.py +43 -0
  169. flyte/report/_report.py +10 -6
  170. flyte/storage/__init__.py +13 -1
  171. flyte/storage/_config.py +237 -0
  172. flyte/storage/_parallel_reader.py +289 -0
  173. flyte/storage/_storage.py +268 -59
  174. flyte/syncify/__init__.py +56 -0
  175. flyte/syncify/_api.py +414 -0
  176. flyte/types/__init__.py +39 -0
  177. flyte/types/_interface.py +22 -7
  178. flyte/{io/pickle/transformer.py → types/_pickle.py} +37 -9
  179. flyte/types/_string_literals.py +8 -9
  180. flyte/types/_type_engine.py +230 -129
  181. flyte/types/_utils.py +1 -1
  182. flyte-2.0.0b46.data/scripts/debug.py +38 -0
  183. flyte-2.0.0b46.data/scripts/runtime.py +194 -0
  184. flyte-2.0.0b46.dist-info/METADATA +352 -0
  185. flyte-2.0.0b46.dist-info/RECORD +221 -0
  186. flyte-2.0.0b46.dist-info/entry_points.txt +8 -0
  187. flyte-2.0.0b46.dist-info/licenses/LICENSE +201 -0
  188. flyte/_api_commons.py +0 -3
  189. flyte/_cli/_common.py +0 -287
  190. flyte/_cli/_create.py +0 -42
  191. flyte/_cli/_delete.py +0 -23
  192. flyte/_cli/_deploy.py +0 -140
  193. flyte/_cli/_get.py +0 -235
  194. flyte/_cli/_run.py +0 -152
  195. flyte/_cli/main.py +0 -72
  196. flyte/_datastructures.py +0 -342
  197. flyte/_internal/controllers/pbhash.py +0 -39
  198. flyte/_protos/common/authorization_pb2.py +0 -66
  199. flyte/_protos/common/authorization_pb2.pyi +0 -108
  200. flyte/_protos/common/authorization_pb2_grpc.py +0 -4
  201. flyte/_protos/common/identifier_pb2.py +0 -71
  202. flyte/_protos/common/identifier_pb2.pyi +0 -82
  203. flyte/_protos/common/identifier_pb2_grpc.py +0 -4
  204. flyte/_protos/common/identity_pb2.py +0 -48
  205. flyte/_protos/common/identity_pb2.pyi +0 -72
  206. flyte/_protos/common/identity_pb2_grpc.py +0 -4
  207. flyte/_protos/common/list_pb2.py +0 -36
  208. flyte/_protos/common/list_pb2.pyi +0 -69
  209. flyte/_protos/common/list_pb2_grpc.py +0 -4
  210. flyte/_protos/common/policy_pb2.py +0 -37
  211. flyte/_protos/common/policy_pb2.pyi +0 -27
  212. flyte/_protos/common/policy_pb2_grpc.py +0 -4
  213. flyte/_protos/common/role_pb2.py +0 -37
  214. flyte/_protos/common/role_pb2.pyi +0 -53
  215. flyte/_protos/common/role_pb2_grpc.py +0 -4
  216. flyte/_protos/common/runtime_version_pb2.py +0 -28
  217. flyte/_protos/common/runtime_version_pb2.pyi +0 -24
  218. flyte/_protos/common/runtime_version_pb2_grpc.py +0 -4
  219. flyte/_protos/logs/dataplane/payload_pb2.py +0 -96
  220. flyte/_protos/logs/dataplane/payload_pb2.pyi +0 -168
  221. flyte/_protos/logs/dataplane/payload_pb2_grpc.py +0 -4
  222. flyte/_protos/secret/definition_pb2.py +0 -49
  223. flyte/_protos/secret/definition_pb2.pyi +0 -93
  224. flyte/_protos/secret/definition_pb2_grpc.py +0 -4
  225. flyte/_protos/secret/payload_pb2.py +0 -62
  226. flyte/_protos/secret/payload_pb2.pyi +0 -94
  227. flyte/_protos/secret/payload_pb2_grpc.py +0 -4
  228. flyte/_protos/secret/secret_pb2.py +0 -38
  229. flyte/_protos/secret/secret_pb2.pyi +0 -6
  230. flyte/_protos/secret/secret_pb2_grpc.py +0 -198
  231. flyte/_protos/secret/secret_pb2_grpc_grpc.py +0 -198
  232. flyte/_protos/validate/validate/validate_pb2.py +0 -76
  233. flyte/_protos/workflow/node_execution_service_pb2.py +0 -26
  234. flyte/_protos/workflow/node_execution_service_pb2.pyi +0 -4
  235. flyte/_protos/workflow/node_execution_service_pb2_grpc.py +0 -32
  236. flyte/_protos/workflow/queue_service_pb2.py +0 -106
  237. flyte/_protos/workflow/queue_service_pb2.pyi +0 -141
  238. flyte/_protos/workflow/queue_service_pb2_grpc.py +0 -172
  239. flyte/_protos/workflow/run_definition_pb2.py +0 -128
  240. flyte/_protos/workflow/run_definition_pb2.pyi +0 -310
  241. flyte/_protos/workflow/run_definition_pb2_grpc.py +0 -4
  242. flyte/_protos/workflow/run_logs_service_pb2.py +0 -41
  243. flyte/_protos/workflow/run_logs_service_pb2.pyi +0 -28
  244. flyte/_protos/workflow/run_logs_service_pb2_grpc.py +0 -69
  245. flyte/_protos/workflow/run_service_pb2.py +0 -133
  246. flyte/_protos/workflow/run_service_pb2.pyi +0 -175
  247. flyte/_protos/workflow/run_service_pb2_grpc.py +0 -412
  248. flyte/_protos/workflow/state_service_pb2.py +0 -58
  249. flyte/_protos/workflow/state_service_pb2.pyi +0 -71
  250. flyte/_protos/workflow/state_service_pb2_grpc.py +0 -138
  251. flyte/_protos/workflow/task_definition_pb2.py +0 -72
  252. flyte/_protos/workflow/task_definition_pb2.pyi +0 -65
  253. flyte/_protos/workflow/task_definition_pb2_grpc.py +0 -4
  254. flyte/_protos/workflow/task_service_pb2.py +0 -44
  255. flyte/_protos/workflow/task_service_pb2.pyi +0 -31
  256. flyte/_protos/workflow/task_service_pb2_grpc.py +0 -104
  257. flyte/io/_dataframe.py +0 -0
  258. flyte/io/pickle/__init__.py +0 -0
  259. flyte/remote/_console.py +0 -18
  260. flyte-0.0.1b0.dist-info/METADATA +0 -179
  261. flyte-0.0.1b0.dist-info/RECORD +0 -390
  262. flyte-0.0.1b0.dist-info/entry_points.txt +0 -3
  263. union/__init__.py +0 -54
  264. union/_api_commons.py +0 -3
  265. union/_bin/__init__.py +0 -0
  266. union/_bin/runtime.py +0 -113
  267. union/_build.py +0 -25
  268. union/_cache/__init__.py +0 -12
  269. union/_cache/cache.py +0 -141
  270. union/_cache/defaults.py +0 -9
  271. union/_cache/policy_function_body.py +0 -42
  272. union/_cli/__init__.py +0 -0
  273. union/_cli/_common.py +0 -263
  274. union/_cli/_create.py +0 -40
  275. union/_cli/_delete.py +0 -23
  276. union/_cli/_deploy.py +0 -120
  277. union/_cli/_get.py +0 -162
  278. union/_cli/_run.py +0 -150
  279. union/_cli/main.py +0 -72
  280. union/_code_bundle/__init__.py +0 -8
  281. union/_code_bundle/_ignore.py +0 -113
  282. union/_code_bundle/_packaging.py +0 -187
  283. union/_code_bundle/_utils.py +0 -342
  284. union/_code_bundle/bundle.py +0 -176
  285. union/_context.py +0 -146
  286. union/_datastructures.py +0 -295
  287. union/_deploy.py +0 -185
  288. union/_doc.py +0 -29
  289. union/_docstring.py +0 -26
  290. union/_environment.py +0 -43
  291. union/_group.py +0 -31
  292. union/_hash.py +0 -23
  293. union/_image.py +0 -760
  294. union/_initialize.py +0 -585
  295. union/_interface.py +0 -84
  296. union/_internal/__init__.py +0 -3
  297. union/_internal/controllers/__init__.py +0 -77
  298. union/_internal/controllers/_local_controller.py +0 -77
  299. union/_internal/controllers/pbhash.py +0 -39
  300. union/_internal/controllers/remote/__init__.py +0 -40
  301. union/_internal/controllers/remote/_action.py +0 -131
  302. union/_internal/controllers/remote/_client.py +0 -43
  303. union/_internal/controllers/remote/_controller.py +0 -169
  304. union/_internal/controllers/remote/_core.py +0 -341
  305. union/_internal/controllers/remote/_informer.py +0 -260
  306. union/_internal/controllers/remote/_service_protocol.py +0 -44
  307. union/_internal/imagebuild/__init__.py +0 -11
  308. union/_internal/imagebuild/docker_builder.py +0 -416
  309. union/_internal/imagebuild/image_builder.py +0 -243
  310. union/_internal/imagebuild/remote_builder.py +0 -0
  311. union/_internal/resolvers/__init__.py +0 -0
  312. union/_internal/resolvers/_task_module.py +0 -31
  313. union/_internal/resolvers/common.py +0 -24
  314. union/_internal/resolvers/default.py +0 -27
  315. union/_internal/runtime/__init__.py +0 -0
  316. union/_internal/runtime/convert.py +0 -163
  317. union/_internal/runtime/entrypoints.py +0 -121
  318. union/_internal/runtime/io.py +0 -136
  319. union/_internal/runtime/resources_serde.py +0 -134
  320. union/_internal/runtime/task_serde.py +0 -202
  321. union/_internal/runtime/taskrunner.py +0 -179
  322. union/_internal/runtime/types_serde.py +0 -53
  323. union/_logging.py +0 -124
  324. union/_protos/__init__.py +0 -0
  325. union/_protos/common/authorization_pb2.py +0 -66
  326. union/_protos/common/authorization_pb2.pyi +0 -106
  327. union/_protos/common/authorization_pb2_grpc.py +0 -4
  328. union/_protos/common/identifier_pb2.py +0 -71
  329. union/_protos/common/identifier_pb2.pyi +0 -82
  330. union/_protos/common/identifier_pb2_grpc.py +0 -4
  331. union/_protos/common/identity_pb2.py +0 -48
  332. union/_protos/common/identity_pb2.pyi +0 -72
  333. union/_protos/common/identity_pb2_grpc.py +0 -4
  334. union/_protos/common/list_pb2.py +0 -36
  335. union/_protos/common/list_pb2.pyi +0 -69
  336. union/_protos/common/list_pb2_grpc.py +0 -4
  337. union/_protos/common/policy_pb2.py +0 -37
  338. union/_protos/common/policy_pb2.pyi +0 -27
  339. union/_protos/common/policy_pb2_grpc.py +0 -4
  340. union/_protos/common/role_pb2.py +0 -37
  341. union/_protos/common/role_pb2.pyi +0 -51
  342. union/_protos/common/role_pb2_grpc.py +0 -4
  343. union/_protos/common/runtime_version_pb2.py +0 -28
  344. union/_protos/common/runtime_version_pb2.pyi +0 -24
  345. union/_protos/common/runtime_version_pb2_grpc.py +0 -4
  346. union/_protos/logs/dataplane/payload_pb2.py +0 -96
  347. union/_protos/logs/dataplane/payload_pb2.pyi +0 -168
  348. union/_protos/logs/dataplane/payload_pb2_grpc.py +0 -4
  349. union/_protos/secret/definition_pb2.py +0 -49
  350. union/_protos/secret/definition_pb2.pyi +0 -93
  351. union/_protos/secret/definition_pb2_grpc.py +0 -4
  352. union/_protos/secret/payload_pb2.py +0 -62
  353. union/_protos/secret/payload_pb2.pyi +0 -94
  354. union/_protos/secret/payload_pb2_grpc.py +0 -4
  355. union/_protos/secret/secret_pb2.py +0 -38
  356. union/_protos/secret/secret_pb2.pyi +0 -6
  357. union/_protos/secret/secret_pb2_grpc.py +0 -198
  358. union/_protos/validate/validate/validate_pb2.py +0 -76
  359. union/_protos/workflow/node_execution_service_pb2.py +0 -26
  360. union/_protos/workflow/node_execution_service_pb2.pyi +0 -4
  361. union/_protos/workflow/node_execution_service_pb2_grpc.py +0 -32
  362. union/_protos/workflow/queue_service_pb2.py +0 -75
  363. union/_protos/workflow/queue_service_pb2.pyi +0 -103
  364. union/_protos/workflow/queue_service_pb2_grpc.py +0 -172
  365. union/_protos/workflow/run_definition_pb2.py +0 -100
  366. union/_protos/workflow/run_definition_pb2.pyi +0 -256
  367. union/_protos/workflow/run_definition_pb2_grpc.py +0 -4
  368. union/_protos/workflow/run_logs_service_pb2.py +0 -41
  369. union/_protos/workflow/run_logs_service_pb2.pyi +0 -28
  370. union/_protos/workflow/run_logs_service_pb2_grpc.py +0 -69
  371. union/_protos/workflow/run_service_pb2.py +0 -133
  372. union/_protos/workflow/run_service_pb2.pyi +0 -173
  373. union/_protos/workflow/run_service_pb2_grpc.py +0 -412
  374. union/_protos/workflow/state_service_pb2.py +0 -58
  375. union/_protos/workflow/state_service_pb2.pyi +0 -69
  376. union/_protos/workflow/state_service_pb2_grpc.py +0 -138
  377. union/_protos/workflow/task_definition_pb2.py +0 -72
  378. union/_protos/workflow/task_definition_pb2.pyi +0 -65
  379. union/_protos/workflow/task_definition_pb2_grpc.py +0 -4
  380. union/_protos/workflow/task_service_pb2.py +0 -44
  381. union/_protos/workflow/task_service_pb2.pyi +0 -31
  382. union/_protos/workflow/task_service_pb2_grpc.py +0 -104
  383. union/_resources.py +0 -226
  384. union/_retry.py +0 -32
  385. union/_reusable_environment.py +0 -25
  386. union/_run.py +0 -374
  387. union/_secret.py +0 -61
  388. union/_task.py +0 -354
  389. union/_task_environment.py +0 -186
  390. union/_timeout.py +0 -47
  391. union/_tools.py +0 -27
  392. union/_utils/__init__.py +0 -11
  393. union/_utils/asyn.py +0 -119
  394. union/_utils/file_handling.py +0 -71
  395. union/_utils/helpers.py +0 -46
  396. union/_utils/lazy_module.py +0 -54
  397. union/_utils/uv_script_parser.py +0 -49
  398. union/_version.py +0 -21
  399. union/connectors/__init__.py +0 -0
  400. union/errors.py +0 -128
  401. union/extras/__init__.py +0 -5
  402. union/extras/_container.py +0 -263
  403. union/io/__init__.py +0 -11
  404. union/io/_dataframe.py +0 -0
  405. union/io/_dir.py +0 -425
  406. union/io/_file.py +0 -418
  407. union/io/pickle/__init__.py +0 -0
  408. union/io/pickle/transformer.py +0 -117
  409. union/io/structured_dataset/__init__.py +0 -122
  410. union/io/structured_dataset/basic_dfs.py +0 -219
  411. union/io/structured_dataset/structured_dataset.py +0 -1057
  412. union/py.typed +0 -0
  413. union/remote/__init__.py +0 -23
  414. union/remote/_client/__init__.py +0 -0
  415. union/remote/_client/_protocols.py +0 -129
  416. union/remote/_client/auth/__init__.py +0 -12
  417. union/remote/_client/auth/_authenticators/__init__.py +0 -0
  418. union/remote/_client/auth/_authenticators/base.py +0 -391
  419. union/remote/_client/auth/_authenticators/client_credentials.py +0 -73
  420. union/remote/_client/auth/_authenticators/device_code.py +0 -120
  421. union/remote/_client/auth/_authenticators/external_command.py +0 -77
  422. union/remote/_client/auth/_authenticators/factory.py +0 -200
  423. union/remote/_client/auth/_authenticators/pkce.py +0 -515
  424. union/remote/_client/auth/_channel.py +0 -184
  425. union/remote/_client/auth/_client_config.py +0 -83
  426. union/remote/_client/auth/_default_html.py +0 -32
  427. union/remote/_client/auth/_grpc_utils/__init__.py +0 -0
  428. union/remote/_client/auth/_grpc_utils/auth_interceptor.py +0 -204
  429. union/remote/_client/auth/_grpc_utils/default_metadata_interceptor.py +0 -144
  430. union/remote/_client/auth/_keyring.py +0 -154
  431. union/remote/_client/auth/_token_client.py +0 -258
  432. union/remote/_client/auth/errors.py +0 -16
  433. union/remote/_client/controlplane.py +0 -86
  434. union/remote/_data.py +0 -149
  435. union/remote/_logs.py +0 -74
  436. union/remote/_project.py +0 -86
  437. union/remote/_run.py +0 -820
  438. union/remote/_secret.py +0 -132
  439. union/remote/_task.py +0 -193
  440. union/report/__init__.py +0 -3
  441. union/report/_report.py +0 -178
  442. union/report/_template.html +0 -124
  443. union/storage/__init__.py +0 -24
  444. union/storage/_remote_fs.py +0 -34
  445. union/storage/_storage.py +0 -247
  446. union/storage/_utils.py +0 -5
  447. union/types/__init__.py +0 -11
  448. union/types/_renderer.py +0 -162
  449. union/types/_string_literals.py +0 -120
  450. union/types/_type_engine.py +0 -2131
  451. union/types/_utils.py +0 -80
  452. /flyte/{_cli → _debug}/__init__.py +0 -0
  453. /flyte/{_protos → _keyring}/__init__.py +0 -0
  454. {flyte-0.0.1b0.dist-info → flyte-2.0.0b46.dist-info}/WHEEL +0 -0
  455. {flyte-0.0.1b0.dist-info → flyte-2.0.0b46.dist-info}/top_level.txt +0 -0
flyte/cli/_serve.py ADDED
@@ -0,0 +1,338 @@
1
+ from __future__ import annotations
2
+
3
+ import asyncio
4
+ from dataclasses import dataclass, field, fields
5
+ from pathlib import Path
6
+ from types import ModuleType
7
+ from typing import Any, Dict, List, cast
8
+
9
+ import rich_click as click
10
+ from typing_extensions import get_args
11
+
12
+ from flyte._code_bundle._utils import CopyFiles
13
+ from flyte.app import AppEnvironment
14
+
15
+ from . import _common as common
16
+ from ._common import CLIConfig
17
+
18
+
19
+ @dataclass
20
+ class ServeArguments:
21
+ project: str = field(
22
+ default=cast(str, common.PROJECT_OPTION.default), metadata={"click.option": common.PROJECT_OPTION}
23
+ )
24
+ domain: str = field(
25
+ default=cast(str, common.DOMAIN_OPTION.default), metadata={"click.option": common.DOMAIN_OPTION}
26
+ )
27
+ copy_style: CopyFiles = field(
28
+ default="loaded_modules",
29
+ metadata={
30
+ "click.option": click.Option(
31
+ ["--copy-style"],
32
+ type=click.Choice(get_args(CopyFiles)),
33
+ default="loaded_modules",
34
+ help="Copy style to use when serving the app",
35
+ )
36
+ },
37
+ )
38
+ root_dir: str | None = field(
39
+ default=None,
40
+ metadata={
41
+ "click.option": click.Option(
42
+ ["--root-dir"],
43
+ type=str,
44
+ help="Override the root source directory, helpful when working with monorepos.",
45
+ )
46
+ },
47
+ )
48
+ service_account: str | None = field(
49
+ default=None,
50
+ metadata={
51
+ "click.option": click.Option(
52
+ ["--service-account"],
53
+ type=str,
54
+ help="Kubernetes service account. If not provided, the configured default will be used",
55
+ )
56
+ },
57
+ )
58
+ name: str | None = field(
59
+ default=None,
60
+ metadata={
61
+ "click.option": click.Option(
62
+ ["--name"],
63
+ type=str,
64
+ help="Name of the app deployment. If not provided, the app environment name will be used.",
65
+ )
66
+ },
67
+ )
68
+ follow: bool = field(
69
+ default=False,
70
+ metadata={
71
+ "click.option": click.Option(
72
+ ["--follow", "-f"],
73
+ is_flag=True,
74
+ default=False,
75
+ help="Wait and watch logs for the app. If not provided, the CLI will exit after "
76
+ "successfully deploying the app with a link to the UI.",
77
+ )
78
+ },
79
+ )
80
+ image: List[str] = field(
81
+ default_factory=list,
82
+ metadata={
83
+ "click.option": click.Option(
84
+ ["--image"],
85
+ type=str,
86
+ multiple=True,
87
+ help="Image to be used in the serve. Format: imagename=imageuri. Can be specified multiple times.",
88
+ )
89
+ },
90
+ )
91
+ no_sync_local_sys_paths: bool = field(
92
+ default=False,
93
+ metadata={
94
+ "click.option": click.Option(
95
+ ["--no-sync-local-sys-paths"],
96
+ is_flag=True,
97
+ flag_value=True,
98
+ default=False,
99
+ help="Disable synchronization of local sys.path entries under the root directory "
100
+ "to the remote container.",
101
+ )
102
+ },
103
+ )
104
+ env_var: List[str] = field(
105
+ default_factory=list,
106
+ metadata={
107
+ "click.option": click.Option(
108
+ ["--env-var", "-e"],
109
+ type=str,
110
+ multiple=True,
111
+ help="Environment variable to set in the app. Format: KEY=VALUE. Can be specified multiple times. "
112
+ "Example: --env-var LOG_LEVEL=DEBUG --env-var DATABASE_URL=postgresql://...",
113
+ )
114
+ },
115
+ )
116
+
117
+ @classmethod
118
+ def from_dict(cls, d: Dict[str, Any]) -> ServeArguments:
119
+ modified = {k: v for k, v in d.items() if k in {f.name for f in fields(cls)}}
120
+ return cls(**modified)
121
+
122
+ @classmethod
123
+ def options(cls) -> List[click.Option]:
124
+ """
125
+ Return the set of base parameters added to serve subcommand.
126
+ """
127
+ return [common.get_option_from_metadata(f.metadata) for f in fields(cls) if f.metadata]
128
+
129
+
130
+ class ServeAppCommand(click.RichCommand):
131
+ def __init__(self, obj_name: str, obj: AppEnvironment, serve_args: ServeArguments, *args, **kwargs):
132
+ self.obj_name = obj_name
133
+ self.obj = cast(AppEnvironment, obj)
134
+ self.serve_args = serve_args
135
+ kwargs.pop("name", None)
136
+ super().__init__(obj_name, *args, **kwargs)
137
+
138
+ def invoke(self, ctx: click.Context):
139
+ obj: CLIConfig = common.initialize_config(
140
+ ctx,
141
+ self.serve_args.project,
142
+ self.serve_args.domain,
143
+ self.serve_args.root_dir,
144
+ tuple(self.serve_args.image) or None,
145
+ not self.serve_args.no_sync_local_sys_paths,
146
+ )
147
+
148
+ async def _serve():
149
+ import flyte
150
+
151
+ console = common.get_console()
152
+
153
+ # Parse env vars from CLI (format: KEY=VALUE)
154
+ env_vars = {}
155
+ for env_var in self.serve_args.env_var:
156
+ if "=" in env_var:
157
+ key, value = env_var.split("=", 1)
158
+ env_vars[key] = value
159
+ else:
160
+ console.print(
161
+ f"[yellow]Warning: Ignoring invalid env var format: {env_var} (expected KEY=VALUE)[/yellow]"
162
+ )
163
+
164
+ # Use with_servecontext to configure the serve operation
165
+ app = await flyte.with_servecontext(
166
+ copy_style=self.serve_args.copy_style,
167
+ project=self.serve_args.project if self.serve_args.project else None,
168
+ domain=self.serve_args.domain if self.serve_args.domain else None,
169
+ env_vars=env_vars if env_vars else None,
170
+ ).serve.aio(self.obj)
171
+
172
+ console.print(
173
+ common.get_panel(
174
+ "Serve",
175
+ f"[green bold]App '{app.name}' is now being served[/green bold]\n"
176
+ f"➡️ [blue bold][link={app.url}]{app.url}[/link][/blue bold]",
177
+ obj.output_format,
178
+ )
179
+ )
180
+
181
+ if self.serve_args.follow:
182
+ # TODO: Implement log streaming for apps
183
+ # This should retrieve and display logs from the running app
184
+ # Similar to how r.show_logs.aio() works for tasks in _run.py
185
+ console.print(
186
+ "[yellow]Note: Log streaming for apps is not yet implemented. "
187
+ "Please check the app logs via the UI.[/yellow]"
188
+ )
189
+
190
+ asyncio.run(_serve())
191
+
192
+
193
+ class AppPerFileGroup(common.ObjectsPerFileGroup):
194
+ """
195
+ Group that creates a command for each AppEnvironment in the current directory that is not __init__.py.
196
+ """
197
+
198
+ def __init__(self, filename: Path, serve_args: ServeArguments, *args, **kwargs):
199
+ if filename.is_absolute():
200
+ filename = filename.relative_to(Path.cwd())
201
+ super().__init__(*(filename, *args), **kwargs)
202
+ self.serve_args = serve_args
203
+
204
+ def _filter_objects(self, module: ModuleType) -> Dict[str, Any]:
205
+ return {k: v for k, v in module.__dict__.items() if isinstance(v, AppEnvironment)}
206
+
207
+ def list_commands(self, ctx):
208
+ common.initialize_config(
209
+ ctx,
210
+ self.serve_args.project,
211
+ self.serve_args.domain,
212
+ self.serve_args.root_dir,
213
+ sync_local_sys_paths=not self.serve_args.no_sync_local_sys_paths,
214
+ )
215
+ return super().list_commands(ctx)
216
+
217
+ def get_command(self, ctx, obj_name):
218
+ common.initialize_config(
219
+ ctx,
220
+ self.serve_args.project,
221
+ self.serve_args.domain,
222
+ self.serve_args.root_dir,
223
+ sync_local_sys_paths=not self.serve_args.no_sync_local_sys_paths,
224
+ )
225
+ return super().get_command(ctx, obj_name)
226
+
227
+ def _get_command_for_obj(self, ctx: click.Context, obj_name: str, obj: Any) -> click.Command:
228
+ obj = cast(AppEnvironment, obj)
229
+ return ServeAppCommand(
230
+ obj_name=obj_name,
231
+ obj=obj,
232
+ help=f"Serve the '{obj_name}' app environment",
233
+ serve_args=self.serve_args,
234
+ )
235
+
236
+
237
+ class AppFiles(common.FileGroup):
238
+ """
239
+ Group that creates a command for each file in the current directory that is not __init__.py.
240
+ """
241
+
242
+ common_options_enabled = False
243
+
244
+ def __init__(
245
+ self,
246
+ *args,
247
+ directory: Path | None = None,
248
+ **kwargs,
249
+ ):
250
+ if "params" not in kwargs:
251
+ kwargs["params"] = []
252
+ kwargs["params"].extend(ServeArguments.options())
253
+ super().__init__(*args, directory=directory, **kwargs)
254
+
255
+ def get_command(self, ctx, cmd_name):
256
+ serve_args = ServeArguments.from_dict(ctx.params)
257
+
258
+ fp = Path(cmd_name)
259
+ if not fp.exists():
260
+ raise click.BadParameter(f"File {cmd_name} does not exist")
261
+ if fp.is_dir():
262
+ return AppFiles(
263
+ directory=fp,
264
+ help=f"Serve `*.py` file inside the {fp} directory",
265
+ )
266
+ return AppPerFileGroup(
267
+ filename=fp,
268
+ serve_args=serve_args,
269
+ name=cmd_name,
270
+ help=f"Serve AppEnvironment instances in {cmd_name}",
271
+ )
272
+
273
+
274
+ serve = AppFiles(
275
+ name="serve",
276
+ help="""
277
+ Serve an app from a Python file using flyte.serve().
278
+
279
+ This command allows you to serve apps defined with `flyte.app.AppEnvironment`
280
+ in your Python files. The serve command will deploy the app to the Flyte backend
281
+ and start it, making it accessible via a URL.
282
+
283
+ Example usage:
284
+
285
+ ```bash
286
+ flyte serve examples/apps/basic_app.py app_env
287
+ ```
288
+
289
+ Arguments to the serve command are provided right after the `serve` command and before the file name.
290
+
291
+ To follow the logs of the served app, use the `--follow` flag:
292
+
293
+ ```bash
294
+ flyte serve --follow examples/apps/basic_app.py app_env
295
+ ```
296
+
297
+ Note: Log streaming is not yet fully implemented and will be added in a future release.
298
+
299
+ You can provide image mappings with `--image` flag. This allows you to specify
300
+ the image URI for the app environment during CLI execution without changing
301
+ the code. Any images defined with `Image.from_ref_name("name")` will resolve to the
302
+ corresponding URIs you specify here.
303
+
304
+ ```bash
305
+ flyte serve --image my_image=ghcr.io/myorg/my-image:v1.0 examples/apps/basic_app.py app_env
306
+ ```
307
+
308
+ If the image name is not provided, it is regarded as a default image and will
309
+ be used when no image is specified in AppEnvironment:
310
+
311
+ ```bash
312
+ flyte serve --image ghcr.io/myorg/default-image:latest examples/apps/basic_app.py app_env
313
+ ```
314
+
315
+ You can specify multiple image arguments:
316
+
317
+ ```bash
318
+ flyte serve --image ghcr.io/org/default:latest --image gpu=ghcr.io/org/gpu:v2.0 examples/apps/basic_app.py app_env
319
+ ```
320
+
321
+ You can specify the `--config` flag to point to a specific Flyte cluster:
322
+
323
+ ```bash
324
+ flyte serve --config my-config.yaml examples/apps/basic_app.py app_env
325
+ ```
326
+
327
+ You can override the default configured project and domain:
328
+
329
+ ```bash
330
+ flyte serve --project my-project --domain development examples/apps/basic_app.py app_env
331
+ ```
332
+
333
+ Other arguments to the serve command are listed below.
334
+
335
+ Note: This pattern is primarily useful for serving apps defined in tasks.
336
+ Serving deployed apps is not currently supported through this CLI command.
337
+ """,
338
+ )
flyte/cli/_update.py ADDED
@@ -0,0 +1,86 @@
1
+ import rich_click as click
2
+
3
+ import flyte.remote as remote
4
+
5
+ from . import _common as common
6
+
7
+
8
+ @click.group(name="update")
9
+ def update():
10
+ """
11
+ Update various flyte entities.
12
+ """
13
+
14
+
15
+ @update.command("trigger", cls=common.CommandBase)
16
+ @click.argument("name", type=str)
17
+ @click.argument("task_name", type=str)
18
+ @click.option("--activate/--deactivate", required=True, help="Activate or deactivate the trigger.")
19
+ @click.pass_obj
20
+ def trigger(cfg: common.CLIConfig, name: str, task_name: str, activate: bool, project: str | None, domain: str | None):
21
+ """
22
+ Update a trigger.
23
+
24
+ \b
25
+ Example usage:
26
+
27
+ ```bash
28
+ flyte update trigger <trigger_name> <task_name> --activate | --deactivate
29
+ [--project <project_name> --domain <domain_name>]
30
+ ```
31
+ """
32
+ cfg.init(project, domain)
33
+ console = common.get_console()
34
+ to_state = "active" if activate else "deactivate"
35
+ with console.status(f"Updating trigger {name} for task {task_name} to {to_state}..."):
36
+ remote.Trigger.update(name, task_name, activate)
37
+ console.print(f"Trigger updated and is set to [fuchsia]{to_state}[/fuchsia]")
38
+
39
+
40
+ @update.command("app", cls=common.CommandBase)
41
+ @click.argument("name", type=str)
42
+ @click.option("--activate/--deactivate", "is_activate", default=None, help="Activate or deactivate app.")
43
+ @click.option("--wait", is_flag=True, default=False, help="Wait for the app to reach the desired state.")
44
+ @click.pass_obj
45
+ def app(
46
+ cfg: common.CLIConfig, name: str, is_activate: bool | None, wait: bool, project: str | None, domain: str | None
47
+ ):
48
+ """
49
+ Update an app by starting or stopping it.
50
+
51
+ \b
52
+ Example usage:
53
+
54
+ ```bash
55
+ flyte update app <app_name> --activate | --deactivate [--wait] [--project <project_name>] [--domain <domain_name>]
56
+ ```
57
+ """
58
+
59
+ if is_activate is None:
60
+ raise click.UsageError("Missing option '--activate' / '--deactivate'.")
61
+
62
+ cfg.init(project, domain)
63
+ console = common.get_console()
64
+
65
+ app_obj = remote.App.get(name=name)
66
+ if is_activate:
67
+ if app_obj.is_active():
68
+ console.print(f"App [yellow]{name}[/yellow] is already active.")
69
+ return
70
+ state = "activate"
71
+ color = "green"
72
+ with console.status(f"Activating app {name}..."):
73
+ app_obj.activate(wait=wait)
74
+ else:
75
+ state = "deactivate"
76
+ color = "red"
77
+ if app_obj.is_deactivated():
78
+ console.print(f"App [red]{name}[/red] is already deactivated.")
79
+ return
80
+ with console.status(f"Deactivating app {name}..."):
81
+ app_obj.deactivate(wait=wait)
82
+
83
+ if wait:
84
+ console.print(f"App [{color}]{name}[/{color}] {state}d successfully")
85
+ else:
86
+ console.print(f"App [{color}]{name}[/{color}] {state} initiated")
flyte/cli/_user.py ADDED
@@ -0,0 +1,20 @@
1
+ import os
2
+
3
+ import rich_click as click
4
+
5
+ import flyte.remote as remote
6
+
7
+ from . import _common as common
8
+
9
+
10
+ @click.command()
11
+ @click.pass_obj
12
+ def whoami(
13
+ cfg: common.CLIConfig,
14
+ ):
15
+ """Display the current user information."""
16
+ cfg.init()
17
+ console = common.get_console()
18
+ user_info = remote.User.get()
19
+ console.print(user_info.to_json())
20
+ os._exit(0)
flyte/cli/main.py ADDED
@@ -0,0 +1,246 @@
1
+ import rich_click as click
2
+ from typing_extensions import get_args
3
+
4
+ import flyte
5
+ from flyte._logging import LogFormat, initialize_logger, logger
6
+
7
+ from . import _common as common
8
+ from ._abort import abort
9
+ from ._build import build
10
+ from ._common import CLIConfig
11
+ from ._create import create
12
+ from ._delete import delete
13
+ from ._deploy import deploy
14
+ from ._gen import gen
15
+ from ._get import get
16
+ from ._plugins import discover_and_register_plugins
17
+ from ._prefetch import prefetch
18
+ from ._run import run
19
+ from ._serve import serve
20
+ from ._update import update
21
+ from ._user import whoami
22
+
23
+ help_config = click.RichHelpConfiguration(
24
+ use_markdown=True,
25
+ use_markdown_emoji=True,
26
+ command_groups={
27
+ "flyte": [
28
+ {
29
+ "name": "Run and stop tasks",
30
+ "commands": ["run", "abort"],
31
+ },
32
+ {
33
+ "name": "Serve Apps",
34
+ "commands": ["serve"],
35
+ },
36
+ {
37
+ "name": "Management of various objects.",
38
+ "commands": ["create", "get", "delete", "update"],
39
+ },
40
+ {
41
+ "name": "Build and deploy environments, tasks and images.",
42
+ "commands": ["build", "deploy"],
43
+ },
44
+ {
45
+ "name": "Prefetch artifacts from remote registries.",
46
+ "commands": ["prefetch"],
47
+ },
48
+ {
49
+ "name": "Documentation generation",
50
+ "commands": ["gen"],
51
+ },
52
+ {
53
+ "name": "User information",
54
+ "commands": ["whoami"],
55
+ },
56
+ ]
57
+ },
58
+ )
59
+
60
+
61
+ def _verbosity_to_loglevel(verbosity: int) -> int | None:
62
+ """
63
+ Converts a verbosity level from the CLI to a logging level.
64
+
65
+ :param verbosity: verbosity level from the CLI
66
+ :return: logging level
67
+ """
68
+ import logging
69
+
70
+ match verbosity:
71
+ case 0:
72
+ return None
73
+ case 1:
74
+ return logging.WARNING
75
+ case 2:
76
+ return logging.INFO
77
+ case _:
78
+ return logging.DEBUG
79
+
80
+
81
+ @click.group(cls=click.RichGroup)
82
+ @click.version_option(
83
+ message=f"Flyte SDK version: {flyte.version()}",
84
+ )
85
+ @click.option(
86
+ "--endpoint",
87
+ type=str,
88
+ required=False,
89
+ help="The endpoint to connect to. This will override any configuration file and simply use `pkce` to connect.",
90
+ )
91
+ @click.option(
92
+ "--insecure",
93
+ is_flag=True,
94
+ required=False,
95
+ help="Use an insecure connection to the endpoint. If not specified, the CLI will use TLS.",
96
+ type=bool,
97
+ default=None,
98
+ show_default=True,
99
+ )
100
+ @click.option(
101
+ "--auth-type",
102
+ type=click.Choice(common.ALL_AUTH_OPTIONS, case_sensitive=False),
103
+ default=None,
104
+ help="Authentication type to use for the Flyte backend. Defaults to 'pkce'.",
105
+ show_default=True,
106
+ required=False,
107
+ )
108
+ @click.option(
109
+ "-v",
110
+ "--verbose",
111
+ required=False,
112
+ help="Show verbose messages and exception traces. Repeating multiple times increases the verbosity (e.g., -vvv).",
113
+ count=True,
114
+ default=0,
115
+ type=int,
116
+ )
117
+ @click.option(
118
+ "--org",
119
+ type=str,
120
+ required=False,
121
+ help="The organization to which the command applies.",
122
+ )
123
+ @click.option(
124
+ "-c",
125
+ "--config",
126
+ "config_file",
127
+ required=False,
128
+ type=click.Path(exists=True),
129
+ help="Path to the configuration file to use. If not specified, the default configuration file is used.",
130
+ )
131
+ @click.option(
132
+ "--output-format",
133
+ "-of",
134
+ type=click.Choice(get_args(common.OutputFormat), case_sensitive=False),
135
+ default="table",
136
+ help="Output format for commands that support it. Defaults to 'table'.",
137
+ show_default=True,
138
+ required=False,
139
+ )
140
+ @click.option(
141
+ "--log-format",
142
+ type=click.Choice(get_args(LogFormat), case_sensitive=False),
143
+ envvar="LOG_FORMAT",
144
+ default="console",
145
+ help="Formatting for logs, defaults to 'console' which is meant to be human readable."
146
+ " 'json' is meant for machine parsing.",
147
+ show_default=True,
148
+ required=False,
149
+ )
150
+ @click.option(
151
+ "--reset-root-logger",
152
+ is_flag=True,
153
+ required=False,
154
+ help="If set, the root logger will be reset to use Flyte logging style",
155
+ type=bool,
156
+ default=False,
157
+ show_default=True,
158
+ )
159
+ @click.rich_config(help_config=help_config)
160
+ @click.pass_context
161
+ def main(
162
+ ctx: click.Context,
163
+ endpoint: str | None,
164
+ insecure: bool,
165
+ verbose: int,
166
+ log_format: LogFormat,
167
+ reset_root_logger: bool,
168
+ org: str | None,
169
+ config_file: str | None,
170
+ auth_type: str | None = None,
171
+ output_format: common.OutputFormat = "table",
172
+ ):
173
+ """
174
+ The Flyte CLI is the command line interface for working with the Flyte SDK and backend.
175
+
176
+ It follows a simple verb/noun structure,
177
+ where the top-level commands are verbs that describe the action to be taken,
178
+ and the subcommands are nouns that describe the object of the action.
179
+
180
+ The root command can be used to configure the CLI for persistent settings,
181
+ such as the endpoint, organization, and verbosity level.
182
+
183
+ Set endpoint and organization:
184
+
185
+ ```bash
186
+ $ flyte --endpoint <endpoint> --org <org> get project <project_name>
187
+ ```
188
+
189
+ Increase verbosity level (This is useful for debugging,
190
+ this will show more logs and exception traces):
191
+
192
+ ```bash
193
+ $ flyte -vvv get logs <run-name>
194
+ ```
195
+
196
+ Override the default config file:
197
+
198
+ ```bash
199
+ $ flyte --config /path/to/config.yaml run ...
200
+ ```
201
+
202
+ * [Documentation](https://www.union.ai/docs/flyte/user-guide/)
203
+ * [GitHub](https://github.com/flyteorg/flyte): Please leave a star if you like Flyte!
204
+ * [Slack](https://slack.flyte.org): Join the community and ask questions.
205
+ * [Issues](https://github.com/flyteorg/flyte/issues)
206
+
207
+ """
208
+ import flyte.config as config
209
+
210
+ log_level = _verbosity_to_loglevel(verbose)
211
+ if log_level is not None or log_format != "console" or reset_root_logger:
212
+ initialize_logger(log_level=log_level, log_format=log_format, reset_root_logger=reset_root_logger)
213
+
214
+ cfg = config.auto(config_file=config_file)
215
+ if cfg.source:
216
+ logger.debug(f"Using config file discovered at location `{cfg.source.absolute()}`")
217
+
218
+ ctx.obj = CLIConfig(
219
+ log_level=log_level,
220
+ log_format=log_format,
221
+ reset_root_logger=reset_root_logger,
222
+ endpoint=endpoint,
223
+ insecure=insecure,
224
+ org=org,
225
+ config=cfg,
226
+ ctx=ctx,
227
+ auth_type=auth_type,
228
+ output_format=output_format,
229
+ )
230
+
231
+
232
+ main.add_command(run)
233
+ main.add_command(deploy)
234
+ main.add_command(get) # type: ignore
235
+ main.add_command(create) # type: ignore
236
+ main.add_command(abort) # type: ignore
237
+ main.add_command(gen) # type: ignore
238
+ main.add_command(delete) # type: ignore
239
+ main.add_command(build)
240
+ main.add_command(whoami) # type: ignore
241
+ main.add_command(update) # type: ignore
242
+ main.add_command(serve) # type: ignore
243
+ main.add_command(prefetch) # type: ignore
244
+
245
+ # Discover and register CLI plugins from installed packages
246
+ discover_and_register_plugins(main)
@@ -0,0 +1,3 @@
1
+ from flyte.config._config import Config, auto, get_config_file, set_if_exists
2
+
3
+ __all__ = ["Config", "auto", "get_config_file", "set_if_exists"]