truefoundry 0.5.3rc4__py3-none-any.whl → 0.5.4__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/__init__.py +10 -1
- truefoundry/autodeploy/cli.py +2 -2
- truefoundry/cli/__main__.py +0 -4
- truefoundry/cli/util.py +12 -3
- truefoundry/common/auth_service_client.py +7 -4
- truefoundry/common/constants.py +3 -1
- truefoundry/common/credential_provider.py +7 -8
- truefoundry/common/exceptions.py +11 -7
- truefoundry/common/request_utils.py +96 -14
- truefoundry/common/servicefoundry_client.py +31 -29
- truefoundry/common/session.py +93 -0
- truefoundry/common/storage_provider_utils.py +331 -0
- truefoundry/common/utils.py +9 -9
- truefoundry/common/warnings.py +21 -0
- truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +8 -20
- truefoundry/deploy/cli/commands/deploy_command.py +4 -4
- truefoundry/deploy/lib/clients/servicefoundry_client.py +14 -38
- truefoundry/deploy/lib/dao/application.py +2 -2
- truefoundry/deploy/lib/dao/workspace.py +1 -1
- truefoundry/deploy/lib/session.py +8 -1
- truefoundry/deploy/v2/lib/deploy.py +2 -2
- truefoundry/deploy/v2/lib/deploy_workflow.py +1 -1
- truefoundry/deploy/v2/lib/patched_models.py +70 -4
- truefoundry/deploy/v2/lib/source.py +2 -1
- truefoundry/ml/artifact/truefoundry_artifact_repo.py +33 -297
- truefoundry/ml/autogen/client/__init__.py +2 -2
- truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py +18 -16
- truefoundry/ml/autogen/client/models/__init__.py +2 -2
- truefoundry/ml/autogen/client/models/artifact_version_manifest.py +23 -5
- truefoundry/ml/autogen/client/models/{get_artifact_tags_response_dto.py → get_artifact_version_aliases_response_dto.py} +12 -10
- truefoundry/ml/autogen/client/models/model_version_manifest.py +16 -5
- truefoundry/ml/autogen/client_README.md +2 -2
- truefoundry/ml/autogen/entities/artifacts.py +4 -9
- truefoundry/ml/clients/servicefoundry_client.py +36 -15
- truefoundry/ml/exceptions.py +2 -1
- truefoundry/ml/log_types/artifacts/artifact.py +16 -15
- truefoundry/ml/log_types/artifacts/model.py +20 -19
- truefoundry/ml/log_types/artifacts/utils.py +2 -2
- truefoundry/ml/mlfoundry_api.py +6 -38
- truefoundry/ml/mlfoundry_run.py +6 -15
- truefoundry/ml/model_framework.py +2 -1
- truefoundry/ml/session.py +69 -97
- truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +42 -9
- truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +126 -7
- {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/METADATA +2 -2
- {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/RECORD +48 -54
- {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/WHEEL +1 -1
- truefoundry/cli/commands/pat.py +0 -24
- truefoundry/deploy/lib/auth/servicefoundry_session.py +0 -61
- truefoundry/gateway/__init__.py +0 -1
- truefoundry/gateway/cli/cli.py +0 -51
- truefoundry/gateway/lib/client.py +0 -51
- truefoundry/gateway/lib/entities.py +0 -33
- truefoundry/gateway/lib/models.py +0 -67
- truefoundry/ml/clients/entities.py +0 -8
- truefoundry/ml/clients/utils.py +0 -122
- {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/entry_points.txt +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
truefoundry/__init__.py,sha256=
|
|
1
|
+
truefoundry/__init__.py,sha256=Go9M0PvV9kYX8dhldJzpH0RAYB_Pc1kVOxfNlsps89c,321
|
|
2
2
|
truefoundry/autodeploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
truefoundry/autodeploy/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
truefoundry/autodeploy/agents/base.py,sha256=lYw6bKhfCWff5BbtXXn2k4MjMbRIUkOwPBjRT70iXE8,6420
|
|
5
5
|
truefoundry/autodeploy/agents/developer.py,sha256=tO9vmgGjoaqK4rX-DFCyMrViFC2Oqofd89WoXqsEm-A,4142
|
|
6
6
|
truefoundry/autodeploy/agents/project_identifier.py,sha256=KlF7FwrGHDCjF3y3-YaCDxZ8kE34s6XPBagXhG2U1aM,4520
|
|
7
7
|
truefoundry/autodeploy/agents/tester.py,sha256=lqvVBuVcFRvGZnSLAUF2r-1-Yti20o_cbybU19IlSXo,2418
|
|
8
|
-
truefoundry/autodeploy/cli.py,sha256=
|
|
8
|
+
truefoundry/autodeploy/cli.py,sha256=9ZxKu_MGIpraMzaW4ZyuQZhlKIQYE3biBrBV4S1h6Fo,14167
|
|
9
9
|
truefoundry/autodeploy/constants.py,sha256=vTh2nA7cjqghqbW2rNh3FbtcIk2scdAWZuuQCmVBO80,1273
|
|
10
10
|
truefoundry/autodeploy/exception.py,sha256=fa_ZyTDUKiMKG2Uayynk1yWcEMsuVluqk2GtV4tfTPU,158
|
|
11
11
|
truefoundry/autodeploy/logger.py,sha256=tkV2UKcOTFl5nz0cn4eRbzxF-2CZd8b7MK9vnhaflYw,325
|
|
@@ -24,23 +24,25 @@ truefoundry/autodeploy/utils/client.py,sha256=PvbSkfgAjAogGjisinqmh4mP4svowxAC0I
|
|
|
24
24
|
truefoundry/autodeploy/utils/diff.py,sha256=Ef8Y-VffDKel_-q-GxRam6gqiv8qTLMcqVg6iifXfcA,5358
|
|
25
25
|
truefoundry/autodeploy/utils/pydantic_compat.py,sha256=hEAUy5kLjhPdzw7yGZ2iXGMXbbMVXVlGzIofmyHafXQ,412
|
|
26
26
|
truefoundry/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
truefoundry/cli/__main__.py,sha256=
|
|
28
|
-
truefoundry/cli/commands/pat.py,sha256=0rm95ny1b3KfeBJSRWh1M4lR46ERnp96ovUZKu-P5Ss,602
|
|
27
|
+
truefoundry/cli/__main__.py,sha256=0nEwE0UkFagCO5ctGcqEThdmBT2fN8MVcr0ERItnsNQ,3483
|
|
29
28
|
truefoundry/cli/config.py,sha256=tf8w4UfVzcC6eYkENvuuCPYt_V3sqVpO1bclORV9tAk,206
|
|
30
29
|
truefoundry/cli/console.py,sha256=9-dMy4YPisCJQziRKTg8Qa0UJnOGl1soiUnJjsnLDvE,242
|
|
31
30
|
truefoundry/cli/const.py,sha256=dVHPo1uAiDSSMXwXoT2mR5kNQjExT98QNVRz98Hz_Ts,510
|
|
32
31
|
truefoundry/cli/display_util.py,sha256=vypx4FQImmDwl2QAj7GpjwlpvG3VFhqoNPvCkBzGqNg,3120
|
|
33
|
-
truefoundry/cli/util.py,sha256=
|
|
32
|
+
truefoundry/cli/util.py,sha256=gLSKts2js8ThKXV19p2ENv5seSf12PrUemUsveNmcGY,3717
|
|
34
33
|
truefoundry/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
-
truefoundry/common/auth_service_client.py,sha256=
|
|
36
|
-
truefoundry/common/constants.py,sha256=
|
|
34
|
+
truefoundry/common/auth_service_client.py,sha256=N3YxKlx63r6cPZqbgb2lqBOPI69ShB7D7RCIq4FSCjc,7949
|
|
35
|
+
truefoundry/common/constants.py,sha256=WQjylPv7xTVYURv4zicJUHYL73Gv3c3i6Iw4oy9Lhg4,2744
|
|
37
36
|
truefoundry/common/credential_file_manager.py,sha256=1yEk1Zm2xS4G0VDFwKSZ4w0VUrcPWQ1nJnoBaz9xyKA,4251
|
|
38
|
-
truefoundry/common/credential_provider.py,sha256=
|
|
37
|
+
truefoundry/common/credential_provider.py,sha256=R666i1ADKb2ldwEVh9lnaFcPaa4q3vAscIX3MX1UiFA,4097
|
|
39
38
|
truefoundry/common/entities.py,sha256=8O-EGPk4PKqnyoFMKUTxISCU19rz0KBnfRDJU695DhY,3797
|
|
40
|
-
truefoundry/common/exceptions.py,sha256=
|
|
41
|
-
truefoundry/common/request_utils.py,sha256=
|
|
42
|
-
truefoundry/common/servicefoundry_client.py,sha256=
|
|
43
|
-
truefoundry/common/
|
|
39
|
+
truefoundry/common/exceptions.py,sha256=jkU0N7hV_P-EhXeud4I5vuB9glXXZSWPf8LcH04mSbw,459
|
|
40
|
+
truefoundry/common/request_utils.py,sha256=e9qrAQ1MutU7JALDKcucmNd0KQEVBqgW3yx0w1zeHIU,5700
|
|
41
|
+
truefoundry/common/servicefoundry_client.py,sha256=295ZXOEM46lXZP59O04XFTDCsZLtz3MssXRDMk2x9hg,3169
|
|
42
|
+
truefoundry/common/session.py,sha256=BiTJ2WEzLkTvzpqy67xX3fXgiKH_ltzzmQdFG7xUtwI,2904
|
|
43
|
+
truefoundry/common/storage_provider_utils.py,sha256=yURhMw8k0FLFvaviRHDiifhvc6GnuQwGMC9Qd2uM440,10934
|
|
44
|
+
truefoundry/common/utils.py,sha256=sZyg-vpShVXvnrwnINrdsyWJR3FHMUBiOB1CslYdQTo,6072
|
|
45
|
+
truefoundry/common/warnings.py,sha256=rs6BHwk7imQYedo07iwh3TWEOywAR3Lqhj0AY4khByg,504
|
|
44
46
|
truefoundry/deploy/__init__.py,sha256=p14_yIJw2bcaKW3c1DTaoM7UwfHvt2T_MfeFlZIz1g4,2359
|
|
45
47
|
truefoundry/deploy/auto_gen/models.py,sha256=3_GTdaYE95piMzhbM4SvMSQhP4UGWDGpJnLxERjYHGw,82555
|
|
46
48
|
truefoundry/deploy/builder/__init__.py,sha256=1qjHMNBE1poRCZW0WrG46dFM1f1IlivD5352qzsioMU,4953
|
|
@@ -49,7 +51,7 @@ truefoundry/deploy/builder/builders/dockerfile.py,sha256=AXXTziCkaqIhuM_bwyD1vT1
|
|
|
49
51
|
truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py,sha256=x_GwRFKz-Kb4-ZlxOFjBlr0mTgUDe_hVeG4dsIbHo8c,1796
|
|
50
52
|
truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py,sha256=rQgdvKmAT9HArVW4TAG5yd2QTKRs3S5LJ9RQbc_EkHE,2518
|
|
51
53
|
truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py,sha256=9r1PYahn-HfzpMth6NkvJoycmmHQpSl0vIVZxWF12xI,1864
|
|
52
|
-
truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py,sha256=
|
|
54
|
+
truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py,sha256=X9mKH7SGZLGZGvY0S2aPB3sgWdSR9TY4eVXtqz_idEA,8973
|
|
53
55
|
truefoundry/deploy/builder/constants.py,sha256=amUkHoHvVKzGv0v_knfiioRuKiJM0V0xW0diERgWiI0,508
|
|
54
56
|
truefoundry/deploy/builder/docker_service.py,sha256=OI8efqK0Gnoii8bcHihpA2StwHVzsMREfBk7NvMR4hY,3950
|
|
55
57
|
truefoundry/deploy/builder/utils.py,sha256=D68-bqM0NQx-Elg-56mtkENyVyg9faZ9tgTmBuo1Sjs,1076
|
|
@@ -60,7 +62,7 @@ truefoundry/deploy/cli/commands/build_command.py,sha256=zJBywMatbpUlXx5O2aqpEVmP
|
|
|
60
62
|
truefoundry/deploy/cli/commands/build_logs_command.py,sha256=DE_yprQQ6PrhOQo3xsYxGWQrXSopzSYDkt3hWB4n728,2790
|
|
61
63
|
truefoundry/deploy/cli/commands/create_command.py,sha256=rCajvQvAfZU10nDZOYpRACbAATH1zj52ihTWrhnLLUc,1829
|
|
62
64
|
truefoundry/deploy/cli/commands/delete_command.py,sha256=JMibxvt1rsZ8sODa0jI1e6vavjN8Pv04ttVFURSTKTw,2362
|
|
63
|
-
truefoundry/deploy/cli/commands/deploy_command.py,sha256=
|
|
65
|
+
truefoundry/deploy/cli/commands/deploy_command.py,sha256=YW4OG-5ZD1BZn82ckrNInNRHWxVOwaUjHhRTgfCEUCU,3890
|
|
64
66
|
truefoundry/deploy/cli/commands/deploy_init_command.py,sha256=g-jBfrEmhZ0TDWsyqPDn4K6q33EqJSGmBTt1eMYig-w,600
|
|
65
67
|
truefoundry/deploy/cli/commands/get_command.py,sha256=HZQGWib-qrS0RdzctRDwDLfMGu0wqWkAM1u26cTZlsc,5944
|
|
66
68
|
truefoundry/deploy/cli/commands/list_command.py,sha256=zKu_JWY35eMIzgSNFYtmwi2uezZ4k-8yk3C1Vqsvshc,4470
|
|
@@ -79,42 +81,36 @@ truefoundry/deploy/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
79
81
|
truefoundry/deploy/io/output_callback.py,sha256=V2YwUFec4G4a67lM4r-x_64AqdOVNo_9sTdfQWLlvi0,604
|
|
80
82
|
truefoundry/deploy/io/rich_output_callback.py,sha256=TJLiRD-EnFVwgcepxR7WN0koKqW1X2DevETPhNPi_nU,829
|
|
81
83
|
truefoundry/deploy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
truefoundry/deploy/lib/auth/servicefoundry_session.py,sha256=5TCYPunAygtn5mb0mp_VcWKEalKMKPbyWMWer-Vty2g,1916
|
|
83
84
|
truefoundry/deploy/lib/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=
|
|
85
|
+
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=E1AZo3KmvvXoCQV4Z7A8Iy_iPH8HethHPR-xnAImEEE,26096
|
|
85
86
|
truefoundry/deploy/lib/const.py,sha256=Wg0GDnfFu-g1fJr4lU80NH2ULw0R0dYjV7LnW-PbOeM,173
|
|
86
87
|
truefoundry/deploy/lib/dao/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
-
truefoundry/deploy/lib/dao/application.py,sha256=
|
|
88
|
+
truefoundry/deploy/lib/dao/application.py,sha256=oMszpueXPUfTUuN_XdKwoRjQyqAgWHhZ-10cbprCVdM,9226
|
|
88
89
|
truefoundry/deploy/lib/dao/apply.py,sha256=Jadfa3DcbIRz-Bb4Tlixed179HLDnmDXOlrvSxfEgQ0,3021
|
|
89
90
|
truefoundry/deploy/lib/dao/version.py,sha256=AtdW_4O1DPUKdfv2qy6iUJsZ_95vM6z0AqeEy3WDKs8,1130
|
|
90
|
-
truefoundry/deploy/lib/dao/workspace.py,sha256=
|
|
91
|
+
truefoundry/deploy/lib/dao/workspace.py,sha256=6YvfCgWDzAULI3Q6JswyZmP1CwJ5rM-ANsIFkbQia0Q,2349
|
|
91
92
|
truefoundry/deploy/lib/logs_utils.py,sha256=SQxRv3jDDmgHdOUMhlMaAPGYskybnBUMpst7QU_i_sc,1469
|
|
92
93
|
truefoundry/deploy/lib/messages.py,sha256=nhp0bCYf_XpUM68hTq5lBY-__vtEyV2uP7NgnJXJ_Vg,925
|
|
93
94
|
truefoundry/deploy/lib/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
95
|
truefoundry/deploy/lib/model/entity.py,sha256=3YRdyvMYI1aUXUu2tB5b5lZWwpxKdAhjpT79gzTCZGo,8373
|
|
95
|
-
truefoundry/deploy/lib/session.py,sha256=
|
|
96
|
+
truefoundry/deploy/lib/session.py,sha256=FBSq3bxf3my_613NzgtPoeeaAYLGZEoF0n7XccTFNf4,5141
|
|
96
97
|
truefoundry/deploy/lib/util.py,sha256=J7r8San2wKo48A7-BlH2-OKTlBO67zlPjLEhMsL8os0,1059
|
|
97
98
|
truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXArrY,5009
|
|
98
99
|
truefoundry/deploy/python_deploy_codegen.py,sha256=qJHH1BJQII9e6PhkcRFYiE_3De7_VMMm8nM4AX5Eq1o,6513
|
|
99
100
|
truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
101
|
truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
|
|
101
|
-
truefoundry/deploy/v2/lib/deploy.py,sha256=
|
|
102
|
-
truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=
|
|
102
|
+
truefoundry/deploy/v2/lib/deploy.py,sha256=oK5yTlrhzKNTGZckwuBzu8Q_pxQYgBVcdA-KB-SbzCI,11990
|
|
103
|
+
truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=6Y4PNhd5PCc_4TjpcIZPkr6FCm3BNIQ_SsJTvpUu7a0,12579
|
|
103
104
|
truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=MROgMxhn9hDEAKwJSWl3iz12tUVvRKzEtqF2QUT6dAk,3343
|
|
104
105
|
truefoundry/deploy/v2/lib/models.py,sha256=pSolLMTArDuYpeNsmeeS5DWliloN_iCDfZSpRllMHUg,1120
|
|
105
|
-
truefoundry/deploy/v2/lib/patched_models.py,sha256=
|
|
106
|
-
truefoundry/deploy/v2/lib/source.py,sha256=
|
|
107
|
-
truefoundry/gateway/__init__.py,sha256=HvAMuk60-fuZcMmdOtozHrUaH_JcbEHxpMSlS9ci4ls,41
|
|
108
|
-
truefoundry/gateway/cli/cli.py,sha256=SPEHNP210QtK7G97KOOP6t6QBxgCq2YUezgx65QZToM,1715
|
|
109
|
-
truefoundry/gateway/lib/client.py,sha256=6E9gTl_rOCwcrx5fJkUzbZqacJmgXtSXd1mcmDk9bCA,1717
|
|
110
|
-
truefoundry/gateway/lib/entities.py,sha256=DoYS9QAKjiVao-CH9j9LVUPlVFdeHqJ3xC7-pYhmAyM,918
|
|
111
|
-
truefoundry/gateway/lib/models.py,sha256=0JUsLt2oNf0bBea_03ndDmUkZhNqvMmixh8zgxaH2lk,2600
|
|
106
|
+
truefoundry/deploy/v2/lib/patched_models.py,sha256=YDM75pdUPdMFgH2G8ZNbztalLIiMcHVHBHt7cLWmiDg,16050
|
|
107
|
+
truefoundry/deploy/v2/lib/source.py,sha256=tzMSOTrTH3dJzICjo8gI8iY6n0-ckktP3Dh7bVK-nTI,9344
|
|
112
108
|
truefoundry/logger.py,sha256=u-YCNjg5HBwE70uQcpjIG64Ghos-K2ulTWaxC03BSj4,714
|
|
113
109
|
truefoundry/ml/__init__.py,sha256=ssUEIs8BixPWxynKoeSh-dkRl6AtLXG0PBGYnUR5Az8,2217
|
|
114
110
|
truefoundry/ml/artifact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
|
-
truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=
|
|
111
|
+
truefoundry/ml/artifact/truefoundry_artifact_repo.py,sha256=myDpr3RZzEkd_UG9C3rZ4UKEFxXopO5HMVJNpNDiuAo,37737
|
|
116
112
|
truefoundry/ml/autogen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
truefoundry/ml/autogen/client/__init__.py,sha256=
|
|
113
|
+
truefoundry/ml/autogen/client/__init__.py,sha256=28MIn6pjqHZlnjuljt-kgrR7Dw07It7khbMZm3dlQlY,20118
|
|
118
114
|
truefoundry/ml/autogen/client/api/__init__.py,sha256=NyMBxBmIzB1o5LzZZwz9LiydHB3-hPqc_sevsnY6Jrw,746
|
|
119
115
|
truefoundry/ml/autogen/client/api/auth_api.py,sha256=zpWzJhUmW6HHMY_atlUf0B25k77E1kue2hmix5I5Ih0,7017
|
|
120
116
|
truefoundry/ml/autogen/client/api/deprecated_api.py,sha256=mu5x_skNcwz8v1Tr6VP72-tVP7pmBV9muyKy_2NH3F0,38824
|
|
@@ -122,14 +118,14 @@ truefoundry/ml/autogen/client/api/experiments_api.py,sha256=mRKS8qGzcFJUpTWjfQoF
|
|
|
122
118
|
truefoundry/ml/autogen/client/api/generate_code_snippet_api.py,sha256=C8iABP-pYIyIoTlL8PFi3ZBG_6B_dkQf09eErNeoj7A,22316
|
|
123
119
|
truefoundry/ml/autogen/client/api/health_api.py,sha256=IAPhRAo9CLUT5ipVR1fCf-qDx57UR0wg5ekhtUl8lug,11554
|
|
124
120
|
truefoundry/ml/autogen/client/api/metrics_api.py,sha256=q3L38eD-2hu4_9YvcSdnWDYXD2V8il-X9reinOAABek,14908
|
|
125
|
-
truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py,sha256=
|
|
121
|
+
truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py,sha256=i3OaGysy3Th-ZVqJ6HenSn7W7cQkRUDS_G5D28tk6e4,319913
|
|
126
122
|
truefoundry/ml/autogen/client/api/run_artifacts_api.py,sha256=x-vVnY2LEFChZxiiFauswRWwFz6Qqh30PKXjzuTvxmc,8799
|
|
127
123
|
truefoundry/ml/autogen/client/api/runs_api.py,sha256=-aghrZ2VYuZOw_vBtOzWDsnK7Ji29oZQxK2CLRgyo2w,119232
|
|
128
124
|
truefoundry/ml/autogen/client/api_client.py,sha256=M31IycWorn10FYS8WbO_Whaipr0tVu2pVWFCfbS7XCo,29167
|
|
129
125
|
truefoundry/ml/autogen/client/api_response.py,sha256=KRyvecPMXF05PaxILHZ8JHoP4rgKBjKONMgG83aU-rM,844
|
|
130
126
|
truefoundry/ml/autogen/client/configuration.py,sha256=V1oaEnxt-NfpaNmp-EZpf2glovzVhM2coWYt8HBNB4M,15723
|
|
131
127
|
truefoundry/ml/autogen/client/exceptions.py,sha256=XbCbDHhYT3BVejdoGNPgEa4oS56ypkwFdxk1iOc_tFY,5355
|
|
132
|
-
truefoundry/ml/autogen/client/models/__init__.py,sha256=
|
|
128
|
+
truefoundry/ml/autogen/client/models/__init__.py,sha256=m2SztLLPzl_aifXj8-aFFl_gqkArLijw0ZLabOFOdCM,18740
|
|
133
129
|
truefoundry/ml/autogen/client/models/add_custom_metrics_to_model_version_request_dto.py,sha256=_ISDspicTGjBCYYXubKfRYYSSQVyW3AvG-jFh47-Zfc,2163
|
|
134
130
|
truefoundry/ml/autogen/client/models/add_features_to_model_version_request_dto.py,sha256=OT1-98DyWNfAHz_EgD2gMX2XkrGQ4Re945fhoAl8qSE,2099
|
|
135
131
|
truefoundry/ml/autogen/client/models/agent.py,sha256=lUAbs092yo9hZmqzX6atKebDNf1uEwTf5jLvjOdvoeM,3872
|
|
@@ -141,7 +137,7 @@ truefoundry/ml/autogen/client/models/artifact_dto.py,sha256=JWL8_sITJJXbxywcfRj4
|
|
|
141
137
|
truefoundry/ml/autogen/client/models/artifact_response_dto.py,sha256=T_HLjkHnqiO1bnSXiCUOlwDEHGz89mlUNhBq0SJTapo,2226
|
|
142
138
|
truefoundry/ml/autogen/client/models/artifact_type.py,sha256=LBXGYUoesmL5J-0xzCR8jBST3bjb6HY86RmqSGvytRs,828
|
|
143
139
|
truefoundry/ml/autogen/client/models/artifact_version_dto.py,sha256=GXjjKycpsEgJ60V2hAfL4NMxM2gZKLP2qV2yBb9WgdM,6174
|
|
144
|
-
truefoundry/ml/autogen/client/models/artifact_version_manifest.py,sha256=
|
|
140
|
+
truefoundry/ml/autogen/client/models/artifact_version_manifest.py,sha256=AOg17pPxbOuqmSLCBj_us4_heijpr_k-CZWnl87RExw,4829
|
|
145
141
|
truefoundry/ml/autogen/client/models/artifact_version_response_dto.py,sha256=JmiSYdPYG-ki6LCBeF7NtihdQ2LPiHld8cSPivY2GmQ,2421
|
|
146
142
|
truefoundry/ml/autogen/client/models/artifact_version_serialization_format.py,sha256=2Qfgq1nykn0_mKNEJzOxhQwHm_95WIr9wJcHLeFWXQM,774
|
|
147
143
|
truefoundry/ml/autogen/client/models/artifact_version_status.py,sha256=iIcomqhuaJkZH2rT3e6IjQutM79t9hEshW-RCIMKHEY,780
|
|
@@ -192,7 +188,7 @@ truefoundry/ml/autogen/client/models/fast_ai_framework.py,sha256=GwVoMbIzYhr4srF
|
|
|
192
188
|
truefoundry/ml/autogen/client/models/file_info_dto.py,sha256=7oc8venicsFVk8zT9wHNhHnZGtFkFlqimFnS7ozGL9k,2156
|
|
193
189
|
truefoundry/ml/autogen/client/models/finalize_artifact_version_request_dto.py,sha256=tkPcNjI0_qhX-D3m6AXqLzdmo9_K0tFBtbPDeg0Zo7U,3818
|
|
194
190
|
truefoundry/ml/autogen/client/models/framework.py,sha256=W_KrqH1qKRvlrssCCWFIlmPaeAw0eiM6VqS3pbdlMXU,14720
|
|
195
|
-
truefoundry/ml/autogen/client/models/
|
|
191
|
+
truefoundry/ml/autogen/client/models/get_artifact_version_aliases_response_dto.py,sha256=W064ced8EQCeyJLpKikEtkCzuiqUDwNjS56sh7Mc3yg,2029
|
|
196
192
|
truefoundry/ml/autogen/client/models/get_experiment_response_dto.py,sha256=FhJpoUeRbZV1s1KR3Y07Kv6U4enLbbgdpGbguT9us0A,2923
|
|
197
193
|
truefoundry/ml/autogen/client/models/get_latest_run_log_response_dto.py,sha256=g5NG252VzjGHiA-w5nhxmZxGrowJO9XCHDQTjf8y2KE,2266
|
|
198
194
|
truefoundry/ml/autogen/client/models/get_metric_history_response.py,sha256=rTchO8o4sjGsNaZj8TW-VGtGGxsOBjUGzgaAWNtBZ-k,2428
|
|
@@ -251,7 +247,7 @@ truefoundry/ml/autogen/client/models/model_response_dto.py,sha256=osrTxfygkuhxWj
|
|
|
251
247
|
truefoundry/ml/autogen/client/models/model_server.py,sha256=N5mcWmnX0KzTMtTH8A9h_FmiQcMld3B8CXD_UYeDKaA,700
|
|
252
248
|
truefoundry/ml/autogen/client/models/model_version_dto.py,sha256=9Mh4d8V33gEGYr4sys5lYYDA3bHKajR3oAZLZMAy_io,7094
|
|
253
249
|
truefoundry/ml/autogen/client/models/model_version_environment.py,sha256=wTayQjMen24eJCqXQugzoXLANY5NXdVsAvZSh-QIhJA,2827
|
|
254
|
-
truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=
|
|
250
|
+
truefoundry/ml/autogen/client/models/model_version_manifest.py,sha256=UrusTkY39LBGpVfjIt0xG-zbnSIa6zVfqzxMXOQGOPI,5822
|
|
255
251
|
truefoundry/ml/autogen/client/models/model_version_response_dto.py,sha256=D6XOCyggxqTkbePuypqYSHYh1PYeDv7R_J32q61sDM0,2320
|
|
256
252
|
truefoundry/ml/autogen/client/models/multi_part_upload_dto.py,sha256=Ckq405vud8RQmMyKCJQJBlW5iXO7Y2mlgo8eVkiMvxg,3738
|
|
257
253
|
truefoundry/ml/autogen/client/models/multi_part_upload_response_dto.py,sha256=VjH0kvl7rMjgDHjYGHnsh7KsZ5-qn-k3ksdGLJ49nIM,2431
|
|
@@ -312,8 +308,8 @@ truefoundry/ml/autogen/client/models/xg_boost_framework.py,sha256=a0EHzncxe_hSFU
|
|
|
312
308
|
truefoundry/ml/autogen/client/models/xg_boost_model_schema.py,sha256=QKJkiERNqF8UiolX2FjvhkUkUlUgDoo3CpTYPAdCxV8,2735
|
|
313
309
|
truefoundry/ml/autogen/client/models/xg_boost_serialization_format.py,sha256=wFFSH0Z9MP8eT_fysHfUu4iqdjEZART-HxTH4e4gNI8,872
|
|
314
310
|
truefoundry/ml/autogen/client/rest.py,sha256=9goba8qHjQuVx5O_yRaTKu7PvBnb7r7swfy3dwuTEgk,14281
|
|
315
|
-
truefoundry/ml/autogen/client_README.md,sha256=
|
|
316
|
-
truefoundry/ml/autogen/entities/artifacts.py,sha256=
|
|
311
|
+
truefoundry/ml/autogen/client_README.md,sha256=qrAp9e6D4rKZETpvJry0U8Yn2ZkxDHMA9NUNsfmO_JY,37326
|
|
312
|
+
truefoundry/ml/autogen/entities/artifacts.py,sha256=jLBQk5OYpdhXwwLEIAQLkT-ttZbg522FBWHvgwOCQGQ,20995
|
|
317
313
|
truefoundry/ml/autogen/models/__init__.py,sha256=--TGRea9SQBWFfwtcl3ekb1XGfFTdEkQGSG8a2SJ60I,187
|
|
318
314
|
truefoundry/ml/autogen/models/exceptions.py,sha256=q3n7FGBrg_hUy1UyoefhMnhcXUAaqXlLIGHoOVzn_d8,1390
|
|
319
315
|
truefoundry/ml/autogen/models/schema.py,sha256=IhpO9qbygLqEamP3NIt3m90SseJXCOm1ZTqNbNbW-M0,55772
|
|
@@ -326,22 +322,20 @@ truefoundry/ml/cli/commands/download.py,sha256=N9MhsEQ3U24v_OmnMZT8Q4SoAi38Sm7a2
|
|
|
326
322
|
truefoundry/ml/cli/commands/model_init.py,sha256=9fHCernmQswjEhREzdrnKxwCCWkgmFrpL29H52Sd1gQ,2663
|
|
327
323
|
truefoundry/ml/cli/utils.py,sha256=j6_mZ4Spn114mz3P4QQ8jx0tmorXIuyQnHXVUSDvZi4,1035
|
|
328
324
|
truefoundry/ml/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
329
|
-
truefoundry/ml/clients/
|
|
330
|
-
truefoundry/ml/clients/servicefoundry_client.py,sha256=nmKrWBd7P0VEDGjPHZ8_scX3Xo9tv3wZSWlTIBwGptU,1597
|
|
331
|
-
truefoundry/ml/clients/utils.py,sha256=c0LdC8moejs-Zm30hu1sCqifLEmqhdq4SfZ_m0nUIDk,4402
|
|
325
|
+
truefoundry/ml/clients/servicefoundry_client.py,sha256=Rx-tjiDxNwUgOCDITjtL0vmZcQgJjh_tUdReE23TKIk,2363
|
|
332
326
|
truefoundry/ml/constants.py,sha256=vDq72d4C9FSWqr9MMdjgTF4TuyNFApvo_6RVsSeAjB4,2837
|
|
333
327
|
truefoundry/ml/entities.py,sha256=si5GAqZsWzKu5MPrU4Hk6se7bebHOYhTiNw69ai-Uk8,1485
|
|
334
328
|
truefoundry/ml/enums.py,sha256=arqDkF8duU_oVLFeYMhcfWYbF6Nq5mmjwupJMIheyXM,1790
|
|
335
|
-
truefoundry/ml/exceptions.py,sha256=
|
|
329
|
+
truefoundry/ml/exceptions.py,sha256=QpDJSWmF7dIsByS0qOQbQZ_jytdNTzkHDDO3BxhTSo0,332
|
|
336
330
|
truefoundry/ml/git_info.py,sha256=jvAVm9ilqivnGq8qJdUvYdd8Siv0PLtqurB-PXsS5ho,2023
|
|
337
331
|
truefoundry/ml/internal_namespace.py,sha256=QcqMHp6-C2im2H_02hlhi01EIcr1HhNaZprszs13EMU,1790
|
|
338
332
|
truefoundry/ml/log_types/__init__.py,sha256=g4u4D4Jaj0aBK5GtrLV88-qThKZR9pSZ17vFEkN-LmM,125
|
|
339
|
-
truefoundry/ml/log_types/artifacts/artifact.py,sha256=
|
|
333
|
+
truefoundry/ml/log_types/artifacts/artifact.py,sha256=b7GXYQx6MVI5qnPIS96xGqwwWVKGY4LYrEU9pCKkU_Y,21772
|
|
340
334
|
truefoundry/ml/log_types/artifacts/constants.py,sha256=qKxQ5mMvJE4j83BvGW3qNTKunxCiBg_EEjTdgbgJtyE,1036
|
|
341
335
|
truefoundry/ml/log_types/artifacts/dataset.py,sha256=a4dxd2EN8p7Ci-cLGGiDOboN3t0395_XhWE1dmTw1Q4,13112
|
|
342
336
|
truefoundry/ml/log_types/artifacts/general_artifact.py,sha256=B4XErLr-m6RmQWtxMTu3wlFRFcqSwPYp6J0OL4Ng6L0,3179
|
|
343
|
-
truefoundry/ml/log_types/artifacts/model.py,sha256=
|
|
344
|
-
truefoundry/ml/log_types/artifacts/utils.py,sha256=
|
|
337
|
+
truefoundry/ml/log_types/artifacts/model.py,sha256=UfGKJA9ywDtXEIH6E-VfdjvlQNdaKO-Kv76KaTZOVkA,24413
|
|
338
|
+
truefoundry/ml/log_types/artifacts/utils.py,sha256=MuPk6by8jIt7LepB1fqUC8emQBSxrTGJmIel7rbMBAc,7533
|
|
345
339
|
truefoundry/ml/log_types/image/__init__.py,sha256=fcOq8yQnNj1rkLcPeIjLXBpdA1WIeiPsXOlAAvMxx7M,76
|
|
346
340
|
truefoundry/ml/log_types/image/constants.py,sha256=wLtGEOA4T5fZHSlOXPuNDLX3lpbCtwlvGKPFk_1fah0,255
|
|
347
341
|
truefoundry/ml/log_types/image/image.py,sha256=qQnAVgErAq4Jn6wXFFpaveOd52zcjUuomUCqNRxO2io,12478
|
|
@@ -351,11 +345,11 @@ truefoundry/ml/log_types/plot.py,sha256=HuYvvRA5r8V0xAIuuqMME2IHb9d3SfGHUiuEkOP3
|
|
|
351
345
|
truefoundry/ml/log_types/pydantic_base.py,sha256=eBlw_AEyAz4iJKDP4zgJOCFWcldwQqpf7FADW1jzIQY,272
|
|
352
346
|
truefoundry/ml/log_types/utils.py,sha256=xjJ21jdPScvFmw3TbVh5NCzbzJwaqiXJyiiT4xxX1EI,335
|
|
353
347
|
truefoundry/ml/logger.py,sha256=VT-BF3BnBYTWVq87O58F0c8uXMu94gYzsiFlGY3_7Ao,458
|
|
354
|
-
truefoundry/ml/mlfoundry_api.py,sha256=
|
|
355
|
-
truefoundry/ml/mlfoundry_run.py,sha256=
|
|
356
|
-
truefoundry/ml/model_framework.py,sha256=
|
|
348
|
+
truefoundry/ml/mlfoundry_api.py,sha256=ofIbFimPI7u301KFxdbmWbJT0AIinbRMQyCwX7hbPzs,61543
|
|
349
|
+
truefoundry/ml/mlfoundry_run.py,sha256=M-0FkZYDxwv5EZUDtVqiV8JxC_3BWR80N7Kp4Yj7bPY,44291
|
|
350
|
+
truefoundry/ml/model_framework.py,sha256=JGmzdG7o5P6CJr5EYTUOmuly53FfhpoNVqKrhfijAVg,18972
|
|
357
351
|
truefoundry/ml/run_utils.py,sha256=0W208wSLUrbdfk2pjNcZlkUi9bNxG2JORqoe-5rVqHI,2423
|
|
358
|
-
truefoundry/ml/session.py,sha256=
|
|
352
|
+
truefoundry/ml/session.py,sha256=eQo1zG5nd0-8Ok68uEBCQDPAWYeJkpzqHak-DQX1ENU,4553
|
|
359
353
|
truefoundry/ml/validation_utils.py,sha256=J5atNhcJLvKj64ralSV9Y5Fv1Rt4SE237ICdP9-7sP4,12149
|
|
360
354
|
truefoundry/pydantic_v1.py,sha256=jSuhGtz0Mbk1qYu8jJ1AcnIDK4oxUsdhALc4spqstmM,345
|
|
361
355
|
truefoundry/version.py,sha256=bqiT4Q-VWrTC6P4qfK43mez-Ppf-smWfrl6DcwV7mrw,137
|
|
@@ -370,11 +364,11 @@ truefoundry/workflow/map_task.py,sha256=2m3qGXQ90k9LdS45q8dqCCECc3qr8t2m_LMCVd1m
|
|
|
370
364
|
truefoundry/workflow/python_task.py,sha256=SRXRLC4vdBqGjhkwuaY39LEWN6iPCpJAuW17URRdWTY,1128
|
|
371
365
|
truefoundry/workflow/remote_filesystem/__init__.py,sha256=LQ95ViEjJ7Ts4JcCGOxMPs7NZmQdZ4bTiq6qXtsjUhE,206
|
|
372
366
|
truefoundry/workflow/remote_filesystem/logger.py,sha256=em2l7D6sw7xTLDP0kQSLpgfRRCLpN14Qw85TN7ujQcE,1022
|
|
373
|
-
truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=
|
|
374
|
-
truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=
|
|
367
|
+
truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQlgzcj0nP3tJopyFSVWT1uv3nhiTIuwfXYeg,12342
|
|
368
|
+
truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
|
|
375
369
|
truefoundry/workflow/task.py,sha256=ToitYiKcNzFCtOVQwz1W8sRjbR97eVS7vQBdbgUQtKg,1779
|
|
376
370
|
truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
|
|
377
|
-
truefoundry-0.5.
|
|
378
|
-
truefoundry-0.5.
|
|
379
|
-
truefoundry-0.5.
|
|
380
|
-
truefoundry-0.5.
|
|
371
|
+
truefoundry-0.5.4.dist-info/METADATA,sha256=D0jCYkwZ0ZxsEWz5G1VkuNwn_Ibnv4cycSq4hYQ_C2c,2884
|
|
372
|
+
truefoundry-0.5.4.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
373
|
+
truefoundry-0.5.4.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
|
|
374
|
+
truefoundry-0.5.4.dist-info/RECORD,,
|
truefoundry/cli/commands/pat.py
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import click
|
|
2
|
-
|
|
3
|
-
from truefoundry.cli.console import console
|
|
4
|
-
from truefoundry.cli.const import COMMAND_CLS
|
|
5
|
-
from truefoundry.deploy.lib.clients.servicefoundry_client import (
|
|
6
|
-
ServiceFoundryServiceClient,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@click.command(cls=COMMAND_CLS, name="generate-api-key")
|
|
11
|
-
@click.option(
|
|
12
|
-
"--name",
|
|
13
|
-
required=True,
|
|
14
|
-
help="Name for the API key",
|
|
15
|
-
)
|
|
16
|
-
def generate_pat(name: str):
|
|
17
|
-
"""Generate a new Personal Access Token with specified name"""
|
|
18
|
-
client = ServiceFoundryServiceClient()
|
|
19
|
-
pat = client.create_pat(name)
|
|
20
|
-
console.print(pat)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def get_generate_pat_command():
|
|
24
|
-
return generate_pat
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Optional
|
|
4
|
-
|
|
5
|
-
from truefoundry.common.credential_provider import (
|
|
6
|
-
CredentialProvider,
|
|
7
|
-
EnvCredentialProvider,
|
|
8
|
-
FileCredentialProvider,
|
|
9
|
-
)
|
|
10
|
-
from truefoundry.common.entities import UserInfo
|
|
11
|
-
from truefoundry.common.utils import relogin_error_message
|
|
12
|
-
from truefoundry.logger import logger
|
|
13
|
-
|
|
14
|
-
ACTIVE_SESSION: Optional[ServiceFoundrySession] = None
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class ServiceFoundrySession:
|
|
18
|
-
def __init__(self) -> None:
|
|
19
|
-
self._cred_provider = self._get_cred_provider()
|
|
20
|
-
self._user_info: UserInfo = self._cred_provider.token.to_user_info()
|
|
21
|
-
|
|
22
|
-
global ACTIVE_SESSION
|
|
23
|
-
if (ACTIVE_SESSION is None) or (
|
|
24
|
-
ACTIVE_SESSION
|
|
25
|
-
and ACTIVE_SESSION.base_url != self.base_url
|
|
26
|
-
and ACTIVE_SESSION.user_info != self.user_info
|
|
27
|
-
):
|
|
28
|
-
logger.info(
|
|
29
|
-
"Logged in to %r as %r (%s)",
|
|
30
|
-
self.base_url,
|
|
31
|
-
self.user_info.user_id,
|
|
32
|
-
self.user_info.email or self.user_info.user_type.value,
|
|
33
|
-
)
|
|
34
|
-
ACTIVE_SESSION = self
|
|
35
|
-
|
|
36
|
-
@staticmethod
|
|
37
|
-
def _get_cred_provider() -> CredentialProvider:
|
|
38
|
-
final_cred_provider = None
|
|
39
|
-
for cred_provider in [EnvCredentialProvider, FileCredentialProvider]:
|
|
40
|
-
if cred_provider.can_provide():
|
|
41
|
-
final_cred_provider = cred_provider()
|
|
42
|
-
break
|
|
43
|
-
if final_cred_provider is None:
|
|
44
|
-
raise Exception(
|
|
45
|
-
relogin_error_message(
|
|
46
|
-
"No active session found. Perhaps you are not logged in?",
|
|
47
|
-
)
|
|
48
|
-
)
|
|
49
|
-
return final_cred_provider
|
|
50
|
-
|
|
51
|
-
@property
|
|
52
|
-
def access_token(self) -> str:
|
|
53
|
-
return self._cred_provider.token.access_token
|
|
54
|
-
|
|
55
|
-
@property
|
|
56
|
-
def base_url(self) -> str:
|
|
57
|
-
return self._cred_provider.base_url
|
|
58
|
-
|
|
59
|
-
@property
|
|
60
|
-
def user_info(self) -> UserInfo:
|
|
61
|
-
return self._user_info
|
truefoundry/gateway/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Gateway module for Truefoundry CLI"""
|
truefoundry/gateway/cli/cli.py
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import click
|
|
2
|
-
|
|
3
|
-
from truefoundry.cli.const import COMMAND_CLS, GROUP_CLS
|
|
4
|
-
from truefoundry.cli.display_util import print_entity_list
|
|
5
|
-
from truefoundry.gateway.lib.models import generate_code_for_model, list_models
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def get_gateway_cli():
|
|
9
|
-
@click.group(cls=GROUP_CLS, help="Commands to interact with TrueFoundry Gateway")
|
|
10
|
-
def gateway(): ...
|
|
11
|
-
|
|
12
|
-
@gateway.group("list", cls=GROUP_CLS, help="List gateway resources")
|
|
13
|
-
def list_group():
|
|
14
|
-
"""List gateway resources"""
|
|
15
|
-
pass
|
|
16
|
-
|
|
17
|
-
@list_group.command(
|
|
18
|
-
"models", cls=COMMAND_CLS, help="List available models filtered by type"
|
|
19
|
-
)
|
|
20
|
-
@click.option(
|
|
21
|
-
"--type",
|
|
22
|
-
"model_type",
|
|
23
|
-
type=click.Choice(["chat", "completion", "embedding"]),
|
|
24
|
-
help="Filter models by type",
|
|
25
|
-
)
|
|
26
|
-
def list_models_cli(model_type: str):
|
|
27
|
-
enabled_models = list_models(model_type)
|
|
28
|
-
print_entity_list("Models", enabled_models)
|
|
29
|
-
|
|
30
|
-
@gateway.command("generate-code", cls=COMMAND_CLS, help="Generate code for a model")
|
|
31
|
-
@click.argument("model_id")
|
|
32
|
-
@click.option(
|
|
33
|
-
"--inference-type",
|
|
34
|
-
type=click.Choice(["chat", "completion", "embedding"]),
|
|
35
|
-
default="chat",
|
|
36
|
-
help="Type of inference to generate code for",
|
|
37
|
-
)
|
|
38
|
-
@click.option(
|
|
39
|
-
"--client",
|
|
40
|
-
type=click.Choice(["openai", "rest", "langchain", "stream", "node", "curl"]),
|
|
41
|
-
default="curl",
|
|
42
|
-
help="Language/framework to generate code for",
|
|
43
|
-
)
|
|
44
|
-
def generate_code_cli(model_id: str, inference_type: str, client: str):
|
|
45
|
-
"""Generate code for a model"""
|
|
46
|
-
code = generate_code_for_model(
|
|
47
|
-
model_id, client=client, inference_type=inference_type
|
|
48
|
-
)
|
|
49
|
-
print(code)
|
|
50
|
-
|
|
51
|
-
return gateway
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
from typing import Literal, Optional
|
|
2
|
-
|
|
3
|
-
import requests
|
|
4
|
-
|
|
5
|
-
from truefoundry.common.constants import GATEWAY_SERVER_RELATIVE_PATH
|
|
6
|
-
from truefoundry.common.credential_provider import (
|
|
7
|
-
CredentialProvider,
|
|
8
|
-
EnvCredentialProvider,
|
|
9
|
-
FileCredentialProvider,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class GatewayServiceClient:
|
|
14
|
-
def __init__(
|
|
15
|
-
self,
|
|
16
|
-
credential_provider: Optional[CredentialProvider] = None,
|
|
17
|
-
host: Optional[str] = None,
|
|
18
|
-
) -> None:
|
|
19
|
-
if credential_provider is None:
|
|
20
|
-
if EnvCredentialProvider.can_provide():
|
|
21
|
-
credential_provider = EnvCredentialProvider()
|
|
22
|
-
elif FileCredentialProvider.can_provide():
|
|
23
|
-
credential_provider = FileCredentialProvider()
|
|
24
|
-
else:
|
|
25
|
-
raise Exception(
|
|
26
|
-
"No credentials found. Please login using `tfy login` or set TFY_API_KEY environment variable"
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
self._credential_provider = credential_provider
|
|
30
|
-
self._host = credential_provider.base_url
|
|
31
|
-
|
|
32
|
-
def _get_header(self):
|
|
33
|
-
return {
|
|
34
|
-
"Authorization": f"Bearer {self._credential_provider.token.access_token}"
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@property
|
|
38
|
-
def _base_url(self) -> str:
|
|
39
|
-
return f"{self._host}/{GATEWAY_SERVER_RELATIVE_PATH}"
|
|
40
|
-
|
|
41
|
-
def generate_code(
|
|
42
|
-
self, model_id: str, inference_type: Literal["chat", "completion", "embedding"]
|
|
43
|
-
) -> str:
|
|
44
|
-
url = f"{self._base_url}/api/inference/openai/generate-code-snippet"
|
|
45
|
-
data = {
|
|
46
|
-
"model": model_id,
|
|
47
|
-
"playground_endpoint": self._base_url,
|
|
48
|
-
"inference_type": inference_type,
|
|
49
|
-
}
|
|
50
|
-
response = requests.post(url, headers=self._get_header(), json=data)
|
|
51
|
-
return response.json()
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from typing import Any, Dict, List, Optional, Union
|
|
2
|
-
|
|
3
|
-
from truefoundry.pydantic_v1 import BaseModel
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class GatewayModel(BaseModel):
|
|
7
|
-
id: str
|
|
8
|
-
name: str
|
|
9
|
-
provider: str
|
|
10
|
-
model_id: Optional[str]
|
|
11
|
-
provider_account_name: str
|
|
12
|
-
tfy_application_id: Optional[str] = None
|
|
13
|
-
enabled: bool = True
|
|
14
|
-
types: Union[str, List[str]] = ""
|
|
15
|
-
created_by: str
|
|
16
|
-
tenant_name: str
|
|
17
|
-
model_fqn: str
|
|
18
|
-
|
|
19
|
-
def list_row_data(self) -> Dict[str, Any]:
|
|
20
|
-
model_display = self.model_fqn
|
|
21
|
-
provider_display = self.provider
|
|
22
|
-
if self.model_id:
|
|
23
|
-
provider_display = f"{self.provider} ({self.model_id})"
|
|
24
|
-
|
|
25
|
-
return {
|
|
26
|
-
"model": model_display,
|
|
27
|
-
"provider": provider_display,
|
|
28
|
-
"type": self.types if isinstance(self.types, str) else ", ".join(self.types)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class ProviderModels(BaseModel):
|
|
33
|
-
__root__: Dict[str, Dict[str, List[GatewayModel]]]
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
from typing import List, Literal, Optional
|
|
2
|
-
|
|
3
|
-
from truefoundry.deploy.lib.clients.servicefoundry_client import (
|
|
4
|
-
ServiceFoundryServiceClient,
|
|
5
|
-
)
|
|
6
|
-
from truefoundry.gateway.lib.client import GatewayServiceClient
|
|
7
|
-
from truefoundry.gateway.lib.entities import GatewayModel
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def list_models(
|
|
11
|
-
model_type: Optional[Literal["chat", "completion", "embedding"]] = None,
|
|
12
|
-
) -> List[GatewayModel]:
|
|
13
|
-
"""List available models filtered by type
|
|
14
|
-
|
|
15
|
-
Args:
|
|
16
|
-
model_type (Optional[str], optional): Filter models by type ('chat' or 'completion'). Defaults to None.
|
|
17
|
-
|
|
18
|
-
Returns:
|
|
19
|
-
List: List of enabled models
|
|
20
|
-
"""
|
|
21
|
-
client = ServiceFoundryServiceClient()
|
|
22
|
-
models = client.get_gateway_models(model_type)
|
|
23
|
-
|
|
24
|
-
enabled_models = []
|
|
25
|
-
for _, accounts in models.__root__.items():
|
|
26
|
-
for _, model_list in accounts.items():
|
|
27
|
-
for model in model_list:
|
|
28
|
-
enabled_models.append(model)
|
|
29
|
-
|
|
30
|
-
return enabled_models
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def generate_code_for_model(
|
|
34
|
-
model_id: str,
|
|
35
|
-
client: Literal["openai", "rest", "langchain", "stream", "node", "curl"] = "curl",
|
|
36
|
-
inference_type: Literal["chat", "completion", "embedding"] = "chat",
|
|
37
|
-
) -> str:
|
|
38
|
-
"""Generate code snippet for using a model in the specified language/framework
|
|
39
|
-
|
|
40
|
-
Args:
|
|
41
|
-
model_id (str): ID of the model to generate code for
|
|
42
|
-
language (Literal["openai", "rest", "langchain", "stream", "node", "curl"]): Language/framework to generate code for. Defaults to "curl"
|
|
43
|
-
inference_type (Literal["chat", "completion", "embedding"]): Type of inference to generate code for. Defaults to "chat"
|
|
44
|
-
|
|
45
|
-
Returns:
|
|
46
|
-
str: Code snippet for using the model in the specified language/framework
|
|
47
|
-
"""
|
|
48
|
-
gateway_client = GatewayServiceClient()
|
|
49
|
-
response = gateway_client.generate_code(model_id, inference_type)
|
|
50
|
-
|
|
51
|
-
code_map = {
|
|
52
|
-
"openai": ("openai_code", "Python code using OpenAI SDK for direct API calls"),
|
|
53
|
-
"rest": ("rest_code", "Python code using requests library for REST API calls"),
|
|
54
|
-
"langchain": (
|
|
55
|
-
"langchain_code",
|
|
56
|
-
"Python code using LangChain framework for LLM integration",
|
|
57
|
-
),
|
|
58
|
-
"stream": ("stream_code", "Python code with streaming response handling"),
|
|
59
|
-
"node": ("node_code", "Node.js code using Axios for API calls"),
|
|
60
|
-
"curl": ("curl_code", "cURL command for direct API access via terminal"),
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
code_key, description = code_map[client]
|
|
64
|
-
if code_key in response and response[code_key]:
|
|
65
|
-
return f"{description}\n{response[code_key]}"
|
|
66
|
-
|
|
67
|
-
return "No code snippet available for the specified language"
|