ob-metaflow-extensions 1.1.156__tar.gz → 1.1.157__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 (79) hide show
  1. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/PKG-INFO +1 -1
  2. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nim/nim_manager.py +77 -16
  3. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/ob_metaflow_extensions.egg-info/PKG-INFO +1 -1
  4. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/setup.py +1 -1
  5. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/README.md +0 -0
  6. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/__init__.py +0 -0
  7. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/config/__init__.py +0 -0
  8. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/__init__.py +0 -0
  9. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/apps/__init__.py +0 -0
  10. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/apps/app_utils.py +0 -0
  11. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/apps/consts.py +0 -0
  12. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py +0 -0
  13. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py +0 -0
  14. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/auth_server.py +0 -0
  15. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py +0 -0
  16. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py +0 -0
  17. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py +0 -0
  18. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/card_utilities/injector.py +0 -0
  19. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/__init__.py +0 -0
  20. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/coreweave.py +0 -0
  21. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/checkpoint_datastores/nebius.py +0 -0
  22. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py +0 -0
  23. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +0 -0
  24. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +0 -0
  25. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py +0 -0
  26. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py +0 -0
  27. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py +0 -0
  28. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py +0 -0
  29. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nim/card.py +0 -0
  30. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nim/nim_decorator.py +0 -0
  31. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nim/utils.py +0 -0
  32. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/__init__.py +0 -0
  33. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/constants.py +0 -0
  34. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py +0 -0
  35. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py +0 -0
  36. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py +0 -0
  37. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py +0 -0
  38. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py +0 -0
  39. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvcf/utils.py +0 -0
  40. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/__init__.py +0 -0
  41. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/exceptions.py +0 -0
  42. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/nvct.py +0 -0
  43. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/nvct_cli.py +0 -0
  44. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/nvct_decorator.py +0 -0
  45. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/nvct_runner.py +0 -0
  46. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/nvct/utils.py +0 -0
  47. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/ollama/__init__.py +0 -0
  48. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/ollama/ollama.py +0 -0
  49. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/perimeters.py +0 -0
  50. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py +0 -0
  51. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py +0 -0
  52. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/secrets/__init__.py +0 -0
  53. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/secrets/secrets.py +0 -0
  54. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowflake/__init__.py +0 -0
  55. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py +0 -0
  56. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/__init__.py +0 -0
  57. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py +0 -0
  58. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py +0 -0
  59. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +0 -0
  60. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +0 -0
  61. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py +0 -0
  62. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +0 -0
  63. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py +0 -0
  64. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py +0 -0
  65. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/profilers/__init__.py +0 -0
  66. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/profilers/gpu.py +0 -0
  67. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/remote_config.py +0 -0
  68. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/__init__.py +0 -0
  69. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +0 -0
  70. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py +0 -0
  71. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py +0 -0
  72. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py +0 -0
  73. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py +0 -0
  74. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py +0 -0
  75. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/ob_metaflow_extensions.egg-info/SOURCES.txt +0 -0
  76. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/ob_metaflow_extensions.egg-info/dependency_links.txt +0 -0
  77. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/ob_metaflow_extensions.egg-info/requires.txt +0 -0
  78. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/ob_metaflow_extensions.egg-info/top_level.txt +0 -0
  79. {ob-metaflow-extensions-1.1.156 → ob-metaflow-extensions-1.1.157}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.156
3
+ Version: 1.1.157
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -186,18 +186,61 @@ class NimManager(object):
186
186
  ]
187
187
  self.models = {}
188
188
 
