ob-metaflow-extensions 1.1.135__tar.gz → 1.1.137__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 (65) hide show
  1. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/PKG-INFO +1 -1
  2. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py +26 -6
  3. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/ob_metaflow_extensions.egg-info/PKG-INFO +1 -1
  4. ob-metaflow-extensions-1.1.137/ob_metaflow_extensions.egg-info/requires.txt +3 -0
  5. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/setup.py +2 -2
  6. ob-metaflow-extensions-1.1.135/ob_metaflow_extensions.egg-info/requires.txt +0 -3
  7. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/README.md +0 -0
  8. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/__init__.py +0 -0
  9. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/config/__init__.py +0 -0
  10. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/__init__.py +0 -0
  11. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/auth_server.py +0 -0
  12. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/card_utilities/__init__.py +0 -0
  13. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/card_utilities/async_cards.py +0 -0
  14. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/card_utilities/extra_components.py +0 -0
  15. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/card_utilities/injector.py +0 -0
  16. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py +0 -0
  17. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery.py +0 -0
  18. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_cli.py +0 -0
  19. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/fast_bakery/fast_bakery_decorator.py +0 -0
  20. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/kubernetes/__init__.py +0 -0
  21. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/kubernetes/kubernetes_client.py +0 -0
  22. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nim/__init__.py +0 -0
  23. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nim/card.py +0 -0
  24. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nim/nim_manager.py +0 -0
  25. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nim/utilities.py +0 -0
  26. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/__init__.py +0 -0
  27. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/constants.py +0 -0
  28. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/exceptions.py +0 -0
  29. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/heartbeat_store.py +0 -0
  30. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf.py +0 -0
  31. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_cli.py +0 -0
  32. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/nvcf_decorator.py +0 -0
  33. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/nvcf/utils.py +0 -0
  34. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/ollama/__init__.py +0 -0
  35. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/ollama/ollama.py +0 -0
  36. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/perimeters.py +0 -0
  37. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/profilers/deco_injector.py +0 -0
  38. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/profilers/gpu_profile_decorator.py +0 -0
  39. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/secrets/__init__.py +0 -0
  40. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/secrets/secrets.py +0 -0
  41. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowflake/__init__.py +0 -0
  42. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowflake/snowflake.py +0 -0
  43. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/__init__.py +0 -0
  44. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark.py +0 -0
  45. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_cli.py +0 -0
  46. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_client.py +0 -0
  47. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_decorator.py +0 -0
  48. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_exceptions.py +0 -0
  49. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_job.py +0 -0
  50. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/snowpark/snowpark_service_spec.py +0 -0
  51. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/plugins/tensorboard/__init__.py +0 -0
  52. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/profilers/__init__.py +0 -0
  53. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/profilers/gpu.py +0 -0
  54. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/remote_config.py +0 -0
  55. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/__init__.py +0 -0
  56. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/global_aliases_for_metaflow_package.py +0 -0
  57. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py +0 -0
  58. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py +0 -0
  59. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py +0 -0
  60. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/plugins/ollama/__init__.py +0 -0
  61. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py +0 -0
  62. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/ob_metaflow_extensions.egg-info/SOURCES.txt +0 -0
  63. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/ob_metaflow_extensions.egg-info/dependency_links.txt +0 -0
  64. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/ob_metaflow_extensions.egg-info/top_level.txt +0 -0
  65. {ob-metaflow-extensions-1.1.135 → ob-metaflow-extensions-1.1.137}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.135
3
+ Version: 1.1.137
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -267,7 +267,7 @@ class DockerEnvironment(MetaflowEnvironment):
267
267
  packages = get_pinned_conda_libs(python, self.datastore_type)
268
268
  packages.update(dependencies.attributes["packages"] if dependencies else {})
269
269
 
270
- return {
270
+ requested = {
271
271
  "python": python,
272
272
  "pypi_packages": (
273
273
  packages if isinstance(dependencies, PyPIStepDecorator) else None
@@ -277,15 +277,35 @@ class DockerEnvironment(MetaflowEnvironment):
277
277
  ),
278
278
  "base_image": base_image,
279
279
  }
280
+ dedup_key = hashlib.sha256(
281
+ json.dumps(requested).encode("utf-8")
282
+ ).hexdigest()
283
+
284
+ return step.name, dedup_key, requested
280
285
 
281
286
  with ThreadPoolExecutor() as executor:
282
287
  prepared_args = list(executor.map(prepare_step, steps))
283
- for i, args in enumerate(prepared_args, 1):
284
- args["ref"] = f"#{i:02d}"
285
- futures = [executor.submit(_cached_bake, **args) for args in prepared_args]
288
+ # Deduplicate the requests for baking images of steps.
289
+ # We do not want to bake the same image twice.
290
+ dedup_requests = {}
291
+ for step_name, key, args in prepared_args:
292
+ if key not in dedup_requests:
293
+ dedup_requests[key] = {"step_names": set(), "args": args}
294
+ dedup_requests[key]["step_names"].add(step_name)
295
+
296
+ # unique futures
297
+ futures = []
298
+ for i, kv in enumerate(dedup_requests.items(), 1):
299
+ key, value = kv
300
+ future = executor.submit(
301
+ _cached_bake, **{**value["args"], "ref": f"#{i:02d}"}
302
+ )
303
+ futures.append({"step_names": value["step_names"], "future": future})
304
+
286
305
  results = {}
287
- for step, future in zip(steps, futures):
288
- results[step.name] = future.result()
306
+ for item in futures:
307
+ for step_name in item["step_names"]:
308
+ results[step_name] = item["future"].result()
289
309
 
290
310
  return results
291
311
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.135
3
+ Version: 1.1.137
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -0,0 +1,3 @@
1
+ boto3
2
+ kubernetes
3
+ ob-metaflow==2.15.5.1
@@ -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.135"
5
+ version = "1.1.137"
6
6
  this_directory = Path(__file__).parent
7
7
  long_description = (this_directory / "README.md").read_text()
8
8
 
@@ -18,6 +18,6 @@ setup(
18
18
  install_requires=[
19
19
  "boto3",
20
20
  "kubernetes",
21
- "ob-metaflow == 2.15.0.1",
21
+ "ob-metaflow == 2.15.5.1",
22
22
  ],
23
23
  )
@@ -1,3 +0,0 @@
1
- boto3
2
- kubernetes
3
- ob-metaflow==2.15.0.1