ob-metaflow-extensions 1.4.4__tar.gz → 1.4.6__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.

Potentially problematic release.


This version of ob-metaflow-extensions might be problematic. Click here for more details.

Files changed (138) hide show
  1. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/PKG-INFO +1 -1
  2. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/__init__.py +1 -1
  3. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/app_cli.py +13 -2
  4. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/capsule.py +33 -3
  5. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/unified_config.py +1 -1
  6. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/perimeters.py +1 -1
  7. ob_metaflow_extensions-1.4.6/metaflow_extensions/outerbounds/plugins/optuna/__init__.py +48 -0
  8. ob_metaflow_extensions-1.4.6/metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py +1 -0
  9. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/ob_metaflow_extensions.egg-info/PKG-INFO +1 -1
  10. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/ob_metaflow_extensions.egg-info/SOURCES.txt +2 -0
  11. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/setup.py +1 -1
  12. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/MANIFEST.in +0 -0
  13. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/README.md +0 -0
  14. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/__init__.py +0 -0
  15. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/config/__init__.py +0 -0
  16. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/__init__.py +0 -0
  17. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/app_cli.py +0 -0
  18. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/app_deploy_decorator.py +0 -0
  19. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/app_utils.py +0 -0
  20. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/consts.py +0 -0
  21. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/__init__.py +0 -0
  22. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/_state_machine.py +0 -0
  23. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/_vendor/__init__.py +0 -0
  24. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/__init__.py +0 -0
  25. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/_vendor/spinner/spinners.py +0 -0
  26. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/app_config.py +0 -0
  27. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/artifacts.py +0 -0
  28. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/click_importer.py +0 -0
  29. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/code_package/__init__.py +0 -0
  30. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/code_package/code_packager.py +0 -0
  31. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/code_package/examples.py +0 -0
  32. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/__init__.py +0 -0
  33. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/cli_generator.py +0 -0
  34. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/config_utils.py +0 -0
  35. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/schema_export.py +0 -0
  36. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/typed_configs.py +0 -0
  37. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config/typed_init_generator.py +0 -0
  38. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/config_schema.yaml +0 -0
  39. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/dependencies.py +0 -0
  40. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/deployer.py +0 -0
  41. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/experimental/__init__.py +0 -0
  42. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/secrets.py +0 -0
  43. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/utils.py +0 -0
  44. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/core/validations.py +0 -0
  45. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py +0 -0
  46. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py +0 -0
  47. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/auth_server.py +0 -0
  48. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/aws/__init__.py +0 -0
  49. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/aws/assume_role.py +0 -0
  50. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/aws/assume_role_decorator.py +0 -0
  51. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py +0 -0
  52. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py +0 -0
  53. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py +0 -0
  54. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/card_utilities/injector.py +0 -0
  55. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py +0 -0
  56. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py +0 -0
  57. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/external_chckpt.py +0 -0
  58. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py +0 -0
  59. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py +0 -0
  60. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/baker.py +0 -0
  61. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +0 -0
  62. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +0 -0
  63. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py +0 -0
  64. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py +0 -0
  65. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py +0 -0
  66. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py +0 -0
  67. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/kubernetes/pod_killer.py +0 -0
  68. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nim/card.py +0 -0
  69. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nim/nim_decorator.py +0 -0
  70. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nim/nim_manager.py +0 -0
  71. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nim/utils.py +0 -0
  72. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/__init__.py +0 -0
  73. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/constants.py +0 -0
  74. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py +0 -0
  75. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py +0 -0
  76. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py +0 -0
  77. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py +0 -0
  78. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py +0 -0
  79. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvcf/utils.py +0 -0
  80. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/__init__.py +0 -0
  81. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/exceptions.py +0 -0
  82. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/nvct.py +0 -0
  83. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py +0 -0
  84. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +0 -0
  85. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py +0 -0
  86. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/nvct/utils.py +0 -0
  87. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/ollama/__init__.py +0 -0
  88. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/ollama/constants.py +0 -0
  89. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/ollama/exceptions.py +0 -0
  90. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/ollama/ollama.py +0 -0
  91. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/ollama/status_card.py +0 -0
  92. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/perimeters.py +0 -0
  93. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py +0 -0
  94. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py +0 -0
  95. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py +0 -0
  96. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/__init__.py +0 -0
  97. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/constants.py +0 -0
  98. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/exceptions.py +0 -0
  99. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_api.py +0 -0
  100. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_decorator.py +0 -0
  101. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/s3_proxy/s3_proxy_manager.py +0 -0
  102. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/secrets/__init__.py +0 -0
  103. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/secrets/secrets.py +0 -0
  104. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowflake/__init__.py +0 -0
  105. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py +0 -0
  106. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/__init__.py +0 -0
  107. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py +0 -0
  108. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py +0 -0
  109. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +0 -0
  110. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +0 -0
  111. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py +0 -0
  112. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +0 -0
  113. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py +0 -0
  114. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py +0 -0
  115. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/torchtune/__init__.py +0 -0
  116. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/vllm/__init__.py +0 -0
  117. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/vllm/constants.py +0 -0
  118. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/vllm/exceptions.py +0 -0
  119. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/vllm/status_card.py +0 -0
  120. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/plugins/vllm/vllm_manager.py +0 -0
  121. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/profilers/__init__.py +0 -0
  122. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/profilers/gpu.py +0 -0
  123. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/remote_config.py +0 -0
  124. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/__init__.py +0 -0
  125. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +0 -0
  126. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/ob_internal.py +0 -0
  127. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py +0 -0
  128. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py +0 -0
  129. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py +0 -0
  130. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py +0 -0
  131. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py +0 -0
  132. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py +0 -0
  133. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py +0 -0
  134. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/metaflow_extensions/outerbounds/toplevel/s3_proxy.py +0 -0
  135. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/ob_metaflow_extensions.egg-info/dependency_links.txt +0 -0
  136. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/ob_metaflow_extensions.egg-info/requires.txt +0 -0
  137. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/ob_metaflow_extensions.egg-info/top_level.txt +0 -0
  138. {ob_metaflow_extensions-1.4.4 → ob_metaflow_extensions-1.4.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob_metaflow_extensions
3
- Version: 1.4.4
3
+ Version: 1.4.6
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -361,4 +361,4 @@ SECRETS_PROVIDERS_DESC = [
361
361
  ("outerbounds", ".secrets.secrets.OuterboundsSecretsProvider"),
362
362
  ]
363
363
  # Adding an override here so the library can be imported at the metaflow.plugins level
364
- __mf_promote_submodules__ = ["snowflake", "ollama", "torchtune"]
364
+ __mf_promote_submodules__ = ["snowflake", "ollama", "torchtune", "optuna"]
@@ -484,6 +484,9 @@ def deploy(
484
484
  dependencies.get("conda", None) is None,
485
485
  ]
486
486
  ):
