truefoundry 0.9.0rc1__py3-none-any.whl → 0.9.2__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 truefoundry might be problematic. Click here for more details.
- truefoundry/_ask/__init__.py +0 -0
- truefoundry/{deploy/cli/commands/ask_command.py → _ask/cli.py} +7 -11
- truefoundry/{deploy/lib/clients/ask_client.py → _ask/client.py} +314 -199
- truefoundry/_ask/llm_utils.py +344 -0
- truefoundry/cli/__main__.py +1 -1
- truefoundry/cli/display_util.py +1 -63
- truefoundry/cli/util.py +32 -1
- truefoundry/common/constants.py +5 -6
- truefoundry/deploy/_autogen/models.py +3 -4
- truefoundry/deploy/cli/commands/__init__.py +16 -1
- truefoundry/deploy/cli/commands/deploy_command.py +17 -2
- truefoundry/deploy/cli/commands/kubeconfig_command.py +1 -2
- truefoundry/deploy/cli/commands/patch_application_command.py +2 -1
- truefoundry/deploy/cli/commands/utils.py +3 -33
- truefoundry/deploy/lib/clients/servicefoundry_client.py +2 -0
- truefoundry/deploy/v2/lib/deploy.py +2 -0
- truefoundry/deploy/v2/lib/deployable_patched_models.py +107 -20
- truefoundry/workflow/__init__.py +2 -0
- {truefoundry-0.9.0rc1.dist-info → truefoundry-0.9.2.dist-info}/METADATA +3 -2
- {truefoundry-0.9.0rc1.dist-info → truefoundry-0.9.2.dist-info}/RECORD +22 -20
- {truefoundry-0.9.0rc1.dist-info → truefoundry-0.9.2.dist-info}/WHEEL +0 -0
- {truefoundry-0.9.0rc1.dist-info → truefoundry-0.9.2.dist-info}/entry_points.txt +0 -0
|
@@ -2,8 +2,6 @@ import os
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
from typing import Any, Dict, List, Optional
|
|
4
4
|
|
|
5
|
-
import questionary
|
|
6
|
-
import rich_click as click
|
|
7
5
|
import yaml
|
|
8
6
|
|
|
9
7
|
DEFAULT_KUBECONFIG_PATH: Path = Path.home() / ".kube" / "config"
|
|
@@ -114,35 +112,7 @@ def get_cluster_context(
|
|
|
114
112
|
|
|
115
113
|
|
|
116
114
|
def get_cluster_server_url(config: Dict[str, Any], cluster: str) -> Optional[str]:
|
|
117
|
-
|
|
118
|
-
if
|
|
119
|
-
return
|
|
115
|
+
cluster_context: Optional[Dict[str, Any]] = get_cluster_context(config, cluster)
|
|
116
|
+
if cluster_context:
|
|
117
|
+
return cluster_context["cluster"].get("server")
|
|
120
118
|
return None
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
def select_cluster(cluster: Optional[str] = None) -> str:
|
|
124
|
-
"""
|
|
125
|
-
Retrieve available clusters and either return the specified one after validation
|
|
126
|
-
or allow the user to interactively select from the list.
|
|
127
|
-
"""
|
|
128
|
-
from truefoundry.deploy.lib.clients.servicefoundry_client import (
|
|
129
|
-
ServiceFoundryServiceClient,
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
clusters = ServiceFoundryServiceClient().list_clusters()
|
|
133
|
-
|
|
134
|
-
if not clusters:
|
|
135
|
-
raise click.ClickException("No clusters found in your account.")
|
|
136
|
-
|
|
137
|
-
if cluster:
|
|
138
|
-
if not any(c.id == cluster for c in clusters):
|
|
139
|
-
raise click.ClickException(
|
|
140
|
-
f"Cluster {cluster} not found. Either it does not exist or you might not be autthorized to access it"
|
|
141
|
-
)
|
|
142
|
-
return cluster
|
|
143
|
-
|
|
144
|
-
choices = {cluster.id: cluster for cluster in clusters}
|
|
145
|
-
cluster = questionary.select("Pick a Cluster:", choices=list(choices.keys())).ask()
|
|
146
|
-
if not cluster:
|
|
147
|
-
raise click.ClickException("No cluster selected.")
|
|
148
|
-
return cluster
|
|
@@ -222,12 +222,14 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
|
222
222
|
workspace_id: str,
|
|
223
223
|
application: autogen_models.Workflow,
|
|
224
224
|
force: bool = False,
|
|
225
|
+
trigger_on_deploy: bool = False,
|
|
225
226
|
) -> Deployment:
|
|
226
227
|
data = {
|
|
227
228
|
"workspaceId": workspace_id,
|
|
228
229
|
"name": application.name,
|
|
229
230
|
"manifest": application.dict(exclude_none=True),
|
|
230
231
|
"forceDeploy": force,
|
|
232
|
+
"triggerOnDeploy": trigger_on_deploy,
|
|
231
233
|
}
|
|
232
234
|
logger.debug(json.dumps(data))
|
|
233
235
|
url = f"{self._api_server_url}/{VERSION_PREFIX}/deployment"
|
|
@@ -262,6 +262,7 @@ def deploy_component(
|
|
|
262
262
|
workspace_fqn: Optional[str] = None,
|
|
263
263
|
wait: bool = True,
|
|
264
264
|
force: bool = False,
|
|
265
|
+
trigger_on_deploy: bool = False,
|
|
265
266
|
) -> Deployment:
|
|
266
267
|
workspace_fqn = _resolve_workspace_fqn(
|
|
267
268
|
component=component, workspace_fqn=workspace_fqn
|
|
@@ -284,6 +285,7 @@ def deploy_component(
|
|
|
284
285
|
workspace_id=workspace_id,
|
|
285
286
|
application=updated_component,
|
|
286
287
|
force=force,
|
|
288
|
+
trigger_on_deploy=trigger_on_deploy,
|
|
287
289
|
)
|
|
288
290
|
logger.info(
|
|
289
291
|
"🚀 Deployment started for application '%s'. Deployment FQN is '%s'.",
|
|
@@ -1,10 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
import warnings
|
|
2
|
+
from typing import Any, Literal, Union
|
|
2
3
|
|
|
4
|
+
from truefoundry.common.warnings import TrueFoundryDeprecationWarning
|
|
3
5
|
from truefoundry.deploy._autogen import models
|
|
4
6
|
from truefoundry.deploy.lib.model.entity import Deployment
|
|
5
7
|
from truefoundry.deploy.v2.lib.deploy import deploy_component
|
|
6
8
|
from truefoundry.deploy.v2.lib.patched_models import LocalSource
|
|
7
|
-
from truefoundry.pydantic_v1 import BaseModel, Field, conint
|
|
9
|
+
from truefoundry.pydantic_v1 import BaseModel, Field, conint, root_validator, validator
|
|
10
|
+
|
|
11
|
+
_TRIGGER_ON_DEPLOY_DEPRECATION_MESSAGE = """
|
|
12
|
+
Setting `trigger_on_deploy` in manifest has been deprecated and the field will be removed in future releases.
|
|
13
|
+
|
|
14
|
+
Please remove it from the spec and instead use
|
|
15
|
+
|
|
16
|
+
`trigger_on_deploy` argument on `.deploy`
|
|
17
|
+
|
|
18
|
+
E.g.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
job = Job(...) # remove `trigger_on_deploy` from initialization
|
|
22
|
+
job.deploy(..., trigger_on_deploy={arg_value})
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
OR
|
|
26
|
+
|
|
27
|
+
`{flag}` option on `tfy deploy`
|
|
28
|
+
|
|
29
|
+
E.g.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
tfy deploy -f truefoundry.yaml {flag}
|
|
33
|
+
```
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _warn_if_trigger_on_deploy_used(_klass, v: Any) -> Any:
|
|
38
|
+
if v is not None:
|
|
39
|
+
# v is the value of trigger_on_deploy, which is also the arg_value for the message
|
|
40
|
+
flag = "--trigger-on-deploy" if v else "--no-trigger-on-deploy"
|
|
41
|
+
warnings.warn(
|
|
42
|
+
_TRIGGER_ON_DEPLOY_DEPRECATION_MESSAGE.format(arg_value=v, flag=flag),
|
|
43
|
+
TrueFoundryDeprecationWarning,
|
|
44
|
+
stacklevel=2,
|
|
45
|
+
)
|
|
46
|
+
return v
|
|
8
47
|
|
|
9
48
|
|
|
10
49
|
class DeployablePatchedModelBase(BaseModel):
|
|
@@ -12,13 +51,18 @@ class DeployablePatchedModelBase(BaseModel):
|
|
|
12
51
|
extra = "forbid"
|
|
13
52
|
|
|
14
53
|
def deploy(
|
|
15
|
-
self,
|
|
54
|
+
self,
|
|
55
|
+
workspace_fqn: str,
|
|
56
|
+
wait: bool = True,
|
|
57
|
+
force: bool = False,
|
|
58
|
+
trigger_on_deploy: bool = False,
|
|
16
59
|
) -> Deployment:
|
|
17
60
|
return deploy_component(
|
|
18
61
|
component=self,
|
|
19
62
|
workspace_fqn=workspace_fqn,
|
|
20
63
|
wait=wait,
|
|
21
64
|
force=force,
|
|
65
|
+
trigger_on_deploy=trigger_on_deploy,
|
|
22
66
|
)
|
|
23
67
|
|
|
24
68
|
|
|
@@ -36,6 +80,10 @@ class Job(models.Job, DeployablePatchedModelBase):
|
|
|
36
80
|
type: Literal["job"] = "job"
|
|
37
81
|
resources: models.Resources = Field(default_factory=models.Resources)
|
|
38
82
|
|
|
83
|
+
@validator("trigger_on_deploy")
|
|
84
|
+
def _warn_if_trigger_on_deploy_used(cls, v: Any) -> Any:
|
|
85
|
+
return _warn_if_trigger_on_deploy_used(cls, v)
|
|
86
|
+
|
|
39
87
|
|
|
40
88
|
class SparkJob(models.SparkJob, DeployablePatchedModelBase):
|
|
41
89
|
type: Literal["spark-job"] = "spark-job"
|
|
@@ -79,9 +127,63 @@ class SSHServer(models.SSHServer, DeployablePatchedModelBase):
|
|
|
79
127
|
resources: models.Resources = Field(default_factory=models.Resources)
|
|
80
128
|
|
|
81
129
|
|
|
82
|
-
class
|
|
130
|
+
class Workflow(models.Workflow, DeployablePatchedModelBase):
|
|
131
|
+
type: Literal["workflow"] = "workflow"
|
|
132
|
+
source: Union[models.RemoteSource, models.LocalSource] = Field(
|
|
133
|
+
default_factory=lambda: LocalSource(local_build=False)
|
|
134
|
+
)
|
|
135
|
+
|
|
83
136
|
def deploy(
|
|
84
137
|
self, workspace_fqn: str, wait: bool = True, force: bool = False
|
|
138
|
+
) -> Deployment:
|
|
139
|
+
from truefoundry.deploy.v2.lib.deploy_workflow import deploy_workflow
|
|
140
|
+
|
|
141
|
+
return deploy_workflow(
|
|
142
|
+
workflow=self, workspace_fqn=workspace_fqn, wait=wait, force=force
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class Application(models.Application, DeployablePatchedModelBase):
|
|
147
|
+
# We need a discriminator field to the root model to simplify the Validation errors
|
|
148
|
+
# Unfortunately cue export cannot add discriminator in OAS
|
|
149
|
+
# Even if we add it manually in OAS, `datamodel-code-generator` has bugs when discriminator field is enum type in member models.
|
|
150
|
+
# It will change the members to be incorrect like this
|
|
151
|
+
# >>> class Service(BaseModel):
|
|
152
|
+
# >>> type: Literal["Service"] = Field("Service") # notice the capital casing
|
|
153
|
+
# This is why we add it manually here
|
|
154
|
+
__root__: Union[
|
|
155
|
+
models.Service,
|
|
156
|
+
models.AsyncService,
|
|
157
|
+
models.Job,
|
|
158
|
+
models.Notebook,
|
|
159
|
+
models.Codeserver,
|
|
160
|
+
models.SSHServer,
|
|
161
|
+
models.RStudio,
|
|
162
|
+
models.Helm,
|
|
163
|
+
models.Volume,
|
|
164
|
+
models.ApplicationSet,
|
|
165
|
+
models.Workflow,
|
|
166
|
+
models.SparkJob,
|
|
167
|
+
] = Field(..., description="", discriminator="type")
|
|
168
|
+
|
|
169
|
+
@root_validator(pre=True)
|
|
170
|
+
def _validate_spec(cls, values: Any) -> Any:
|
|
171
|
+
if isinstance(values, dict) and "__root__" in values:
|
|
172
|
+
root = values["__root__"]
|
|
173
|
+
if (
|
|
174
|
+
isinstance(root, dict)
|
|
175
|
+
and root.get("type") == "job"
|
|
176
|
+
and root.get("trigger_on_deploy") is not None
|
|
177
|
+
):
|
|
178
|
+
_warn_if_trigger_on_deploy_used(cls, root.get("trigger_on_deploy"))
|
|
179
|
+
return values
|
|
180
|
+
|
|
181
|
+
def deploy(
|
|
182
|
+
self,
|
|
183
|
+
workspace_fqn: str,
|
|
184
|
+
wait: bool = True,
|
|
185
|
+
force: bool = False,
|
|
186
|
+
trigger_on_deploy: bool = False,
|
|
85
187
|
) -> Deployment:
|
|
86
188
|
if isinstance(self.__root__, models.Workflow):
|
|
87
189
|
from truefoundry.deploy.v2.lib.deploy_workflow import deploy_workflow
|
|
@@ -98,20 +200,5 @@ class Application(models.Application, DeployablePatchedModelBase):
|
|
|
98
200
|
workspace_fqn=workspace_fqn,
|
|
99
201
|
wait=wait,
|
|
100
202
|
force=force,
|
|
203
|
+
trigger_on_deploy=trigger_on_deploy,
|
|
101
204
|
)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
class Workflow(models.Workflow, DeployablePatchedModelBase):
|
|
105
|
-
type: Literal["workflow"] = "workflow"
|
|
106
|
-
source: Union[models.RemoteSource, models.LocalSource] = Field(
|
|
107
|
-
default_factory=lambda: LocalSource(local_build=False)
|
|
108
|
-
)
|
|
109
|
-
|
|
110
|
-
def deploy(
|
|
111
|
-
self, workspace_fqn: str, wait: bool = True, force: bool = False
|
|
112
|
-
) -> Deployment:
|
|
113
|
-
from truefoundry.deploy.v2.lib.deploy_workflow import deploy_workflow
|
|
114
|
-
|
|
115
|
-
return deploy_workflow(
|
|
116
|
-
workflow=self, workspace_fqn=workspace_fqn, wait=wait, force=force
|
|
117
|
-
)
|
truefoundry/workflow/__init__.py
CHANGED
|
@@ -9,6 +9,7 @@ except ImportError:
|
|
|
9
9
|
|
|
10
10
|
from flytekit import conditional
|
|
11
11
|
from flytekit.types.directory import FlyteDirectory
|
|
12
|
+
from flytekit.types.error.error import FlyteError
|
|
12
13
|
from flytekit.types.file import FlyteFile
|
|
13
14
|
|
|
14
15
|
from truefoundry.common.constants import ENV_VARS
|
|
@@ -39,6 +40,7 @@ __all__ = [
|
|
|
39
40
|
"PythonTaskConfig",
|
|
40
41
|
"ExecutionConfig",
|
|
41
42
|
"FlyteFile",
|
|
43
|
+
"FlyteError",
|
|
42
44
|
]
|
|
43
45
|
|
|
44
46
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: truefoundry
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: TrueFoundry CLI
|
|
5
5
|
Author-email: TrueFoundry Team <abhishek@truefoundry.com>
|
|
6
6
|
Requires-Python: <3.14,>=3.8.1
|
|
@@ -14,7 +14,6 @@ Requires-Dist: gitpython<4.0.0,>=3.1.43
|
|
|
14
14
|
Requires-Dist: importlib-metadata<9.0.0,>=4.11.3
|
|
15
15
|
Requires-Dist: importlib-resources<7.0.0,>=5.2.0
|
|
16
16
|
Requires-Dist: mako<2.0.0,>=1.1.6
|
|
17
|
-
Requires-Dist: mcp==1.8.1; python_version >= '3.10'
|
|
18
17
|
Requires-Dist: numpy<3.0.0,>=1.23.0
|
|
19
18
|
Requires-Dist: openai<2.0.0,>=1.16.2
|
|
20
19
|
Requires-Dist: packaging<26.0,>=20.0
|
|
@@ -35,6 +34,8 @@ Requires-Dist: truefoundry-sdk<0.2.0,>=0.1.1
|
|
|
35
34
|
Requires-Dist: typing-extensions>=4.0
|
|
36
35
|
Requires-Dist: urllib3<3,>=1.26.18
|
|
37
36
|
Requires-Dist: yq<4.0.0,>=3.1.0
|
|
37
|
+
Provides-Extra: ai
|
|
38
|
+
Requires-Dist: mcp==1.9.1; (python_version >= '3.10') and extra == 'ai'
|
|
38
39
|
Provides-Extra: workflow
|
|
39
40
|
Requires-Dist: flytekit==1.15.3; (python_version >= '3.9' and python_version < '3.13') and extra == 'workflow'
|
|
40
41
|
Description-Content-Type: text/markdown
|
|
@@ -3,6 +3,10 @@ truefoundry/_client.py,sha256=Y3qHi_Lg4Sx6GNvsjAHIoAfFr8PJnqgCrXmpNAI3ECg,1417
|
|
|
3
3
|
truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
|
|
4
4
|
truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
|
|
5
5
|
truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
|
|
6
|
+
truefoundry/_ask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
truefoundry/_ask/cli.py,sha256=zPaDvxhX2dITmPTtut2Iu6WAIaizrwR-U_dDZ6xv2io,5814
|
|
8
|
+
truefoundry/_ask/client.py,sha256=4vWO04jWbSF0XD3q8DwXjvL4HW-WBg7nsQ0DydNwHmM,18479
|
|
9
|
+
truefoundry/_ask/llm_utils.py,sha256=ayjz7JtVu142lrm8t0cVoxLxUpx76b71y8R62z_WurY,13537
|
|
6
10
|
truefoundry/autodeploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
11
|
truefoundry/autodeploy/cli.py,sha256=9ZxKu_MGIpraMzaW4ZyuQZhlKIQYE3biBrBV4S1h6Fo,14167
|
|
8
12
|
truefoundry/autodeploy/constants.py,sha256=vTh2nA7cjqghqbW2rNh3FbtcIk2scdAWZuuQCmVBO80,1273
|
|
@@ -28,15 +32,15 @@ truefoundry/autodeploy/utils/client.py,sha256=PvbSkfgAjAogGjisinqmh4mP4svowxAC0I
|
|
|
28
32
|
truefoundry/autodeploy/utils/diff.py,sha256=Ef8Y-VffDKel_-q-GxRam6gqiv8qTLMcqVg6iifXfcA,5358
|
|
29
33
|
truefoundry/autodeploy/utils/pydantic_compat.py,sha256=hEAUy5kLjhPdzw7yGZ2iXGMXbbMVXVlGzIofmyHafXQ,412
|
|
30
34
|
truefoundry/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
truefoundry/cli/__main__.py,sha256=
|
|
35
|
+
truefoundry/cli/__main__.py,sha256=6qCyQ4iXJYwSqepQurw9rifYeiEmuu7WLJgEWFqvQJk,4004
|
|
32
36
|
truefoundry/cli/config.py,sha256=f7z0_gmYZiNImB7Bxz0AnOlrxY2X4lFnX4jYW1I7NHQ,139
|
|
33
37
|
truefoundry/cli/console.py,sha256=9-dMy4YPisCJQziRKTg8Qa0UJnOGl1soiUnJjsnLDvE,242
|
|
34
38
|
truefoundry/cli/const.py,sha256=dVHPo1uAiDSSMXwXoT2mR5kNQjExT98QNVRz98Hz_Ts,510
|
|
35
|
-
truefoundry/cli/display_util.py,sha256=
|
|
36
|
-
truefoundry/cli/util.py,sha256=
|
|
39
|
+
truefoundry/cli/display_util.py,sha256=9vzN3mbQqU6OhS7qRUiMRana4PTHa4sDTA0Hn7OVjCI,3108
|
|
40
|
+
truefoundry/cli/util.py,sha256=pezUfF2GC6ru7s8VeH2a7uvXTU0xN9ka7yLXkIgC3dY,4998
|
|
37
41
|
truefoundry/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
42
|
truefoundry/common/auth_service_client.py,sha256=N3YxKlx63r6cPZqbgb2lqBOPI69ShB7D7RCIq4FSCjc,7949
|
|
39
|
-
truefoundry/common/constants.py,sha256=
|
|
43
|
+
truefoundry/common/constants.py,sha256=pAEuXtUNtg_qQIU40HBtS-L-KSunVAsF_UqzyIPnpEw,4487
|
|
40
44
|
truefoundry/common/credential_file_manager.py,sha256=1yEk1Zm2xS4G0VDFwKSZ4w0VUrcPWQ1nJnoBaz9xyKA,4251
|
|
41
45
|
truefoundry/common/credential_provider.py,sha256=_OhJ2XFlDaVsrUO-FyywxctcGGqDdC2pgcvwEKqQD0Q,4071
|
|
42
46
|
truefoundry/common/entities.py,sha256=b4R6ss06-ygDS3C4Tqa_GOq5LFKDYbt7x4Mghnfz6yo,4007
|
|
@@ -50,7 +54,7 @@ truefoundry/common/utils.py,sha256=j3QP0uOsaGD_VmDDR68JTwoYE1okkAq6OqpVkzVf48Q,6
|
|
|
50
54
|
truefoundry/common/warnings.py,sha256=rs6BHwk7imQYedo07iwh3TWEOywAR3Lqhj0AY4khByg,504
|
|
51
55
|
truefoundry/deploy/__init__.py,sha256=6D22iiCgd5xlzBaG34q9Cx4rGgwf5qIAKQrOCgaCXYY,2746
|
|
52
56
|
truefoundry/deploy/python_deploy_codegen.py,sha256=AainOFR20XvhNeztJkLPWGZ40lAT_nwc-ZmG77Kum4o,6525
|
|
53
|
-
truefoundry/deploy/_autogen/models.py,sha256=
|
|
57
|
+
truefoundry/deploy/_autogen/models.py,sha256=8zuCebKyr3Ake4OR4IRfagAo0VbV3WVOpvPmiB25RAg,71444
|
|
54
58
|
truefoundry/deploy/builder/__init__.py,sha256=nGQiR3r16iumRy7xbVQ6q-k0EApmijspsfVpXDE-9po,4953
|
|
55
59
|
truefoundry/deploy/builder/constants.py,sha256=amUkHoHvVKzGv0v_knfiioRuKiJM0V0xW0diERgWiI0,508
|
|
56
60
|
truefoundry/deploy/builder/docker_service.py,sha256=sm7GWeIqyrKaZpxskdLejZlsxcZnM3BTDJr6orvPN4E,3948
|
|
@@ -62,24 +66,23 @@ truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.p
|
|
|
62
66
|
truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py,sha256=_fjqHKn80qKi68SAMMALge7_A6e1sTsQWichw8uoGIw,2025
|
|
63
67
|
truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py,sha256=f4l3fH21E2b8W3-JotMKc0AdPcCxV7LRPxxYJa7z_UQ,9134
|
|
64
68
|
truefoundry/deploy/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
truefoundry/deploy/cli/commands/__init__.py,sha256=
|
|
69
|
+
truefoundry/deploy/cli/commands/__init__.py,sha256=qv818jxqSAygJ3h-6Ul8t-5VOgR_UrSgsVtNCl3e5G0,1408
|
|
66
70
|
truefoundry/deploy/cli/commands/apply_command.py,sha256=Y2e_C8HVpo8CssVod-3JRz-89qStC5JRaNzJ7O2mRlY,2039
|
|
67
|
-
truefoundry/deploy/cli/commands/ask_command.py,sha256=9TDZVKEKhBvNx3NVz51bbkbbeeEMI3Xc85THnOGHM1g,5970
|
|
68
71
|
truefoundry/deploy/cli/commands/build_command.py,sha256=zJBywMatbpUlXx5O2aqpEVmPeBIJ9RNnG9abSc8C8CE,1234
|
|
69
72
|
truefoundry/deploy/cli/commands/delete_command.py,sha256=i_lr_MocTEPKF2VwLe8B7oZWsgXK06EX_43_xdM5DIs,3875
|
|
70
|
-
truefoundry/deploy/cli/commands/deploy_command.py,sha256=
|
|
73
|
+
truefoundry/deploy/cli/commands/deploy_command.py,sha256=fN6yVXdSGD8xWyAj6KcwayCjA_sV5aKCpxLuNCrUl8U,4681
|
|
71
74
|
truefoundry/deploy/cli/commands/deploy_init_command.py,sha256=g-jBfrEmhZ0TDWsyqPDn4K6q33EqJSGmBTt1eMYig-w,600
|
|
72
75
|
truefoundry/deploy/cli/commands/get_command.py,sha256=bR8tAjQQhimzaTQ57L6BPJwcxQ_SGWCF5CqHDpxgG90,837
|
|
73
76
|
truefoundry/deploy/cli/commands/k8s_exec_credential_command.py,sha256=EknpdufMAEnjSGMG7a-Jj7tkoiS5zmbJRREafb14Alw,2160
|
|
74
|
-
truefoundry/deploy/cli/commands/kubeconfig_command.py,sha256=
|
|
77
|
+
truefoundry/deploy/cli/commands/kubeconfig_command.py,sha256=WTYCv_itwUb6kwlsGkq3hwn5i-Gjd7cVrbBhoLZDnJI,3146
|
|
75
78
|
truefoundry/deploy/cli/commands/login_command.py,sha256=kbEs4leyMYK2kz7L9ql2PXVgLVmCYo-LWtnntVVYLFY,1065
|
|
76
79
|
truefoundry/deploy/cli/commands/logout_command.py,sha256=u3kfrEp0ETbrz40KjD4GCC3XEZ5YRAlrca_Df4U_mk0,536
|
|
77
80
|
truefoundry/deploy/cli/commands/logs_command.py,sha256=osl2z5VaIceB9sYa6GtwsuyAPZKcw-A0oVEt3g1f62Q,4140
|
|
78
|
-
truefoundry/deploy/cli/commands/patch_application_command.py,sha256=
|
|
81
|
+
truefoundry/deploy/cli/commands/patch_application_command.py,sha256=aRTHu2OmxQd7j9iE0RavsFCkCILp0rGh4DJO51Oij5I,2591
|
|
79
82
|
truefoundry/deploy/cli/commands/patch_command.py,sha256=wA95khMO9uVz8SaJlgYMUwaX7HagtchjyxXXATq83Bk,1665
|
|
80
83
|
truefoundry/deploy/cli/commands/terminate_comand.py,sha256=UKhOdbAej8ubX3q44vpLrOotAcvH4vHpRZJQrRf_AfM,1077
|
|
81
84
|
truefoundry/deploy/cli/commands/trigger_command.py,sha256=_qSl-AShepZpbGUGTfLfJGd74VJJ_wd3eXYt2DfxIFo,4716
|
|
82
|
-
truefoundry/deploy/cli/commands/utils.py,sha256=
|
|
85
|
+
truefoundry/deploy/cli/commands/utils.py,sha256=mIMYbHuAxnT0yz_0PU8LDC9sAZPU_xURZFMOrGoasuc,3694
|
|
83
86
|
truefoundry/deploy/core/__init__.py,sha256=j61bMWj4BkWihdssKMSFhieo7afJDtpc7qO7zk1rDB4,140
|
|
84
87
|
truefoundry/deploy/core/login.py,sha256=N2VrW3nlBzoyoYulkipxwQvCpjBhi3sfsmhxK1ktWhg,236
|
|
85
88
|
truefoundry/deploy/core/logout.py,sha256=TpWLq4_DsxYS5GX2OJQGDhekNOfiOLb-vO5khQueHXw,80
|
|
@@ -95,8 +98,7 @@ truefoundry/deploy/lib/session.py,sha256=fLdgR6ZDp8-hFl5NTON4ngnWLsMzGxvKtfpDOOw
|
|
|
95
98
|
truefoundry/deploy/lib/util.py,sha256=J7r8San2wKo48A7-BlH2-OKTlBO67zlPjLEhMsL8os0,1059
|
|
96
99
|
truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXArrY,5009
|
|
97
100
|
truefoundry/deploy/lib/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
-
truefoundry/deploy/lib/clients/
|
|
99
|
-
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=fmRlPYCimk1ZLbMgdzfJVCbcKRCVnFYL5T3j2uJA0Tc,27037
|
|
101
|
+
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=HLBXRQqzwrJfxFnXnxKInx4UWPA8rF8T_ouk-OX7HaE,27128
|
|
100
102
|
truefoundry/deploy/lib/dao/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
103
|
truefoundry/deploy/lib/dao/application.py,sha256=oMszpueXPUfTUuN_XdKwoRjQyqAgWHhZ-10cbprCVdM,9226
|
|
102
104
|
truefoundry/deploy/lib/dao/apply.py,sha256=5IFERe5sLmZGlavaKTIxL4xPHAme4ZS2Ww0a2rKTyT0,3029
|
|
@@ -107,9 +109,9 @@ truefoundry/deploy/lib/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
107
109
|
truefoundry/deploy/lib/model/entity.py,sha256=Bp9sLB-M5INCpw5lPmFdygHWS1zvnLicnSiSCi2iqhQ,8591
|
|
108
110
|
truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
111
|
truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
|
|
110
|
-
truefoundry/deploy/v2/lib/deploy.py,sha256=
|
|
112
|
+
truefoundry/deploy/v2/lib/deploy.py,sha256=HfSUdAS3gSpFAFtV0Mq9LscfpkaXqA2LHW4VXqk9Y0g,12707
|
|
111
113
|
truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=G5BzMIbap8pgDX1eY-TITruUxQdkKhYtBmRwLL6lDeY,14342
|
|
112
|
-
truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=
|
|
114
|
+
truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=mUi-OjPf7bc8rzfrPLdFb79LKuDq7F36RxL4V-AXebs,6830
|
|
113
115
|
truefoundry/deploy/v2/lib/models.py,sha256=ogc1UYs1Z2nBdGSKCrde9sk8d0GxFKMkem99uqO5CmM,1148
|
|
114
116
|
truefoundry/deploy/v2/lib/patched_models.py,sha256=8ib9Y7b4-DoEml2zCv3V7QIqh4tLJUjzPj1AWomwvag,14775
|
|
115
117
|
truefoundry/deploy/v2/lib/source.py,sha256=d6-8_6Zn5koBglqrBrY6ZLG_7yyPuLdyEmK4iZTw6xY,9405
|
|
@@ -365,7 +367,7 @@ truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCt
|
|
|
365
367
|
truefoundry/ml/log_types/image/image.py,sha256=sa0tBHdyluC8bELXY16E0HgFrUDnDBxHrteix4BFXcs,12479
|
|
366
368
|
truefoundry/ml/log_types/image/image_normalizer.py,sha256=vrzfuSpVGgIxw_Q2sbFe7kQ_JpAndX0bMwC7wtfi41g,3104
|
|
367
369
|
truefoundry/ml/log_types/image/types.py,sha256=inFQlyAyDvZtfliFpENirNCm1XO9beyZ8DNn97DoDKs,1568
|
|
368
|
-
truefoundry/workflow/__init__.py,sha256=
|
|
370
|
+
truefoundry/workflow/__init__.py,sha256=8wjsorcOGzCAWGqLRbAUf8eyezxpnB4NvXHX_rdO7ks,1656
|
|
369
371
|
truefoundry/workflow/container_task.py,sha256=8arieePsX4__OnG337hOtCiNgJwtKJJCsZcmFmCBJtk,402
|
|
370
372
|
truefoundry/workflow/map_task.py,sha256=f9vcAPRQy0Ttw6bvdZBKUVJMSm4eGQrbE1GHWhepHIU,1864
|
|
371
373
|
truefoundry/workflow/python_task.py,sha256=SRXRLC4vdBqGjhkwuaY39LEWN6iPCpJAuW17URRdWTY,1128
|
|
@@ -375,7 +377,7 @@ truefoundry/workflow/remote_filesystem/__init__.py,sha256=LQ95ViEjJ7Ts4JcCGOxMPs
|
|
|
375
377
|
truefoundry/workflow/remote_filesystem/logger.py,sha256=em2l7D6sw7xTLDP0kQSLpgfRRCLpN14Qw85TN7ujQcE,1022
|
|
376
378
|
truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQlgzcj0nP3tJopyFSVWT1uv3nhiTIuwfXYeg,12342
|
|
377
379
|
truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
|
|
378
|
-
truefoundry-0.9.
|
|
379
|
-
truefoundry-0.9.
|
|
380
|
-
truefoundry-0.9.
|
|
381
|
-
truefoundry-0.9.
|
|
380
|
+
truefoundry-0.9.2.dist-info/METADATA,sha256=2jpQDTSr8gNEmXZp1N5Dk8-hsHbfBiW4O8TuNY2Wjdg,2504
|
|
381
|
+
truefoundry-0.9.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
382
|
+
truefoundry-0.9.2.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
|
|
383
|
+
truefoundry-0.9.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|