truefoundry 0.5.8rc2__py3-none-any.whl → 0.5.8rc3__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.

@@ -1,5 +1,4 @@
1
1
  import time
2
- from enum import Enum
3
2
  from typing import Optional
4
3
 
5
4
  import jwt
@@ -8,18 +7,12 @@ from typing_extensions import NotRequired, TypedDict
8
7
  from truefoundry.pydantic_v1 import BaseModel, Field, NonEmptyStr, validator
9
8
 
10
9
 
11
- class UserType(Enum):
12
- user = "user"
13
- serviceaccount = "serviceaccount"
14
-
15
-
16
10
  class UserInfo(BaseModel):
17
11
  class Config:
18
12
  allow_population_by_field_name = True
19
13
  allow_mutation = False
20
14
 
21
15
  user_id: NonEmptyStr
22
- user_type: UserType = UserType.user
23
16
  email: Optional[str] = None
24
17
  tenant_name: NonEmptyStr = Field(alias="tenantName")
25
18
 
@@ -27,9 +20,16 @@ class UserInfo(BaseModel):
27
20
  class _DecodedToken(TypedDict):
28
21
  tenantName: str
29
22
  exp: int
30
- username: str
23
+ username: NotRequired[str]
31
24
  email: NotRequired[str]
32
- userType: UserType
25
+
26
+
27
+ def _user_slug(decoded_token: _DecodedToken) -> str:
28
+ return (
29
+ decoded_token.get("username")
30
+ or decoded_token.get("email")
31
+ or "--user-slug-missing--"
32
+ )
33
33
 
34
34
 
35
35
  class Token(BaseModel):
@@ -55,19 +55,21 @@ class Token(BaseModel):
55
55
 
56
56
  @property
57
57
  def tenant_name(self) -> str:
58
+ assert self.decoded_value is not None
58
59
  return self.decoded_value["tenantName"]
59
60
 
60
61
  def is_going_to_be_expired(self, buffer_in_seconds: int = 120) -> bool:
62
+ assert self.decoded_value is not None
61
63
  exp = int(self.decoded_value["exp"])
62
64
  return (exp - time.time()) < buffer_in_seconds
63
65
 
64
66
  def to_user_info(self) -> UserInfo:
67
+ assert self.decoded_value is not None
65
68
  return UserInfo(
66
- user_id=self.decoded_value["username"],
69
+ user_id=_user_slug(self.decoded_value),
67
70
  email=self.decoded_value["email"]
68
71
  if "email" in self.decoded_value
69
72
  else None,
70
- user_type=UserType(self.decoded_value.get("userType", UserType.user.value)),
71
73
  tenant_name=self.tenant_name,
72
74
  )
73
75
 
@@ -50,10 +50,9 @@ class Session:
50
50
 
51
51
  ACTIVE_SESSION = new_session
52
52
  logger.info(
53
- "Logged in to %r as %r (%s)",
53
+ "Logged in to %r as %r",
54
54
  new_session.tfy_host,
55
55
  new_session.user_info.user_id,
56
- new_session.user_info.email or new_session.user_info.user_type.value,
57
56
  )
58
57
 
59
58
  return ACTIVE_SESSION
@@ -38,7 +38,7 @@ def _catch_error_in_push(response: List[dict]):
38
38
  for line in response:
39
39
  if line.get("error") is not None:
40
40
  raise Exception(
41
- f"Failed to push to registry with message '{line.get('error')}'"
41
+ f'Failed to push to registry with message \'{line.get("error")}\''
42
42
  )
43
43
 
44
44
 
@@ -262,7 +262,7 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
262
262
  time_obj.replace(tzinfo=timezone.utc)
263
263
  local_time = time_obj.astimezone(tzlocal())
264
264
  local_time_str = local_time.isoformat()
265
- return f"[{local_time_str}] {log['log'].strip()}"
265
+ return f'[{local_time_str}] {log["log"].strip()}'
266
266
 