487
+ python_version = dependencies.get(
488
+ "python"
489
+ ) # python gets a default value so it's always set.
487
490
  # The user has not set any dependencies, so we can sniff the packaging directory
488
491
  # for a dependencies file.
489
492
  requirements_file = os.path.join(
@@ -492,14 +495,22 @@ def deploy(
492
495
  pyproject_toml = os.path.join(packaging_directory, "pyproject.toml")
493
496
  if os.path.exists(pyproject_toml):
494
497
  app_config.set_state(
495
- "dependencies", {"from_pyproject_toml": pyproject_toml}
498
+ "dependencies",
499
+ {
500
+ "from_pyproject_toml": pyproject_toml,
501
+ "python": python_version,
502
+ },
496
503
  )
497
504
  logger(
498
505
  "📦 Using dependencies from pyproject.toml: %s" % pyproject_toml
499
506
  )
500
507
  elif os.path.exists(requirements_file):
501
508
  app_config.set_state(
502
- "dependencies", {"from_requirements_file": requirements_file}
509
+ "dependencies",
510
+ {
511
+ "from_requirements_file": requirements_file,
512
+ "python": python_version,
513
+ },
503
514
  )
504
515
  logger(
505
516
  "📦 Using dependencies from requirements.txt: %s"
@@ -446,6 +446,34 @@ class CapsuleApi:
446
446
  message="Capsule JSON decode failed",
447
447
  )
448
448
 
449
+ def get_by_name(self, name: str, most_recent_only: bool = True):
450
+ _url = os.path.join(self._base_url, f"?displayName={name}")
451
+ response = self._wrapped_api_caller(
452
+ requests.get,
453
+ _url,
454
+ retryable_status_codes=[409], # todo : verify me
455
+ conn_error_retries=3,
456
+ )
457
+ try:
458
+ if most_recent_only:
459
+ result = response.json()
460
+ candidates = result["capsules"]
461
+ if not candidates:
462
+ return None
463
+ return sorted(
464
+ candidates, key=lambda x: x["metadata"]["createdAt"], reverse=True
465
+ )[0]
466
+ else:
467
+ return response.json()
468
+ except json.JSONDecodeError as e:
469
+ raise CapsuleApiException(
470
+ _url,
471
+ "get",
472
+ response.status_code,
473
+ response.text,
474
+ message="Capsule JSON decode failed",
475
+ )
476
+
449
477
  def list(self):
450
478
  response = self._wrapped_api_caller(
451
479
  requests.get,
@@ -793,9 +821,11 @@ class CapsuleDeployer:
793
821
  "💊 %s deployment status: %s "
794
822
  % (
795
823
  self.capsule_type.title(),
796
- "in progress"
797
- if state_machine.update_in_progress
798
- else "completed",
824
+ (
825
+ "in progress"
826
+ if state_machine.update_in_progress
827
+ else "completed"
828
+ ),
799
829
  )
800
830
  )
801
831
  _further_readiness_check_failed = False
@@ -480,7 +480,7 @@ class DependencyConfig(metaclass=ConfigMeta):
480
480
  help="The Python version to use for the app.",
481
481
  ),
482
482
  field_type=str,
483
- behavior=FieldBehavior.NOT_ALLOWED,
483
+ behavior=FieldBehavior.UNION,
484
484
  example="3.10",
485
485
  )
