truefoundry 0.4.1rc1__py3-none-any.whl → 0.4.2rc1__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/common/auth_service_client.py +14 -5
- truefoundry/common/credential_file_manager.py +4 -3
- truefoundry/common/credential_provider.py +4 -5
- truefoundry/common/servicefoundry_client.py +1 -0
- truefoundry/common/utils.py +26 -4
- truefoundry/deploy/lib/auth/servicefoundry_session.py +4 -2
- truefoundry/deploy/lib/clients/servicefoundry_client.py +1 -0
- truefoundry/deploy/lib/session.py +6 -6
- truefoundry/ml/clients/servicefoundry_client.py +1 -0
- truefoundry/ml/mlfoundry_api.py +4 -2
- truefoundry/ml/mlfoundry_run.py +4 -2
- truefoundry/ml/session.py +8 -4
- {truefoundry-0.4.1rc1.dist-info → truefoundry-0.4.2rc1.dist-info}/METADATA +1 -1
- {truefoundry-0.4.1rc1.dist-info → truefoundry-0.4.2rc1.dist-info}/RECORD +16 -16
- {truefoundry-0.4.1rc1.dist-info → truefoundry-0.4.2rc1.dist-info}/WHEEL +0 -0
- {truefoundry-0.4.1rc1.dist-info → truefoundry-0.4.2rc1.dist-info}/entry_points.txt +0 -0
|
@@ -8,7 +8,7 @@ from truefoundry.common.constants import VERSION_PREFIX
|
|
|
8
8
|
from truefoundry.common.entities import DeviceCode, Token
|
|
9
9
|
from truefoundry.common.exceptions import BadRequestException
|
|
10
10
|
from truefoundry.common.request_utils import request_handling, requests_retry_session
|
|
11
|
-
from truefoundry.common.utils import poll_for_function
|
|
11
|
+
from truefoundry.common.utils import poll_for_function, relogin_error_message
|
|
12
12
|
from truefoundry.logger import logger
|
|
13
13
|
|
|
14
14
|
|
|
@@ -16,6 +16,7 @@ class AuthServiceClient(ABC):
|
|
|
16
16
|
def __init__(self, tenant_name: str):
|
|
17
17
|
self._tenant_name = tenant_name
|
|
18
18
|
|
|
19
|
+
# TODO (chiragjn): Rename base_url to tfy_host
|
|
19
20
|
@classmethod
|
|
20
21
|
def from_base_url(cls, base_url: str) -> "AuthServiceClient":
|
|
21
22
|
from truefoundry.common.servicefoundry_client import (
|
|
@@ -54,7 +55,9 @@ class ServiceFoundryServerAuthServiceClient(AuthServiceClient):
|
|
|
54
55
|
if not token.refresh_token:
|
|
55
56
|
# TODO: Add a way to propagate error messages without traceback to the output interface side
|
|
56
57
|
raise Exception(
|
|
57
|
-
|
|
58
|
+
relogin_error_message(
|
|
59
|
+
"Unable to resume login session.", host=host_arg_str
|
|
60
|
+
)
|
|
58
61
|
)
|
|
59
62
|
url = f"{self._api_server_url}/{VERSION_PREFIX}/oauth2/token"
|
|
60
63
|
data = {
|
|
@@ -70,7 +73,9 @@ class ServiceFoundryServerAuthServiceClient(AuthServiceClient):
|
|
|
70
73
|
return Token.parse_obj(response_data)
|
|
71
74
|
except BadRequestException as ex:
|
|
72
75
|
raise Exception(
|
|
73
|
-
|
|
76
|
+
relogin_error_message(
|
|
77
|
+
"Unable to resume login session.", host=host_arg_str
|
|
78
|
+
)
|
|
74
79
|
) from ex
|
|
75
80
|
|
|
76
81
|
def get_device_code(self) -> DeviceCode:
|
|
@@ -127,7 +132,9 @@ class AuthServerServiceClient(AuthServiceClient):
|
|
|
127
132
|
if not token.refresh_token:
|
|
128
133
|
# TODO: Add a way to propagate error messages without traceback to the output interface side
|
|
129
134
|
raise Exception(
|
|
130
|
-
|
|
135
|
+
relogin_error_message(
|
|
136
|
+
"Unable to resume login session.", host=host_arg_str
|
|
137
|
+
)
|
|
131
138
|
)
|
|
132
139
|
url = f"{self._auth_server_url}/api/{VERSION_PREFIX}/oauth/token/refresh"
|
|
133
140
|
data = {
|
|
@@ -141,7 +148,9 @@ class AuthServerServiceClient(AuthServiceClient):
|
|
|
141
148
|
return Token.parse_obj(response_data)
|
|
142
149
|
except BadRequestException as ex:
|
|
143
150
|
raise Exception(
|
|
144
|
-
|
|
151
|
+
relogin_error_message(
|
|
152
|
+
"Unable to resume login session.", host=host_arg_str
|
|
153
|
+
)
|
|
145
154
|
) from ex
|
|
146
155
|
|
|
147
156
|
def get_device_code(self) -> DeviceCode:
|
|
@@ -10,6 +10,7 @@ from filelock import FileLock, Timeout
|
|
|
10
10
|
|
|
11
11
|
from truefoundry.common.constants import CREDENTIAL_FILEPATH
|
|
12
12
|
from truefoundry.common.entities import CredentialsFileContent
|
|
13
|
+
from truefoundry.common.utils import relogin_error_message
|
|
13
14
|
from truefoundry.logger import logger
|
|
14
15
|
|
|
15
16
|
|
|
@@ -87,9 +88,9 @@ class CredentialsFileManager:
|
|
|
87
88
|
return CredentialsFileContent.parse_file(self._credentials_file_path)
|
|
88
89
|
except Exception as ex:
|
|
89
90
|
raise Exception(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
relogin_error_message(
|
|
92
|
+
f"Error while reading the credentials file {self._credentials_file_path}"
|
|
93
|
+
)
|
|
93
94
|
) from ex
|
|
94
95
|
|
|
95
96
|
@_ensure_lock_taken
|
|
@@ -6,7 +6,7 @@ from truefoundry.common.auth_service_client import AuthServiceClient
|
|
|
6
6
|
from truefoundry.common.constants import TFY_API_KEY_ENV_KEY
|
|
7
7
|
from truefoundry.common.credential_file_manager import CredentialsFileManager
|
|
8
8
|
from truefoundry.common.entities import CredentialsFileContent, Token
|
|
9
|
-
from truefoundry.common.utils import
|
|
9
|
+
from truefoundry.common.utils import resolve_tfy_host
|
|
10
10
|
from truefoundry.logger import logger
|
|
11
11
|
|
|
12
12
|
TOKEN_REFRESH_LOCK = threading.RLock()
|
|
@@ -17,6 +17,7 @@ class CredentialProvider(ABC):
|
|
|
17
17
|
@abstractmethod
|
|
18
18
|
def token(self) -> Token: ...
|
|
19
19
|
|
|
20
|
+
# TODO (chiragjn): Rename base_url to tfy_host
|
|
20
21
|
@property
|
|
21
22
|
@abstractmethod
|
|
22
23
|
def base_url(self) -> str: ...
|
|
@@ -34,10 +35,8 @@ class EnvCredentialProvider(CredentialProvider):
|
|
|
34
35
|
raise Exception(
|
|
35
36
|
f"Value of {TFY_API_KEY_ENV_KEY} env var should be non-empty string"
|
|
36
37
|
)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
self._host = base_url
|
|
40
|
-
self._auth_service = AuthServiceClient.from_base_url(base_url=base_url)
|
|
38
|
+
self._host = resolve_tfy_host()
|
|
39
|
+
self._auth_service = AuthServiceClient.from_base_url(base_url=self._host)
|
|
41
40
|
self._token: Token = Token(access_token=api_key, refresh_token=None) # type: ignore[call-arg]
|
|
42
41
|
|
|
43
42
|
@staticmethod
|
|
@@ -68,6 +68,7 @@ def _cached_get_python_sdk_config(api_server_url: str) -> PythonSDKConfig:
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
class ServiceFoundryServiceClient:
|
|
71
|
+
# TODO (chiragjn): Rename base_url to tfy_host
|
|
71
72
|
def __init__(self, base_url: str):
|
|
72
73
|
self._base_url = base_url.strip("/")
|
|
73
74
|
self._api_server_url = append_servicefoundry_path_to_base_url(self._base_url)
|
truefoundry/common/utils.py
CHANGED
|
@@ -14,6 +14,17 @@ from truefoundry.common.constants import (
|
|
|
14
14
|
T = TypeVar("T")
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
def relogin_error_message(message: str, host: str = "HOST") -> str:
|
|
18
|
+
suffix = ""
|
|
19
|
+
if host == "HOST":
|
|
20
|
+
suffix = " where HOST is TrueFoundry platform URL"
|
|
21
|
+
return (
|
|
22
|
+
f"{message}\n"
|
|
23
|
+
f"Please login again using `tfy login --host {host} --relogin` "
|
|
24
|
+
f"or `truefoundry.login(host={host!r}, relogin=True)` function" + suffix
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
17
28
|
def timed_lru_cache(
|
|
18
29
|
seconds: int = 300, maxsize: Optional[int] = None
|
|
19
30
|
) -> Callable[[Callable[..., T]], Callable[..., T]]:
|
|
@@ -42,14 +53,25 @@ def poll_for_function(
|
|
|
42
53
|
time.sleep(poll_after_secs)
|
|
43
54
|
|
|
44
55
|
|
|
45
|
-
def
|
|
46
|
-
if not
|
|
56
|
+
def validate_tfy_host(tfy_host: str) -> str:
|
|
57
|
+
if not (tfy_host.startswith("https://") or tfy_host.startswith("http://")):
|
|
58
|
+
raise ValueError(
|
|
59
|
+
f"Invalid host {tfy_host!r}. It should start with https:// or http://"
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def resolve_tfy_host(tfy_host: Optional[str] = None) -> str:
|
|
64
|
+
if not tfy_host and not os.getenv(TFY_HOST_ENV_KEY):
|
|
47
65
|
raise ValueError(
|
|
48
|
-
f"Either `host` should be provided
|
|
66
|
+
f"Either `host` should be provided using `--host <value>`, or `{TFY_HOST_ENV_KEY}` env must be set"
|
|
49
67
|
)
|
|
50
|
-
|
|
68
|
+
tfy_host = tfy_host or os.getenv(TFY_HOST_ENV_KEY)
|
|
69
|
+
tfy_host = tfy_host.strip("/")
|
|
70
|
+
validate_tfy_host(tfy_host)
|
|
71
|
+
return tfy_host
|
|
51
72
|
|
|
52
73
|
|
|
74
|
+
# TODO (chiragjn): Rename base_url to tfy_host
|
|
53
75
|
def append_servicefoundry_path_to_base_url(base_url: str):
|
|
54
76
|
if urlsplit(base_url).netloc.startswith("localhost"):
|
|
55
77
|
return os.getenv(SERVICEFOUNDRY_SERVER_URL_ENV_KEY)
|
|
@@ -8,6 +8,7 @@ from truefoundry.common.credential_provider import (
|
|
|
8
8
|
FileCredentialProvider,
|
|
9
9
|
)
|
|
10
10
|
from truefoundry.common.entities import UserInfo
|
|
11
|
+
from truefoundry.common.utils import relogin_error_message
|
|
11
12
|
from truefoundry.logger import logger
|
|
12
13
|
|
|
13
14
|
ACTIVE_SESSION: Optional[ServiceFoundrySession] = None
|
|
@@ -41,8 +42,9 @@ class ServiceFoundrySession:
|
|
|
41
42
|
break
|
|
42
43
|
if final_cred_provider is None:
|
|
43
44
|
raise Exception(
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
relogin_error_message(
|
|
46
|
+
"No active session found. Perhaps you are not logged in?",
|
|
47
|
+
)
|
|
46
48
|
)
|
|
47
49
|
return final_cred_provider
|
|
48
50
|
|
|
@@ -76,6 +76,7 @@ def _upload_packaged_code(metadata, package_file):
|
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
79
|
+
# TODO (chiragjn): Rename base_url to tfy_host
|
|
79
80
|
def __init__(self, init_session: bool = True, base_url: Optional[str] = None):
|
|
80
81
|
self._session: Optional[ServiceFoundrySession] = None
|
|
81
82
|
if init_session:
|
|
@@ -8,7 +8,7 @@ from truefoundry.common.constants import TFY_API_KEY_ENV_KEY, TFY_HOST_ENV_KEY
|
|
|
8
8
|
from truefoundry.common.credential_file_manager import CredentialsFileManager
|
|
9
9
|
from truefoundry.common.credential_provider import EnvCredentialProvider
|
|
10
10
|
from truefoundry.common.entities import CredentialsFileContent, Token
|
|
11
|
-
from truefoundry.common.utils import
|
|
11
|
+
from truefoundry.common.utils import relogin_error_message, resolve_tfy_host
|
|
12
12
|
from truefoundry.deploy.io.output_callback import OutputCallBack
|
|
13
13
|
from truefoundry.deploy.lib.const import (
|
|
14
14
|
RICH_OUTPUT_CALLBACK,
|
|
@@ -43,7 +43,7 @@ def login(
|
|
|
43
43
|
"Login will just save the credentials on disk."
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
-
host =
|
|
46
|
+
host = resolve_tfy_host(host)
|
|
47
47
|
|
|
48
48
|
with CredentialsFileManager() as cred_file:
|
|
49
49
|
if not relogin and cred_file.exists():
|
|
@@ -58,10 +58,10 @@ def login(
|
|
|
58
58
|
user_info = cred_file_content.to_token().to_user_info()
|
|
59
59
|
user_name_display_info = user_info.email or user_info.user_type.value
|
|
60
60
|
output_hook.print_line(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
relogin_error_message(
|
|
62
|
+
f"Already logged in to {cred_file_content.host!r} as {user_info.user_id!r} ({user_name_display_info})",
|
|
63
|
+
host=host,
|
|
64
|
+
)
|
|
65
65
|
)
|
|
66
66
|
return False
|
|
67
67
|
|
|
@@ -16,6 +16,7 @@ from truefoundry.ml.run_utils import append_servicefoundry_path_to_tracking_uri
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
19
|
+
# TODO (chiragjn): Rename tracking_uri to tfy_host
|
|
19
20
|
def __init__(self, tracking_uri: str, token: Optional[str] = None):
|
|
20
21
|
super().__init__(base_url=tracking_uri)
|
|
21
22
|
self.host_creds = HostCreds(
|
truefoundry/ml/mlfoundry_api.py
CHANGED
|
@@ -7,6 +7,7 @@ from typing import Any, Dict, Iterator, List, Optional, Sequence, Tuple, Union
|
|
|
7
7
|
import coolname
|
|
8
8
|
import pandas as pd
|
|
9
9
|
|
|
10
|
+
from truefoundry.common.utils import relogin_error_message
|
|
10
11
|
from truefoundry.ml import constants, env_vars
|
|
11
12
|
from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
|
|
12
13
|
ArtifactDto,
|
|
@@ -213,8 +214,9 @@ class MlFoundry:
|
|
|
213
214
|
session = get_active_session()
|
|
214
215
|
if session is None:
|
|
215
216
|
raise MlFoundryException(
|
|
216
|
-
|
|
217
|
-
|
|
217
|
+
relogin_error_message(
|
|
218
|
+
"No active session found. Perhaps you are not logged in?",
|
|
219
|
+
)
|
|
218
220
|
)
|
|
219
221
|
servicefoundry_client = ServiceFoundryServiceClient(
|
|
220
222
|
tracking_uri=self.get_tracking_uri(),
|
truefoundry/ml/mlfoundry_run.py
CHANGED
|
@@ -19,6 +19,7 @@ from typing import (
|
|
|
19
19
|
from urllib.parse import urljoin, urlsplit
|
|
20
20
|
|
|
21
21
|
from truefoundry import version
|
|
22
|
+
from truefoundry.common.utils import relogin_error_message
|
|
22
23
|
from truefoundry.ml import constants, enums
|
|
23
24
|
from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
|
|
24
25
|
ArtifactType,
|
|
@@ -222,8 +223,9 @@ class MlFoundryRun:
|
|
|
222
223
|
session = get_active_session()
|
|
223
224
|
if session is None:
|
|
224
225
|
raise MlFoundryException(
|
|
225
|
-
|
|
226
|
-
|
|
226
|
+
relogin_error_message(
|
|
227
|
+
"No active session found. Perhaps you are not logged in?",
|
|
228
|
+
)
|
|
227
229
|
)
|
|
228
230
|
base_url = "{uri.scheme}://{uri.netloc}/".format(
|
|
229
231
|
uri=urlsplit(session.tracking_uri)
|
truefoundry/ml/session.py
CHANGED
|
@@ -10,6 +10,7 @@ from truefoundry.common.credential_provider import (
|
|
|
10
10
|
)
|
|
11
11
|
from truefoundry.common.entities import Token, UserInfo
|
|
12
12
|
from truefoundry.common.request_utils import urllib3_retry
|
|
13
|
+
from truefoundry.common.utils import relogin_error_message
|
|
13
14
|
from truefoundry.ml.autogen.client import ( # type: ignore[attr-defined]
|
|
14
15
|
ApiClient,
|
|
15
16
|
Configuration,
|
|
@@ -83,6 +84,7 @@ class Session:
|
|
|
83
84
|
self._assert_not_closed()
|
|
84
85
|
return self._user_info
|
|
85
86
|
|
|
87
|
+
# TODO (chiragjn): Rename tracking_uri to tfy_host
|
|
86
88
|
@property
|
|
87
89
|
def tracking_uri(self) -> str:
|
|
88
90
|
return self._cred_provider.base_url
|
|
@@ -120,8 +122,9 @@ def _get_api_client(
|
|
|
120
122
|
return ApiClient()
|
|
121
123
|
else:
|
|
122
124
|
raise MlFoundryException(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
relogin_error_message(
|
|
126
|
+
"No active session found. Perhaps you are not logged in?",
|
|
127
|
+
)
|
|
125
128
|
)
|
|
126
129
|
|
|
127
130
|
creds = session.get_host_creds()
|
|
@@ -144,8 +147,9 @@ def init_session() -> Session:
|
|
|
144
147
|
break
|
|
145
148
|
if final_cred_provider is None:
|
|
146
149
|
raise MlFoundryException(
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
relogin_error_message(
|
|
151
|
+
"No active session found. Perhaps you are not logged in?",
|
|
152
|
+
)
|
|
149
153
|
)
|
|
150
154
|
new_session = Session(cred_provider=final_cred_provider)
|
|
151
155
|
|
|
@@ -26,15 +26,15 @@ truefoundry/autodeploy/utils/pydantic_compat.py,sha256=hEAUy5kLjhPdzw7yGZ2iXGMXb
|
|
|
26
26
|
truefoundry/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
truefoundry/cli/__main__.py,sha256=-NkhYlT3mC5MhtekueKAvCw-sWvguj0LJRpXWzvvFjc,727
|
|
28
28
|
truefoundry/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
truefoundry/common/auth_service_client.py,sha256=
|
|
29
|
+
truefoundry/common/auth_service_client.py,sha256=tZOa0NdATnItsMeTnEnUeTZQIgUJtpU-nvLdWtB4Px8,7978
|
|
30
30
|
truefoundry/common/constants.py,sha256=kHP5ebp7EMfEYaOC-K8T_XPfYi7mXttYgrXYS8bOgkg,359
|
|
31
|
-
truefoundry/common/credential_file_manager.py,sha256=
|
|
32
|
-
truefoundry/common/credential_provider.py,sha256=
|
|
31
|
+
truefoundry/common/credential_file_manager.py,sha256=1yEk1Zm2xS4G0VDFwKSZ4w0VUrcPWQ1nJnoBaz9xyKA,4251
|
|
32
|
+
truefoundry/common/credential_provider.py,sha256=YQ6HKl8ZZFTg48vBZMauEAnM6IrEO3oOzM2DA47N-P0,4071
|
|
33
33
|
truefoundry/common/entities.py,sha256=8O-EGPk4PKqnyoFMKUTxISCU19rz0KBnfRDJU695DhY,3797
|
|
34
34
|
truefoundry/common/exceptions.py,sha256=ePpiQ_zmWe4e94gOgeMiyP_AZnKwjEBfyXsB5ScGYcI,329
|
|
35
35
|
truefoundry/common/request_utils.py,sha256=-ss8033PClJOMJuS5Ue1zCFRVK7ZW9vjtva1b5G9uok,2849
|
|
36
|
-
truefoundry/common/servicefoundry_client.py,sha256=
|
|
37
|
-
truefoundry/common/utils.py,sha256=
|
|
36
|
+
truefoundry/common/servicefoundry_client.py,sha256=qYSrsbFH8b7N_2oxlXfbJnWfdqHCBQ1dQ5Rr2tdp3zQ,2937
|
|
37
|
+
truefoundry/common/utils.py,sha256=f5Av8X70vZf6eUK4Axm8q75It2-C-3o3uomA0GrFt_4,2506
|
|
38
38
|
truefoundry/deploy/__init__.py,sha256=ugawKF2G02EmEXX35oZ2tec12d9oWN28Sf6mtGGIERY,2281
|
|
39
39
|
truefoundry/deploy/auto_gen/models.py,sha256=I4-tV2V74mljN7lH606pCD5LArK6MvND_i7Vt_aRI5Q,79952
|
|
40
40
|
truefoundry/deploy/builder/__init__.py,sha256=a1qR6nicHGcxRaeNTxWRsmDs8zsmXc7j13-I8q0qqVk,4938
|
|
@@ -88,9 +88,9 @@ truefoundry/deploy/io/output_callback.py,sha256=V2YwUFec4G4a67lM4r-x_64AqdOVNo_9
|
|
|
88
88
|
truefoundry/deploy/io/rich_output_callback.py,sha256=TJLiRD-EnFVwgcepxR7WN0koKqW1X2DevETPhNPi_nU,829
|
|
89
89
|
truefoundry/deploy/json_util.py,sha256=x_-7YYQ4_HUIJ8ofOcclAp9JWhgTWjR9Th6Q0FuRqGk,175
|
|
90
90
|
truefoundry/deploy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
-
truefoundry/deploy/lib/auth/servicefoundry_session.py,sha256=
|
|
91
|
+
truefoundry/deploy/lib/auth/servicefoundry_session.py,sha256=5TCYPunAygtn5mb0mp_VcWKEalKMKPbyWMWer-Vty2g,1916
|
|
92
92
|
truefoundry/deploy/lib/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=
|
|
93
|
+
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=yzbXnVGmILD5BUMLzCHloJiz7YBWU0OCtrE3V09R9vA,26069
|
|
94
94
|
truefoundry/deploy/lib/clients/shell_client.py,sha256=tMrc0Ha1DmGtUCJrZD8eusOzfe8R_WIe6AAH7nxL0xA,461
|
|
95
95
|
truefoundry/deploy/lib/const.py,sha256=FCQfnO7IecB1ikQHdLGNvvubq_iF900C9l5TJtDfvFc,314
|
|
96
96
|
truefoundry/deploy/lib/dao/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -103,7 +103,7 @@ truefoundry/deploy/lib/logs_utils.py,sha256=SQxRv3jDDmgHdOUMhlMaAPGYskybnBUMpst7
|
|
|
103
103
|
truefoundry/deploy/lib/messages.py,sha256=nhp0bCYf_XpUM68hTq5lBY-__vtEyV2uP7NgnJXJ_Vg,925
|
|
104
104
|
truefoundry/deploy/lib/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
105
|
truefoundry/deploy/lib/model/entity.py,sha256=8J8yd98iWtSy8giShdDRNyzbN1UgSXx4XtmZLljdWnE,8552
|
|
106
|
-
truefoundry/deploy/lib/session.py,sha256=
|
|
106
|
+
truefoundry/deploy/lib/session.py,sha256=Vg6rCA315T0yS0xG4ayJ84Ia_9ZfibH8utOSwPBMAmw,4953
|
|
107
107
|
truefoundry/deploy/lib/util.py,sha256=RlL3bjZu5Z0LU_OKYaMVfcMU8k7_rmkAp89_0CrZDLk,1520
|
|
108
108
|
truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXArrY,5009
|
|
109
109
|
truefoundry/deploy/python_deploy_codegen.py,sha256=Ok7ufDY2x3aMJv9KpaRqxiS-ZI-kxBWauIUHst-ug7E,4020
|
|
@@ -296,7 +296,7 @@ truefoundry/ml/cli/commands/__init__.py,sha256=diDUiRUX4l6TtNLI4iF-ZblczkELM7FRV
|
|
|
296
296
|
truefoundry/ml/cli/commands/download.py,sha256=cbz9KijiLKXj4-twlig3xZLTVRNm4fnjwpy0leZr31w,2342
|
|
297
297
|
truefoundry/ml/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
298
298
|
truefoundry/ml/clients/entities.py,sha256=sNP4DnAVdQoMfc06s0r3VTzKHTo7jmxAOuTlQOVmsMs,151
|
|
299
|
-
truefoundry/ml/clients/servicefoundry_client.py,sha256=
|
|
299
|
+
truefoundry/ml/clients/servicefoundry_client.py,sha256=w8fgZWZF_JjRpL_ZRmLw1BiI7aqDHnJcAXluBgwft0s,1735
|
|
300
300
|
truefoundry/ml/clients/utils.py,sha256=c0LdC8moejs-Zm30hu1sCqifLEmqhdq4SfZ_m0nUIDk,4402
|
|
301
301
|
truefoundry/ml/constants.py,sha256=vDq72d4C9FSWqr9MMdjgTF4TuyNFApvo_6RVsSeAjB4,2837
|
|
302
302
|
truefoundry/ml/entities.py,sha256=si5GAqZsWzKu5MPrU4Hk6se7bebHOYhTiNw69ai-Uk8,1485
|
|
@@ -322,10 +322,10 @@ truefoundry/ml/log_types/plot.py,sha256=oFnXNb2o5fVF0zsnRjvqjSjLaphQWUnQCdw72e2u
|
|
|
322
322
|
truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
|
|
323
323
|
truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
|
|
324
324
|
truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
|
|
325
|
-
truefoundry/ml/mlfoundry_api.py,sha256=
|
|
326
|
-
truefoundry/ml/mlfoundry_run.py,sha256=
|
|
325
|
+
truefoundry/ml/mlfoundry_api.py,sha256=I2T8tXeAIWpD8EH05fm80mNyX6cs2S1ORI4qoo0HTpQ,60847
|
|
326
|
+
truefoundry/ml/mlfoundry_run.py,sha256=gl1aA_j7KwtyOpZgTTi3boWxpdTyssGGFh_lP40mc1o,44387
|
|
327
327
|
truefoundry/ml/run_utils.py,sha256=dzbQ_TGkSCYO-gg8tlr5tglR0p2SIQdy0wl4IEQE5JA,2899
|
|
328
|
-
truefoundry/ml/session.py,sha256=
|
|
328
|
+
truefoundry/ml/session.py,sha256=_WmaGNiZCwQVmB-brbX-z38nFvuqP8f7jGxfqJoq3TM,5385
|
|
329
329
|
truefoundry/ml/validation_utils.py,sha256=XBSUd9OoyriWJpT3M5LKz17iWY3yVMr3hM5vdaVjtf0,12082
|
|
330
330
|
truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
|
|
331
331
|
truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
|
|
@@ -340,7 +340,7 @@ truefoundry/workflow/map_task.py,sha256=2m3qGXQ90k9LdS45q8dqCCECc3qr8t2m_LMCVd1m
|
|
|
340
340
|
truefoundry/workflow/python_task.py,sha256=SRXRLC4vdBqGjhkwuaY39LEWN6iPCpJAuW17URRdWTY,1128
|
|
341
341
|
truefoundry/workflow/task.py,sha256=ToitYiKcNzFCtOVQwz1W8sRjbR97eVS7vQBdbgUQtKg,1779
|
|
342
342
|
truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
|
|
343
|
-
truefoundry-0.4.
|
|
344
|
-
truefoundry-0.4.
|
|
345
|
-
truefoundry-0.4.
|
|
346
|
-
truefoundry-0.4.
|
|
343
|
+
truefoundry-0.4.2rc1.dist-info/METADATA,sha256=WmKC8UIgG2oVxwmlurcKI9T3aL0TTxfB8oiKuywh-uU,3140
|
|
344
|
+
truefoundry-0.4.2rc1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
345
|
+
truefoundry-0.4.2rc1.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
|
|
346
|
+
truefoundry-0.4.2rc1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|