267
267
  def _tail_logs(
268
268
  self,
@@ -57,10 +57,9 @@ def login(
57
57
  return login(api_key=api_key, host=host, relogin=True)
58
58
 
59
59
  user_info = cred_file_content.to_token().to_user_info()
60
- user_name_display_info = user_info.email or user_info.user_type.value
61
60
  output_hook.print_line(
62
61
  relogin_error_message(
63
- f"Already logged in to {cred_file_content.host!r} as {user_info.user_id!r} ({user_name_display_info})",
62
+ f"Already logged in to {cred_file_content.host!r} as {user_info.user_id!r}",
64
63
  host=host,
65
64
  )
66
65
  )
@@ -81,10 +80,9 @@ def login(
81
80
  cred_file.write(cred_file_content)
82
81
 
83
82
  user_info = token.to_user_info()
84
- user_name_display_info = user_info.email or user_info.user_type.value
85
83
  output_hook.print_line(
86
84
  f"Successfully logged in to {cred_file_content.host!r} as "
87
- f"{user_info.user_id!r} ({user_name_display_info})"
85
+ f"{user_info.user_id!r}"
88
86
  )
89
87
  return True
90
88
 
@@ -214,8 +214,8 @@ No Workspace FQN was provided or mentioned in the spec.
214
214
  Either add a `workspace_fqn` to your yaml spec as
215
215
 
216
216
  ```
217
- name: {getattr(component, "name", "my-app")}
218
- type: {getattr(component, "type", "undefined")}
217
+ name: {getattr(component, 'name', 'my-app')}
218
+ type: {getattr(component, 'type', 'undefined')}
219
219
  ...
220
220
  workspace_fqn: <your workspace fqn>
221
221
  ```
@@ -224,7 +224,7 @@ or Python deployment spec as
224
224
 
225
225
  ```
226
226
  app = {component.__class__.__name__}(
227
- name='{getattr(component, "name", "my-app")}',
227
+ name='{getattr(component, 'name', 'my-app')}',
228
228
  ...
229
229
  workspace_fqn='<your workspace fqn>'
230
230
  )
@@ -33,7 +33,7 @@ if TYPE_CHECKING:
33
33
  PlotObjType = Union[
34
34
  "matplotlib.figure.Figure",
35
35
  "plotly.graph_objects.Figure",
36
- "matplotlib.pyplot", # type: ignore[valid-type]
36
+ "matplotlib.pyplot",
37
37
  ]
38
38
 
39
39
 
@@ -103,7 +103,7 @@ def _save_matplotlib_figure(
103
103
 
104
104
 
105
105
  def _save_matplotlib_plt(
106
- plt: "matplotlib.pyplot", # type: ignore[valid-type]
106
+ plt: "matplotlib.pyplot",
107
107
  key: str,
108
108
  step: int,
109
109
  local_dir: str,
@@ -1109,7 +1109,7 @@ class MlFoundryRun:
1109
1109
  @_ensure_not_deleted
1110
1110
  def log_plots(
1111
1111
  self,
1112
- plots: Dict[ # type: ignore[valid-type]
1112
+ plots: Dict[
1113
1113
  str,
1114
1114
  Union[
1115
1115
  "matplotlib.pyplot",
truefoundry/ml/session.py CHANGED
@@ -75,10 +75,9 @@ class MLFoundrySession(Session):
75
75
 
76
76
  ACTIVE_SESSION = new_session
77
77
  logger.info(
78
- "Logged in to %r as %r (%s)",
78
+ "Logged in to %r as %r",
79
79
  new_session.tfy_host,
80
80
  new_session.user_info.user_id,
81
- new_session.user_info.email or new_session.user_info.user_type.value,
82
81
  )
83
82
 
84
83
  return ACTIVE_SESSION
@@ -0,0 +1,79 @@
1
+ Metadata-Version: 2.3
2
+ Name: truefoundry
3
+ Version: 0.5.8rc3
4
+ Summary: TrueFoundry CLI
5
+ Author: Abhishek Choudhary
6
+ Author-email: abhishek@truefoundry.com
7
+ Requires-Python: >=3.8.1,<3.13
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Provides-Extra: workflow
14
+ Requires-Dist: GitPython (>=3.1.43,<4.0.0)
15
+ Requires-Dist: Mako (>=1.1.6,<2.0.0)
16
+ Requires-Dist: PyJWT (>=2.0.0,<3.0.0)
17
+ Requires-Dist: PyYAML (>=6.0.0,<7.0.0)
18
+ Requires-Dist: aenum (>=3.0.0,<4.0.0)
19
+ Requires-Dist: click (>=7.0.0,<9.0.0)
20
+ Requires-Dist: coolname (>=1.1.0,<2.0.0)
21
+ Requires-Dist: docker (>=6.1.2,<8.0.0)
22
+ Requires-Dist: filelock (>=3.8.0,<4.0.0)
23
+ Requires-Dist: flytekit (==1.13.13) ; extra == "workflow"
24
+ Requires-Dist: gitignorefile (>=1.1.2,<2.0.0)
25
+ Requires-Dist: importlib-metadata (>=4.11.3,<9.0.0)
26
+ Requires-Dist: importlib-resources (>=5.2.0,<7.0.0)
27
+ Requires-Dist: numpy (>=1.23.0,<2.0.0) ; python_version < "3.12"
28
+ Requires-Dist: numpy (>=1.26.0,<2.0.0) ; python_version >= "3.12"
29
+ Requires-Dist: openai (>=1.16.2,<2.0.0)
30
+ Requires-Dist: packaging (>=20.0,<25.0)
31
+ Requires-Dist: pydantic (>=1.8.2,<3.0.0)
32
+ Requires-Dist: pygments (>=2.12.0,<3.0.0)
33
+ Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
34
+ Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
35
+ Requires-Dist: python-socketio[client] (>=5.5.2,<6.0.0)
36
+ Requires-Dist: questionary (>=1.10.0,<2.0.0)
37
+ Requires-Dist: requests (>=2.18.0,<3.0.0)
38
+ Requires-Dist: requirements-parser (>=0.11.0,<0.12.0)
39
+ Requires-Dist: rich (>=13.7.1,<14.0.0)
40
+ Requires-Dist: rich-click (>=1.2.1,<2.0.0)
41
+ Requires-Dist: scipy (>=1.12.0,<2.0.0) ; python_version >= "3.12"
42
+ Requires-Dist: scipy (>=1.5.0,<2.0.0) ; python_version < "3.12"
43
+ Requires-Dist: tqdm (>=4.0.0,<5.0.0)
44
+ Requires-Dist: typing-extensions (>=4.0)
45
+ Requires-Dist: urllib3 (>=1.26.18,<3)
46
+ Requires-Dist: yq (>=3.1.0,<4.0.0)
47
+ Description-Content-Type: text/markdown
48
+
49
+ # TrueFoundry
50
+
51
+ TrueFoundry library to help you interact with the platform programmatically by
52
+
53
+ - Interacting with the deployments side of TrueFoundry, enabling you to manage workspaces, deployments, applications, and view logs.
54
+ - Providing experiment tracking capabilities, allowing you to track ML experiments and interact with ML repositories within TrueFoundry.
55
+
56
+ You can access the health of your service, monitoring links, deployed endpoints and track metadata and artifacts by logging on to TrueFoundry's dashboard.
57
+
58
+ ## Installation
59
+
60
+ To install the `TrueFoundry CLI`, you can use pip:
61
+
62
+ ```bash
63
+ pip install truefoundry
64
+ ```
65
+
66
+ To install the `TrueFoundry CLI` with Workflow deployment features, you can use pip:
67
+
68
+ ```bash
69
+ pip install truefoundry[workflow]
70
+ ```
71
+
72
+ ## Examples
73
+
74
+ https://github.com/truefoundry/getting-started-examples
75
+
76
+ ## Documentation
77
+
78
+ https://docs.truefoundry.com/
79
+
@@ -1,17 +1,14 @@
1
1
  truefoundry/__init__.py,sha256=Go9M0PvV9kYX8dhldJzpH0RAYB_Pc1kVOxfNlsps89c,321
2
- truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
3
- truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
4
- truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
5
2
  truefoundry/autodeploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- truefoundry/autodeploy/cli.py,sha256=9ZxKu_MGIpraMzaW4ZyuQZhlKIQYE3biBrBV4S1h6Fo,14167
7
- truefoundry/autodeploy/constants.py,sha256=vTh2nA7cjqghqbW2rNh3FbtcIk2scdAWZuuQCmVBO80,1273
8
- truefoundry/autodeploy/exception.py,sha256=fa_ZyTDUKiMKG2Uayynk1yWcEMsuVluqk2GtV4tfTPU,158
9
- truefoundry/autodeploy/logger.py,sha256=tkV2UKcOTFl5nz0cn4eRbzxF-2CZd8b7MK9vnhaflYw,325
10
3
  truefoundry/autodeploy/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
4
  truefoundry/autodeploy/agents/base.py,sha256=lYw6bKhfCWff5BbtXXn2k4MjMbRIUkOwPBjRT70iXE8,6420
12
5
  truefoundry/autodeploy/agents/developer.py,sha256=tO9vmgGjoaqK4rX-DFCyMrViFC2Oqofd89WoXqsEm-A,4142
13
6
  truefoundry/autodeploy/agents/project_identifier.py,sha256=KlF7FwrGHDCjF3y3-YaCDxZ8kE34s6XPBagXhG2U1aM,4520
14
7
  truefoundry/autodeploy/agents/tester.py,sha256=lqvVBuVcFRvGZnSLAUF2r-1-Yti20o_cbybU19IlSXo,2418
8
+ truefoundry/autodeploy/cli.py,sha256=9ZxKu_MGIpraMzaW4ZyuQZhlKIQYE3biBrBV4S1h6Fo,14167
9
+ truefoundry/autodeploy/constants.py,sha256=vTh2nA7cjqghqbW2rNh3FbtcIk2scdAWZuuQCmVBO80,1273
10
+ truefoundry/autodeploy/exception.py,sha256=fa_ZyTDUKiMKG2Uayynk1yWcEMsuVluqk2GtV4tfTPU,158
11
+ truefoundry/autodeploy/logger.py,sha256=tkV2UKcOTFl5nz0cn4eRbzxF-2CZd8b7MK9vnhaflYw,325
15
12
  truefoundry/autodeploy/tools/__init__.py,sha256=9zJiC1d4bv9EL-p5XTCa9fAQ6ZKV--AbgeLz9bBBkyQ,875
16
13
  truefoundry/autodeploy/tools/ask.py,sha256=MxUFLP7rjpdJ85gCc3El0wUqTZDjpjAw7WOTdV4LLWE,856
17
14
  truefoundry/autodeploy/tools/base.py,sha256=Ltzj2d6DO1gUMx_qSt2c2Zq91MJ5V4FJXpZwl4T3F8M,795
@@ -38,28 +35,27 @@ truefoundry/common/auth_service_client.py,sha256=N3YxKlx63r6cPZqbgb2lqBOPI69ShB7
38
35
  truefoundry/common/constants.py,sha256=WQjylPv7xTVYURv4zicJUHYL73Gv3c3i6Iw4oy9Lhg4,2744
39
36
  truefoundry/common/credential_file_manager.py,sha256=1yEk1Zm2xS4G0VDFwKSZ4w0VUrcPWQ1nJnoBaz9xyKA,4251
40
37
  truefoundry/common/credential_provider.py,sha256=_OhJ2XFlDaVsrUO-FyywxctcGGqDdC2pgcvwEKqQD0Q,4071
41
- truefoundry/common/entities.py,sha256=12olLKzRT092Jnze5busK68cwH8wwyL6ch77ohKOFPU,3723
38
+ truefoundry/common/entities.py,sha256=Gx52dIwUARwGLE2hCSe9PJWfXh-ARCmdWwX6KtCxJng,3805
42
39
  truefoundry/common/exceptions.py,sha256=jkU0N7hV_P-EhXeud4I5vuB9glXXZSWPf8LcH04mSbw,459
43
40
  truefoundry/common/request_utils.py,sha256=e9qrAQ1MutU7JALDKcucmNd0KQEVBqgW3yx0w1zeHIU,5700
44
41
  truefoundry/common/servicefoundry_client.py,sha256=2fYhdVPSvLXz5C5tosOq86JD8WM3IRUIy1VO9deDxZI,3340
45
- truefoundry/common/session.py,sha256=BiTJ2WEzLkTvzpqy67xX3fXgiKH_ltzzmQdFG7xUtwI,2904
42
+ truefoundry/common/session.py,sha256=xeBAPUNEJv2XVFQCRUGeBDTePh5zrKNSok8vmSxBjPw,2813
46
43
  truefoundry/common/storage_provider_utils.py,sha256=yURhMw8k0FLFvaviRHDiifhvc6GnuQwGMC9Qd2uM440,10934
47
44
  truefoundry/common/types.py,sha256=BMJFCsR1lPJAw66IQBSvLyV4I6o_x5oj78gVsUa9si8,188
48
45
  truefoundry/common/utils.py,sha256=E1kKw_hqlVMgwyPkER2SvVLIoQ-B_4TQCuM5IJXvgig,6046
49
46
  truefoundry/common/warnings.py,sha256=rs6BHwk7imQYedo07iwh3TWEOywAR3Lqhj0AY4khByg,504
50
47
  truefoundry/deploy/__init__.py,sha256=e0EgG-fVJ6N9PNIlBINO6QtIMEehQgmz3ONPPjYlcSY,2596
51
- truefoundry/deploy/python_deploy_codegen.py,sha256=qJHH1BJQII9e6PhkcRFYiE_3De7_VMMm8nM4AX5Eq1o,6513
52
48
  truefoundry/deploy/auto_gen/models.py,sha256=83OoBHcu3VP8Xe75vBNaQmPGjqxhsSkHAZZZD4mROOM,87620
53
49
  truefoundry/deploy/builder/__init__.py,sha256=1qjHMNBE1poRCZW0WrG46dFM1f1IlivD5352qzsioMU,4953
54
- truefoundry/deploy/builder/constants.py,sha256=amUkHoHvVKzGv0v_knfiioRuKiJM0V0xW0diERgWiI0,508
55
- truefoundry/deploy/builder/docker_service.py,sha256=sm7GWeIqyrKaZpxskdLejZlsxcZnM3BTDJr6orvPN4E,3948
56
- truefoundry/deploy/builder/utils.py,sha256=D68-bqM0NQx-Elg-56mtkENyVyg9faZ9tgTmBuo1Sjs,1076
57
50
  truefoundry/deploy/builder/builders/__init__.py,sha256=tlFLXqyDaKLd4iZbo4Hcu_8gOmgtL6drnXpbmQ6x1P8,636
58
51
  truefoundry/deploy/builder/builders/dockerfile.py,sha256=AXXTziCkaqIhuM_bwyD1vT1znOwemN1TKgU7eyo-KuM,1522
59
52
  truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py,sha256=x_GwRFKz-Kb4-ZlxOFjBlr0mTgUDe_hVeG4dsIbHo8c,1796
60
53
  truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py,sha256=rQgdvKmAT9HArVW4TAG5yd2QTKRs3S5LJ9RQbc_EkHE,2518
61
54
  truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py,sha256=9r1PYahn-HfzpMth6NkvJoycmmHQpSl0vIVZxWF12xI,1864
62
55
  truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py,sha256=X9mKH7SGZLGZGvY0S2aPB3sgWdSR9TY4eVXtqz_idEA,8973
56
+ truefoundry/deploy/builder/constants.py,sha256=amUkHoHvVKzGv0v_knfiioRuKiJM0V0xW0diERgWiI0,508
57
+ truefoundry/deploy/builder/docker_service.py,sha256=OI8efqK0Gnoii8bcHihpA2StwHVzsMREfBk7NvMR4hY,3950
58
+ truefoundry/deploy/builder/utils.py,sha256=D68-bqM0NQx-Elg-56mtkENyVyg9faZ9tgTmBuo1Sjs,1076
63
59
  truefoundry/deploy/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
60
  truefoundry/deploy/cli/commands/__init__.py,sha256=wn_TsmrImj9pER16O5aK3aW2mfqbRgrhv-jn4x3_2oM,1278
65
61
  truefoundry/deploy/cli/commands/apply_command.py,sha256=Y2e_C8HVpo8CssVod-3JRz-89qStC5JRaNzJ7O2mRlY,2039
@@ -85,53 +81,36 @@ truefoundry/deploy/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
85
81
  truefoundry/deploy/io/output_callback.py,sha256=V2YwUFec4G4a67lM4r-x_64AqdOVNo_9sTdfQWLlvi0,604
86
82
  truefoundry/deploy/io/rich_output_callback.py,sha256=TJLiRD-EnFVwgcepxR7WN0koKqW1X2DevETPhNPi_nU,829
87
83
  truefoundry/deploy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- truefoundry/deploy/lib/const.py,sha256=Wg0GDnfFu-g1fJr4lU80NH2ULw0R0dYjV7LnW-PbOeM,173
89
- truefoundry/deploy/lib/logs_utils.py,sha256=SQxRv3jDDmgHdOUMhlMaAPGYskybnBUMpst7QU_i_sc,1469
90
- truefoundry/deploy/lib/messages.py,sha256=nhp0bCYf_XpUM68hTq5lBY-__vtEyV2uP7NgnJXJ_Vg,925
91
- truefoundry/deploy/lib/session.py,sha256=FBSq3bxf3my_613NzgtPoeeaAYLGZEoF0n7XccTFNf4,5141
92
- truefoundry/deploy/lib/util.py,sha256=J7r8San2wKo48A7-BlH2-OKTlBO67zlPjLEhMsL8os0,1059
93
- truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXArrY,5009
94
84
  truefoundry/deploy/lib/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
- truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=xW_JGOk28bVMqdRiggCYMJFIx7iPjOUCdg8DDxfpjmo,26341
85
+ truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=TjReImI1lL2xRQvdFh_ldfuVeVP7bohyxIf53PxYvNs,26341
86
+ truefoundry/deploy/lib/const.py,sha256=Wg0GDnfFu-g1fJr4lU80NH2ULw0R0dYjV7LnW-PbOeM,173
96
87
  truefoundry/deploy/lib/dao/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
88
  truefoundry/deploy/lib/dao/application.py,sha256=oMszpueXPUfTUuN_XdKwoRjQyqAgWHhZ-10cbprCVdM,9226
98
89
  truefoundry/deploy/lib/dao/apply.py,sha256=Jadfa3DcbIRz-Bb4Tlixed179HLDnmDXOlrvSxfEgQ0,3021
99
90
  truefoundry/deploy/lib/dao/version.py,sha256=AtdW_4O1DPUKdfv2qy6iUJsZ_95vM6z0AqeEy3WDKs8,1130
100
91
  truefoundry/deploy/lib/dao/workspace.py,sha256=6YvfCgWDzAULI3Q6JswyZmP1CwJ5rM-ANsIFkbQia0Q,2349
92
+ truefoundry/deploy/lib/logs_utils.py,sha256=SQxRv3jDDmgHdOUMhlMaAPGYskybnBUMpst7QU_i_sc,1469
93
+ truefoundry/deploy/lib/messages.py,sha256=nhp0bCYf_XpUM68hTq5lBY-__vtEyV2uP7NgnJXJ_Vg,925
101
94
  truefoundry/deploy/lib/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
95
  truefoundry/deploy/lib/model/entity.py,sha256=3YRdyvMYI1aUXUu2tB5b5lZWwpxKdAhjpT79gzTCZGo,8373
96
+ truefoundry/deploy/lib/session.py,sha256=GIt2eTU6jWQwMkvseDJccSWdUVyEr3WLY5AKHf8Uy18,4931
97
+ truefoundry/deploy/lib/util.py,sha256=J7r8San2wKo48A7-BlH2-OKTlBO67zlPjLEhMsL8os0,1059
98
+ truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXArrY,5009
99
+ truefoundry/deploy/python_deploy_codegen.py,sha256=qJHH1BJQII9e6PhkcRFYiE_3De7_VMMm8nM4AX5Eq1o,6513
103
100
  truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
101
  truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
105
- truefoundry/deploy/v2/lib/deploy.py,sha256=OvotIwCzluaOqX3xceV5sb86WFXYNs4fXn6FJsR9KBU,12420
102
+ truefoundry/deploy/v2/lib/deploy.py,sha256=aHYT3p5o_AejVudr-Zbau3wJpMRAzJ4FTlPCUsJ436M,12420
106
103
  truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=92aA8ji46-KjC3tu46KeJuvOFkajSU1WAdLKgqVOGh8,12869
107
104
  truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=hqfPxQvuA9rTjaxZY9YqV51hdNFT-0YBXyR-S859PTo,4060
108
105
  truefoundry/deploy/v2/lib/models.py,sha256=ogc1UYs1Z2nBdGSKCrde9sk8d0GxFKMkem99uqO5CmM,1148
109
106
  truefoundry/deploy/v2/lib/patched_models.py,sha256=v26Rm0BaV6RKr-TxKZ8O3gT-90JA91K4bnGSKgCrQ7o,16338
110
107
  truefoundry/deploy/v2/lib/source.py,sha256=zM8k3hJ2N5b8FgkVsYPhEvHPA4rt2rSqtLUMRcaGGiQ,9405
108
+ truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
111
109
  truefoundry/ml/__init__.py,sha256=ssUEIs8BixPWxynKoeSh-dkRl6AtLXG0PBGYnUR5Az8,2217
112
- truefoundry/ml/constants.py,sha256=vDq72d4C9FSWqr9MMdjgTF4TuyNFApvo_6RVsSeAjB4,2837
113
- truefoundry/ml/entities.py,sha256=si5GAqZsWzKu5MPrU4Hk6se7bebHOYhTiNw69ai-Uk8,1485
114
- truefoundry/ml/enums.py,sha256=arqDkF8duU_oVLFeYMhcfWYbF6Nq5mmjwupJMIheyXM,1790
115
- truefoundry/ml/exceptions.py,sha256=QpDJSWmF7dIsByS0qOQbQZ_jytdNTzkHDDO3BxhTSo0,332
116
- truefoundry/ml/git_info.py,sha256=jvAVm9ilqivnGq8qJdUvYdd8Siv0PLtqurB-PXsS5ho,2023
117
- truefoundry/ml/internal_namespace.py,sha256=QcqMHp6-C2im2H_02hlhi01EIcr1HhNaZprszs13EMU,1790
118
- truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
119
- truefoundry/ml/mlfoundry_api.py,sha256=PUBGDcjrZsJKQYy1PjT8NYGYxrTvhhHzQ-0jLSl7-zc,61279
120
- truefoundry/ml/mlfoundry_run.py,sha256=w9_Tph48eTDjna-rZ1fPa6PtX4JzhF-t5PS2hmbK2rY,44319
121
- truefoundry/ml/model_framework.py,sha256=JGmzdG7o5P6CJr5EYTUOmuly53FfhpoNVqKrhfijAVg,18972
122
- truefoundry/ml/run_utils.py,sha256=0W208wSLUrbdfk2pjNcZlkUi9bNxG2JORqoe-5rVqHI,2423
123
- truefoundry/ml/session.py,sha256=eQo1zG5nd0-8Ok68uEBCQDPAWYeJkpzqHak-DQX1ENU,4553
124
- truefoundry/ml/validation_utils.py,sha256=J5atNhcJLvKj64ralSV9Y5Fv1Rt4SE237ICdP9-7sP4,12149
125
110
  truefoundry/ml/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
111
  truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=myDpr3RZzEkd_UG9C3rZ4UKEFxXopO5HMVJNpNDiuAo,37737
127
112
  truefoundry/ml/autogen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- truefoundry/ml/autogen/client_README.md,sha256=RpZTi__4UauH1kPvz7LfixtrbmTreiVpc2rDyDWstTs,37139
129
113
  truefoundry/ml/autogen/client/__init__.py,sha256=Kh1qP7S8L-e7ItofskXQf3y7QFfmxGPFnv5ACAPzwKE,20123
130
- truefoundry/ml/autogen/client/api_client.py,sha256=M31IycWorn10FYS8WbO_Whaipr0tVu2pVWFCfbS7XCo,29167
131
- truefoundry/ml/autogen/client/api_response.py,sha256=KRyvecPMXF05PaxILHZ8JHoP4rgKBjKONMgG83aU-rM,844
132
- truefoundry/ml/autogen/client/configuration.py,sha256=V1oaEnxt-NfpaNmp-EZpf2glovzVhM2coWYt8HBNB4M,15723
133
- truefoundry/ml/autogen/client/exceptions.py,sha256=XbCbDHhYT3BVejdoGNPgEa4oS56ypkwFdxk1iOc_tFY,5355
134
- truefoundry/ml/autogen/client/rest.py,sha256=9goba8qHjQuVx5O_yRaTKu7PvBnb7r7swfy3dwuTEgk,14281
135
114
  truefoundry/ml/autogen/client/api/__init__.py,sha256=NyMBxBmIzB1o5LzZZwz9LiydHB3-hPqc_sevsnY6Jrw,746
136
115
  truefoundry/ml/autogen/client/api/auth_api.py,sha256=zpWzJhUmW6HHMY_atlUf0B25k77E1kue2hmix5I5Ih0,7017
137
116
  truefoundry/ml/autogen/client/api/deprecated_api.py,sha256=mu5x_skNcwz8v1Tr6VP72-tVP7pmBV9muyKy_2NH3F0,38824
@@ -142,6 +121,10 @@ truefoundry/ml/autogen/client/api/metrics_api.py,sha256=q3L38eD-2hu4_9YvcSdnWDYX
142
121
  truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py,sha256=T8_cYdrd60KzDddRxX3nDeIQe6ihMq-jD8BOAAmzPHo,309716
143
122
  truefoundry/ml/autogen/client/api/run_artifacts_api.py,sha256=x-vVnY2LEFChZxiiFauswRWwFz6Qqh30PKXjzuTvxmc,8799
144
123
  truefoundry/ml/autogen/client/api/runs_api.py,sha256=-aghrZ2VYuZOw_vBtOzWDsnK7Ji29oZQxK2CLRgyo2w,119232
124
+ truefoundry/ml/autogen/client/api_client.py,sha256=M31IycWorn10FYS8WbO_Whaipr0tVu2pVWFCfbS7XCo,29167
125
+ truefoundry/ml/autogen/client/api_response.py,sha256=KRyvecPMXF05PaxILHZ8JHoP4rgKBjKONMgG83aU-rM,844
126
+ truefoundry/ml/autogen/client/configuration.py,sha256=V1oaEnxt-NfpaNmp-EZpf2glovzVhM2coWYt8HBNB4M,15723
127
+ truefoundry/ml/autogen/client/exceptions.py,sha256=XbCbDHhYT3BVejdoGNPgEa4oS56ypkwFdxk1iOc_tFY,5355
145
128
  truefoundry/ml/autogen/client/models/__init__.py,sha256=5LUnBRz-1KBea5KicUDeJ0LPDUKvHJYd6L0iP1q-rSs,18745
146
129
  truefoundry/ml/autogen/client/models/add_custom_metrics_to_model_version_request_dto.py,sha256=_ISDspicTGjBCYYXubKfRYYSSQVyW3AvG-jFh47-Zfc,2163
147
130
  truefoundry/ml/autogen/client/models/add_features_to_model_version_request_dto.py,sha256=OT1-98DyWNfAHz_EgD2gMX2XkrGQ4Re945fhoAl8qSE,2099
@@ -324,6 +307,8 @@ truefoundry/ml/autogen/client/models/validation_error_loc_inner.py,sha256=nThJ5G
324
307
  truefoundry/ml/autogen/client/models/xg_boost_framework.py,sha256=a0EHzncxe_hSFUCAk3nFOMuh8ztQQQBLbTfg0IbwTE8,3324
325
308
  truefoundry/ml/autogen/client/models/xg_boost_model_schema.py,sha256=QKJkiERNqF8UiolX2FjvhkUkUlUgDoo3CpTYPAdCxV8,2735
326
309
  truefoundry/ml/autogen/client/models/xg_boost_serialization_format.py,sha256=wFFSH0Z9MP8eT_fysHfUu4iqdjEZART-HxTH4e4gNI8,872
310
+ truefoundry/ml/autogen/client/rest.py,sha256=9goba8qHjQuVx5O_yRaTKu7PvBnb7r7swfy3dwuTEgk,14281
311
+ truefoundry/ml/autogen/client_README.md,sha256=RpZTi__4UauH1kPvz7LfixtrbmTreiVpc2rDyDWstTs,37139
327
312
  truefoundry/ml/autogen/entities/artifacts.py,sha256=TOm71ZrNo36le3YyMEsE1Cs_BYyMLkFQ7hQtAaMoB9M,21251
328
313
  truefoundry/ml/autogen/models/__init__.py,sha256=--TGRea9SQBWFfwtcl3ekb1XGfFTdEkQGSG8a2SJ60I,187
329
314
  truefoundry/ml/autogen/models/exceptions.py,sha256=q3n7FGBrg_hUy1UyoefhMnhcXUAaqXlLIGHoOVzn_d8,1390
@@ -332,16 +317,19 @@ truefoundry/ml/autogen/models/signature.py,sha256=rBjpxUIsEeWM0sIyYG5uCJB18DKHR4
332
317
  truefoundry/ml/autogen/models/utils.py,sha256=c7RtSLXhOLcP8rjuUtfnMdaKVTZvvbsmw98gPAkAFrs,24371
333
318
  truefoundry/ml/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
334
319
  truefoundry/ml/cli/cli.py,sha256=MwpY7z_NEeJE_XIP7XbZELjNeu2vpMmohttHCKDRk54,335
335
- truefoundry/ml/cli/utils.py,sha256=j6_mZ4Spn114mz3P4QQ8jx0tmorXIuyQnHXVUSDvZi4,1035
336
320
  truefoundry/ml/cli/commands/__init__.py,sha256=diDUiRUX4l6TtNLI4iF-ZblczkELM7FRViJ-8gGNJQY,82
337
321
  truefoundry/ml/cli/commands/download.py,sha256=N9MhsEQ3U24v_OmnMZT8Q4SoAi38Sm7a21unrACOSDw,2573
338
322
  truefoundry/ml/cli/commands/model_init.py,sha256=9fHCernmQswjEhREzdrnKxwCCWkgmFrpL29H52Sd1gQ,2663
323
+ truefoundry/ml/cli/utils.py,sha256=j6_mZ4Spn114mz3P4QQ8jx0tmorXIuyQnHXVUSDvZi4,1035
339
324
  truefoundry/ml/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
325
  truefoundry/ml/clients/servicefoundry_client.py,sha256=Rx-tjiDxNwUgOCDITjtL0vmZcQgJjh_tUdReE23TKIk,2363
326
+ truefoundry/ml/constants.py,sha256=vDq72d4C9FSWqr9MMdjgTF4TuyNFApvo_6RVsSeAjB4,2837
327
+ truefoundry/ml/entities.py,sha256=si5GAqZsWzKu5MPrU4Hk6se7bebHOYhTiNw69ai-Uk8,1485
328
+ truefoundry/ml/enums.py,sha256=arqDkF8duU_oVLFeYMhcfWYbF6Nq5mmjwupJMIheyXM,1790
329
+ truefoundry/ml/exceptions.py,sha256=QpDJSWmF7dIsByS0qOQbQZ_jytdNTzkHDDO3BxhTSo0,332
330
+ truefoundry/ml/git_info.py,sha256=jvAVm9ilqivnGq8qJdUvYdd8Siv0PLtqurB-PXsS5ho,2023
331
+ truefoundry/ml/internal_namespace.py,sha256=QcqMHp6-C2im2H_02hlhi01EIcr1HhNaZprszs13EMU,1790
341
332
  truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vFEkN-LmM,125
342
- truefoundry/ml/log_types/plot.py,sha256=KsVJiZ1uXvMoAumjDTT7EpjWoagtRWxF5rRQDTCRGOY,7571
343
- truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
344
- truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
345
333
  truefoundry/ml/log_types/artifacts/artifact.py,sha256=wIGmuwvf7-sgJ4WJSwhSYk3EBccJAdgcTG6wUiomBKg,22032
346
334
  truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
347
335
  truefoundry/ml/log_types/artifacts/dataset.py,sha256=a4dxd2EN8p7Ci-cLGGiDOboN3t0395_XhWE1dmTw1Q4,13112
@@ -353,17 +341,29 @@ truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCt
353
341
  truefoundry/ml/log_types/image/image.py,sha256=qQnAVgErAq4Jn6wXFFpaveOd52zcjUuomUCqNRxO2io,12478
354
342
  truefoundry/ml/log_types/image/image_normalizer.py,sha256=vrzfuSpVGgIxw_Q2sbFe7kQ_JpAndX0bMwC7wtfi41g,3104
355
343
  truefoundry/ml/log_types/image/types.py,sha256=inFQlyAyDvZtfliFpENirNCm1XO9beyZ8DNn97DoDKs,1568
344
+ truefoundry/ml/log_types/plot.py,sha256=HuYvvRA5r8V0xAIuuqMME2IHb9d3SfGHUiuEkOP3Uks,7515
345
+ truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
346
+ truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
347
+ truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
348
+ truefoundry/ml/mlfoundry_api.py,sha256=PUBGDcjrZsJKQYy1PjT8NYGYxrTvhhHzQ-0jLSl7-zc,61279
349
+ truefoundry/ml/mlfoundry_run.py,sha256=M-0FkZYDxwv5EZUDtVqiV8JxC_3BWR80N7Kp4Yj7bPY,44291
350
+ truefoundry/ml/model_framework.py,sha256=JGmzdG7o5P6CJr5EYTUOmuly53FfhpoNVqKrhfijAVg,18972
351
+ truefoundry/ml/run_utils.py,sha256=0W208wSLUrbdfk2pjNcZlkUi9bNxG2JORqoe-5rVqHI,2423
352
+ truefoundry/ml/session.py,sha256=IRXVoAAJTHik3md-pE4IpTPSGJvs5qdAyWBf0O9_TJo,4462
353
+ truefoundry/ml/validation_utils.py,sha256=J5atNhcJLvKj64ralSV9Y5Fv1Rt4SE237ICdP9-7sP4,12149
354
+ truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
355
+ truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
356
356
  truefoundry/workflow/__init__.py,sha256=XY83vqtLAclI82atZXyBtF9ZgLROXaaXO5p60XH5hJA,1493
357
357
  truefoundry/workflow/container_task.py,sha256=8arieePsX4__OnG337hOtCiNgJwtKJJCsZcmFmCBJtk,402
358
358
  truefoundry/workflow/map_task.py,sha256=2m3qGXQ90k9LdS45q8dqCCECc3qr8t2m_LMCVd1mZ7g,1737
359
359
  truefoundry/workflow/python_task.py,sha256=SRXRLC4vdBqGjhkwuaY39LEWN6iPCpJAuW17URRdWTY,1128
360
- truefoundry/workflow/task.py,sha256=34m55mALXx6ko9o5HkK6FDtMajdvJzBhOsHwDM2RcBA,1779
361
- truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
362
360
  truefoundry/workflow/remote_filesystem/__init__.py,sha256=LQ95ViEjJ7Ts4JcCGOxMPs7NZmQdZ4bTiq6qXtsjUhE,206
363
361
  truefoundry/workflow/remote_filesystem/logger.py,sha256=em2l7D6sw7xTLDP0kQSLpgfRRCLpN14Qw85TN7ujQcE,1022
364
362
  truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQlgzcj0nP3tJopyFSVWT1uv3nhiTIuwfXYeg,12342
365
363
  truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
366
- truefoundry-0.5.8rc2.dist-info/METADATA,sha256=6TAdw_xKTV9A3DU7jZMAJp5yCSW6NyGzDtit4D8_1tg,2523
367
- truefoundry-0.5.8rc2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
368
- truefoundry-0.5.8rc2.dist-info/entry_points.txt,sha256=xVjn7RMN-MW2-9f7YU-bBdlZSvvrwzhpX1zmmRmsNPU,98
369
- truefoundry-0.5.8rc2.dist-info/RECORD,,
364
+ truefoundry/workflow/task.py,sha256=34m55mALXx6ko9o5HkK6FDtMajdvJzBhOsHwDM2RcBA,1779
365
+ truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
366
+ truefoundry-0.5.8rc3.dist-info/METADATA,sha256=jWpi5FBYbnjWyjtakUC0pIyFydEUPuqSGitw0-VpCns,2887
367
+ truefoundry-0.5.8rc3.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
368
+ truefoundry-0.5.8rc3.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
369
+ truefoundry-0.5.8rc3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.27.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ tfy=truefoundry.cli.__main__:main
3
+ truefoundry=truefoundry.cli.__main__:main
4
+
@@ -1,72 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: truefoundry
3
- Version: 0.5.8rc2
4
- Summary: TrueFoundry CLI
5
- Author-email: TrueFoundry Team <abhishek@truefoundry.com>
6
- Requires-Python: <3.13,>=3.8.1
7
- Requires-Dist: aenum<4.0.0,>=3.0.0
8
- Requires-Dist: click<9.0.0,>=7.0.0
9
- Requires-Dist: coolname<2.0.0,>=1.1.0
10
- Requires-Dist: docker<8.0.0,>=6.1.2
11
- Requires-Dist: filelock<4.0.0,>=3.8.0
12
- Requires-Dist: gitignorefile<2.0.0,>=1.1.2
13
- Requires-Dist: gitpython<4.0.0,>=3.1.43
14
- Requires-Dist: importlib-metadata<9.0.0,>=4.11.3
15
- Requires-Dist: importlib-resources<7.0.0,>=5.2.0
16
- Requires-Dist: mako<2.0.0,>=1.1.6
17
- Requires-Dist: numpy<2.0.0,>=1.23.0; python_version < '3.12'
18
- Requires-Dist: numpy<2.0.0,>=1.26.0; python_version >= '3.12'
19
- Requires-Dist: openai<2.0.0,>=1.16.2
20
- Requires-Dist: packaging<25.0,>=20.0
21
- Requires-Dist: pydantic<3.0.0,>=1.8.2
22
- Requires-Dist: pygments<3.0.0,>=2.12.0
23
- Requires-Dist: pyjwt<3.0.0,>=2.0.0
24
- Requires-Dist: python-dateutil<3.0.0,>=2.8.2
25
- Requires-Dist: python-dotenv<2.0.0,>=1.0.1
26
- Requires-Dist: python-socketio[client]<6.0.0,>=5.5.2
27
- Requires-Dist: pyyaml<7.0.0,>=6.0.0
28
- Requires-Dist: questionary<2.0.0,>=1.10.0
29
- Requires-Dist: requests<3.0.0,>=2.18.0
30
- Requires-Dist: requirements-parser<0.12.0,>=0.11.0
31
- Requires-Dist: rich-click<2.0.0,>=1.2.1
32
- Requires-Dist: rich<14.0.0,>=13.7.1
33
- Requires-Dist: scipy<2.0.0,>=1.12.0; python_version >= '3.12'
34
- Requires-Dist: scipy<2.0.0,>=1.5.0; python_version < '3.12'
35
- Requires-Dist: tqdm<5.0.0,>=4.0.0
36
- Requires-Dist: typing-extensions>=4.0
37
- Requires-Dist: urllib3<3,>=1.26.18
38
- Requires-Dist: yq<4.0.0,>=3.1.0
39
- Provides-Extra: workflow
40
- Requires-Dist: flytekit==1.13.13; extra == 'workflow'
41
- Description-Content-Type: text/markdown
42
-
43
- # TrueFoundry
44
-
45
- TrueFoundry library to help you interact with the platform programmatically by
46
-
47
- - Interacting with the deployments side of TrueFoundry, enabling you to manage workspaces, deployments, applications, and view logs.
48
- - Providing experiment tracking capabilities, allowing you to track ML experiments and interact with ML repositories within TrueFoundry.
49
-
50
- You can access the health of your service, monitoring links, deployed endpoints and track metadata and artifacts by logging on to TrueFoundry's dashboard.
51
-
52
- ## Installation
53
-
54
- To install the `TrueFoundry CLI`, you can use pip:
55
-
56
- ```bash
57
- pip install truefoundry
58
- ```
59
-
60
- To install the `TrueFoundry CLI` with Workflow deployment features, you can use pip:
61
-
62
- ```bash
63
- pip install truefoundry[workflow]
64
- ```
65
-
66
- ## Examples
67
-
68
- https://github.com/truefoundry/getting-started-examples
69
-
70
- ## Documentation
71
-
72
- https://docs.truefoundry.com/
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- tfy = truefoundry.cli.__main__:main
3
- truefoundry = truefoundry.cli.__main__:main