486
486
  pypi = ConfigField(
@@ -40,7 +40,7 @@ class PerimeterExtractor:
40
40
  return perimeter, api_server # type: ignore
41
41
 
42
42
  @classmethod
43
- def during_metaflow_execution(cls) -> str:
43
+ def during_metaflow_execution(cls) -> Union[Tuple[str, str], Tuple[None, None]]:
44
44
  from metaflow.metaflow_config_funcs import init_config
45
45
 
46
46
  clean_url = (
@@ -0,0 +1,48 @@
1
+ import os
2
+ import json
3
+
4
+ __mf_promote_submodules__ = ["plugins.optuna"]
5
+
6
+
7
+ def auth():
8
+ from metaflow.metaflow_config_funcs import init_config
9
+
10
+ conf = init_config()
11
+ if conf:
12
+ headers = {"x-api-key": conf["METAFLOW_SERVICE_AUTH_KEY"]}
13
+ else:
14
+ headers = json.loads(os.environ["METAFLOW_SERVICE_HEADERS"])
15
+ return headers
16
+
17
+
18
+ def get_deployment_db_access_endpoint(name: str):
19
+ from ..apps.core.perimeters import PerimeterExtractor
20
+ from ..apps.core.capsule import CapsuleApi
21
+
22
+ perimeter, cap_url = PerimeterExtractor.during_metaflow_execution()
23
+ deployment = CapsuleApi(cap_url, perimeter).get_by_name(name)
24
+ if not deployment:
25
+ raise Exception(f"No app deployment found with name `{name}`")
26
+
27
+ if (
28
+ "status" in deployment
29
+ and "accessInfo" in deployment["status"]
30
+ and "extraAccessUrls" in deployment["status"]["accessInfo"]
31
+ ):
32
+ for extra_url in deployment["status"]["accessInfo"]["extraAccessUrls"]:
33
+ if extra_url["name"] == "in_cluster_db_access":
34
+ db_url = extra_url["url"].replace("http://", "")
35
+ return db_url
36
+
37
+ raise Exception(f"No db access endpoint found for deployment `{name}`")
38
+
39
+
40
+ def get_db_url(app_name: str):
41
+ """
42
+ Example usage:
43
+ >>> from metaflow.plugins.optuna import get_db_url
44
+ >>> s = optuna.create_study(..., storage=get_db_url("optuna-dashboard"))
45
+ """
46
+ mf_token = auth()["x-api-key"]
47
+ app_url = get_deployment_db_access_endpoint(app_name)
48
+ return f"postgresql://userspace_default:{mf_token}@{app_url}/userspace_default?sslmode=disable"
@@ -0,0 +1 @@
1
+ __mf_promote_submodules__ = ["plugins.optuna"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.4.4
3
+ Version: 1.4.6
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -86,6 +86,7 @@ metaflow_extensions/outerbounds/plugins/ollama/constants.py
86
86
  metaflow_extensions/outerbounds/plugins/ollama/exceptions.py
87
87
  metaflow_extensions/outerbounds/plugins/ollama/ollama.py
88
88
  metaflow_extensions/outerbounds/plugins/ollama/status_card.py
89
+ metaflow_extensions/outerbounds/plugins/optuna/__init__.py
89
90
  metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py
90
91
  metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py
91
92
  metaflow_extensions/outerbounds/plugins/profilers/simple_card_decorator.py
@@ -124,6 +125,7 @@ metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py
124
125
  metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py
125
126
  metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py
126
127
  metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py
128
+ metaflow_extensions/outerbounds/toplevel/plugins/optuna/__init__.py
127
129
  metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py
128
130
  metaflow_extensions/outerbounds/toplevel/plugins/torchtune/__init__.py
129
131
  metaflow_extensions/outerbounds/toplevel/plugins/vllm/__init__.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
  from pathlib import Path
3
3
 
4
4
 
5
- version = "1.4.4"
5
+ version = "1.4.6"
6
6
  this_directory = Path(__file__).parent
7
7
  long_description = (this_directory / "README.md").read_text()
8
8