189
- for each_model in models:
190
- if each_model in nvcf_models:
191
- self.models[each_model] = NimChatCompletion(
192
- model=each_model,
189
+ # Convert models to a standard format
190
+ standardized_models = []
191
+ # If models is a single string, convert it to a list with a dict
192
+ if isinstance(models, str):
193
+ standardized_models = [{"name": models}]
194
+ # If models is a list, process each item
195
+ elif isinstance(models, list):
196
+ for model_item in models:
197
+ # If the item is a string, convert it to a dict
198
+ if isinstance(model_item, str):
199
+ standardized_models.append({"name": model_item})
200
+ # If it's already a dict, use it as is
201
+ elif isinstance(model_item, dict):
202
+ standardized_models.append(model_item)
203
+ else:
204
+ raise ValueError(
205
+ f"Model specification must be a string or dictionary, got {type(model_item)}"
206
+ )
207
+ else:
208
+ raise ValueError(
209
+ f"Models must be a string or a list of strings/dictionaries, got {type(models)}"
210
+ )
211
+
212
+ # Process each standardized model
213
+ for each_model_dict in standardized_models:
214
+ model_name = each_model_dict.get("name", "")
215
+ nvcf_id = each_model_dict.get("nvcf_id", "")
216
+ nvcf_version = each_model_dict.get("nvcf_version", "")
217
+
218
+ if model_name and not (nvcf_id and nvcf_version):
219
+ if model_name in nvcf_models:
220
+ self.models[model_name] = NimChatCompletion(
221
+ model=model_name,
222
+ nvcf_id=nvcf_id,
223
+ nvcf_version=nvcf_version,
224
+ nim_metadata=nim_metadata,
225
+ monitor=monitor,
226
+ )
227
+ else:
228
+ raise ValueError(
229
+ f"Model {model_name} not supported by the Outerbounds @nim offering."
230
+ f"\nYou can choose from these options: {nvcf_models}\n\n"
231
+ "Reach out to Outerbounds if there are other models you'd like supported."
232
+ )
233
+ elif nvcf_id and nvcf_version:
234
+ self.models[model_name] = NimChatCompletion(
235
+ model=model_name,
236
+ nvcf_id=nvcf_id,
237
+ nvcf_version=nvcf_version,
193
238
  nim_metadata=nim_metadata,
194
239
  monitor=monitor,
195
240
  )
196
241
  else:
197
242
  raise ValueError(
198
- f"Model {each_model} not supported by the Outerbounds @nim offering."
199
- f"\nYou can choose from these options: {nvcf_models}\n\n"
200
- "Reach out to Outerbounds if there are other models you'd like supported."
243
+ "You must provide either a valid 'name' or a custom 'name' along with both 'nvcf_id' and 'nvcf_version'."
201
244
  )
202
245
 
203
246
 
@@ -205,6 +248,8 @@ class NimChatCompletion(object):
205
248
  def __init__(
206
249
  self,
207
250
  model: str = "meta/llama3-8b-instruct",
251
+ nvcf_id: str = "",
252
+ nvcf_version: str = "",
208
253
  nim_metadata: NimMetadata = None,
209
254
  monitor: bool = False,
210
255
  **kwargs,
@@ -217,18 +262,34 @@ class NimChatCompletion(object):
217
262
  self.model_name = model
218
263
  self.nim_metadata = nim_metadata
219
264
  self.monitor = monitor
220
-
221
265
  all_nvcf_models = self.nim_metadata.get_nvcf_chat_completion_models()
222
- all_nvcf_model_names = [m["name"] for m in all_nvcf_models]
223
266
 
224
- if self.model_name not in all_nvcf_model_names:
225
- raise ValueError(
226
- f"Model {self.model_name} not found in available NVCF models"
227
- )
267
+ if nvcf_id and nvcf_version:
268
+ matching_models = [
269
+ m
270
+ for m in all_nvcf_models
271
+ if m["function-id"] == nvcf_id and m["version-id"] == nvcf_version
272
+ ]
273
+ if matching_models:
274
+ self.model = matching_models[0]
275
+ self.function_id = self.model["function-id"]
276
+ self.version_id = self.model["version-id"]
277
+ self.model_name = self.model["name"]
278
+ else:
279
+ raise ValueError(
280
+ f"Function {self.function_id} with version {self.version_id} not found on NVCF"
281
+ )
282
+ else:
283
+ all_nvcf_model_names = [m["name"] for m in all_nvcf_models]
284
+
285
+ if self.model_name not in all_nvcf_model_names:
286
+ raise ValueError(
287
+ f"Model {self.model_name} not found in available NVCF models"
288
+ )
228
289
 
229
- self.model = all_nvcf_models[all_nvcf_model_names.index(self.model_name)]
230
- self.function_id = self.model["function-id"]
231
- self.version_id = self.model["version-id"]
290
+ self.model = all_nvcf_models[all_nvcf_model_names.index(self.model_name)]
291
+ self.function_id = self.model["function-id"]
292
+ self.version_id = self.model["version-id"]
232
293
 
233
294
  self.first_request = True
234
295
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.156
3
+ Version: 1.1.157
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -2,7 +2,7 @@ from setuptools import setup, find_namespace_packages
2
2
  from pathlib import Path
3
3
 
4
4
 
5
- version = "1.1.156"
5
+ version = "1.1.157"
6
6
  this_directory = Path(__file__).parent
7
7
  long_description = (this_directory / "README.md").read_text()
8
8