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.

Files changed (57) hide show
  1. truefoundry/__init__.py +10 -1
  2. truefoundry/autodeploy/cli.py +2 -2
  3. truefoundry/cli/__main__.py +0 -4
  4. truefoundry/cli/util.py +12 -3
  5. truefoundry/common/auth_service_client.py +7 -4
  6. truefoundry/common/constants.py +3 -1
  7. truefoundry/common/credential_provider.py +7 -8
  8. truefoundry/common/exceptions.py +11 -7
  9. truefoundry/common/request_utils.py +96 -14
  10. truefoundry/common/servicefoundry_client.py +31 -29
  11. truefoundry/common/session.py +93 -0
  12. truefoundry/common/storage_provider_utils.py +331 -0
  13. truefoundry/common/utils.py +9 -9
  14. truefoundry/common/warnings.py +21 -0
  15. truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +8 -20
  16. truefoundry/deploy/cli/commands/deploy_command.py +4 -4
  17. truefoundry/deploy/lib/clients/servicefoundry_client.py +14 -38
  18. truefoundry/deploy/lib/dao/application.py +2 -2
  19. truefoundry/deploy/lib/dao/workspace.py +1 -1
  20. truefoundry/deploy/lib/session.py +8 -1
  21. truefoundry/deploy/v2/lib/deploy.py +2 -2
  22. truefoundry/deploy/v2/lib/deploy_workflow.py +1 -1
  23. truefoundry/deploy/v2/lib/patched_models.py +70 -4
  24. truefoundry/deploy/v2/lib/source.py +2 -1
  25. truefoundry/ml/artifact/truefoundry_artifact_repo.py +33 -297
  26. truefoundry/ml/autogen/client/__init__.py +2 -2
  27. truefoundry/ml/autogen/client/api/mlfoundry_artifacts_api.py +18 -16
  28. truefoundry/ml/autogen/client/models/__init__.py +2 -2
  29. truefoundry/ml/autogen/client/models/artifact_version_manifest.py +23 -5
  30. truefoundry/ml/autogen/client/models/{get_artifact_tags_response_dto.py → get_artifact_version_aliases_response_dto.py} +12 -10
  31. truefoundry/ml/autogen/client/models/model_version_manifest.py +16 -5
  32. truefoundry/ml/autogen/client_README.md +2 -2
  33. truefoundry/ml/autogen/entities/artifacts.py +4 -9
  34. truefoundry/ml/clients/servicefoundry_client.py +36 -15
  35. truefoundry/ml/exceptions.py +2 -1
  36. truefoundry/ml/log_types/artifacts/artifact.py +16 -15
  37. truefoundry/ml/log_types/artifacts/model.py +20 -19
  38. truefoundry/ml/log_types/artifacts/utils.py +2 -2
  39. truefoundry/ml/mlfoundry_api.py +6 -38
  40. truefoundry/ml/mlfoundry_run.py +6 -15
  41. truefoundry/ml/model_framework.py +2 -1
  42. truefoundry/ml/session.py +69 -97
  43. truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +42 -9
  44. truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +126 -7
  45. {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/METADATA +2 -2
  46. {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/RECORD +48 -54
  47. {truefoundry-0.5.3rc4.dist-info → truefoundry-0.5.4.dist-info}/WHEEL +1 -1
  48. truefoundry/cli/commands/pat.py +0 -24
  49. truefoundry/deploy/lib/auth/servicefoundry_session.py +0 -61
  50. truefoundry/gateway/__init__.py +0 -1
  51. truefoundry/gateway/cli/cli.py +0 -51
  52. truefoundry/gateway/lib/client.py +0 -51
  53. truefoundry/gateway/lib/entities.py +0 -33
  54. truefoundry/gateway/lib/models.py +0 -67
  55. truefoundry/ml/clients/entities.py +0 -8
  56. truefoundry/ml/clients/utils.py +0 -122
  57. {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=jynqfY0pDmcaXlxewDnMQC5CYAIW9JFjptBrw7y76rY,81
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=1VnDAP9ylM6l00v0Ko5KL6_Dr7bL_voeAPdbEvWvU3Y,14215
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=mYgMZRvI3sBP3_6DA0WwtFUZQTV3r8gJpMFvMJb-OOE,3692
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=yA8sie7TBTOu-5QFf2zEFWYEKYcBCaV6o1gtctj1dtI,3390
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=RRiGUqITxeVYwKZLc923zJP-61UAvFtVlMaG2HJBvXc,7940
36
- truefoundry/common/constants.py,sha256=VbwTn5nzdUnG8u50_dnq_zWwcLf5PXFinhhSogsOAys,2667
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=Aht7hFLsnyRgMR34dRbzln7dor0WYSeA8ej8ApNmnKM,4148
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=ePpiQ_zmWe4e94gOgeMiyP_AZnKwjEBfyXsB5ScGYcI,329
41
- truefoundry/common/request_utils.py,sha256=5xw4YGUcMf71Ncal3OfFCa-PoWDIvG3hYGCDa4Da4OI,2854
42
- truefoundry/common/servicefoundry_client.py,sha256=2fxmgCM-ckFHpnm6n_mL-5Z8RWN_q-dYVvFC29bkYSg,3120
43
- truefoundry/common/utils.py,sha256=H87mfvqSE9OSRRdX-G9m3_JvWLVtkNuLmsFsvJHMczc,6098
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=lQxEl7VNv9pCSTcaGe-ARicd5481RmRtVX5U6G18ptY,9429
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=B5taHuy2qRJEwco78kroMEAj6uf2_UMYatqb4Rn2-ko,3986
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=zx9c-TjQRzMDKGCa-wDvXEX_8FcWH1QlVif2SjxgLxs,27136
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=xUqF34abde71YZo9gkR-WvVJi1C6nBeGBNw4kL5FdIo,9226
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=KZA8QrlOTecFLAi4Xt0qJ0hNwQL76UYsTKJgZbsA_5s,2349
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=Vg6rCA315T0yS0xG4ayJ84Ia_9ZfibH8utOSwPBMAmw,4953
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=HIcY3SzQ5lWl7avuuKi3J0Z-PBES6Sf4hgMK-m6_53U,11990
102
- truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=hgAhd1EGwFLz319Vs-WNXHDJmbKjdgkGPzDnBD1Up1k,12579
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=NTU8J_CwdvEuF9zNXwFyN3suOp_196Wrm75DDy5qcXE,14184
106
- truefoundry/deploy/v2/lib/source.py,sha256=VHKuFREiixUP40D3Mrz-TA70spu1M0RbCzl--qwlFaY,9263
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=FksxhUpRHb9pgWZmAB16DhXqkAL6UIAPA1S3RJUApQU,46201
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=42Y8v6C1oDlngKCaDODi9k3q-9MPMiqO8jGe39y5QJM,20097
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=Ze2mSkXH1IxUB6Zs3C8ISYwzpKfPXgGvdKgjmEa-XRA,319720
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=ZtmxIyFDWPGywDB8p-VZO73Cl_WkGcl4fVzEB9UHsTc,18719
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=lzoIGTRplPIcXlO5Brq6DoCn1HCnzmxJmd9dPvZ3Nq4,3907
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/get_artifact_tags_response_dto.py,sha256=zS5eBxBqzm-f5dt4GspLJvVmq_RWTtZmZTXFV8rqbX0,1883
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=pZysfaTZmew4MxhtH4MTnwCQWRt43JvqU3ii5gBgm9w,4955
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=Dr3x2Lm10JIWsLlRBZuDsE4Y4T1XzIpsychLjZfr89Q,37262
316
- truefoundry/ml/autogen/entities/artifacts.py,sha256=COkzHpmqzXpEttH2UstIO8p7WN3zz_tyAG63r66i-9w,20652
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/entities.py,sha256=sNP4DnAVdQoMfc06s0r3VTzKHTo7jmxAOuTlQOVmsMs,151
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=8aJm2NYtAWWsRLu4MbzaoOqHsQZ6RjOFwBWQWqb6qrc,244
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=VC0KbcHty1fblybUvGVcfDGFcINfLgT2LByyvPcS1Ro,21565
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=p9cB3_0MSZkVyq8G2pyNWl1F3qICTazQlq6VCSzOV3s,24194
344
- truefoundry/ml/log_types/artifacts/utils.py,sha256=8mmahc1b6wvrA_E795h9ynRfhYRIdci7LRGN8U6ySm8,7516
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=avuGgjbRnQXk774Vd3Dx7n99bbrOkL9pob9DI-vNvWE,62368
355
- truefoundry/ml/mlfoundry_run.py,sha256=scHjdjojRGbE4ZZlByZTFrcBTamRbm_JGidaSX9Gi9o,44601
356
- truefoundry/ml/model_framework.py,sha256=GAGu6bW8L4f8uvukOITB0bJOm1BSWzxC1MJxUGmpOqQ,18882
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=F83GTC5WwGBjnJ69Ct8MqMnlutYc56JCc6YhEY1Wl-A,5394
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=5mBCIc-ON7VSTzdyczeADgqSX5oJgso5gq2yT2AQqTY,11085
374
- truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=Hf6Dk6Fu6P7DqsK5ULgraf9DStjgigf-kjaRAMBW-RU,8680
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.3rc4.dist-info/METADATA,sha256=qPTGfmHQVmxxL_jBbf7CJI6fDI1LkOpkSfeBXSqLRpY,2887
378
- truefoundry-0.5.3rc4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
379
- truefoundry-0.5.3rc4.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
380
- truefoundry-0.5.3rc4.dist-info/RECORD,,
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.1
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -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
@@ -1 +0,0 @@
1
- """Gateway module for Truefoundry CLI"""
@@ -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"
@@ -1,8 +0,0 @@
1
- from typing import Optional
2
-
3
- from truefoundry.pydantic_v1 import BaseModel
4
-
5
-
6
- class HostCreds(BaseModel):
7
- host: str
8
- token: Optional[str] = None