together 2.0.0a14__py3-none-any.whl → 2.0.0a16__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.
Files changed (88) hide show
  1. together/_base_client.py +134 -11
  2. together/_client.py +7 -0
  3. together/_models.py +16 -1
  4. together/_types.py +9 -0
  5. together/_version.py +1 -1
  6. together/constants.py +34 -0
  7. together/error.py +15 -0
  8. together/lib/_google_colab.py +39 -0
  9. together/lib/cli/__init__.py +73 -0
  10. together/lib/cli/api/{utils.py → _utils.py} +4 -4
  11. together/lib/cli/api/beta/clusters/__init__.py +47 -0
  12. together/lib/cli/api/beta/{clusters.py → clusters/create.py} +5 -179
  13. together/lib/cli/api/beta/clusters/delete.py +35 -0
  14. together/lib/cli/api/beta/clusters/get_credentials.py +151 -0
  15. together/lib/cli/api/beta/clusters/list.py +24 -0
  16. together/lib/cli/api/beta/clusters/list_regions.py +37 -0
  17. together/lib/cli/api/beta/clusters/retrieve.py +31 -0
  18. together/lib/cli/api/beta/clusters/storage/__init__.py +19 -0
  19. together/lib/cli/api/beta/clusters/storage/create.py +49 -0
  20. together/lib/cli/api/beta/clusters/storage/delete.py +38 -0
  21. together/lib/cli/api/beta/clusters/storage/list.py +42 -0
  22. together/lib/cli/api/beta/clusters/storage/retrieve.py +34 -0
  23. together/lib/cli/api/beta/clusters/update.py +54 -0
  24. together/lib/cli/api/endpoints/__init__.py +56 -0
  25. together/lib/cli/api/endpoints/availability_zones.py +26 -0
  26. together/lib/cli/api/endpoints/create.py +159 -0
  27. together/lib/cli/api/endpoints/delete.py +15 -0
  28. together/lib/cli/api/endpoints/hardware.py +40 -0
  29. together/lib/cli/api/endpoints/list.py +66 -0
  30. together/lib/cli/api/endpoints/retrieve.py +23 -0
  31. together/lib/cli/api/endpoints/start.py +25 -0
  32. together/lib/cli/api/endpoints/stop.py +25 -0
  33. together/lib/cli/api/endpoints/update.py +77 -0
  34. together/lib/cli/api/evals/__init__.py +19 -0
  35. together/lib/cli/api/{evals.py → evals/create.py} +6 -129
  36. together/lib/cli/api/evals/list.py +58 -0
  37. together/lib/cli/api/evals/retrieve.py +21 -0
  38. together/lib/cli/api/evals/status.py +20 -0
  39. together/lib/cli/api/files/__init__.py +23 -0
  40. together/lib/cli/api/files/check.py +21 -0
  41. together/lib/cli/api/files/delete.py +20 -0
  42. together/lib/cli/api/files/list.py +34 -0
  43. together/lib/cli/api/files/retrieve.py +20 -0
  44. together/lib/cli/api/files/retrieve_content.py +25 -0
  45. together/lib/cli/api/files/upload.py +38 -0
  46. together/lib/cli/api/fine_tuning/__init__.py +27 -0
  47. together/lib/cli/api/fine_tuning/cancel.py +28 -0
  48. together/lib/cli/api/{fine_tuning.py → fine_tuning/create.py} +5 -257
  49. together/lib/cli/api/fine_tuning/delete.py +29 -0
  50. together/lib/cli/api/fine_tuning/download.py +94 -0
  51. together/lib/cli/api/fine_tuning/list.py +44 -0
  52. together/lib/cli/api/fine_tuning/list_checkpoints.py +42 -0
  53. together/lib/cli/api/fine_tuning/list_events.py +35 -0
  54. together/lib/cli/api/fine_tuning/retrieve.py +27 -0
  55. together/lib/cli/api/models/__init__.py +15 -0
  56. together/lib/cli/api/models/list.py +51 -0
  57. together/lib/cli/api/{models.py → models/upload.py} +4 -51
  58. together/lib/types/fine_tuning.py +3 -0
  59. together/resources/beta/clusters/clusters.py +36 -28
  60. together/resources/beta/clusters/storage.py +30 -21
  61. together/types/__init__.py +13 -1
  62. together/types/beta/__init__.py +0 -2
  63. together/types/beta/cluster_create_params.py +3 -3
  64. together/types/beta/clusters/__init__.py +0 -1
  65. together/types/beta/clusters/cluster_storage.py +4 -0
  66. together/types/chat_completions.py +7 -0
  67. together/types/endpoints.py +4 -0
  68. together/types/files.py +8 -0
  69. together/types/fine_tuning_cancel_response.py +3 -0
  70. together/types/fine_tuning_list_response.py +3 -0
  71. together/types/finetune.py +27 -0
  72. together/types/finetune_response.py +2 -0
  73. together/types/models.py +2 -0
  74. {together-2.0.0a14.dist-info → together-2.0.0a16.dist-info}/METADATA +45 -2
  75. {together-2.0.0a14.dist-info → together-2.0.0a16.dist-info}/RECORD +79 -36
  76. together-2.0.0a16.dist-info/entry_points.txt +2 -0
  77. together/lib/cli/api/__init__.py +0 -0
  78. together/lib/cli/api/beta/clusters_storage.py +0 -152
  79. together/lib/cli/api/endpoints.py +0 -467
  80. together/lib/cli/api/files.py +0 -133
  81. together/lib/cli/cli.py +0 -73
  82. together/types/beta/cluster_create_response.py +0 -9
  83. together/types/beta/cluster_update_response.py +0 -9
  84. together/types/beta/clusters/storage_create_response.py +0 -9
  85. together-2.0.0a14.dist-info/entry_points.txt +0 -2
  86. /together/lib/cli/api/beta/{beta.py → __init__.py} +0 -0
  87. {together-2.0.0a14.dist-info → together-2.0.0a16.dist-info}/WHEEL +0 -0
  88. {together-2.0.0a14.dist-info → together-2.0.0a16.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: together
3
- Version: 2.0.0a14
3
+ Version: 2.0.0a16
4
4
  Summary: The official Python library for the together API
5
5
  Project-URL: Homepage, https://github.com/togethercomputer/together-py
6
6
  Project-URL: Repository, https://github.com/togethercomputer/together-py
@@ -33,12 +33,15 @@ Requires-Dist: rich>=13.7.1
33
33
  Requires-Dist: sniffio
34
34
  Requires-Dist: tabulate>=0.9.0
35
35
  Requires-Dist: tqdm>=4.67.1
36
+ Requires-Dist: types-pyyaml>=6.0.12.20250915
36
37
  Requires-Dist: types-tabulate>=0.9.0.20240106
37
38
  Requires-Dist: types-tqdm>=4.67.0.20250516
38
39
  Requires-Dist: typing-extensions<5,>=4.10
39
40
  Provides-Extra: aiohttp
40
41
  Requires-Dist: aiohttp; extra == 'aiohttp'
41
42
  Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
43
+ Provides-Extra: cli
44
+ Requires-Dist: pyyaml; extra == 'cli'
42
45
  Provides-Extra: pyarrow
43
46
  Requires-Dist: pyarrow-stubs>=10.0.1.7; extra == 'pyarrow'
44
47
  Requires-Dist: pyarrow>=16.1.0; extra == 'pyarrow'
@@ -236,7 +239,6 @@ cluster = client.beta.clusters.create(
236
239
  billing_type="RESERVED",
237
240
  cluster_name="cluster_name",
238
241
  driver_version="CUDA_12_5_555",
239
- duration_days=0,
240
242
  gpu_type="H100_SXM",
241
243
  num_gpus=0,
242
244
  region="us-central-8",
@@ -680,6 +682,47 @@ together models list
680
682
  together models upload --model-name my-org/my-model --model-source s3-or-hugging-face
681
683
  ```
682
684
 
685
+ ### Clusters
686
+
687
+ ```bash
688
+ # Help
689
+ together beta clusters --help
690
+
691
+ # Create a cluster
692
+ together beta clusters create
693
+
694
+ # List clusters
695
+ together beta clusters list
696
+
697
+ # Retrieve cluster details
698
+ together beta clusters retrieve [cluster-id]
699
+
700
+ # Update a cluster
701
+ together beta clusters update [cluster-id]
702
+
703
+ # Retrieve Together cluster configuration options such as regions, gpu types and drivers available
704
+ together beta clusters list-regions
705
+ ```
706
+
707
+ ##### Cluster Storage
708
+
709
+ ```bash
710
+ # Help
711
+ together beta clusters storage --help
712
+
713
+ # Create cluster storage volume
714
+ together beta clusters storage create
715
+
716
+ # List storage volumes
717
+ together beta clusters storage list
718
+
719
+ # Retrieve storage volume
720
+ together beta clusters storage retrieve [storage-id]
721
+
722
+ # Delete storage volume
723
+ together beta clusters storage delete [storage-id]
724
+ ```
725
+
683
726
  ## Contributing
684
727
 
685
728
  See [the contributing documentation](https://github.com/togethercomputer/together-py/tree/main/./CONTRIBUTING.md).
@@ -1,17 +1,19 @@
1
1
  together/__init__.py,sha256=ghwEH6EUrPERUwHVSXaCJVqS7QmLN7NsUxKJNXQrOYM,2842
2
- together/_base_client.py,sha256=U6Lhqesx9l1qhaYKaP2jR-_mIyqbNhAOo2r2bgTQegI,67249
3
- together/_client.py,sha256=SdKbatStb_gD9PQ1VFVs8_njHi7XJLOsiTjiloL4R1Q,39056
2
+ together/_base_client.py,sha256=KZXDmmA96Hu-YMTFtyDjSHXmoTkjjoKFyRxkkA3M2aY,73411
3
+ together/_client.py,sha256=KXpNfjeUUC3StDUBR9p5yO51casqsA7NfhFVhZoVSwo,39387
4
4
  together/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
5
5
  together/_constants.py,sha256=i39tJ7BP8nnqvdHFJwMhN6LWR6-jg5LLYiFudwCD3Ic,463
6
6
  together/_exceptions.py,sha256=cpi7uHZjLovYHSeH_aTV7vmDj3dLx7mNN6hEdOY1vjo,3224
7
7
  together/_files.py,sha256=UarpxWq6Ih30GuH3tuJGoqUH4PkHdCQ8ABXo92gYgT8,3620
8
- together/_models.py,sha256=3D65psj_C02Mw0K2zpBWrn1khmrvtEXgTTQ6P4r3tUY,31837
8
+ together/_models.py,sha256=R3MpO2z4XhTAnD3ObEks32suRXleF1g7BEgQTOLIxTs,32112
9
9
  together/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
10
10
  together/_resource.py,sha256=-ZTq9O5qf2YsgjJk_gwJs-CM_OG4p6gdMLcNWjuxFwQ,1112
11
11
  together/_response.py,sha256=lvqEsCbpD8SRJTjlhhUFGbnLUR_4-Qva-OApxfVdiY4,28800
12
12
  together/_streaming.py,sha256=sk6fVYbpdO3Y-0S5iwZTHQJ3N24UkK0KaupgUTftWZk,11825
13
- together/_types.py,sha256=LzaeqN09mUAEvRg_XrLzihdOaW0D_R9qrG7jKsFjnQY,7297
14
- together/_version.py,sha256=eBB42V294H5EYV8OZ2RRxKyFR-LsnbqEGYttngDMttQ,169
13
+ together/_types.py,sha256=6XJrgQABAp4xUfdSwlKJ3gAG0eRQHG92TwqqxgLh_tI,7596
14
+ together/_version.py,sha256=KrBQd6trfZ-62WQZY087FReuHWQooZCvvm8x38I0PoM,169
15
+ together/constants.py,sha256=U1SgiirDQMiT5XvyrGcnNxPKlFmWeKq3TGkWLtB705w,1305
16
+ together/error.py,sha256=Xn-OeVpHIP06zWuLlqCTdglks2UOZpjdXzi2P46NlqA,452
15
17
  together/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
18
  together/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
17
19
  together/_utils/_compat.py,sha256=rN17SSvjMoQE1GmKFTLniRuG1sKj2WAD5VjdLPeRlF0,1231
@@ -27,25 +29,64 @@ together/_utils/_typing.py,sha256=N_5PPuFNsaygbtA_npZd98SVN1LQQvFTKL6bkWPBZGU,47
27
29
  together/_utils/_utils.py,sha256=g9ftElB09kVT6EVfCIlD_nUfANhDX5_vZO61FDWoIQI,12334
28
30
  together/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
29
31
  together/lib/__init__.py,sha256=Qtdi6geFNzxE-F51eNDk1ESXYyYDt8b82MR1POANQBQ,394
32
+ together/lib/_google_colab.py,sha256=_-fqTU1NY2XfKttGjCH_b47W8g9xVIuQgcjn44STbVw,1338
30
33
  together/lib/constants.py,sha256=w8-zVl8XZiJxqMdhbWekigHJ0JUMPoV9R3ejUHIcUJk,2237
31
- together/lib/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- together/lib/cli/cli.py,sha256=BYoWSu5FGedL5FMpO4-4e14Cbc6_X2Y1tItUjdTcMpY,2010
33
- together/lib/cli/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- together/lib/cli/api/endpoints.py,sha256=MyliUrTuJWw2qFd80J27pFs9xTazIVAP0mqgRYxdVsw,14851
35
- together/lib/cli/api/evals.py,sha256=KkSvz2wIYmPQ3sFQBte6inNBZt1aptIkMVL5TKWTW5k,19074
36
- together/lib/cli/api/files.py,sha256=HbflC45PpzBIF0CE0TLucQaVr319ScL05VyAFKf2T6Y,3596
37
- together/lib/cli/api/fine_tuning.py,sha256=Tb4J9_LnHZHp73zNW1lHNSl_0UQfOd0yi9-IvMHBY08,22863
38
- together/lib/cli/api/models.py,sha256=Jfrl7gcbWAkbBQ1i1gCy485HHT2C4C784OMaaHZPiPw,4084
39
- together/lib/cli/api/utils.py,sha256=9WT9euOoIGD3FPP_Y9EIAfG39Io3kxNYZM6aFrONYZo,5678
40
- together/lib/cli/api/beta/beta.py,sha256=JA9dJVuqFmoqUyM6Rx4sqfrmQWjEEaHQ9xjmlL908U0,173
41
- together/lib/cli/api/beta/clusters.py,sha256=yDV1ut09OtUn4XrilAfaKWhtlMbW99FsuYXTgJl2dao,11427
42
- together/lib/cli/api/beta/clusters_storage.py,sha256=ydVLsylsQIEyaKAURS-NDmyUtuRaeIl3Vn-0mCA4PdQ,3804
34
+ together/lib/cli/__init__.py,sha256=zXBNfMDUsWMUVN7FgKNRzzZHpq8EjpdfR9carjCFtog,2005
35
+ together/lib/cli/api/_utils.py,sha256=r7Aifi6KdzqwlQrHLVrAeYp54EvU7HS07VNkE_DCmA8,5749
36
+ together/lib/cli/api/beta/__init__.py,sha256=JA9dJVuqFmoqUyM6Rx4sqfrmQWjEEaHQ9xjmlL908U0,173
37
+ together/lib/cli/api/beta/clusters/__init__.py,sha256=1i0jKTNS2dM9646Ph1By4fCSAU8ZzPbn6baRfYQnnXw,1256
38
+ together/lib/cli/api/beta/clusters/create.py,sha256=M7Fg2aAaba_vRUNOpF9gnMnWDM8JO1_nyOsUtyiFt0o,6671
39
+ together/lib/cli/api/beta/clusters/delete.py,sha256=BpLgzNZbU8nl2DK4W_OvVcr1IaVb5_5K-PfFtxx5OUs,1034
40
+ together/lib/cli/api/beta/clusters/get_credentials.py,sha256=N0EA4182Oq9hrB6h24yBDLJdzrAy2vNIti9m1oekDHo,5532
41
+ together/lib/cli/api/beta/clusters/list.py,sha256=5Zefe9bM-0v61aopOwDOlxNTByXsfybFRfHu9PUpiMc,499
42
+ together/lib/cli/api/beta/clusters/list_regions.py,sha256=I3g32rCNYscr2cjuh3U-RKdw3DCRKXqBLjoPpWJzPoQ,1107
43
+ together/lib/cli/api/beta/clusters/retrieve.py,sha256=rNszDap6SBl70DbWWJEO66WXdHbF1rWX_QFBk6ltxzY,749
44
+ together/lib/cli/api/beta/clusters/update.py,sha256=ZxxP8XBaNCFznAT7TmN_ogYeo8ew1KBNzAnkrzS0ALw,1325
45
+ together/lib/cli/api/beta/clusters/storage/__init__.py,sha256=RMPMzFwVdnMu5Fxgf4cmZcWKczQG5_RVB_vkxORac74,363
46
+ together/lib/cli/api/beta/clusters/storage/create.py,sha256=03JaXRsDxcLbCDxX4-8itX8o8rfTvGhaiK9PoUEEyXM,1129
47
+ together/lib/cli/api/beta/clusters/storage/delete.py,sha256=KSuCPG-KOZUZX1BlApksiELvicZD2hdl-uUumxjz4JA,1082
48
+ together/lib/cli/api/beta/clusters/storage/list.py,sha256=Pn12uJ7HhZ2MfRBeVMc8mdaB938JXqvKuKxHTzL3zlc,1076
49
+ together/lib/cli/api/beta/clusters/storage/retrieve.py,sha256=PnyZxZ_DKN-UNVITpOBP94y56hatbh1WOwqWYAV7eu8,772
50
+ together/lib/cli/api/endpoints/__init__.py,sha256=wZJvqaNxQhOZ6NLctrRjR2tbf6rL14ZGHQ_w-fmmCcI,1759
51
+ together/lib/cli/api/endpoints/availability_zones.py,sha256=DF1gxtmvhyQyIIOYw7QS00k2tDMJ1E5qPVoLu2gLBI8,766
52
+ together/lib/cli/api/endpoints/create.py,sha256=Q3P5FVJDL_Xa27JXL4FA-agP9GZDU23zyV5DM1QPeQE,4821
53
+ together/lib/cli/api/endpoints/delete.py,sha256=rvLcI_m5N8Mx2elNxJB4aPDuMuGmFcKaJcQO1BKauCA,447
54
+ together/lib/cli/api/endpoints/hardware.py,sha256=FufyNgnKl_VjFkUlJ4QmfUGPCpXuHF4AbmQGJ3c9C3o,1521
55
+ together/lib/cli/api/endpoints/list.py,sha256=EUr3p2VXNPiwED_LIzAPTmvjlpuPbAzCEGfzmCEl0mM,1734
56
+ together/lib/cli/api/endpoints/retrieve.py,sha256=KOBQ8BHV6D36Uujm-YCZ8gli56dyyVneivh5hHpqmMY,753
57
+ together/lib/cli/api/endpoints/start.py,sha256=H4WdoSUf1xNCW1YLTj0_rIAX7PJbJeHHXeKmpLNGWuo,821
58
+ together/lib/cli/api/endpoints/stop.py,sha256=NNsqEESvRLmbNKwVAx9JHEr3Ypwg88w4zK9GRMWmFtk,817
59
+ together/lib/cli/api/endpoints/update.py,sha256=FsU0e4wC9YGGTZd_FVFFSzEIEVi8b08U-JoAkYT8Ihs,2361
60
+ together/lib/cli/api/evals/__init__.py,sha256=gMUOFz1dhZdZKuk1iHMaWpAPpQHpTvPScacMJAj5i2U,342
61
+ together/lib/cli/api/evals/create.py,sha256=93avigFda2-q1FO_wZV67p_lY-6LkucqM_fOMriMn6Y,15516
62
+ together/lib/cli/api/evals/list.py,sha256=HdNykMS_iarC_u6963wiQ_roHKjiIKg9Z8Wj1eqsnaU,1633
63
+ together/lib/cli/api/evals/retrieve.py,sha256=1SapZXcKgJvsz2hYHgZnfaYLegrNYAYpPOlfIjW0RjY,607
64
+ together/lib/cli/api/evals/status.py,sha256=rBXn-WHUH_AGEP8RwEwoCqW17B7jKeAwdghrXNlYBJs,527
65
+ together/lib/cli/api/files/__init__.py,sha256=JwMzEzuFB58RDFoRQhGMgfYl12s-2IF082c5lUfytIY,474
66
+ together/lib/cli/api/files/check.py,sha256=0XOHofo4-diqAF1AlubzX9dftnOTWLjnW6bu5jYHMH0,442
67
+ together/lib/cli/api/files/delete.py,sha256=Scgs47JXX4b8SZYNhhgaI-RhZ7psMK9k0cAlqJg-SFg,460
68
+ together/lib/cli/api/files/list.py,sha256=8e19El5il3BoUSvGWje7stpTAZHM_bIUqGB1C3t-ip4,1030
69
+ together/lib/cli/api/files/retrieve.py,sha256=Z6pGY7TPEyUtrkxBOvrmQGECl8q8jV8MJ3Vg52UoMKM,457
70
+ together/lib/cli/api/files/retrieve_content.py,sha256=hF_Ir5RNDFLyOp96U7xXuWsS_WYHPnr1HpMCtQOOmBs,689
71
+ together/lib/cli/api/files/upload.py,sha256=MI64xbMVv5mqYbThTYa2DUENQWgAQuFia3xylsPZpVM,1058
72
+ together/lib/cli/api/fine_tuning/__init__.py,sha256=Swb4ivpbvyKPus36ZEbL2cPqPlHokbHmOU2bGxkvRZk,682
73
+ together/lib/cli/api/fine_tuning/cancel.py,sha256=HWkfQNsiub2RvNWJ0RBuZBWtv_C6y-DFXmXftktsurE,1050
74
+ together/lib/cli/api/fine_tuning/create.py,sha256=7N89MfjEBgejtzJTzf2CfUuB_m1bx4u9nYJBN6UUWV4,13860
75
+ together/lib/cli/api/fine_tuning/delete.py,sha256=vUGIGQxrNzhyNfYCUm4E5CAtHhIbxfGKEkI8E4MnSzc,1025
76
+ together/lib/cli/api/fine_tuning/download.py,sha256=08icXHGCWAym4Efv1Wj04AYaullS1dtDU2arQavy0kM,3154
77
+ together/lib/cli/api/fine_tuning/list.py,sha256=m05xce6letRaEqo_KB8rJ3tgz7AhYkqYrV51_wwy4I0,1529
78
+ together/lib/cli/api/fine_tuning/list_checkpoints.py,sha256=I1dFgfHTXfN7a3NvSAhnjvZWTcp64LcsUKqFOIqh7Jg,1418
79
+ together/lib/cli/api/fine_tuning/list_events.py,sha256=GUVuFFpJNL_BkxYVgtLSzuhBPdrU8p8itdCf5-tPNQM,981
80
+ together/lib/cli/api/fine_tuning/retrieve.py,sha256=IskJVcfWwxaB-0jOHZ2nrew4mozNixza9R-95psBzrY,870
81
+ together/lib/cli/api/models/__init__.py,sha256=eITfO7XSwhdRQMUYlmVKge_lpOCmKnEGL3PhvjQlttM,234
82
+ together/lib/cli/api/models/list.py,sha256=gcLh9Ek_2cPjhdiFC9T-1rnvdC6wMrEmXvo2EtsYy3Q,1593
83
+ together/lib/cli/api/models/upload.py,sha256=wG4EV2WO1eFVd0hOIY9YvQF2-yMdFW4YlryUYJJAHn0,2708
43
84
  together/lib/resources/__init__.py,sha256=ystIb0pBHQLuwUBtHJwhRgtjK3_TV6K0KuM8NGuuNoU,172
44
85
  together/lib/resources/files.py,sha256=Z_D23IvjYYWBpYrfYolCNfUslJBcE4PnU0WtuLsN67M,37277
45
86
  together/lib/resources/fine_tuning.py,sha256=A-hOJqcGSPzw24wwX6K27OqV3B-u43dfdrK4nj4ItTg,13088
46
87
  together/lib/types/__init__.py,sha256=1-kHsAp9Sh9HxjTGKfdHnF1nTS_cM_Tazv-3Z9hrEbY,205
47
88
  together/lib/types/error.py,sha256=i-rnTZPRZuJDUf1lM-52abG2JHWOUBTCh55zPNGoakg,135
48
- together/lib/types/fine_tuning.py,sha256=gTB66x4jrmxyWuKJGcqX_4aYcI2iGgZvL3MzMLePDC8,13325
89
+ together/lib/types/fine_tuning.py,sha256=sQ2DGDEEXegdKb9Bj4HqDFMZKURgHHSV7aeooZIMyPQ,13434
49
90
  together/lib/utils/__init__.py,sha256=F_CVqnvK-aEshMg-5FLFincPbhuVbsM6IKSCNyEByKs,545
50
91
  together/lib/utils/_log.py,sha256=mo5tDhyFTNqEj8MOcpy3bLmLBcC0OQ67orTw_nxFdcU,1930
51
92
  together/lib/utils/files.py,sha256=CVTFwI7yMzpaQ-GsGr1tD4O2kXA-i369Pi0eMnlWMmI,31854
@@ -74,15 +115,15 @@ together/resources/audio/voices.py,sha256=Lj9DtOcv_Dhaq3E5p7Oty1T_JkhrsGDZcDF91H
74
115
  together/resources/beta/__init__.py,sha256=x4J4_HKYN90Yqo_2cDzTi_SGNTIPlUFNUveTlKbF3CA,1002
75
116
  together/resources/beta/beta.py,sha256=d6UtBwDImqbUPR572NFK9adPiiPeYKyLvp-y03NvGNk,3610
76
117
  together/resources/beta/clusters/__init__.py,sha256=lW7cWkNzotbOcP4fSnFxvKlVrq1flpN4yC4hr-vuzKE,1041
77
- together/resources/beta/clusters/clusters.py,sha256=XU_Xp4i2q5Llj7nvSAgscsL8AuQoRNGxL235cw1f_YE,24423
78
- together/resources/beta/clusters/storage.py,sha256=79wtOoIkQP9Uch_gTfoAzprZhOSF9QxfdGREFTS_08E,18243
118
+ together/resources/beta/clusters/clusters.py,sha256=zCrhFT_gKPogIuhMiKUE3niJyu4p6a6JUSfymcQFqdA,24963
119
+ together/resources/beta/clusters/storage.py,sha256=YQwxLPB68qRTHh79isoVgQBMMKXdOW18KtkSg7xJ7FM,19087
79
120
  together/resources/chat/__init__.py,sha256=BVAfz9TM3DT5W9f_mt0P9YRxL_MsUxKCWAH6u1iogmA,1041
80
121
  together/resources/chat/chat.py,sha256=aJQQ4Zlof2NlrG53auI5omXPJVdG3c_vwnEkj-ahLG4,3688
81
122
  together/resources/chat/completions.py,sha256=u45dEoSvgyJZ86yI3-CZzPDOVOjBi_h9ZaxXBhXZPaw,57312
82
123
  together/resources/code_interpreter/__init__.py,sha256=qeNVuBUuYy66RDhyh4RDx_xsf0gTMIrrZkZHpkPy9r0,1146
83
124
  together/resources/code_interpreter/code_interpreter.py,sha256=ZrWQIn5FO-uau3qTt_HhsHiaclM_ZNfOqZI_AWT2SMk,10373
84
125
  together/resources/code_interpreter/sessions.py,sha256=Sl8X6-r1gds2VHhzpjPhfwYNTciZCJxAH-YjJerA_eU,5020
85
- together/types/__init__.py,sha256=LyZBx2A_Y_thLZWIWs9MnVHP-dhOKzToYiZqk14AfXw,4753
126
+ together/types/__init__.py,sha256=OJOudmSdr_aL6jPwLbkkQJivZHACb0wlUPAcAlHiDdQ,5210
86
127
  together/types/audio_speech_stream_chunk.py,sha256=npxlsMce0q4_VoJaZzfSh982TYTM0-j-zmhyI-9hP5o,346
87
128
  together/types/autoscaling.py,sha256=nlOvbwrsgJQsz2ALlunp9o4sRdAmLe1tinXKSBNa2Yg,447
88
129
  together/types/autoscaling_param.py,sha256=GNyqO4jV5zQie2BmOjfwpESxJ9IyVcz6p9wAxGIf6F0,544
@@ -90,6 +131,7 @@ together/types/batch_create_params.py,sha256=2vFTT9PsqBn_F8qvnQNCRahrdeFl0MMhUg5
90
131
  together/types/batch_create_response.py,sha256=wJgUqyNbJ8oPwgUWpHHWkJx65bN6llbudAhF94gaKWs,325
91
132
  together/types/batch_job.py,sha256=3z7fVqcWcm38QGqy9O3mTJvPiuvfc6jZDYTIQ-VrFso,1138
92
133
  together/types/batch_list_response.py,sha256=eOYgKgpo05jSVx_-79YCKQhsj2pdxZ8mEaOBPptrwC8,264
134
+ together/types/chat_completions.py,sha256=8zaq1jWlR06JCurcVS0mS9TPHqZjJrOEIR13ZFmdUn8,286
93
135
  together/types/code_interpreter_execute_params.py,sha256=n9YEbz2W5xCRUP2Coe6xYS914sUgP19Y4XolYa-iRao,1182
94
136
  together/types/completion.py,sha256=9t9bQc1x3s0LUGZ19fifWUosSGPTllO7kviY2Hvpkns,897
95
137
  together/types/completion_chunk.py,sha256=2GgVkgdnm7Ne-MnbFLakVTMIISkwXtAdn-CWdQ76D0U,1354
@@ -102,6 +144,7 @@ together/types/endpoint_list_avzones_response.py,sha256=LbzRkG7snD7Swy-t0E0MLXrl
102
144
  together/types/endpoint_list_params.py,sha256=83Mg5beLYX_ipn1X_izk7hDIO8q8YNEL-tjsv5AcNXo,506
103
145
  together/types/endpoint_list_response.py,sha256=LPyv8np_HctSW0QKstC8k7vF0RAejb6X9N2JowZtaEY,1010
104
146
  together/types/endpoint_update_params.py,sha256=ONGRuPZQe_C40N5tfnu-HyPBNFvPRWeA3A9lEtrligc,780
147
+ together/types/endpoints.py,sha256=K4EjqO0ISqC_qGHprlw5rVh8Wn56RjtA5lj5zjoWcNM,154
105
148
  together/types/eval_create_params.py,sha256=KH4Jn8jzyufANXm1EQ5Cu4DkzQlqmRa7_t4m5c9QHHw,8059
106
149
  together/types/eval_create_response.py,sha256=s8tjFerVLIm8J4-qmp-kZ-yP65PsjWZ2AtK-ObGUv30,429
107
150
  together/types/eval_list_params.py,sha256=pdKw4pK5FQMnyY76L7Yj2Q-mOXtJv9rg9BU3iAud4V0,483
@@ -114,7 +157,8 @@ together/types/file_list.py,sha256=AE9muto7B4HyABgt3k9obSbUG1GW09pVvB0POnEQeUg,2
114
157
  together/types/file_purpose.py,sha256=9sHEbQ1qy4V99KMT7R5Ya_VXutu1ZZG1pho-w2ZZ9OM,302
115
158
  together/types/file_response.py,sha256=Abmu-Ph-masbhAFePB64VhiswHEFmExWF34jaiTm4Lg,626
116
159
  together/types/file_type.py,sha256=lrvFtcJr0Wn5thWP4NihmrmK23AouK2e6Ev4LCCPg5A,218
117
- together/types/fine_tuning_cancel_response.py,sha256=gTrdjW-UdZ1nN151V4YJeDlozcq8FhKEZV6fw2pCflU,5806
160
+ together/types/files.py,sha256=2eB1LRTt8p1hwXGiln42qunPT-JVY2me5tpdPjFZwVQ,236
161
+ together/types/fine_tuning_cancel_response.py,sha256=1fbSVkAg0_hgMhH2uLiv11FqiYo1czf3h4QF5J0btVs,5917
118
162
  together/types/fine_tuning_content_params.py,sha256=_5rqZ2lk6FShmX-5Hj4A9jQdpPZP6lcgjXvnrC30G8k,711
119
163
  together/types/fine_tuning_delete_params.py,sha256=YwUcN_gFl9N2zuUJqyOrE0ngONL2N_OgfVw6h-sH2RE,273
120
164
  together/types/fine_tuning_delete_response.py,sha256=oWoJM51-2b_RIINhJSMyMelSKQkHFYrJjDLeD51dUgo,323
@@ -122,10 +166,11 @@ together/types/fine_tuning_estimate_price_params.py,sha256=LIlP1Z5C1EAQgOg3b3BZ1
122
166
  together/types/fine_tuning_estimate_price_response.py,sha256=lA2MUesE_C_Ia8U-rJRsqRGRzkZJno2dsIsrMmoQMIo,770
123
167
  together/types/fine_tuning_list_checkpoints_response.py,sha256=9S0kRl7ItqFU6CeodrB9jb1zgf7-Ehb7VGjsbKq_hBY,377
124
168
  together/types/fine_tuning_list_events_response.py,sha256=DeDJLF1IxQV47HOwfuVt8Zis5W2CKs3iKkKvwDxyswk,309
125
- together/types/fine_tuning_list_response.py,sha256=vdVZBQ4V1GFzHUBiRR0drEvKg1ASTyG5g84P0oM1S_c,5992
169
+ together/types/fine_tuning_list_response.py,sha256=9z6-9Tg4LX__T3V9SEm-NsbnBmz7E3L1-EiQLi61UQE,6103
170
+ together/types/finetune.py,sha256=fTMToJXPfBAD7L19WpkaimGtytRcIL80Cz2Fmhnbsps,1198
126
171
  together/types/finetune_event.py,sha256=0apAXe6Anx2_ffse2pOBJDxngCeuSvuDMYczZ0DtzZg,787
127
172
  together/types/finetune_event_type.py,sha256=Bm4lkBhsLI_kaD5yabsvW6BpnjXzZO_lwDtiEeMNXnw,824
128
- together/types/finetune_response.py,sha256=klN6uuZt1tQ_PJ3rt7OSd_Cf7f0MuUnFZ4uJ6ISdrEU,4975
173
+ together/types/finetune_response.py,sha256=yRia3VGyLbqUnxpHz4idMKZXglXlVQHrt9tJL_-YwpM,5018
129
174
  together/types/hardware_list_params.py,sha256=BbfiigtdQE0QNGFGr6o-Twg912x_riH5mbUNpZWYWO4,435
130
175
  together/types/hardware_list_response.py,sha256=KfGhnEy7qEW2Bzt4Q8b-JSvxG-IKIIFfcpWEQHS9YdM,1732
131
176
  together/types/image_data_b64.py,sha256=pLY7JDBb1HF1T29ACbae_xn6JQfttpqQVeG_jJeenZU,284
@@ -140,6 +185,7 @@ together/types/model_list_response.py,sha256=MvJLqK_tczrk8kCijb0HChLs706_pXJdf1E
140
185
  together/types/model_object.py,sha256=ixXrw0t4ZyGaINI69nG0uUVGjgTG9DNhlzeUaNxW7GY,745
141
186
  together/types/model_upload_params.py,sha256=8_mcHCUkmvTy0psgzTGZV2Gkw6RvNYNFVRo401i4Nfo,1033
142
187
  together/types/model_upload_response.py,sha256=rDG9A0Xp6ZTcmvvybUqWTChVopbUXinQKIyt4QcPtms,482
188
+ together/types/models.py,sha256=8kMkbf4robRU0pPBlgqidCeQWzDa4M9bpWr9ErJuyYk,108
143
189
  together/types/rerank_create_params.py,sha256=0cQRr-S7WnsYG0GQlcLeQJ__BzGWHGHdIMVr66-j1ws,1127
144
190
  together/types/rerank_create_response.py,sha256=KzRWbo578R3yY65tnJ82CA1Ntp_3eJBVKl4WSfoFVuI,773
145
191
  together/types/tool_choice.py,sha256=oO-sDUozOcrFXZ7I8OAUXIoTKDagv2rV9jU1p2DzHzg,375
@@ -156,19 +202,16 @@ together/types/audio/transcription_create_response.py,sha256=z8_pzJlzYjP4QxJhwbK
156
202
  together/types/audio/translation_create_params.py,sha256=6-iHFC2K2o72K5tj0lfD-Lb69JzV4_5t_x2sdj2Pafs,1232
157
203
  together/types/audio/translation_create_response.py,sha256=T6SUCExVMin1qSGamHuiWGWS84MZ92tZPBHD7NYm4IU,1843
158
204
  together/types/audio/voice_list_response.py,sha256=vS2yvGBz7U2cxnJkEr7BewT7j5ActDjn99k3QhhEKk4,517
159
- together/types/beta/__init__.py,sha256=R-G7zZw0WQOGXjL9vFS1Hzo4C-tf6flC60TEIQkSbD4,749
205
+ together/types/beta/__init__.py,sha256=RAasVz0AMEdhf8FlzbsSJ4gm3wp4Ir1Yw3KJOg9M2II,581
160
206
  together/types/beta/cluster.py,sha256=QE0KMFrKikFbz5lZytvGqai9IBPAr_3PC_kqZd4yCcA,1636
161
- together/types/beta/cluster_create_params.py,sha256=hbx5CVqA9EZyC8NX_TjKpHZ_wyK4yXL-uKghJoVpyB4,1510
162
- together/types/beta/cluster_create_response.py,sha256=3NZHOdgeaTPY3f7T0u9YGuAnRIWoa4VWQe7PVFztqMU,219
207
+ together/types/beta/cluster_create_params.py,sha256=HwAsWvvhhTyLiAzGk7yo15bNredUUANR4yvnjYj-h5Y,1500
163
208
  together/types/beta/cluster_delete_response.py,sha256=rQ3dxuhlCqiuJBaVUUH51tNOkT6Xl-gnp0rRUxI6fOo,219
164
209
  together/types/beta/cluster_list_regions_response.py,sha256=QzRO4ns6nrZvMcdTKF9Tjk7wcjXvYMQgiRztLIkEzxQ,391
165
210
  together/types/beta/cluster_list_response.py,sha256=Vctdf-x12g1Y4vJHJ06GFCBXKaVdU6m8Pyb9OV8IM1Q,277
166
211
  together/types/beta/cluster_update_params.py,sha256=C3OIOG1IyjV4_UeH24rzVbYAmSJiBT0Hs5bb3lXZCcU,328
167
- together/types/beta/cluster_update_response.py,sha256=xl7aZ6sqY5Ssgx69OGzL_5ecZvfqUmxsr1leH-6pU9s,219
168
- together/types/beta/clusters/__init__.py,sha256=ZRymRrNli_b5kAZNBY18EfY6ESfjDr9kqPbho5b2uHY,587
169
- together/types/beta/clusters/cluster_storage.py,sha256=lcnTy4KkRrPOplMScRxFQUyrLJlZpFUl0L7OlW8HT6k,246
212
+ together/types/beta/clusters/__init__.py,sha256=lQZ_CtOtxPVEFjzZVcA23QL03OAHy1nhkoHMEaRof58,503
213
+ together/types/beta/clusters/cluster_storage.py,sha256=LyQuFNZfypsXITxnJaPmo-YlgnTJ1Nj8rSAWj4HVy3g,344
170
214
  together/types/beta/clusters/storage_create_params.py,sha256=RbGMXdNQrKEegvez0Ev-wZLMKHcuy-BYmRPGsmYaa5I,485
171
- together/types/beta/clusters/storage_create_response.py,sha256=IYezSxk3npJhLk-MnEdwtejcmNIy9rddIHdAk_0txU0,219
172
215
  together/types/beta/clusters/storage_delete_response.py,sha256=U66KfWWOZpCgpQz0QriF-DF8UsTkW7d0_IeBP3kCqqU,218
173
216
  together/types/beta/clusters/storage_list_response.py,sha256=wVyyFEGA-I9g-U9ii64tGGgIlPs0XZ9WNKwn-JbnBgc,299
174
217
  together/types/beta/clusters/storage_update_params.py,sha256=urq_FjfZiYcmCo6qsmaVu1JG4RsOsSMYWwe_yDQ7w-A,289
@@ -183,8 +226,8 @@ together/types/chat/chat_completion_warning.py,sha256=_Dp7YKlxyY2HeZopTvT-Go7qqK
183
226
  together/types/chat/completion_create_params.py,sha256=GpOQIpL2hODOV-iPoilHxo5UYP_KHJ-zdZMP-VW87-g,13755
184
227
  together/types/code_interpreter/__init__.py,sha256=dAXfb3ryLMtcBalCfxxNu2wJVswVP8G1xXryZnahPQY,201
185
228
  together/types/code_interpreter/session_list_response.py,sha256=TRxLGFTmIY-KLpStKjJtsrm4EI6BBvakpx43B6pkhnw,662
186
- together-2.0.0a14.dist-info/METADATA,sha256=SttmhrjLu64bLfYJpZf1i-PjHJNQP71XKcQs2BpkjXA,20374
187
- together-2.0.0a14.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
188
- together-2.0.0a14.dist-info/entry_points.txt,sha256=4f4RAX89wQkx3AnfHXiGrKyg2fCPnwMd2UdPX48OczA,55
189
- together-2.0.0a14.dist-info/licenses/LICENSE,sha256=oSs-kmJHhMue4vIIPIxQMvXou9PbxgNdIX-r_AwfO7c,11338
190
- together-2.0.0a14.dist-info/RECORD,,
229
+ together-2.0.0a16.dist-info/METADATA,sha256=0VoI6xgnRwNl5aE1rHBnfLNf6ZaWw8fTBvokjshDkWY,21255
230
+ together-2.0.0a16.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
231
+ together-2.0.0a16.dist-info/entry_points.txt,sha256=urdkNVg6rlks26fHnWO7smiBtaZ6Vr75hlsoHSJ7TKc,51
232
+ together-2.0.0a16.dist-info/licenses/LICENSE,sha256=oSs-kmJHhMue4vIIPIxQMvXou9PbxgNdIX-r_AwfO7c,11338
233
+ together-2.0.0a16.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ together = together.lib.cli:main
File without changes
@@ -1,152 +0,0 @@
1
- import json as json_lib
2
- from typing import Any, Dict, List
3
-
4
- import click
5
- from rich import print
6
- from tabulate import tabulate
7
-
8
- from together import Together
9
- from together.lib.cli.api.utils import handle_api_errors
10
- from together.types.beta.clusters import ClusterStorage
11
-
12
-
13
- def print_storage(storage: List[ClusterStorage]) -> None:
14
- data: List[Dict[str, Any]] = []
15
- for volume in storage:
16
- data.append(
17
- {
18
- "ID": volume.volume_id,
19
- "Name": volume.volume_name,
20
- "Size": volume.size_tib,
21
- }
22
- )
23
- click.echo(tabulate(data, headers="keys", tablefmt="grid"))
24
-
25
-
26
- @click.group()
27
- @click.pass_context
28
- def storage(ctx: click.Context) -> None:
29
- """Clusters Storage API commands"""
30
- pass
31
-
32
-
33
- @storage.command()
34
- @click.option(
35
- "--region",
36
- required=True,
37
- type=str,
38
- help="Region to create the storage volume in",
39
- )
40
- @click.option(
41
- "--size-tib",
42
- required=True,
43
- type=int,
44
- help="Size of the storage volume in TiB",
45
- )
46
- @click.option(
47
- "--volume-name",
48
- required=True,
49
- type=str,
50
- help="Name of the storage volume",
51
- )
52
- @click.option(
53
- "--json",
54
- is_flag=True,
55
- help="Output in JSON format",
56
- )
57
- @click.pass_context
58
- @handle_api_errors("Clusters Storage")
59
- def create(ctx: click.Context, region: str, size_tib: int, volume_name: str, json: bool) -> None:
60
- """Create a storage volume"""
61
- client: Together = ctx.obj
62
-
63
- response = client.beta.clusters.storage.create(
64
- region=region,
65
- size_tib=size_tib,
66
- volume_name=volume_name,
67
- )
68
-
69
- if json:
70
- click.echo(json_lib.dumps(response.model_dump_json(), indent=2))
71
- else:
72
- click.echo(f"Storage volume created successfully")
73
- click.echo(response.volume_id)
74
-
75
-
76
- @storage.command()
77
- @click.argument(
78
- "volume-id",
79
- required=True,
80
- )
81
- @click.option(
82
- "--json",
83
- is_flag=True,
84
- help="Output in JSON format",
85
- )
86
- @click.pass_context
87
- @handle_api_errors("Clusters Storage")
88
- def retrieve(ctx: click.Context, volume_id: str, json: bool) -> None:
89
- """Retrieve a storage volume"""
90
- client: Together = ctx.obj
91
-
92
- if not json:
93
- click.echo(f"Clusters Storage: Retrieving storage volume...")
94
-
95
- response = client.beta.clusters.storage.retrieve(volume_id)
96
-
97
- if json:
98
- click.echo(json_lib.dumps(response.model_dump(), indent=2))
99
- else:
100
- print(response)
101
-
102
-
103
- @storage.command()
104
- @click.argument(
105
- "volume-id",
106
- required=True,
107
- )
108
- @click.option(
109
- "--json",
110
- is_flag=True,
111
- help="Output in JSON format",
112
- )
113
- @click.pass_context
114
- @handle_api_errors("Clusters Storage")
115
- def delete(ctx: click.Context, volume_id: str, json: bool) -> None:
116
- """Delete a storage volume"""
117
- client: Together = ctx.obj
118
-
119
- if json:
120
- response = client.beta.clusters.storage.delete(volume_id)
121
- click.echo(json_lib.dumps(response.model_dump(), indent=2))
122
- return
123
-
124
- storage = client.beta.clusters.storage.retrieve(volume_id)
125
- print_storage([storage])
126
- if not click.confirm(f"Clusters Storage: Are you sure you want to delete storage volume {storage.volume_name}?"):
127
- return
128
-
129
- click.echo("Clusters Storage: Deleting storage volume...")
130
- response = client.beta.clusters.storage.delete(volume_id)
131
-
132
- click.echo(f"Clusters Storage: Deleted storage volume {storage.volume_name}")
133
-
134
-
135
- @storage.command()
136
- @click.option(
137
- "--json",
138
- is_flag=True,
139
- help="Output in JSON format",
140
- )
141
- @click.pass_context
142
- @handle_api_errors("Clusters Storage")
143
- def list(ctx: click.Context, json: bool) -> None:
144
- """List storage volumes"""
145
- client: Together = ctx.obj
146
-
147
- response = client.beta.clusters.storage.list()
148
-
149
- if json:
150
- click.echo(json_lib.dumps(response.model_dump(), indent=2))
151
- else:
152
- print_storage(response.volumes)