ob-metaflow-extensions 1.1.123rc1__py2.py3-none-any.whl → 1.1.123rc3__py2.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.

Potentially problematic release.


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

@@ -32,8 +32,7 @@ class WorkstationAppDeployDecorator(StepDecorator):
32
32
  def step_init(self, flow, graph, step, decos, environment, flow_datastore, logger):
33
33
  if any([deco.name == "kubernetes" for deco in decos]):
34
34
  raise MetaflowException(
35
- "Step *{step}* is marked for execution both on Kubernetes and "
36
- "Nvidia. Please use one or the other.".format(step=step)
35
+ "@app_deploy decorator is only supported locally and does not work with remote execution environments like @kubernetes, @nvidia."
37
36
  )
38
37
 
39
38
  # We always need to have some environment defined through the flow to deploy and app.
@@ -93,6 +92,17 @@ class WorkstationAppDeployDecorator(StepDecorator):
93
92
  ):
94
93
  deploy_dir = self._deploy_dir
95
94
 
95
+ # By default we assume that the user has a __main__.py file in their app directory.
96
+ # They can always override this behavior.
97
+ user_provided_entrypoint = getattr(flow, "entrypoint", None)
98
+
99
+ if user_provided_entrypoint is not None and not isinstance(
100
+ user_provided_entrypoint, str
101
+ ):
102
+ raise MetaflowException(
103
+ f"@app_deploy requires entrypoint to be set to a string. The current value of entrypoint {user_provided_entrypoint} is not valid."
104
+ )
105
+
96
106
  flow_directory = os.path.dirname(os.path.abspath(sys.argv[0]))
97
107
 
98
108
  # By default, we assume that the layout of the flow directory is:
@@ -103,11 +113,13 @@ class WorkstationAppDeployDecorator(StepDecorator):
103
113
  # - other_files
104
114
  # - other_dirs/
105
115
  # This can be overridden by the user by setting the app_dir attribute.
116
+ # None of this matters if the user provides a custom entrypoint, since in that case we don't copy
117
+ # anything anywhere.
106
118
  app_location = getattr(
107
119
  flow, "app_dir", os.path.join(flow_directory, self.attributes["app_name"])
108
120
  )
109
121
 
110
- if not os.path.exists(app_location):
122
+ if user_provided_entrypoint is None and not os.path.exists(app_location):
111
123
  raise MetaflowException(f"App directory {app_location} does not exist.")
112
124
 
113
125
  wait_time_for_app_start = getattr(
@@ -116,17 +128,6 @@ class WorkstationAppDeployDecorator(StepDecorator):
116
128
  DEFAULT_WAIT_TIME_SECONDS_FOR_PROCESS_TO_START,
117
129
  )
118
130
 
119
- # By default we assume that the user has a __main__.py file in their app directory.
120
- # They can always override this behavior.
121
- user_provided_entrypoint = getattr(flow, "entrypoint", None)
122
-
123
- if user_provided_entrypoint is not None and not isinstance(
124
- user_provided_entrypoint, str
125
- ):
126
- raise MetaflowException(
127
- f"@app_deploy requires entrypoint to be set to a string. The current value of entrypoint {user_provided_entrypoint} is not valid."
128
- )
129
-
130
131
  try:
131
132
  supervisor_client = SupervisorClient(
132
133
  wait_time_seconds_for_app_start=wait_time_for_app_start
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-metaflow-extensions
3
- Version: 1.1.123rc1
3
+ Version: 1.1.123rc3
4
4
  Summary: Outerbounds Platform Extensions for Metaflow
5
5
  Author: Outerbounds, Inc.
6
6
  License: Commercial
@@ -6,7 +6,7 @@ metaflow_extensions/outerbounds/plugins/auth_server.py,sha256=_Q9_2EL0Xy77bCRphk
6
6
  metaflow_extensions/outerbounds/plugins/perimeters.py,sha256=QXh3SFP7GQbS-RAIxUOPbhPzQ7KDFVxZkTdKqFKgXjI,2697
7
7
  metaflow_extensions/outerbounds/plugins/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  metaflow_extensions/outerbounds/plugins/apps/app_utils.py,sha256=JrVKlbRx8-nSmI4cRrB7F8BQGDHleABIYZudK4P-XFE,7905
9
- metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py,sha256=4-42GwYdOGQahWo4qdersfnT-WcO5U9JVtO9kovKlQA,5686
9
+ metaflow_extensions/outerbounds/plugins/apps/deploy_decorator.py,sha256=usE7qZ2luJ0lRRt6-YlaarpjgaQVNNvb-hjVwr_BNRU,5851
10
10
  metaflow_extensions/outerbounds/plugins/apps/supervisord_utils.py,sha256=QDM7s-iVKnnmE7fM8K-nFoLojQvL_cT8hUj1LF1JOBs,8372
11
11
  metaflow_extensions/outerbounds/plugins/fast_bakery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  metaflow_extensions/outerbounds/plugins/fast_bakery/docker_environment.py,sha256=i6F3FXwvEhkmUCTHDJ4VmSoL6vKyQhC_YRCtY6F4EkA,14209
@@ -48,7 +48,7 @@ metaflow_extensions/outerbounds/toplevel/plugins/azure/__init__.py,sha256=WUuhz2
48
48
  metaflow_extensions/outerbounds/toplevel/plugins/gcp/__init__.py,sha256=BbZiaH3uILlEZ6ntBLKeNyqn3If8nIXZFq_Apd7Dhco,70
49
49
  metaflow_extensions/outerbounds/toplevel/plugins/kubernetes/__init__.py,sha256=5zG8gShSj8m7rgF4xgWBZFuY3GDP5n1T0ktjRpGJLHA,69
50
50
  metaflow_extensions/outerbounds/toplevel/plugins/snowflake/__init__.py,sha256=LptpH-ziXHrednMYUjIaosS1SXD3sOtF_9_eRqd8SJw,50
51
- ob_metaflow_extensions-1.1.123rc1.dist-info/METADATA,sha256=xjw9rSyiPjv7obcoDP91AKMcw2B8dgqBAYD68rrkeuI,523
52
- ob_metaflow_extensions-1.1.123rc1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
53
- ob_metaflow_extensions-1.1.123rc1.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
54
- ob_metaflow_extensions-1.1.123rc1.dist-info/RECORD,,
51
+ ob_metaflow_extensions-1.1.123rc3.dist-info/METADATA,sha256=tNEDtAg0JjLBd-v_VLRJ9LTp10HxakE3doOFlfMCs3I,523
52
+ ob_metaflow_extensions-1.1.123rc3.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
53
+ ob_metaflow_extensions-1.1.123rc3.dist-info/top_level.txt,sha256=NwG0ukwjygtanDETyp_BUdtYtqIA_lOjzFFh1TsnxvI,20
54
+ ob_metaflow_extensions-1.1.123rc3.dist-info/RECORD,,