metaflow-functions 0.2.1.dev0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. metaflow_functions-0.2.2/MANIFEST.in +2 -0
  2. {metaflow_functions-0.2.1.dev0/metaflow_functions.egg-info → metaflow_functions-0.2.2}/PKG-INFO +1 -1
  3. metaflow_functions-0.2.2/VERSION +1 -0
  4. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/config/mfextinit_functions.py +2 -3
  5. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function.py +19 -4
  6. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_pipeline.py +8 -3
  7. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/environment.py +1 -0
  8. metaflow_functions-0.2.2/metaflow_extensions/nflx/toplevel/functions_version.py +1 -0
  9. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2/metaflow_functions.egg-info}/PKG-INFO +1 -1
  10. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_functions.egg-info/SOURCES.txt +2 -0
  11. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/setup.py +13 -0
  12. metaflow_functions-0.2.1.dev0/metaflow_extensions/nflx/toplevel/functions_version.py +0 -1
  13. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/LICENSE +0 -0
  14. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/README.md +0 -0
  15. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/avro_function/__init__.py +0 -0
  16. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/avro_function/serializers.py +0 -0
  17. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/__init__.py +0 -0
  18. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/__init__.py +0 -0
  19. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/abstract_backend.py +0 -0
  20. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/backend_type.py +0 -0
  21. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/factory.py +0 -0
  22. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/local/__init__.py +0 -0
  23. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/local/local_backend.py +0 -0
  24. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/__init__.py +0 -0
  25. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/memory_backend.py +0 -0
  26. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/memory_cli.py +0 -0
  27. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/runtime.py +0 -0
  28. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/runtime_config.py +0 -0
  29. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/supervisor/__init__.py +0 -0
  30. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/supervisor/supervisor.py +0 -0
  31. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/memory/supervisor/utils.py +0 -0
  32. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/ray/__init__.py +0 -0
  33. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/backends/ray/ray_backend.py +0 -0
  34. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/common/__init__.py +0 -0
  35. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/common/runtime_utils.py +0 -0
  36. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/config.py +0 -0
  37. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/__init__.py +0 -0
  38. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_decorator.py +0 -0
  39. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_decorator_spec.py +0 -0
  40. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_parameters.py +0 -0
  41. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_payload.py +0 -0
  42. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_pipeline_spec.py +0 -0
  43. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/core/function_spec.py +0 -0
  44. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/debug.py +0 -0
  45. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/exceptions.py +0 -0
  46. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/factory.py +0 -0
  47. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/logger/__init__.py +0 -0
  48. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/logger/logger.py +0 -0
  49. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/memory/__init__.py +0 -0
  50. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/memory/concurrency.py +0 -0
  51. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/memory/librt.py +0 -0
  52. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/memory/memory.py +0 -0
  53. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/package.py +0 -0
  54. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/__init__.py +0 -0
  55. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/avro_mixin.py +0 -0
  56. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/base.py +0 -0
  57. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/binary_serializers.py +0 -0
  58. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/config.py +0 -0
  59. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/function_parameters_serializer.py +0 -0
  60. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/function_payload_serializer.py +0 -0
  61. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/hook_utils.py +0 -0
  62. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/import_interceptor.py +0 -0
  63. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/ray_sync.py +0 -0
  64. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/serializers/registry.py +0 -0
  65. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/typing.py +0 -0
  66. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/functions/utils.py +0 -0
  67. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/json_function/__init__.py +0 -0
  68. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/json_function/serializers.py +0 -0
  69. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/plugins/mfextinit_functions.py +0 -0
  70. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/toplevel/functions_toplevel.py +0 -0
  71. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_extensions/nflx/toplevel/mfextinit_functions.py +0 -0
  72. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_functions.egg-info/dependency_links.txt +0 -0
  73. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_functions.egg-info/requires.txt +0 -0
  74. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/metaflow_functions.egg-info/top_level.txt +0 -0
  75. {metaflow_functions-0.2.1.dev0 → metaflow_functions-0.2.2}/setup.cfg +0 -0
@@ -0,0 +1,2 @@
1
+ include VERSION
2
+ include README.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow-functions
3
- Version: 0.2.1.dev0
3
+ Version: 0.2.2
4
4
  Summary: Metaflow Functions
5
5
  Author: Netflix Metaflow Developers
6
6
  Author-email: metaflow-dev@netflix.com
