together 2.0.0a18__tar.gz → 2.0.0a19__tar.gz
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.
- together-2.0.0a19/.release-please-manifest.json +3 -0
- {together-2.0.0a18 → together-2.0.0a19}/CHANGELOG.md +15 -0
- {together-2.0.0a18 → together-2.0.0a19}/PKG-INFO +5 -1
- {together-2.0.0a18 → together-2.0.0a19}/api.md +2 -12
- {together-2.0.0a18 → together-2.0.0a19}/examples/tokenize_data.py +1 -1
- {together-2.0.0a18 → together-2.0.0a19}/pyproject.toml +3 -1
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_client.py +0 -38
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_version.py +1 -1
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/__init__.py +2 -0
- together-2.0.0a19/src/together/lib/cli/api/beta/jig/__init__.py +52 -0
- together-2.0.0a19/src/together/lib/cli/api/beta/jig/_config.py +170 -0
- together-2.0.0a19/src/together/lib/cli/api/beta/jig/jig.py +664 -0
- together-2.0.0a19/src/together/lib/cli/api/beta/jig/secrets.py +138 -0
- together-2.0.0a19/src/together/lib/cli/api/beta/jig/volumes.py +509 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/hardware.py +3 -3
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/models/upload.py +1 -1
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/__init__.py +0 -14
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/jig/jig.py +8 -28
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/endpoints.py +103 -1
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/__init__.py +2 -2
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig_deploy_params.py +1 -1
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig_retrieve_logs_params.py +0 -3
- together-2.0.0a18/src/together/types/hardware_list_params.py → together-2.0.0a19/src/together/types/endpoint_list_hardware_params.py +2 -2
- together-2.0.0a18/src/together/types/hardware_list_response.py → together-2.0.0a19/src/together/types/endpoint_list_hardware_response.py +2 -2
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/test_jig.py +0 -2
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_endpoints.py +65 -0
- {together-2.0.0a18 → together-2.0.0a19}/uv.lock +1 -1
- together-2.0.0a18/.release-please-manifest.json +0 -3
- together-2.0.0a18/src/together/resources/hardware.py +0 -181
- together-2.0.0a18/tests/api_resources/test_hardware.py +0 -88
- {together-2.0.0a18 → together-2.0.0a19}/.gitignore +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/CONTRIBUTING.md +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/LICENSE +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/README.md +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/SECURITY.md +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/bin/check-release-environment +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/bin/publish-pypi +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/.keep +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/coqa-small.jsonl +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/coqa.jsonl +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/embedding.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/file-upload.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/fine_tuning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/image.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/examples/streaming.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/release-please-config.json +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/requirements-dev.lock +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_base_client.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_compat.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_constants.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_exceptions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_qs.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_resource.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_streaming.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_types.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_compat.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_datetime_parse.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_json.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_logs.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_proxy.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_reflection.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_resources_proxy.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_streams.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_sync.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_transform.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_typing.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/_utils/_utils.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/constants.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/error.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/.keep +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/_google_colab.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/_utils.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/create.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/delete.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/get_credentials.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/list_regions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/storage/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/storage/create.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/storage/delete.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/storage/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/storage/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/beta/clusters/update.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/availability_zones.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/create.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/delete.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/start.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/stop.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/endpoints/update.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/evals/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/evals/create.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/evals/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/evals/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/evals/status.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/check.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/delete.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/retrieve_content.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/files/upload.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/cancel.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/create.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/delete.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/download.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/list_checkpoints.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/list_events.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/fine_tuning/retrieve.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/models/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/cli/api/models/list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/constants.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/resources/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/resources/files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/resources/fine_tuning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/types/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/types/error.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/types/fine_tuning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/utils/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/utils/_log.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/utils/files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/utils/serializer.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/lib/utils/tools.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/py.typed +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/audio.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/speech.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/transcriptions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/translations.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/audio/voices.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/batches.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/beta.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/clusters/clusters.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/clusters/storage.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/jig/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/jig/queue.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/jig/secrets.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/beta/jig/volumes.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/chat/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/chat/chat.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/chat/completions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/code_interpreter/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/code_interpreter/code_interpreter.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/code_interpreter/sessions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/completions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/embeddings.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/evals.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/fine_tuning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/images.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/models/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/models/models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/models/uploads.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/rerank.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/resources/videos.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/speech_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/transcription_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/transcription_create_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/translation_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/translation_create_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio/voice_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/audio_speech_stream_chunk.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/autoscaling.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/autoscaling_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/batch_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/batch_create_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/batch_job.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/batch_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster_delete_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster_list_regions_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/cluster_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/cluster_storage.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/storage_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/storage_delete_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/storage_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/clusters/storage_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/deployment.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/deployment_logs.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_cancel_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_cancel_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_metrics_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_metrics_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_retrieve_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_retrieve_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_submit_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/queue_submit_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/secret.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/secret_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/secret_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/secret_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/volume.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/volume_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/volume_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig/volume_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/beta/jig_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_chunk.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_structured_message_image_url_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_structured_message_text_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_structured_message_video_url_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_usage.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/chat_completion_warning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat/completion_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/chat_completions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/code_interpreter/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/code_interpreter/session_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/code_interpreter_execute_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/completion.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/completion_chunk.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/completion_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/dedicated_endpoint.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/embedding.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/embedding_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoint_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoint_list_avzones_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoint_list_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoint_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoint_update_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/endpoints.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/eval_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/eval_create_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/eval_list_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/eval_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/eval_status_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/evaluation_job.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/execute_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/file_delete_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/file_list.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/file_purpose.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/file_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/file_type.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_cancel_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_content_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_delete_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_delete_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_estimate_price_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_estimate_price_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_list_checkpoints_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_list_events_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/fine_tuning_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/finetune.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/finetune_event.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/finetune_event_type.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/finetune_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/image_data_b64.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/image_data_url.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/image_file.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/image_generate_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/log_probs.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/model_list_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/model_list_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/model_object.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/model_upload_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/model_upload_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/models/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/models/upload_status_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/rerank_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/rerank_create_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/tool_choice.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/tool_choice_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/tools_param.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/training_method_dpo.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/training_method_sft.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/video_create_params.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/src/together/types/video_job.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/audio/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/audio/test_speech.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/audio/test_transcriptions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/audio/test_translations.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/audio/test_voices.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/clusters/test_storage.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/jig/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/jig/test_queue.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/jig/test_secrets.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/jig/test_volumes.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/beta/test_clusters.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/chat/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/chat/test_completions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/code_interpreter/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/code_interpreter/test_sessions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/models/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/models/test_uploads.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_batches.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_code_interpreter.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_completions.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_embeddings.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_evals.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_fine_tuning.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_images.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_rerank.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/api_resources/test_videos.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/conftest.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/constants.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/resources/__init__.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/resources/generate_hyperparameters.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/resources/test_completion.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/resources/test_completion_stream.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/integration/resources/test_files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/sample_file.txt +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_cli_utils.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_client.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_deepcopy.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_extract_files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_files.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_models.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_qs.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_required_args.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_response.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_streaming.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_transform.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_utils/test_datetime_parse.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_utils/test_json.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_utils/test_proxy.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/test_utils/test_typing.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_async_client.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_client.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_code_interpreter.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_files_checks.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_files_resource.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_fine_tuning_resources.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_imports.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_multipart_upload_manager.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_preference_openai.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/unit/test_video_url.py +0 -0
- {together-2.0.0a18 → together-2.0.0a19}/tests/utils.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.0-alpha.19 (2026-02-03)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v2.0.0-alpha.18...v2.0.0-alpha.19](https://github.com/togethercomputer/together-py/compare/v2.0.0-alpha.18...v2.0.0-alpha.19)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* internal: Add code samples to deployments features ([eaa20a5](https://github.com/togethercomputer/together-py/commit/eaa20a59aa3bf1d48026f0018060ef6b34d7b50d))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Chores
|
|
13
|
+
|
|
14
|
+
* **api:** move hardware listing feature under endpoints resource. ([ac6671a](https://github.com/togethercomputer/together-py/commit/ac6671a36b1c41374e7d491a37e7086718972e20))
|
|
15
|
+
* Fix CLI ([5d89415](https://github.com/togethercomputer/together-py/commit/5d8941523300914c62e4f97d354cdff664445517))
|
|
16
|
+
* run internal foramt ([45ef6b3](https://github.com/togethercomputer/together-py/commit/45ef6b3d97a49108f02eeeb4ec856bd7c352fd75))
|
|
17
|
+
|
|
3
18
|
## 2.0.0-alpha.18 (2026-01-31)
|
|
4
19
|
|
|
5
20
|
Full Changelog: [v2.0.0-alpha.17...v2.0.0-alpha.18](https://github.com/togethercomputer/together-py/compare/v2.0.0-alpha.17...v2.0.0-alpha.18)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: together
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0a19
|
|
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
|
|
@@ -32,11 +32,15 @@ Requires-Dist: pydantic<3,>=1.9.0
|
|
|
32
32
|
Requires-Dist: rich>=13.7.1
|
|
33
33
|
Requires-Dist: sniffio
|
|
34
34
|
Requires-Dist: tabulate>=0.9.0
|
|
35
|
+
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
|
|
35
36
|
Requires-Dist: tqdm>=4.67.1
|
|
36
37
|
Requires-Dist: types-pyyaml>=6.0.12.20250915
|
|
37
38
|
Requires-Dist: types-tabulate>=0.9.0.20240106
|
|
38
39
|
Requires-Dist: types-tqdm>=4.67.0.20250516
|
|
39
40
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
41
|
+
Provides-Extra: aiofiles
|
|
42
|
+
Requires-Dist: aiofiles>=25.0.0; extra == 'aiofiles'
|
|
43
|
+
Requires-Dist: types-aiofiles; extra == 'aiofiles'
|
|
40
44
|
Provides-Extra: aiohttp
|
|
41
45
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
42
46
|
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
|
|
@@ -338,6 +338,7 @@ from together.types import (
|
|
|
338
338
|
DedicatedEndpoint,
|
|
339
339
|
EndpointListResponse,
|
|
340
340
|
EndpointListAvzonesResponse,
|
|
341
|
+
EndpointListHardwareResponse,
|
|
341
342
|
)
|
|
342
343
|
```
|
|
343
344
|
|
|
@@ -349,18 +350,7 @@ Methods:
|
|
|
349
350
|
- <code title="get /endpoints">client.endpoints.<a href="./src/together/resources/endpoints.py">list</a>(\*\*<a href="src/together/types/endpoint_list_params.py">params</a>) -> <a href="./src/together/types/endpoint_list_response.py">EndpointListResponse</a></code>
|
|
350
351
|
- <code title="delete /endpoints/{endpointId}">client.endpoints.<a href="./src/together/resources/endpoints.py">delete</a>(endpoint_id) -> None</code>
|
|
351
352
|
- <code title="get /clusters/availability-zones">client.endpoints.<a href="./src/together/resources/endpoints.py">list_avzones</a>() -> <a href="./src/together/types/endpoint_list_avzones_response.py">EndpointListAvzonesResponse</a></code>
|
|
352
|
-
|
|
353
|
-
# Hardware
|
|
354
|
-
|
|
355
|
-
Types:
|
|
356
|
-
|
|
357
|
-
```python
|
|
358
|
-
from together.types import HardwareListResponse
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
Methods:
|
|
362
|
-
|
|
363
|
-
- <code title="get /hardware">client.hardware.<a href="./src/together/resources/hardware.py">list</a>(\*\*<a href="src/together/types/hardware_list_params.py">params</a>) -> <a href="./src/together/types/hardware_list_response.py">HardwareListResponse</a></code>
|
|
353
|
+
- <code title="get /hardware">client.endpoints.<a href="./src/together/resources/endpoints.py">list_hardware</a>(\*\*<a href="src/together/types/endpoint_list_hardware_params.py">params</a>) -> <a href="./src/together/types/endpoint_list_hardware_response.py">EndpointListHardwareResponse</a></code>
|
|
364
354
|
|
|
365
355
|
# Rerank
|
|
366
356
|
|
|
@@ -158,7 +158,7 @@ def process_data(args: argparse.Namespace) -> None:
|
|
|
158
158
|
prompt_field = args.prompt_field
|
|
159
159
|
completion_field = args.completion_field
|
|
160
160
|
separator = args.separator
|
|
161
|
-
|
|
161
|
+
|
|
162
162
|
if prompt_field in dataset.column_names and completion_field in dataset.column_names:
|
|
163
163
|
if "text" not in dataset.column_names:
|
|
164
164
|
dataset = dataset.map(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "together"
|
|
3
|
-
version = "2.0.0-alpha.
|
|
3
|
+
version = "2.0.0-alpha.19"
|
|
4
4
|
description = "The official Python library for the together API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -24,6 +24,7 @@ dependencies = [
|
|
|
24
24
|
"types-tqdm>=4.67.0.20250516",
|
|
25
25
|
"filelock>=3.13.1",
|
|
26
26
|
"types-pyyaml>=6.0.12.20250915",
|
|
27
|
+
"tomli>=2.0.0; python_version < '3.11'",
|
|
27
28
|
]
|
|
28
29
|
|
|
29
30
|
requires-python = ">= 3.9"
|
|
@@ -51,6 +52,7 @@ Repository = "https://github.com/togethercomputer/together-py"
|
|
|
51
52
|
|
|
52
53
|
[project.optional-dependencies]
|
|
53
54
|
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
|
|
55
|
+
aiofiles = ["aiofiles>=25.0.0", "types-aiofiles"]
|
|
54
56
|
pyarrow = ["pyarrow>=16.1.0", "pyarrow-stubs>=10.0.1.7"]
|
|
55
57
|
cli = ["PyYAML"]
|
|
56
58
|
|
|
@@ -45,7 +45,6 @@ if TYPE_CHECKING:
|
|
|
45
45
|
rerank,
|
|
46
46
|
videos,
|
|
47
47
|
batches,
|
|
48
|
-
hardware,
|
|
49
48
|
endpoints,
|
|
50
49
|
embeddings,
|
|
51
50
|
completions,
|
|
@@ -58,7 +57,6 @@ if TYPE_CHECKING:
|
|
|
58
57
|
from .resources.rerank import RerankResource, AsyncRerankResource
|
|
59
58
|
from .resources.videos import VideosResource, AsyncVideosResource
|
|
60
59
|
from .resources.batches import BatchesResource, AsyncBatchesResource
|
|
61
|
-
from .resources.hardware import HardwareResource, AsyncHardwareResource
|
|
62
60
|
from .resources.beta.beta import BetaResource, AsyncBetaResource
|
|
63
61
|
from .resources.chat.chat import ChatResource, AsyncChatResource
|
|
64
62
|
from .resources.endpoints import EndpointsResource, AsyncEndpointsResource
|
|
@@ -213,12 +211,6 @@ class Together(SyncAPIClient):
|
|
|
213
211
|
|
|
214
212
|
return EndpointsResource(self)
|
|
215
213
|
|
|
216
|
-
@cached_property
|
|
217
|
-
def hardware(self) -> HardwareResource:
|
|
218
|
-
from .resources.hardware import HardwareResource
|
|
219
|
-
|
|
220
|
-
return HardwareResource(self)
|
|
221
|
-
|
|
222
214
|
@cached_property
|
|
223
215
|
def rerank(self) -> RerankResource:
|
|
224
216
|
from .resources.rerank import RerankResource
|
|
@@ -484,12 +476,6 @@ class AsyncTogether(AsyncAPIClient):
|
|
|
484
476
|
|
|
485
477
|
return AsyncEndpointsResource(self)
|
|
486
478
|
|
|
487
|
-
@cached_property
|
|
488
|
-
def hardware(self) -> AsyncHardwareResource:
|
|
489
|
-
from .resources.hardware import AsyncHardwareResource
|
|
490
|
-
|
|
491
|
-
return AsyncHardwareResource(self)
|
|
492
|
-
|
|
493
479
|
@cached_property
|
|
494
480
|
def rerank(self) -> AsyncRerankResource:
|
|
495
481
|
from .resources.rerank import AsyncRerankResource
|
|
@@ -701,12 +687,6 @@ class TogetherWithRawResponse:
|
|
|
701
687
|
|
|
702
688
|
return EndpointsResourceWithRawResponse(self._client.endpoints)
|
|
703
689
|
|
|
704
|
-
@cached_property
|
|
705
|
-
def hardware(self) -> hardware.HardwareResourceWithRawResponse:
|
|
706
|
-
from .resources.hardware import HardwareResourceWithRawResponse
|
|
707
|
-
|
|
708
|
-
return HardwareResourceWithRawResponse(self._client.hardware)
|
|
709
|
-
|
|
710
690
|
@cached_property
|
|
711
691
|
def rerank(self) -> rerank.RerankResourceWithRawResponse:
|
|
712
692
|
from .resources.rerank import RerankResourceWithRawResponse
|
|
@@ -804,12 +784,6 @@ class AsyncTogetherWithRawResponse:
|
|
|
804
784
|
|
|
805
785
|
return AsyncEndpointsResourceWithRawResponse(self._client.endpoints)
|
|
806
786
|
|
|
807
|
-
@cached_property
|
|
808
|
-
def hardware(self) -> hardware.AsyncHardwareResourceWithRawResponse:
|
|
809
|
-
from .resources.hardware import AsyncHardwareResourceWithRawResponse
|
|
810
|
-
|
|
811
|
-
return AsyncHardwareResourceWithRawResponse(self._client.hardware)
|
|
812
|
-
|
|
813
787
|
@cached_property
|
|
814
788
|
def rerank(self) -> rerank.AsyncRerankResourceWithRawResponse:
|
|
815
789
|
from .resources.rerank import AsyncRerankResourceWithRawResponse
|
|
@@ -907,12 +881,6 @@ class TogetherWithStreamedResponse:
|
|
|
907
881
|
|
|
908
882
|
return EndpointsResourceWithStreamingResponse(self._client.endpoints)
|
|
909
883
|
|
|
910
|
-
@cached_property
|
|
911
|
-
def hardware(self) -> hardware.HardwareResourceWithStreamingResponse:
|
|
912
|
-
from .resources.hardware import HardwareResourceWithStreamingResponse
|
|
913
|
-
|
|
914
|
-
return HardwareResourceWithStreamingResponse(self._client.hardware)
|
|
915
|
-
|
|
916
884
|
@cached_property
|
|
917
885
|
def rerank(self) -> rerank.RerankResourceWithStreamingResponse:
|
|
918
886
|
from .resources.rerank import RerankResourceWithStreamingResponse
|
|
@@ -1010,12 +978,6 @@ class AsyncTogetherWithStreamedResponse:
|
|
|
1010
978
|
|
|
1011
979
|
return AsyncEndpointsResourceWithStreamingResponse(self._client.endpoints)
|
|
1012
980
|
|
|
1013
|
-
@cached_property
|
|
1014
|
-
def hardware(self) -> hardware.AsyncHardwareResourceWithStreamingResponse:
|
|
1015
|
-
from .resources.hardware import AsyncHardwareResourceWithStreamingResponse
|
|
1016
|
-
|
|
1017
|
-
return AsyncHardwareResourceWithStreamingResponse(self._client.hardware)
|
|
1018
|
-
|
|
1019
981
|
@cached_property
|
|
1020
982
|
def rerank(self) -> rerank.AsyncRerankResourceWithStreamingResponse:
|
|
1021
983
|
from .resources.rerank import AsyncRerankResourceWithStreamingResponse
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Jig CLI - deployment tool for Together AI."""
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from together.lib.cli.api.beta.jig.jig import (
|
|
6
|
+
init,
|
|
7
|
+
logs,
|
|
8
|
+
push,
|
|
9
|
+
build,
|
|
10
|
+
deploy,
|
|
11
|
+
status,
|
|
12
|
+
endpoint,
|
|
13
|
+
submit,
|
|
14
|
+
destroy,
|
|
15
|
+
dockerfile,
|
|
16
|
+
job_status,
|
|
17
|
+
queue_status,
|
|
18
|
+
list_deployments,
|
|
19
|
+
)
|
|
20
|
+
from together.lib.cli.api.beta.jig.secrets import secrets
|
|
21
|
+
from together.lib.cli.api.beta.jig.volumes import volumes
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@click.group()
|
|
25
|
+
@click.pass_context
|
|
26
|
+
def jig(ctx: click.Context) -> None:
|
|
27
|
+
"""Jig commands - deploy and manage containers"""
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def add_commands(parent: click.Group):
|
|
32
|
+
# Add subgroups
|
|
33
|
+
parent.add_command(secrets)
|
|
34
|
+
parent.add_command(volumes)
|
|
35
|
+
|
|
36
|
+
# Add main commands
|
|
37
|
+
parent.add_command(init)
|
|
38
|
+
parent.add_command(dockerfile)
|
|
39
|
+
parent.add_command(build)
|
|
40
|
+
parent.add_command(push)
|
|
41
|
+
parent.add_command(deploy)
|
|
42
|
+
parent.add_command(status)
|
|
43
|
+
parent.add_command(endpoint)
|
|
44
|
+
parent.add_command(logs)
|
|
45
|
+
parent.add_command(destroy)
|
|
46
|
+
parent.add_command(submit)
|
|
47
|
+
parent.add_command(job_status)
|
|
48
|
+
parent.add_command(queue_status)
|
|
49
|
+
parent.add_command(list_deployments)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
add_commands(jig)
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"""Configuration and state management for jig CLI."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import sys
|
|
7
|
+
import json
|
|
8
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from dataclasses import field, asdict, dataclass
|
|
11
|
+
|
|
12
|
+
import click
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
import tomli as tomllib
|
|
16
|
+
else:
|
|
17
|
+
try:
|
|
18
|
+
import tomllib
|
|
19
|
+
except ImportError:
|
|
20
|
+
import tomli as tomllib
|
|
21
|
+
|
|
22
|
+
# --- Environment Configuration ---
|
|
23
|
+
|
|
24
|
+
DEBUG = os.getenv("TOGETHER_DEBUG", "").strip()[:1] in ("y", "1", "t")
|
|
25
|
+
|
|
26
|
+
UPLOAD_CONCURRENCY_LIMIT = int(os.getenv("TOGETHER_UPLOAD_CONCURRENCY", "15"))
|
|
27
|
+
MULTIPART_CHUNK_SIZE_MB = int(os.getenv("TOGETHER_MULTIPART_CHUNK_SIZE_MB", "20"))
|
|
28
|
+
MULTIPART_THRESHOLD_MB = int(os.getenv("TOGETHER_MULTIPART_THRESHOLD_MB", "100"))
|
|
29
|
+
MAX_UPLOAD_RETRIES = 3
|
|
30
|
+
|
|
31
|
+
# Warmup configuration (for torch compile cache)
|
|
32
|
+
WARMUP_ENV_NAME = os.getenv("WARMUP_ENV_NAME", "TORCHINDUCTOR_CACHE_DIR")
|
|
33
|
+
WARMUP_DEST = os.getenv("WARMUP_DEST", "torch_cache")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# --- Configuration Dataclasses ---
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@dataclass
|
|
40
|
+
class ImageConfig:
|
|
41
|
+
"""Container image configuration from pyproject.toml"""
|
|
42
|
+
|
|
43
|
+
python_version: str = "3.11"
|
|
44
|
+
system_packages: list[str] = field(default_factory=list[str])
|
|
45
|
+
environment: dict[str, str] = field(default_factory=dict[str, str])
|
|
46
|
+
run: list[str] = field(default_factory=list[str])
|
|
47
|
+
cmd: str = "python app.py"
|
|
48
|
+
copy: list[str] = field(default_factory=list[str])
|
|
49
|
+
auto_include_git: bool = False
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_dict(cls, data: dict[str, Any]) -> ImageConfig:
|
|
53
|
+
return cls(**{k: v for k, v in data.items() if k in cls.__annotations__})
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@dataclass
|
|
57
|
+
class DeployConfig:
|
|
58
|
+
"""Deployment configuration"""
|
|
59
|
+
|
|
60
|
+
description: str = ""
|
|
61
|
+
gpu_type: str = "h100-80gb"
|
|
62
|
+
gpu_count: int = 1
|
|
63
|
+
cpu: float = 1
|
|
64
|
+
memory: float = 8
|
|
65
|
+
storage: int = 100
|
|
66
|
+
min_replicas: int = 1
|
|
67
|
+
max_replicas: int = 1
|
|
68
|
+
port: int = 8000
|
|
69
|
+
environment_variables: dict[str, str] = field(default_factory=dict[str, str])
|
|
70
|
+
command: Optional[list[str]] = None
|
|
71
|
+
autoscaling: dict[str, str] = field(default_factory=dict[str, str])
|
|
72
|
+
health_check_path: str = "/health"
|
|
73
|
+
termination_grace_period_seconds: int = 300
|
|
74
|
+
|
|
75
|
+
@classmethod
|
|
76
|
+
def from_dict(cls, data: dict[str, Any]) -> DeployConfig:
|
|
77
|
+
return cls(**{k: v for k, v in data.items() if k in cls.__annotations__})
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@dataclass
|
|
81
|
+
class Config:
|
|
82
|
+
"""Main configuration from jig.toml or pyproject.toml"""
|
|
83
|
+
|
|
84
|
+
model_name: str = ""
|
|
85
|
+
dockerfile: str = "Dockerfile"
|
|
86
|
+
image: ImageConfig = field(default_factory=ImageConfig)
|
|
87
|
+
deploy: DeployConfig = field(default_factory=DeployConfig)
|
|
88
|
+
_path: Path = field(default_factory=lambda: Path("pyproject.toml"))
|
|
89
|
+
|
|
90
|
+
@classmethod
|
|
91
|
+
def find(cls, config_path: Optional[str] = None, init: bool = False) -> Config:
|
|
92
|
+
"""Find specified config_path, pyproject.toml, or jig.toml"""
|
|
93
|
+
if config_path:
|
|
94
|
+
found_path = Path(config_path)
|
|
95
|
+
if not found_path.exists():
|
|
96
|
+
click.echo(f"ERROR: Configuration file not found: {config_path}", err=True)
|
|
97
|
+
sys.exit(1)
|
|
98
|
+
return cls.load(tomllib.load(found_path.open("rb")), found_path)
|
|
99
|
+
|
|
100
|
+
if (jigfile := Path("jig.toml")).exists():
|
|
101
|
+
return cls.load(tomllib.load(jigfile.open("rb")), jigfile)
|
|
102
|
+
|
|
103
|
+
if (pyproject_path := Path("pyproject.toml")).exists():
|
|
104
|
+
data = tomllib.load(pyproject_path.open("rb"))
|
|
105
|
+
if "tool" in data and "jig" in data["tool"]:
|
|
106
|
+
return cls.load(data, pyproject_path)
|
|
107
|
+
|
|
108
|
+
if init:
|
|
109
|
+
return cls()
|
|
110
|
+
click.echo(
|
|
111
|
+
"ERROR: No pyproject.toml or jig.toml found, use --config to specify a config path.",
|
|
112
|
+
err=True,
|
|
113
|
+
)
|
|
114
|
+
sys.exit(1)
|
|
115
|
+
|
|
116
|
+
@classmethod
|
|
117
|
+
def load(cls, data: dict[str, Any], path: Path) -> Config:
|
|
118
|
+
"""Load configuration from parsed TOML data"""
|
|
119
|
+
is_pyproject = path.name == "pyproject.toml"
|
|
120
|
+
|
|
121
|
+
jig_config = data.get("tool", {}).get("jig", {}) if is_pyproject else data
|
|
122
|
+
|
|
123
|
+
name = jig_config.get("name")
|
|
124
|
+
if name is None:
|
|
125
|
+
if is_pyproject:
|
|
126
|
+
name = data.get("project", {}).get("name", "")
|
|
127
|
+
else:
|
|
128
|
+
name = path.resolve().parent.name
|
|
129
|
+
click.echo(f"\N{PACKAGE} Name not set in config file or pyproject.toml - defaulting to {name}")
|
|
130
|
+
|
|
131
|
+
if autoscaling := jig_config.get("autoscaling", {}):
|
|
132
|
+
autoscaling["model"] = name
|
|
133
|
+
jig_config["deploy"]["autoscaling"] = autoscaling
|
|
134
|
+
|
|
135
|
+
return cls(
|
|
136
|
+
image=ImageConfig.from_dict(jig_config.get("image", {})),
|
|
137
|
+
deploy=DeployConfig.from_dict(jig_config.get("deploy", {})),
|
|
138
|
+
dockerfile=jig_config.get("dockerfile", "Dockerfile"),
|
|
139
|
+
model_name=name,
|
|
140
|
+
_path=path,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# --- State Management ---
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@dataclass
|
|
148
|
+
class State:
|
|
149
|
+
"""Persistent state stored in .jig.json"""
|
|
150
|
+
|
|
151
|
+
_config_dir: Path
|
|
152
|
+
registry_base_path: str = ""
|
|
153
|
+
secrets: dict[str, str] = field(default_factory=dict[str, str])
|
|
154
|
+
volumes: dict[str, str] = field(default_factory=dict[str, str])
|
|
155
|
+
|
|
156
|
+
@classmethod
|
|
157
|
+
def load(cls, config_dir: Path) -> State:
|
|
158
|
+
path = config_dir / ".jig.json"
|
|
159
|
+
try:
|
|
160
|
+
with open(path) as f:
|
|
161
|
+
data = {k: v for k, v in json.load(f).items() if k in cls.__annotations__ and not k.startswith("_")}
|
|
162
|
+
return cls(_config_dir=config_dir, **data)
|
|
163
|
+
except FileNotFoundError:
|
|
164
|
+
return cls(_config_dir=config_dir)
|
|
165
|
+
|
|
166
|
+
def save(self) -> None:
|
|
167
|
+
path = self._config_dir / ".jig.json"
|
|
168
|
+
data = {k: v for k, v in asdict(self).items() if not k.startswith("_")}
|
|
169
|
+
with open(path, "w") as f:
|
|
170
|
+
json.dump(data, f, indent=2)
|