@@ -0,0 +1 @@
1
+ 0.2.2
@@ -37,11 +37,10 @@ FUNCTION_RAY_OBJECT_STORE_MEMORY = from_conf(
37
37
  ###
38
38
  DEBUG_OPTIONS = ["functions"]
39
39
 
40
+
40
41
  ###
41
42
  # Override pinned conda libraries to include libraries necessary for functions.
42
43
  # This list should match metaflow-functions/setup.py install_requires
43
44
  ###
44
45
  def get_pinned_conda_libs(python_version, datastore_type):
45
- # Use "ray" (not "ray-default") so this works in both conda and pip environments.
46
- # ray-default is a conda-forge alias; pip only knows "ray".
47
- return {"psutil": ">=5.8.0", "cffi": "", "fastavro": "", "ray": ""}
46
+ return {"psutil": ">=5.8.0", "cffi": "", "fastavro": "", "ray-default": ""}
@@ -222,8 +222,19 @@ class MetaflowFunction(ABC):
222
222
  func_spec.name = self._func.deco_spec.name
223
223
 
224
224
  func_spec.task_pathspec = self.task.pathspec
225
- # With local packaging, all flows have code packaging
226
- func_spec.task_code_path = self.task.code.path
225
+ # Use the task's code package path; fall back to the current run's code URL
226
+ # (the first task in a local run may register metadata before the async
227
+ # code-package upload completes, leaving task.code as None)
228
+ if self.task.code is not None:
229
+ func_spec.task_code_path = self.task.code.path
230
+ elif os.environ.get("METAFLOW_CODE_URL"):
231
+ func_spec.task_code_path = os.environ["METAFLOW_CODE_URL"]
232
+ else:
233
+ raise MetaflowFunctionException(
234
+ "Cannot determine code package path: task '%s' has no code package "
235
+ "and METAFLOW_CODE_URL is not set. Ensure code packaging is enabled."
236
+ % self.task.pathspec
237
+ )
227
238
  from metaflow.util import get_username
228
239
 
229
240
  func_spec.user = get_username()
@@ -483,7 +494,9 @@ class MetaflowFunction(ABC):
483
494
  A fully instantiated function class derived from MetaflowFunction
484
495
  """
485
496
  if not base_path:
486
- from metaflow_extensions.nflx.config.mfextinit_functions import FUNCTION_RUNTIME_PATH
497
+ from metaflow_extensions.nflx.config.mfextinit_functions import (
498
+ FUNCTION_RUNTIME_PATH,
499
+ )
487
500
 
488
501
  base_path = FUNCTION_RUNTIME_PATH
489
502
  func_spec = cls.function_spec_cls.from_json(reference)
@@ -523,7 +536,9 @@ class MetaflowFunction(ABC):
523
536
  A fully instantiated function class with runtime environment prepared
524
537
  """
525
538
  if not base_path:
526
- from metaflow_extensions.nflx.config.mfextinit_functions import FUNCTION_RUNTIME_PATH
539
+ from metaflow_extensions.nflx.config.mfextinit_functions import (
540
+ FUNCTION_RUNTIME_PATH,
541
+ )
527
542
 
528
543
  base_path = FUNCTION_RUNTIME_PATH
529
544
 
@@ -10,11 +10,12 @@ from dataclasses import dataclass, field, asdict
10
10
  from metaflow_extensions.nflx.plugins.functions.core.function import MetaflowFunction
11
11
 
12
12
 
13
-
14
13
  def _lazy_get_username():
15
14
  from metaflow.util import get_username
16
15
 
17
16
  return get_username()
17
+
18
+
18
19
  from metaflow_extensions.nflx.plugins.functions.config import Config
19
20
 
20
21
  from metaflow_extensions.nflx.plugins.functions.core.function_spec import FunctionSpec
@@ -401,7 +402,9 @@ class FunctionPipeline(MetaflowFunction):
401
402
 
402
403
  # Set default base_path if not provided
403
404
  if not base_path:
404
- from metaflow_extensions.nflx.config.mfextinit_functions import FUNCTION_RUNTIME_PATH
405
+ from metaflow_extensions.nflx.config.mfextinit_functions import (
406
+ FUNCTION_RUNTIME_PATH,
407
+ )
405
408
 
406
409
  base_path = FUNCTION_RUNTIME_PATH
407
410
 
@@ -483,7 +486,9 @@ class FunctionPipeline(MetaflowFunction):
483
486
  ) -> "FunctionPipeline":
484
487
  """Create fully populated pipeline from FunctionSpec."""
485
488
  if not base_path:
486
- from metaflow_extensions.nflx.config.mfextinit_functions import FUNCTION_RUNTIME_PATH
489
+ from metaflow_extensions.nflx.config.mfextinit_functions import (
490
+ FUNCTION_RUNTIME_PATH,
491
+ )
487
492
 
488
493
  base_path = FUNCTION_RUNTIME_PATH
489
494
 
@@ -14,6 +14,7 @@ if TYPE_CHECKING:
14
14
  from metaflow import S3
15
15
 
16
16
  from metaflow.plugins.env_escape import generate_trampolines
17
+
17
18
  try:
18
19
  from metaflow_extensions.nflx.plugins.conda.conda import Conda # type: ignore
19
20
  except ImportError:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metaflow-functions
3
- Version: 0.2.1.dev0
3
+ Version: 0.2.2
4
4
  Summary: Metaflow Functions
5
5
  Author: Netflix Metaflow Developers
6
6
  Author-email: metaflow-dev@netflix.com
@@ -1,5 +1,7 @@
1
1
  LICENSE
2
+ MANIFEST.in
2
3
  README.md
4
+ VERSION
3
5
  setup.py
4
6
  metaflow_extensions/nflx/config/mfextinit_functions.py
5
7
  metaflow_extensions/nflx/plugins/mfextinit_functions.py
@@ -1,8 +1,21 @@
1
+ import os
2
+
1
3
  from setuptools import setup, find_namespace_packages
2
4
 
3
5
  with open("VERSION", mode="r") as f:
4
6
  version = f.read().strip()
5
7
 
8
+ # Write version file so the metaflow extension system reports the correct version
9
+ _version_file = os.path.join(
10
+ os.path.dirname(__file__),
11
+ "metaflow_extensions",
12
+ "nflx",
13
+ "toplevel",
14
+ "functions_version.py",
15
+ )
16
+ with open(_version_file, "wt") as f:
17
+ f.write('_ext_version = "%s"\n' % version)
18
+
6
19
  setup(
7
20
  name="metaflow-functions",
8
21
  version=version,