From fe01fd08770ba763f2599c946a16b6b338e6e86f Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:50:01 +0000 Subject: [PATCH 1/5] [fern-generated] Update SDK Generated by Fern CLI Version: unknown Generators: - fernapi/fern-python-sdk: 4.61.0 --- .fern/metadata.json | 4 +- poetry.lock | 197 ++--- pyproject.toml | 2 +- src/hume/__init__.py | 4 +- src/hume/base_client.py | 19 - src/hume/core/client_wrapper.py | 4 +- .../empathic_voice/types/prosody_inference.py | 2 +- src/hume/expression_measurement/__init__.py | 34 - .../expression_measurement/batch/__init__.py | 463 ----------- .../expression_measurement/batch/client.py | 645 --------------- .../batch/raw_client.py | 743 ------------------ .../batch/types/__init__.py | 472 ----------- .../batch/types/alternative.py | 5 - .../batch/types/bcp_47_tag.py | 38 - .../batch/types/bounding_box.py | 41 - .../batch/types/burst_prediction.py | 31 - .../batch/types/classification.py | 5 - .../types/completed_embedding_generation.py | 32 - .../batch/types/completed_inference.py | 42 - .../batch/types/completed_state.py | 18 - .../batch/types/completed_tl_inference.py | 42 - .../batch/types/completed_training.py | 36 - .../batch/types/custom_model.py | 8 - .../batch/types/custom_model_id.py | 19 - .../batch/types/custom_model_prediction.py | 21 - .../batch/types/custom_model_request.py | 22 - .../batch/types/custom_model_version_id.py | 19 - .../types/custom_models_inference_job.py | 20 - .../batch/types/custom_models_training_job.py | 20 - .../batch/types/dataset.py | 8 - .../batch/types/dataset_id.py | 19 - .../batch/types/dataset_version_id.py | 19 - .../batch/types/descriptions_score.py | 27 - .../batch/types/direction.py | 5 - .../embedding_generation_base_request.py | 23 - .../batch/types/embedding_generation_job.py | 20 - .../batch/types/emotion_score.py | 27 - .../batch/types/error.py | 27 - .../batch/types/evaluation_args.py | 20 - .../batch/types/face.py | 51 -- .../batch/types/face_prediction.py | 52 -- .../batch/types/facemesh_prediction.py | 23 - .../batch/types/facs_score.py | 27 - .../batch/types/failed.py | 37 - .../batch/types/failed_state.py | 18 - .../batch/types/file.py | 37 - .../batch/types/granularity.py | 5 - .../grouped_predictions_burst_prediction.py | 25 - .../grouped_predictions_face_prediction.py | 25 - ...grouped_predictions_facemesh_prediction.py | 25 - ...grouped_predictions_language_prediction.py | 25 - .../grouped_predictions_ner_prediction.py | 25 - .../grouped_predictions_prosody_prediction.py | 25 - .../batch/types/in_progress.py | 27 - .../batch/types/in_progress_state.py | 18 - .../batch/types/inference_base_request.py | 49 -- .../batch/types/inference_prediction.py | 25 - .../batch/types/inference_request.py | 46 -- .../batch/types/inference_results.py | 22 - .../types/inference_source_predict_result.py | 26 - .../batch/types/job_embedding_generation.py | 28 - .../batch/types/job_id.py | 22 - .../batch/types/job_inference.py | 34 - .../batch/types/job_tl_inference.py | 28 - .../batch/types/job_training.py | 28 - .../batch/types/language.py | 33 - .../batch/types/language_prediction.py | 56 -- .../batch/types/models.py | 33 - .../batch/types/models_predictions.py | 36 - .../expression_measurement/batch/types/ner.py | 28 - .../batch/types/ner_prediction.py | 62 -- .../batch/types/null.py | 5 - .../batch/types/position_interval.py | 31 - ...dictions_optional_null_burst_prediction.py | 22 - ...edictions_optional_null_face_prediction.py | 22 - ...tions_optional_null_facemesh_prediction.py | 22 - ...nscription_metadata_language_prediction.py | 22 - ...l_transcription_metadata_ner_prediction.py | 22 - ...anscription_metadata_prosody_prediction.py | 22 - .../batch/types/prosody.py | 32 - .../batch/types/prosody_prediction.py | 40 - .../batch/types/queued.py | 22 - .../batch/types/queued_state.py | 18 - .../batch/types/registry_file_detail.py | 27 - .../batch/types/regression.py | 5 - .../batch/types/sentiment_score.py | 27 - .../batch/types/sort_by.py | 5 - .../batch/types/source.py | 58 -- .../batch/types/source_file.py | 18 - .../batch/types/source_text_source.py | 17 - .../batch/types/source_url.py | 18 - .../batch/types/state_embedding_generation.py | 82 -- ...neration_completed_embedding_generation.py | 18 - .../state_embedding_generation_failed.py | 18 - .../state_embedding_generation_in_progress.py | 18 - .../state_embedding_generation_queued.py | 18 - .../batch/types/state_inference.py | 79 -- .../batch/types/state_tl_inference.py | 81 -- ...ate_tl_inference_completed_tl_inference.py | 18 - .../batch/types/state_tl_inference_failed.py | 18 - .../types/state_tl_inference_in_progress.py | 18 - .../batch/types/state_tl_inference_queued.py | 18 - .../batch/types/state_training.py | 80 -- .../state_training_completed_training.py | 18 - .../batch/types/state_training_failed.py | 18 - .../batch/types/state_training_in_progress.py | 18 - .../batch/types/state_training_queued.py | 18 - .../batch/types/status.py | 5 - .../expression_measurement/batch/types/tag.py | 20 - .../batch/types/target.py | 5 - .../batch/types/task.py | 40 - .../batch/types/task_classification.py | 17 - .../batch/types/task_regression.py | 17 - .../batch/types/text_source.py | 5 - .../batch/types/time_interval.py | 31 - .../batch/types/tl_inference_base_request.py | 36 - .../batch/types/tl_inference_prediction.py | 26 - .../batch/types/tl_inference_results.py | 22 - .../tl_inference_source_predict_result.py | 26 - .../batch/types/toxicity_score.py | 27 - .../batch/types/training_base_request.py | 31 - .../batch/types/training_custom_model.py | 20 - .../batch/types/transcription.py | 70 -- .../batch/types/transcription_metadata.py | 29 - .../batch/types/type.py | 5 - .../batch/types/unconfigurable.py | 5 - .../batch/types/union_job.py | 5 - .../batch/types/union_predict_result.py | 5 - .../expression_measurement/batch/types/url.py | 22 - .../batch/types/validation_args.py | 20 - .../batch/types/when.py | 5 - .../batch/types/window.py | 33 - src/hume/expression_measurement/raw_client.py | 13 - .../expression_measurement/stream/__init__.py | 132 ---- .../stream/stream/__init__.py | 100 --- .../stream/stream/client.py | 161 ---- .../stream/stream/raw_client.py | 138 ---- .../stream/stream/types/__init__.py | 98 --- .../stream/stream/types/config.py | 62 -- .../stream/stream/types/job_details.py | 26 - .../stream/types/stream_error_message.py | 42 - .../stream/stream/types/stream_face.py | 53 -- .../stream/stream/types/stream_language.py | 36 - .../stream/types/stream_model_predictions.py | 62 -- .../types/stream_model_predictions_burst.py | 24 - ...odel_predictions_burst_predictions_item.py | 22 - .../types/stream_model_predictions_face.py | 24 - ...model_predictions_face_predictions_item.py | 44 -- .../stream_model_predictions_facemesh.py | 24 - ...l_predictions_facemesh_predictions_item.py | 20 - .../stream_model_predictions_job_details.py | 26 - .../stream_model_predictions_language.py | 24 - ...l_predictions_language_predictions_item.py | 31 - .../types/stream_model_predictions_prosody.py | 24 - ...el_predictions_prosody_predictions_item.py | 22 - .../types/stream_models_endpoint_payload.py | 72 -- .../stream/types/stream_warning_message.py | 42 - .../stream_warning_message_job_details.py | 26 - .../stream/stream/types/subscribe_event.py | 9 - .../stream/types/__init__.py | 62 -- .../stream/types/emotion_embedding.py | 7 - .../stream/types/emotion_embedding_item.py | 27 - .../stream/types/sentiment.py | 7 - .../stream/types/sentiment_item.py | 27 - .../stream/types/stream_bounding_box.py | 41 - .../stream/types/text_position.py | 31 - .../stream/types/time_range.py | 31 - .../stream/types/toxicity.py | 7 - .../stream/types/toxicity_item.py | 27 - .../wire/test_expressionMeasurement_batch.py | 43 - wiremock/wiremock-mappings.json | 2 +- 171 files changed, 107 insertions(+), 7286 deletions(-) delete mode 100644 src/hume/expression_measurement/__init__.py delete mode 100644 src/hume/expression_measurement/batch/__init__.py delete mode 100644 src/hume/expression_measurement/batch/client.py delete mode 100644 src/hume/expression_measurement/batch/raw_client.py delete mode 100644 src/hume/expression_measurement/batch/types/__init__.py delete mode 100644 src/hume/expression_measurement/batch/types/alternative.py delete mode 100644 src/hume/expression_measurement/batch/types/bcp_47_tag.py delete mode 100644 src/hume/expression_measurement/batch/types/bounding_box.py delete mode 100644 src/hume/expression_measurement/batch/types/burst_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/classification.py delete mode 100644 src/hume/expression_measurement/batch/types/completed_embedding_generation.py delete mode 100644 src/hume/expression_measurement/batch/types/completed_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/completed_state.py delete mode 100644 src/hume/expression_measurement/batch/types/completed_tl_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/completed_training.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_model.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_model_id.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_model_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_model_request.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_model_version_id.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_models_inference_job.py delete mode 100644 src/hume/expression_measurement/batch/types/custom_models_training_job.py delete mode 100644 src/hume/expression_measurement/batch/types/dataset.py delete mode 100644 src/hume/expression_measurement/batch/types/dataset_id.py delete mode 100644 src/hume/expression_measurement/batch/types/dataset_version_id.py delete mode 100644 src/hume/expression_measurement/batch/types/descriptions_score.py delete mode 100644 src/hume/expression_measurement/batch/types/direction.py delete mode 100644 src/hume/expression_measurement/batch/types/embedding_generation_base_request.py delete mode 100644 src/hume/expression_measurement/batch/types/embedding_generation_job.py delete mode 100644 src/hume/expression_measurement/batch/types/emotion_score.py delete mode 100644 src/hume/expression_measurement/batch/types/error.py delete mode 100644 src/hume/expression_measurement/batch/types/evaluation_args.py delete mode 100644 src/hume/expression_measurement/batch/types/face.py delete mode 100644 src/hume/expression_measurement/batch/types/face_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/facemesh_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/facs_score.py delete mode 100644 src/hume/expression_measurement/batch/types/failed.py delete mode 100644 src/hume/expression_measurement/batch/types/failed_state.py delete mode 100644 src/hume/expression_measurement/batch/types/file.py delete mode 100644 src/hume/expression_measurement/batch/types/granularity.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_burst_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_face_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_facemesh_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_language_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_ner_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/grouped_predictions_prosody_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/in_progress.py delete mode 100644 src/hume/expression_measurement/batch/types/in_progress_state.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_base_request.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_request.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_results.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_source_predict_result.py delete mode 100644 src/hume/expression_measurement/batch/types/job_embedding_generation.py delete mode 100644 src/hume/expression_measurement/batch/types/job_id.py delete mode 100644 src/hume/expression_measurement/batch/types/job_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/job_tl_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/job_training.py delete mode 100644 src/hume/expression_measurement/batch/types/language.py delete mode 100644 src/hume/expression_measurement/batch/types/language_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/models.py delete mode 100644 src/hume/expression_measurement/batch/types/models_predictions.py delete mode 100644 src/hume/expression_measurement/batch/types/ner.py delete mode 100644 src/hume/expression_measurement/batch/types/ner_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/null.py delete mode 100644 src/hume/expression_measurement/batch/types/position_interval.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_null_burst_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_null_face_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_null_facemesh_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_language_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_ner_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_prosody_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/prosody.py delete mode 100644 src/hume/expression_measurement/batch/types/prosody_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/queued.py delete mode 100644 src/hume/expression_measurement/batch/types/queued_state.py delete mode 100644 src/hume/expression_measurement/batch/types/registry_file_detail.py delete mode 100644 src/hume/expression_measurement/batch/types/regression.py delete mode 100644 src/hume/expression_measurement/batch/types/sentiment_score.py delete mode 100644 src/hume/expression_measurement/batch/types/sort_by.py delete mode 100644 src/hume/expression_measurement/batch/types/source.py delete mode 100644 src/hume/expression_measurement/batch/types/source_file.py delete mode 100644 src/hume/expression_measurement/batch/types/source_text_source.py delete mode 100644 src/hume/expression_measurement/batch/types/source_url.py delete mode 100644 src/hume/expression_measurement/batch/types/state_embedding_generation.py delete mode 100644 src/hume/expression_measurement/batch/types/state_embedding_generation_completed_embedding_generation.py delete mode 100644 src/hume/expression_measurement/batch/types/state_embedding_generation_failed.py delete mode 100644 src/hume/expression_measurement/batch/types/state_embedding_generation_in_progress.py delete mode 100644 src/hume/expression_measurement/batch/types/state_embedding_generation_queued.py delete mode 100644 src/hume/expression_measurement/batch/types/state_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/state_tl_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/state_tl_inference_completed_tl_inference.py delete mode 100644 src/hume/expression_measurement/batch/types/state_tl_inference_failed.py delete mode 100644 src/hume/expression_measurement/batch/types/state_tl_inference_in_progress.py delete mode 100644 src/hume/expression_measurement/batch/types/state_tl_inference_queued.py delete mode 100644 src/hume/expression_measurement/batch/types/state_training.py delete mode 100644 src/hume/expression_measurement/batch/types/state_training_completed_training.py delete mode 100644 src/hume/expression_measurement/batch/types/state_training_failed.py delete mode 100644 src/hume/expression_measurement/batch/types/state_training_in_progress.py delete mode 100644 src/hume/expression_measurement/batch/types/state_training_queued.py delete mode 100644 src/hume/expression_measurement/batch/types/status.py delete mode 100644 src/hume/expression_measurement/batch/types/tag.py delete mode 100644 src/hume/expression_measurement/batch/types/target.py delete mode 100644 src/hume/expression_measurement/batch/types/task.py delete mode 100644 src/hume/expression_measurement/batch/types/task_classification.py delete mode 100644 src/hume/expression_measurement/batch/types/task_regression.py delete mode 100644 src/hume/expression_measurement/batch/types/text_source.py delete mode 100644 src/hume/expression_measurement/batch/types/time_interval.py delete mode 100644 src/hume/expression_measurement/batch/types/tl_inference_base_request.py delete mode 100644 src/hume/expression_measurement/batch/types/tl_inference_prediction.py delete mode 100644 src/hume/expression_measurement/batch/types/tl_inference_results.py delete mode 100644 src/hume/expression_measurement/batch/types/tl_inference_source_predict_result.py delete mode 100644 src/hume/expression_measurement/batch/types/toxicity_score.py delete mode 100644 src/hume/expression_measurement/batch/types/training_base_request.py delete mode 100644 src/hume/expression_measurement/batch/types/training_custom_model.py delete mode 100644 src/hume/expression_measurement/batch/types/transcription.py delete mode 100644 src/hume/expression_measurement/batch/types/transcription_metadata.py delete mode 100644 src/hume/expression_measurement/batch/types/type.py delete mode 100644 src/hume/expression_measurement/batch/types/unconfigurable.py delete mode 100644 src/hume/expression_measurement/batch/types/union_job.py delete mode 100644 src/hume/expression_measurement/batch/types/union_predict_result.py delete mode 100644 src/hume/expression_measurement/batch/types/url.py delete mode 100644 src/hume/expression_measurement/batch/types/validation_args.py delete mode 100644 src/hume/expression_measurement/batch/types/when.py delete mode 100644 src/hume/expression_measurement/batch/types/window.py delete mode 100644 src/hume/expression_measurement/raw_client.py delete mode 100644 src/hume/expression_measurement/stream/__init__.py delete mode 100644 src/hume/expression_measurement/stream/stream/__init__.py delete mode 100644 src/hume/expression_measurement/stream/stream/client.py delete mode 100644 src/hume/expression_measurement/stream/stream/raw_client.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/__init__.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/config.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/job_details.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_error_message.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_face.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_language.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst_predictions_item.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face_predictions_item.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh_predictions_item.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_job_details.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language_predictions_item.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody_predictions_item.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_models_endpoint_payload.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_warning_message.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/stream_warning_message_job_details.py delete mode 100644 src/hume/expression_measurement/stream/stream/types/subscribe_event.py delete mode 100644 src/hume/expression_measurement/stream/types/__init__.py delete mode 100644 src/hume/expression_measurement/stream/types/emotion_embedding.py delete mode 100644 src/hume/expression_measurement/stream/types/emotion_embedding_item.py delete mode 100644 src/hume/expression_measurement/stream/types/sentiment.py delete mode 100644 src/hume/expression_measurement/stream/types/sentiment_item.py delete mode 100644 src/hume/expression_measurement/stream/types/stream_bounding_box.py delete mode 100644 src/hume/expression_measurement/stream/types/text_position.py delete mode 100644 src/hume/expression_measurement/stream/types/time_range.py delete mode 100644 src/hume/expression_measurement/stream/types/toxicity.py delete mode 100644 src/hume/expression_measurement/stream/types/toxicity_item.py delete mode 100644 tests/wire/test_expressionMeasurement_batch.py diff --git a/.fern/metadata.json b/.fern/metadata.json index a904d659..14942f50 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -64,6 +64,6 @@ } ] }, - "originGitCommit": "274a9e627c776728cbf8da2fc71627448d122f99", - "sdkVersion": "0.13.12" + "originGitCommit": "2968d0bfb0c9e8d381a274972edb6f7948cf77c6", + "sdkVersion": "0.13.14" } \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index e0a4c50f..00e47cb2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -201,13 +201,13 @@ dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest [[package]] name = "beautifulsoup4" -version = "4.14.3" +version = "4.15.0" description = "Screen-scraping library" optional = true python-versions = ">=3.7.0" files = [ - {file = "beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb"}, - {file = "beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86"}, + {file = "beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9"}, + {file = "beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7"}, ] [package.dependencies] @@ -241,13 +241,13 @@ css = ["tinycss2 (>=1.1.0,<1.5)"] [[package]] name = "certifi" -version = "2026.4.22" +version = "2026.5.20" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" files = [ - {file = "certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a"}, - {file = "certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580"}, + {file = "certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897"}, + {file = "certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d"}, ] [[package]] @@ -647,41 +647,41 @@ toml = ["tomli"] [[package]] name = "debugpy" -version = "1.8.20" +version = "1.8.21" description = "An implementation of the Debug Adapter Protocol for Python" optional = true python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.20-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:157e96ffb7f80b3ad36d808646198c90acb46fdcfd8bb1999838f0b6f2b59c64"}, - {file = "debugpy-1.8.20-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:c1178ae571aff42e61801a38b007af504ec8e05fde1c5c12e5a7efef21009642"}, - {file = "debugpy-1.8.20-cp310-cp310-win32.whl", hash = "sha256:c29dd9d656c0fbd77906a6e6a82ae4881514aa3294b94c903ff99303e789b4a2"}, - {file = "debugpy-1.8.20-cp310-cp310-win_amd64.whl", hash = "sha256:3ca85463f63b5dd0aa7aaa933d97cbc47c174896dcae8431695872969f981893"}, - {file = "debugpy-1.8.20-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:eada6042ad88fa1571b74bd5402ee8b86eded7a8f7b827849761700aff171f1b"}, - {file = "debugpy-1.8.20-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:7de0b7dfeedc504421032afba845ae2a7bcc32ddfb07dae2c3ca5442f821c344"}, - {file = "debugpy-1.8.20-cp311-cp311-win32.whl", hash = "sha256:773e839380cf459caf73cc533ea45ec2737a5cc184cf1b3b796cd4fd98504fec"}, - {file = "debugpy-1.8.20-cp311-cp311-win_amd64.whl", hash = "sha256:1f7650546e0eded1902d0f6af28f787fa1f1dbdbc97ddabaf1cd963a405930cb"}, - {file = "debugpy-1.8.20-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:4ae3135e2089905a916909ef31922b2d733d756f66d87345b3e5e52b7a55f13d"}, - {file = "debugpy-1.8.20-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:88f47850a4284b88bd2bfee1f26132147d5d504e4e86c22485dfa44b97e19b4b"}, - {file = "debugpy-1.8.20-cp312-cp312-win32.whl", hash = "sha256:4057ac68f892064e5f98209ab582abfee3b543fb55d2e87610ddc133a954d390"}, - {file = "debugpy-1.8.20-cp312-cp312-win_amd64.whl", hash = "sha256:a1a8f851e7cf171330679ef6997e9c579ef6dd33c9098458bd9986a0f4ca52e3"}, - {file = "debugpy-1.8.20-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:5dff4bb27027821fdfcc9e8f87309a28988231165147c31730128b1c983e282a"}, - {file = "debugpy-1.8.20-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:84562982dd7cf5ebebfdea667ca20a064e096099997b175fe204e86817f64eaf"}, - {file = "debugpy-1.8.20-cp313-cp313-win32.whl", hash = "sha256:da11dea6447b2cadbf8ce2bec59ecea87cc18d2c574980f643f2d2dfe4862393"}, - {file = "debugpy-1.8.20-cp313-cp313-win_amd64.whl", hash = "sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7"}, - {file = "debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173"}, - {file = "debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad"}, - {file = "debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f"}, - {file = "debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be"}, - {file = "debugpy-1.8.20-cp38-cp38-macosx_15_0_x86_64.whl", hash = "sha256:b773eb026a043e4d9c76265742bc846f2f347da7e27edf7fe97716ea19d6bfc5"}, - {file = "debugpy-1.8.20-cp38-cp38-manylinux_2_34_x86_64.whl", hash = "sha256:20d6e64ea177ab6732bffd3ce8fc6fb8879c60484ce14c3b3fe183b1761459ca"}, - {file = "debugpy-1.8.20-cp38-cp38-win32.whl", hash = "sha256:0dfd9adb4b3c7005e9c33df430bcdd4e4ebba70be533e0066e3a34d210041b66"}, - {file = "debugpy-1.8.20-cp38-cp38-win_amd64.whl", hash = "sha256:60f89411a6c6afb89f18e72e9091c3dfbcfe3edc1066b2043a1f80a3bbb3e11f"}, - {file = "debugpy-1.8.20-cp39-cp39-macosx_15_0_x86_64.whl", hash = "sha256:bff8990f040dacb4c314864da95f7168c5a58a30a66e0eea0fb85e2586a92cd6"}, - {file = "debugpy-1.8.20-cp39-cp39-manylinux_2_34_x86_64.whl", hash = "sha256:70ad9ae09b98ac307b82c16c151d27ee9d68ae007a2e7843ba621b5ce65333b5"}, - {file = "debugpy-1.8.20-cp39-cp39-win32.whl", hash = "sha256:9eeed9f953f9a23850c85d440bf51e3c56ed5d25f8560eeb29add815bd32f7ee"}, - {file = "debugpy-1.8.20-cp39-cp39-win_amd64.whl", hash = "sha256:760813b4fff517c75bfe7923033c107104e76acfef7bda011ffea8736e9a66f8"}, - {file = "debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7"}, - {file = "debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33"}, + {file = "debugpy-1.8.21-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:8eeab7b5462f683452c57c0126aaa5ec4e974ddb705f39ba87dff8818c8e08f9"}, + {file = "debugpy-1.8.21-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:0fddfdc130ac6d8bfc0415b0409822fa901c8f310e5c945ac5653a0352532344"}, + {file = "debugpy-1.8.21-cp310-cp310-win32.whl", hash = "sha256:72b5d676c4cbfac3bac5bb01c138a4656e843f93f03ce2a5f4e394ad49fbee73"}, + {file = "debugpy-1.8.21-cp310-cp310-win_amd64.whl", hash = "sha256:a7fe47fd23da57b9e0bec3f4a8ee65a2dc55782455ed7f2141d75ab5d2eaeef5"}, + {file = "debugpy-1.8.21-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:da456226c7b4c69e35dbe35dcee6623d912000a77816db7856a41af1c72a0264"}, + {file = "debugpy-1.8.21-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:f68b891688e61bdc08b8d364d919ff0051e0b94657b39dcd027bc3173edb7cdc"}, + {file = "debugpy-1.8.21-cp311-cp311-win32.whl", hash = "sha256:f843a8b08c2edeaf9b1582eed4f25441af21a297c22ff16bf76a662557aa9c9e"}, + {file = "debugpy-1.8.21-cp311-cp311-win_amd64.whl", hash = "sha256:84c564d8cc701d41843b29a92814c1f1bef6798724ca9d675c284ad9f6a547d7"}, + {file = "debugpy-1.8.21-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:9f96713896f39c3dff0ee841f47320c3f2983d33c341e009361bb0ebc79adc4e"}, + {file = "debugpy-1.8.21-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:c193d474f0a211191f2b4449d2d06157c689013035bd952f3b617e0ef422b176"}, + {file = "debugpy-1.8.21-cp312-cp312-win32.whl", hash = "sha256:4743373c1cac7f9e74a1b9915bf1dbe0e900eca657ffb170ae07ac8363205ae9"}, + {file = "debugpy-1.8.21-cp312-cp312-win_amd64.whl", hash = "sha256:bd7ba9dd3daa7c2f942c6ca8d4695a16bf9ac16b63615261c7982bc74f7ed20c"}, + {file = "debugpy-1.8.21-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:13678151fc401e2d68c9880b91e28714f797d40422994572b24560ef80910a88"}, + {file = "debugpy-1.8.21-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:ecbd158386c31ffe71d46f72d44d56e66331ab9b16cad649156d514368f23ab2"}, + {file = "debugpy-1.8.21-cp313-cp313-win32.whl", hash = "sha256:2c2ae706dec41d99a9ca1f7ebc987a83e65578363be6f6b3ac9067504917fae1"}, + {file = "debugpy-1.8.21-cp313-cp313-win_amd64.whl", hash = "sha256:aa648733047443eb1d07682c4ef287d36a54507b643ffdf38b09a3ef002c72a0"}, + {file = "debugpy-1.8.21-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9bb2a685287a2ac9b181cde89edcec64845cb51de7faaa75badb9a698bc24782"}, + {file = "debugpy-1.8.21-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:3d6922439bf33fd38a3e2c447869ebc7b97da5cd3d329ff1ef9bc06c4903437e"}, + {file = "debugpy-1.8.21-cp314-cp314-win32.whl", hash = "sha256:15d4963bd5ffa48f0da0947fd06757fa7621945048a14ad7705431566d3c0e7c"}, + {file = "debugpy-1.8.21-cp314-cp314-win_amd64.whl", hash = "sha256:fe0744a12353406de0ae8ccff0d0a4a666f00801a3db8fd04e7a5f761cd520e8"}, + {file = "debugpy-1.8.21-cp38-cp38-macosx_15_0_x86_64.whl", hash = "sha256:0042da0ecd0a8b50dc4a54395ecd870d258d73fa18776f50c91fdcabdcad2675"}, + {file = "debugpy-1.8.21-cp38-cp38-manylinux_2_34_x86_64.whl", hash = "sha256:ffd932c6796afadab6993ec96745918a8cb2444dbd392074f769db5ea40ab440"}, + {file = "debugpy-1.8.21-cp38-cp38-win32.whl", hash = "sha256:4e7c2d784d78ad4b71a5f8cd7b59c167719ec8a7a0211dbb3eb1bfeda78bc4e2"}, + {file = "debugpy-1.8.21-cp38-cp38-win_amd64.whl", hash = "sha256:aa9d941d6dfe3d0407e4b3ca0b9ec466030e260fbf1174094f68785680f66db6"}, + {file = "debugpy-1.8.21-cp39-cp39-macosx_15_0_x86_64.whl", hash = "sha256:9f5171176a0084b95d2ebe55a4d1f7b2a75b74c5dbec577ebd3a85c740551c36"}, + {file = "debugpy-1.8.21-cp39-cp39-manylinux_2_34_x86_64.whl", hash = "sha256:f15c10084f9861b5e8414a48f18f8e4aadf51a98a59e72c16aa28281ca994672"}, + {file = "debugpy-1.8.21-cp39-cp39-win32.whl", hash = "sha256:4e70cc8b5079f885cb43910924ee0aab73b8b6b2a14eff23afdd9895d86e79eb"}, + {file = "debugpy-1.8.21-cp39-cp39-win_amd64.whl", hash = "sha256:e935f9dc0501be523c8a8e1853c39432e1354e9ece717ae5998fd2371c4542c3"}, + {file = "debugpy-1.8.21-py2.py3-none-any.whl", hash = "sha256:b1e37d333663c8851516a47364ef473da127f9caebe4417e6df6f5825a7e9a92"}, + {file = "debugpy-1.8.21.tar.gz", hash = "sha256:a3c53278e84c94e11bd87c53970ec391d1a67396c8b22609fcac576520e611a6"}, ] [[package]] @@ -863,13 +863,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "idna" -version = "3.15" +version = "3.18" description = "Internationalized Domain Names in Applications (IDNA)" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8"}, - {file = "idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc"}, + {file = "idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"}, + {file = "idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"}, ] [package.extras] @@ -1314,13 +1314,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.5.7" +version = "4.5.8" description = "JupyterLab computational environment" optional = true python-versions = ">=3.9" files = [ - {file = "jupyterlab-4.5.7-py3-none-any.whl", hash = "sha256:fba4cb0e2c44a52859669d8c98b45de029d5e515f8407bf8534d2a8fc5f0964d"}, - {file = "jupyterlab-4.5.7.tar.gz", hash = "sha256:55a9822c4754da305f41e113452c68383e214dcf96de760146af89ce5d5117b0"}, + {file = "jupyterlab-4.5.8-py3-none-any.whl", hash = "sha256:7d514c856d0d607601ec7692374da4f26e2aaf3b6e7cd363136b422a50588d6c"}, + {file = "jupyterlab-4.5.8.tar.gz", hash = "sha256:af54d7242cc689a1e6c3ad213cc9b6d9781787d9ec67c52ec9a8f4707088cadd"}, ] [package.dependencies] @@ -1334,7 +1334,7 @@ jupyter-lsp = ">=2.0.0" jupyter-server = ">=2.4.0,<3" jupyterlab-server = ">=2.28.0,<3" notebook-shim = ">=0.2" -packaging = "*" +packaging = ">=23.2" setuptools = ">=41.1.0" tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" @@ -1762,18 +1762,18 @@ files = [ [[package]] name = "notebook" -version = "7.5.6" +version = "7.5.7" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = true python-versions = ">=3.9" files = [ - {file = "notebook-7.5.6-py3-none-any.whl", hash = "sha256:4dde3f8fb55fa8fb7946d58c6e869ce9baf46d00fc070664f62604569d0faca0"}, - {file = "notebook-7.5.6.tar.gz", hash = "sha256:621174aade80108f0020b0f00738000b215f75fa3cd90771ad7aa0f24536a4e1"}, + {file = "notebook-7.5.7-py3-none-any.whl", hash = "sha256:1f95f79d117e47d20b5555b5c85a397d2cfecf136978aaab767cf0314b09165b"}, + {file = "notebook-7.5.7.tar.gz", hash = "sha256:d6d59288a25303b25e1dcb71e9b017ec3a785f7d92f38b9bc288ca1970d5b0a8"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.5.7,<4.6" +jupyterlab = ">=4.5.8,<4.6" jupyterlab-server = ">=2.28.0,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" @@ -2331,31 +2331,32 @@ dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_list [[package]] name = "pywin32" -version = "311" -description = "Python for Window Extensions" +version = "312" +description = "Python for Windows Extensions" optional = false -python-versions = "*" +python-versions = ">=3.9" files = [ - {file = "pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3"}, - {file = "pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b"}, - {file = "pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b"}, - {file = "pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151"}, - {file = "pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503"}, - {file = "pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2"}, - {file = "pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31"}, - {file = "pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067"}, - {file = "pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852"}, - {file = "pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d"}, - {file = "pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d"}, - {file = "pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a"}, - {file = "pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee"}, - {file = "pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87"}, - {file = "pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42"}, - {file = "pywin32-311-cp38-cp38-win32.whl", hash = "sha256:6c6f2969607b5023b0d9ce2541f8d2cbb01c4f46bc87456017cf63b73f1e2d8c"}, - {file = "pywin32-311-cp38-cp38-win_amd64.whl", hash = "sha256:c8015b09fb9a5e188f83b7b04de91ddca4658cee2ae6f3bc483f0b21a77ef6cd"}, - {file = "pywin32-311-cp39-cp39-win32.whl", hash = "sha256:aba8f82d551a942cb20d4a83413ccbac30790b50efb89a75e4f586ac0bb8056b"}, - {file = "pywin32-311-cp39-cp39-win_amd64.whl", hash = "sha256:e0c4cfb0621281fe40387df582097fd796e80430597cb9944f0ae70447bacd91"}, - {file = "pywin32-311-cp39-cp39-win_arm64.whl", hash = "sha256:62ea666235135fee79bb154e695f3ff67370afefd71bd7fea7512fc70ef31e3d"}, + {file = "pywin32-312-cp310-cp310-win32.whl", hash = "sha256:772235332b5d1024c696f11cea1ae4be7930f0a8b894bb43db14e3f435f1ff7e"}, + {file = "pywin32-312-cp310-cp310-win_amd64.whl", hash = "sha256:5dbc35d2b5320dc07f25fa31269cfb767471002b17de5eb067d03da68c7cb2db"}, + {file = "pywin32-312-cp310-cp310-win_arm64.whl", hash = "sha256:3020656e34f1cf7faeb7bccd2b84653a607c6ff0c55ada85e6487d61716deabd"}, + {file = "pywin32-312-cp311-cp311-win32.whl", hash = "sha256:17948aeadbdb091f0ced6ef0841620794e68327b94ee415571c1203594b7215c"}, + {file = "pywin32-312-cp311-cp311-win_amd64.whl", hash = "sha256:d11417d84412f859b722fad0841b3614459ed0047f7542d8362e77884f6b6e8a"}, + {file = "pywin32-312-cp311-cp311-win_arm64.whl", hash = "sha256:b2200a054ca6d6625c4842fc56a4976a4b47f96b73dbe5538c3f813a80359f47"}, + {file = "pywin32-312-cp312-cp312-win32.whl", hash = "sha256:dab4f65ac9c4e48400a2a0530c46c3c579cd5905ecd11b80692373915269208b"}, + {file = "pywin32-312-cp312-cp312-win_amd64.whl", hash = "sha256:b457f6d628a47e8a7346ce22acb7e1a46a4a78b52e1d17e1af56871bd19a93bc"}, + {file = "pywin32-312-cp312-cp312-win_arm64.whl", hash = "sha256:6017c58e12f6809fbb0555b75df144c2922a9ffd18e4b9b5afa863b6c1a9d950"}, + {file = "pywin32-312-cp313-cp313-win32.whl", hash = "sha256:7a27df850933d16a8eabfbaeb73d52b273e2da667f80d70b01a89d1f6828d02c"}, + {file = "pywin32-312-cp313-cp313-win_amd64.whl", hash = "sha256:c53e878d15a1c44788082bfe712a905433473aa38f86375b7cf8b45e3acbaaf9"}, + {file = "pywin32-312-cp313-cp313-win_arm64.whl", hash = "sha256:59aba5d5940842075343a5ddc6b11f1cdf0d1567fe745290359dfbcc7c2eb831"}, + {file = "pywin32-312-cp314-cp314-win32.whl", hash = "sha256:a77a90fbb6881238d2ca9c6fd797b25817f3768fe78d214a90137ff055a75f5b"}, + {file = "pywin32-312-cp314-cp314-win_amd64.whl", hash = "sha256:a4dd3a848290ef724347b19f301045831d8e802fa4464f491b98b1e0a081432e"}, + {file = "pywin32-312-cp314-cp314-win_arm64.whl", hash = "sha256:9fce94568364e0155e6dfb781ac5d95903be8baf28670632beab1b523f300daa"}, + {file = "pywin32-312-cp315-cp315-win32.whl", hash = "sha256:5c1fbe4a937a73ae9297384a3da38518cbc694c68ad8a809b2e19acd350f03ed"}, + {file = "pywin32-312-cp315-cp315-win_amd64.whl", hash = "sha256:c2f03a0f73f804a13c2735b99392b0cd426bb4f2c4d0178e5ac966a0f21618d5"}, + {file = "pywin32-312-cp315-cp315-win_arm64.whl", hash = "sha256:a8597d28f267b39074aef51fa593530082b39cbe5a074226096857b1fed2dfb9"}, + {file = "pywin32-312-cp39-cp39-win32.whl", hash = "sha256:d620900033cc7531e50727c3c8333091df5dd3ffe6d68cdca38c03f5821408d5"}, + {file = "pywin32-312-cp39-cp39-win_amd64.whl", hash = "sha256:dc90147579a905b8635e1b0ec6514967dcb07e6e0d9c42f1477feef14cac23bb"}, + {file = "pywin32-312-cp39-cp39-win_arm64.whl", hash = "sha256:02ebca0f0242b75292e218065004310d6a477407c09fa449bfe4f6022bc0c0fc"}, ] [[package]] @@ -2898,13 +2899,13 @@ files = [ [[package]] name = "snowballstemmer" -version = "3.0.1" -description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." +version = "3.1.1" +description = "This package provides 36 stemmers for 34 languages generated from Snowball algorithms." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +python-versions = ">=3.3" files = [ - {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, - {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, + {file = "snowballstemmer-3.1.1-py3-none-any.whl", hash = "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752"}, + {file = "snowballstemmer-3.1.1.tar.gz", hash = "sha256:e07bbc54a0d798fe6010a12398422e62a8bfbba95c394fd0956ef58cb4d3e260"}, ] [[package]] @@ -2929,13 +2930,13 @@ numpy = ["NumPy"] [[package]] name = "soupsieve" -version = "2.8.3" +version = "2.8.4" description = "A modern CSS selector implementation for Beautiful Soup." optional = true python-versions = ">=3.9" files = [ - {file = "soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95"}, - {file = "soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349"}, + {file = "soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65"}, + {file = "soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e"}, ] [[package]] @@ -3095,37 +3096,37 @@ files = [ [[package]] name = "tornado" -version = "6.5.5" +version = "6.5.7" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.9" files = [ - {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa"}, - {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521"}, - {file = "tornado-6.5.5-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5"}, - {file = "tornado-6.5.5-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07"}, - {file = "tornado-6.5.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e"}, - {file = "tornado-6.5.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca"}, - {file = "tornado-6.5.5-cp39-abi3-win32.whl", hash = "sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7"}, - {file = "tornado-6.5.5-cp39-abi3-win_amd64.whl", hash = "sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b"}, - {file = "tornado-6.5.5-cp39-abi3-win_arm64.whl", hash = "sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6"}, - {file = "tornado-6.5.5.tar.gz", hash = "sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9"}, + {file = "tornado-6.5.7-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:148b2eb15c2c765a50796172c1e499649b35f30d2e3c3d3e15913cfa56bfb163"}, + {file = "tornado-6.5.7-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9da38de27f1da3b78a966f0dae12b5a1ea9afe72ca805d84ff06508272ddf100"}, + {file = "tornado-6.5.7-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8d759e71906ee783f8867b93bf26a265743da4c1e2f4a018464c1ba019862972"}, + {file = "tornado-6.5.7-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a46347a18f23fb92b396beebe0fb78f61dda0cc302445202c16203d8a18848b"}, + {file = "tornado-6.5.7-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7778b30bef919231265e91c69963ce0f49a1e9c07ac900bbe75b19ce2575ba92"}, + {file = "tornado-6.5.7-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e726f0c75da7726eec023aa62751ff8878bd2737e34fbdd33b1ae5897d2200f5"}, + {file = "tornado-6.5.7-cp39-abi3-win32.whl", hash = "sha256:f8de3bf12d3efdd0cbe7c8887868198f8a91415e3f29fcf258d9b8eb7b1d9ae4"}, + {file = "tornado-6.5.7-cp39-abi3-win_amd64.whl", hash = "sha256:de942f843533a039ef9fa3d9c88c7cd8a7c94553fb5ad0154270989b3d99a2c4"}, + {file = "tornado-6.5.7-cp39-abi3-win_arm64.whl", hash = "sha256:ff934fce95643af5f11efdae618eaa73d469dc588641e5c8d19295a0c65c4796"}, + {file = "tornado-6.5.7.tar.gz", hash = "sha256:66c513a76cda70d53907bc27cf1447557699c2e95aa48ba27a442ff61c3ddfc2"}, ] [[package]] name = "traitlets" -version = "5.15.0" +version = "5.15.1" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.9" files = [ - {file = "traitlets-5.15.0-py3-none-any.whl", hash = "sha256:fb36a18867a6803deab09f3c5e0fa81bb7b26a5c9e82501c9933f759166eff40"}, - {file = "traitlets-5.15.0.tar.gz", hash = "sha256:4fead733f81cf1c4c938e06f8ca4633896833c9d89eff878159457f4d4392971"}, + {file = "traitlets-5.15.1-py3-none-any.whl", hash = "sha256:770a53705f84b81ac107e83a1b3328ff2dae16094d8fc3cfc004e4b22dfd8e92"}, + {file = "traitlets-5.15.1.tar.gz", hash = "sha256:7b1c07854fe25acb39e009bae49f11b79ff6cbb2f27999104e9110e7a6b53722"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "mypy (>=1.7.0,<1.19)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.17.0,<1.19)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "types-aiofiles" @@ -3232,13 +3233,13 @@ zstd = ["backports-zstd (>=1.0.0)"] [[package]] name = "wcwidth" -version = "0.7.0" +version = "0.8.1" description = "Measures the displayed width of unicode strings in a terminal" optional = true python-versions = ">=3.8" files = [ - {file = "wcwidth-0.7.0-py3-none-any.whl", hash = "sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2"}, - {file = "wcwidth-0.7.0.tar.gz", hash = "sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0"}, + {file = "wcwidth-0.8.1-py3-none-any.whl", hash = "sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8"}, + {file = "wcwidth-0.8.1.tar.gz", hash = "sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index d1735607..8d8eca27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "hume" -version = "0.13.13" +version = "0.13.14" description = "A Python SDK for Hume AI" readme = "README.md" authors = [] diff --git a/src/hume/__init__.py b/src/hume/__init__.py index 2f3e32cd..a725e6d3 100644 --- a/src/hume/__init__.py +++ b/src/hume/__init__.py @@ -6,7 +6,7 @@ from importlib import import_module if typing.TYPE_CHECKING: - from . import empathic_voice, expression_measurement, tts + from . import empathic_voice, tts from .client import AsyncHumeClient, HumeClient from .empathic_voice.chat.audio.asyncio_utilities import Stream from .empathic_voice.chat.audio.microphone_interface import MicrophoneInterface @@ -20,7 +20,6 @@ "Stream": ".empathic_voice.chat.audio.asyncio_utilities", "__version__": ".version", "empathic_voice": ".empathic_voice", - "expression_measurement": ".expression_measurement", "tts": ".tts", } @@ -54,6 +53,5 @@ def __dir__(): "Stream", "__version__", "empathic_voice", - "expression_measurement", "tts", ] diff --git a/src/hume/base_client.py b/src/hume/base_client.py index 26c296bc..949525ee 100644 --- a/src/hume/base_client.py +++ b/src/hume/base_client.py @@ -11,7 +11,6 @@ if typing.TYPE_CHECKING: from .empathic_voice.client import AsyncEmpathicVoiceClient, EmpathicVoiceClient - from .expression_measurement.client import AsyncExpressionMeasurementClient, ExpressionMeasurementClient from .tts.client import AsyncTtsClient, TtsClient @@ -83,7 +82,6 @@ def __init__( ) self._empathic_voice: typing.Optional[EmpathicVoiceClient] = None self._tts: typing.Optional[TtsClient] = None - self._expression_measurement: typing.Optional[ExpressionMeasurementClient] = None @property def empathic_voice(self): @@ -101,14 +99,6 @@ def tts(self): self._tts = TtsClient(client_wrapper=self._client_wrapper) return self._tts - @property - def expression_measurement(self): - if self._expression_measurement is None: - from .expression_measurement.client import ExpressionMeasurementClient # noqa: E402 - - self._expression_measurement = ExpressionMeasurementClient(client_wrapper=self._client_wrapper) - return self._expression_measurement - class AsyncBaseHumeClient: """ @@ -178,7 +168,6 @@ def __init__( ) self._empathic_voice: typing.Optional[AsyncEmpathicVoiceClient] = None self._tts: typing.Optional[AsyncTtsClient] = None - self._expression_measurement: typing.Optional[AsyncExpressionMeasurementClient] = None @property def empathic_voice(self): @@ -195,11 +184,3 @@ def tts(self): self._tts = AsyncTtsClient(client_wrapper=self._client_wrapper) return self._tts - - @property - def expression_measurement(self): - if self._expression_measurement is None: - from .expression_measurement.client import AsyncExpressionMeasurementClient # noqa: E402 - - self._expression_measurement = AsyncExpressionMeasurementClient(client_wrapper=self._client_wrapper) - return self._expression_measurement diff --git a/src/hume/core/client_wrapper.py b/src/hume/core/client_wrapper.py index 4639a270..df93ad4f 100644 --- a/src/hume/core/client_wrapper.py +++ b/src/hume/core/client_wrapper.py @@ -28,12 +28,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "hume/0.13.12", + "User-Agent": "hume/0.13.14", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "hume", - "X-Fern-SDK-Version": "0.13.12", + "X-Fern-SDK-Version": "0.13.14", **(self.get_custom_headers() or {}), } if self.api_key is not None: diff --git a/src/hume/empathic_voice/types/prosody_inference.py b/src/hume/empathic_voice/types/prosody_inference.py index 19f97e0c..36f2e575 100644 --- a/src/hume/empathic_voice/types/prosody_inference.py +++ b/src/hume/empathic_voice/types/prosody_inference.py @@ -14,7 +14,7 @@ class ProsodyInference(UniversalBaseModel): Scores typically range from 0 to 1, with higher values indicating a stronger confidence level in the measured attribute. - See our guide on [interpreting expression measurement results](/docs/expression-measurement/faq#how-do-i-interpret-my-results) to learn more. + See our guide on [interpreting expression measures](/docs/speech-to-speech-evi/faq#what-do-evis-expression-labels-and-measures-mean) to learn more. """ if IS_PYDANTIC_V2: diff --git a/src/hume/expression_measurement/__init__.py b/src/hume/expression_measurement/__init__.py deleted file mode 100644 index 180ad384..00000000 --- a/src/hume/expression_measurement/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from . import batch, stream -_dynamic_imports: typing.Dict[str, str] = {"batch": ".batch", "stream": ".stream"} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = ["batch", "stream"] diff --git a/src/hume/expression_measurement/batch/__init__.py b/src/hume/expression_measurement/batch/__init__.py deleted file mode 100644 index c749a529..00000000 --- a/src/hume/expression_measurement/batch/__init__.py +++ /dev/null @@ -1,463 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .types import ( - Alternative, - Bcp47Tag, - BoundingBox, - BurstPrediction, - Classification, - CompletedEmbeddingGeneration, - CompletedInference, - CompletedState, - CompletedTlInference, - CompletedTraining, - CustomModel, - CustomModelId, - CustomModelPrediction, - CustomModelRequest, - CustomModelVersionId, - CustomModelsInferenceJob, - CustomModelsTrainingJob, - Dataset, - DatasetId, - DatasetVersionId, - DescriptionsScore, - Direction, - EmbeddingGenerationBaseRequest, - EmbeddingGenerationJob, - EmotionScore, - Error, - EvaluationArgs, - Face, - FacePrediction, - FacemeshPrediction, - FacsScore, - Failed, - FailedState, - File, - Granularity, - GroupedPredictionsBurstPrediction, - GroupedPredictionsFacePrediction, - GroupedPredictionsFacemeshPrediction, - GroupedPredictionsLanguagePrediction, - GroupedPredictionsNerPrediction, - GroupedPredictionsProsodyPrediction, - InProgress, - InProgressState, - InferenceBaseRequest, - InferenceJob, - InferencePrediction, - InferenceRequest, - InferenceResults, - InferenceSourcePredictResult, - JobEmbeddingGeneration, - JobId, - JobInference, - JobTlInference, - JobTraining, - Language, - LanguagePrediction, - Models, - ModelsPredictions, - Ner, - NerPrediction, - Null, - PositionInterval, - PredictionsOptionalNullBurstPrediction, - PredictionsOptionalNullFacePrediction, - PredictionsOptionalNullFacemeshPrediction, - PredictionsOptionalTranscriptionMetadataLanguagePrediction, - PredictionsOptionalTranscriptionMetadataNerPrediction, - PredictionsOptionalTranscriptionMetadataProsodyPrediction, - Prosody, - ProsodyPrediction, - Queued, - QueuedState, - RegistryFileDetail, - Regression, - SentimentScore, - SortBy, - Source, - SourceFile, - SourceTextSource, - SourceUrl, - Source_File, - Source_Text, - Source_Url, - StateEmbeddingGeneration, - StateEmbeddingGenerationCompletedEmbeddingGeneration, - StateEmbeddingGenerationFailed, - StateEmbeddingGenerationInProgress, - StateEmbeddingGenerationQueued, - StateEmbeddingGeneration_Completed, - StateEmbeddingGeneration_Failed, - StateEmbeddingGeneration_InProgress, - StateEmbeddingGeneration_Queued, - StateInference, - StateInference_Completed, - StateInference_Failed, - StateInference_InProgress, - StateInference_Queued, - StateTlInference, - StateTlInferenceCompletedTlInference, - StateTlInferenceFailed, - StateTlInferenceInProgress, - StateTlInferenceQueued, - StateTlInference_Completed, - StateTlInference_Failed, - StateTlInference_InProgress, - StateTlInference_Queued, - StateTraining, - StateTrainingCompletedTraining, - StateTrainingFailed, - StateTrainingInProgress, - StateTrainingQueued, - StateTraining_Completed, - StateTraining_Failed, - StateTraining_InProgress, - StateTraining_Queued, - Status, - Tag, - Target, - Task, - TaskClassification, - TaskRegression, - Task_Classification, - Task_Regression, - TextSource, - TimeInterval, - TlInferenceBaseRequest, - TlInferencePrediction, - TlInferenceResults, - TlInferenceSourcePredictResult, - ToxicityScore, - TrainingBaseRequest, - TrainingCustomModel, - Transcription, - TranscriptionMetadata, - Type, - Unconfigurable, - UnionJob, - UnionPredictResult, - Url, - ValidationArgs, - When, - Window, - ) -_dynamic_imports: typing.Dict[str, str] = { - "Alternative": ".types", - "Bcp47Tag": ".types", - "BoundingBox": ".types", - "BurstPrediction": ".types", - "Classification": ".types", - "CompletedEmbeddingGeneration": ".types", - "CompletedInference": ".types", - "CompletedState": ".types", - "CompletedTlInference": ".types", - "CompletedTraining": ".types", - "CustomModel": ".types", - "CustomModelId": ".types", - "CustomModelPrediction": ".types", - "CustomModelRequest": ".types", - "CustomModelVersionId": ".types", - "CustomModelsInferenceJob": ".types", - "CustomModelsTrainingJob": ".types", - "Dataset": ".types", - "DatasetId": ".types", - "DatasetVersionId": ".types", - "DescriptionsScore": ".types", - "Direction": ".types", - "EmbeddingGenerationBaseRequest": ".types", - "EmbeddingGenerationJob": ".types", - "EmotionScore": ".types", - "Error": ".types", - "EvaluationArgs": ".types", - "Face": ".types", - "FacePrediction": ".types", - "FacemeshPrediction": ".types", - "FacsScore": ".types", - "Failed": ".types", - "FailedState": ".types", - "File": ".types", - "Granularity": ".types", - "GroupedPredictionsBurstPrediction": ".types", - "GroupedPredictionsFacePrediction": ".types", - "GroupedPredictionsFacemeshPrediction": ".types", - "GroupedPredictionsLanguagePrediction": ".types", - "GroupedPredictionsNerPrediction": ".types", - "GroupedPredictionsProsodyPrediction": ".types", - "InProgress": ".types", - "InProgressState": ".types", - "InferenceBaseRequest": ".types", - "InferenceJob": ".types", - "InferencePrediction": ".types", - "InferenceRequest": ".types", - "InferenceResults": ".types", - "InferenceSourcePredictResult": ".types", - "JobEmbeddingGeneration": ".types", - "JobId": ".types", - "JobInference": ".types", - "JobTlInference": ".types", - "JobTraining": ".types", - "Language": ".types", - "LanguagePrediction": ".types", - "Models": ".types", - "ModelsPredictions": ".types", - "Ner": ".types", - "NerPrediction": ".types", - "Null": ".types", - "PositionInterval": ".types", - "PredictionsOptionalNullBurstPrediction": ".types", - "PredictionsOptionalNullFacePrediction": ".types", - "PredictionsOptionalNullFacemeshPrediction": ".types", - "PredictionsOptionalTranscriptionMetadataLanguagePrediction": ".types", - "PredictionsOptionalTranscriptionMetadataNerPrediction": ".types", - "PredictionsOptionalTranscriptionMetadataProsodyPrediction": ".types", - "Prosody": ".types", - "ProsodyPrediction": ".types", - "Queued": ".types", - "QueuedState": ".types", - "RegistryFileDetail": ".types", - "Regression": ".types", - "SentimentScore": ".types", - "SortBy": ".types", - "Source": ".types", - "SourceFile": ".types", - "SourceTextSource": ".types", - "SourceUrl": ".types", - "Source_File": ".types", - "Source_Text": ".types", - "Source_Url": ".types", - "StateEmbeddingGeneration": ".types", - "StateEmbeddingGenerationCompletedEmbeddingGeneration": ".types", - "StateEmbeddingGenerationFailed": ".types", - "StateEmbeddingGenerationInProgress": ".types", - "StateEmbeddingGenerationQueued": ".types", - "StateEmbeddingGeneration_Completed": ".types", - "StateEmbeddingGeneration_Failed": ".types", - "StateEmbeddingGeneration_InProgress": ".types", - "StateEmbeddingGeneration_Queued": ".types", - "StateInference": ".types", - "StateInference_Completed": ".types", - "StateInference_Failed": ".types", - "StateInference_InProgress": ".types", - "StateInference_Queued": ".types", - "StateTlInference": ".types", - "StateTlInferenceCompletedTlInference": ".types", - "StateTlInferenceFailed": ".types", - "StateTlInferenceInProgress": ".types", - "StateTlInferenceQueued": ".types", - "StateTlInference_Completed": ".types", - "StateTlInference_Failed": ".types", - "StateTlInference_InProgress": ".types", - "StateTlInference_Queued": ".types", - "StateTraining": ".types", - "StateTrainingCompletedTraining": ".types", - "StateTrainingFailed": ".types", - "StateTrainingInProgress": ".types", - "StateTrainingQueued": ".types", - "StateTraining_Completed": ".types", - "StateTraining_Failed": ".types", - "StateTraining_InProgress": ".types", - "StateTraining_Queued": ".types", - "Status": ".types", - "Tag": ".types", - "Target": ".types", - "Task": ".types", - "TaskClassification": ".types", - "TaskRegression": ".types", - "Task_Classification": ".types", - "Task_Regression": ".types", - "TextSource": ".types", - "TimeInterval": ".types", - "TlInferenceBaseRequest": ".types", - "TlInferencePrediction": ".types", - "TlInferenceResults": ".types", - "TlInferenceSourcePredictResult": ".types", - "ToxicityScore": ".types", - "TrainingBaseRequest": ".types", - "TrainingCustomModel": ".types", - "Transcription": ".types", - "TranscriptionMetadata": ".types", - "Type": ".types", - "Unconfigurable": ".types", - "UnionJob": ".types", - "UnionPredictResult": ".types", - "Url": ".types", - "ValidationArgs": ".types", - "When": ".types", - "Window": ".types", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "Alternative", - "Bcp47Tag", - "BoundingBox", - "BurstPrediction", - "Classification", - "CompletedEmbeddingGeneration", - "CompletedInference", - "CompletedState", - "CompletedTlInference", - "CompletedTraining", - "CustomModel", - "CustomModelId", - "CustomModelPrediction", - "CustomModelRequest", - "CustomModelVersionId", - "CustomModelsInferenceJob", - "CustomModelsTrainingJob", - "Dataset", - "DatasetId", - "DatasetVersionId", - "DescriptionsScore", - "Direction", - "EmbeddingGenerationBaseRequest", - "EmbeddingGenerationJob", - "EmotionScore", - "Error", - "EvaluationArgs", - "Face", - "FacePrediction", - "FacemeshPrediction", - "FacsScore", - "Failed", - "FailedState", - "File", - "Granularity", - "GroupedPredictionsBurstPrediction", - "GroupedPredictionsFacePrediction", - "GroupedPredictionsFacemeshPrediction", - "GroupedPredictionsLanguagePrediction", - "GroupedPredictionsNerPrediction", - "GroupedPredictionsProsodyPrediction", - "InProgress", - "InProgressState", - "InferenceBaseRequest", - "InferenceJob", - "InferencePrediction", - "InferenceRequest", - "InferenceResults", - "InferenceSourcePredictResult", - "JobEmbeddingGeneration", - "JobId", - "JobInference", - "JobTlInference", - "JobTraining", - "Language", - "LanguagePrediction", - "Models", - "ModelsPredictions", - "Ner", - "NerPrediction", - "Null", - "PositionInterval", - "PredictionsOptionalNullBurstPrediction", - "PredictionsOptionalNullFacePrediction", - "PredictionsOptionalNullFacemeshPrediction", - "PredictionsOptionalTranscriptionMetadataLanguagePrediction", - "PredictionsOptionalTranscriptionMetadataNerPrediction", - "PredictionsOptionalTranscriptionMetadataProsodyPrediction", - "Prosody", - "ProsodyPrediction", - "Queued", - "QueuedState", - "RegistryFileDetail", - "Regression", - "SentimentScore", - "SortBy", - "Source", - "SourceFile", - "SourceTextSource", - "SourceUrl", - "Source_File", - "Source_Text", - "Source_Url", - "StateEmbeddingGeneration", - "StateEmbeddingGenerationCompletedEmbeddingGeneration", - "StateEmbeddingGenerationFailed", - "StateEmbeddingGenerationInProgress", - "StateEmbeddingGenerationQueued", - "StateEmbeddingGeneration_Completed", - "StateEmbeddingGeneration_Failed", - "StateEmbeddingGeneration_InProgress", - "StateEmbeddingGeneration_Queued", - "StateInference", - "StateInference_Completed", - "StateInference_Failed", - "StateInference_InProgress", - "StateInference_Queued", - "StateTlInference", - "StateTlInferenceCompletedTlInference", - "StateTlInferenceFailed", - "StateTlInferenceInProgress", - "StateTlInferenceQueued", - "StateTlInference_Completed", - "StateTlInference_Failed", - "StateTlInference_InProgress", - "StateTlInference_Queued", - "StateTraining", - "StateTrainingCompletedTraining", - "StateTrainingFailed", - "StateTrainingInProgress", - "StateTrainingQueued", - "StateTraining_Completed", - "StateTraining_Failed", - "StateTraining_InProgress", - "StateTraining_Queued", - "Status", - "Tag", - "Target", - "Task", - "TaskClassification", - "TaskRegression", - "Task_Classification", - "Task_Regression", - "TextSource", - "TimeInterval", - "TlInferenceBaseRequest", - "TlInferencePrediction", - "TlInferenceResults", - "TlInferenceSourcePredictResult", - "ToxicityScore", - "TrainingBaseRequest", - "TrainingCustomModel", - "Transcription", - "TranscriptionMetadata", - "Type", - "Unconfigurable", - "UnionJob", - "UnionPredictResult", - "Url", - "ValidationArgs", - "When", - "Window", -] diff --git a/src/hume/expression_measurement/batch/client.py b/src/hume/expression_measurement/batch/client.py deleted file mode 100644 index 31f7cf9f..00000000 --- a/src/hume/expression_measurement/batch/client.py +++ /dev/null @@ -1,645 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from ... import core -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.request_options import RequestOptions -from .raw_client import AsyncRawBatchClient, RawBatchClient -from .types.direction import Direction -from .types.inference_base_request import InferenceBaseRequest -from .types.models import Models -from .types.sort_by import SortBy -from .types.status import Status -from .types.transcription import Transcription -from .types.union_job import UnionJob -from .types.union_predict_result import UnionPredictResult -from .types.when import When - -# this is used as the default value for optional parameters -OMIT = typing.cast(typing.Any, ...) - - -class BatchClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawBatchClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> RawBatchClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - RawBatchClient - """ - return self._raw_client - - def list_jobs( - self, - *, - limit: typing.Optional[int] = None, - status: typing.Optional[typing.Union[Status, typing.Sequence[Status]]] = None, - when: typing.Optional[When] = None, - timestamp_ms: typing.Optional[int] = None, - sort_by: typing.Optional[SortBy] = None, - direction: typing.Optional[Direction] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> typing.List[UnionJob]: - """ - Sort and filter jobs. - - Parameters - ---------- - limit : typing.Optional[int] - The maximum number of jobs to include in the response. - - status : typing.Optional[typing.Union[Status, typing.Sequence[Status]]] - Include only jobs of this status in the response. There are four possible statuses: - - - `QUEUED`: The job has been received and is waiting to be processed. - - - `IN_PROGRESS`: The job is currently being processed. - - - `COMPLETED`: The job has finished processing. - - - `FAILED`: The job encountered an error and could not be completed successfully. - - when : typing.Optional[When] - Specify whether to include jobs created before or after a given `timestamp_ms`. - - timestamp_ms : typing.Optional[int] - Provide a timestamp in milliseconds to filter jobs. - - When combined with the `when` parameter, you can filter jobs before or after the given timestamp. Defaults to the current Unix timestamp if one is not provided. - - sort_by : typing.Optional[SortBy] - Specify which timestamp to sort the jobs by. - - - `created`: Sort jobs by the time of creation, indicated by `created_timestamp_ms`. - - - `started`: Sort jobs by the time processing started, indicated by `started_timestamp_ms`. - - - `ended`: Sort jobs by the time processing ended, indicated by `ended_timestamp_ms`. - - direction : typing.Optional[Direction] - Specify the order in which to sort the jobs. Defaults to descending order. - - - `asc`: Sort in ascending order (chronological, with the oldest records first). - - - `desc`: Sort in descending order (reverse-chronological, with the newest records first). - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - typing.List[UnionJob] - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.list_jobs() - """ - _response = self._raw_client.list_jobs( - limit=limit, - status=status, - when=when, - timestamp_ms=timestamp_ms, - sort_by=sort_by, - direction=direction, - request_options=request_options, - ) - return _response.data - - def start_inference_job( - self, - *, - models: typing.Optional[Models] = OMIT, - transcription: typing.Optional[Transcription] = OMIT, - urls: typing.Optional[typing.Sequence[str]] = OMIT, - text: typing.Optional[typing.Sequence[str]] = OMIT, - callback_url: typing.Optional[str] = OMIT, - notify: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new measurement inference job. - - Parameters - ---------- - models : typing.Optional[Models] - Specify the models to use for inference. - - If this field is not explicitly set, then all models will run by default. - - transcription : typing.Optional[Transcription] - - urls : typing.Optional[typing.Sequence[str]] - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - - text : typing.Optional[typing.Sequence[str]] - Text supplied directly to our Emotional Language and NER models for analysis. - - callback_url : typing.Optional[str] - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - - notify : typing.Optional[bool] - Whether to send an email notification to the user upon job completion/failure. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.start_inference_job( - urls=["https://hume-tutorials.s3.amazonaws.com/faces.zip"], - notify=True, - ) - """ - _response = self._raw_client.start_inference_job( - models=models, - transcription=transcription, - urls=urls, - text=text, - callback_url=callback_url, - notify=notify, - request_options=request_options, - ) - return _response.data - - def get_job_details(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> UnionJob: - """ - Get the request details and state of a given job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UnionJob - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.get_job_details( - id="job_id", - ) - """ - _response = self._raw_client.get_job_details(id, request_options=request_options) - return _response.data - - def get_job_predictions( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.List[UnionPredictResult]: - """ - Get the JSON predictions of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - typing.List[UnionPredictResult] - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.get_job_predictions( - id="job_id", - ) - """ - _response = self._raw_client.get_job_predictions(id, request_options=request_options) - return _response.data - - def get_job_artifacts( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.Iterator[bytes]: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. - - Returns - ------- - typing.Iterator[bytes] - - """ - with self._raw_client.get_job_artifacts(id, request_options=request_options) as r: - yield from r.data - - def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - Stringified JSON object containing the inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.start_inference_job_from_local_file() - """ - _response = self._raw_client.start_inference_job_from_local_file( - file=file, json=json, request_options=request_options - ) - return _response.data - - -class AsyncBatchClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawBatchClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> AsyncRawBatchClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - AsyncRawBatchClient - """ - return self._raw_client - - async def list_jobs( - self, - *, - limit: typing.Optional[int] = None, - status: typing.Optional[typing.Union[Status, typing.Sequence[Status]]] = None, - when: typing.Optional[When] = None, - timestamp_ms: typing.Optional[int] = None, - sort_by: typing.Optional[SortBy] = None, - direction: typing.Optional[Direction] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> typing.List[UnionJob]: - """ - Sort and filter jobs. - - Parameters - ---------- - limit : typing.Optional[int] - The maximum number of jobs to include in the response. - - status : typing.Optional[typing.Union[Status, typing.Sequence[Status]]] - Include only jobs of this status in the response. There are four possible statuses: - - - `QUEUED`: The job has been received and is waiting to be processed. - - - `IN_PROGRESS`: The job is currently being processed. - - - `COMPLETED`: The job has finished processing. - - - `FAILED`: The job encountered an error and could not be completed successfully. - - when : typing.Optional[When] - Specify whether to include jobs created before or after a given `timestamp_ms`. - - timestamp_ms : typing.Optional[int] - Provide a timestamp in milliseconds to filter jobs. - - When combined with the `when` parameter, you can filter jobs before or after the given timestamp. Defaults to the current Unix timestamp if one is not provided. - - sort_by : typing.Optional[SortBy] - Specify which timestamp to sort the jobs by. - - - `created`: Sort jobs by the time of creation, indicated by `created_timestamp_ms`. - - - `started`: Sort jobs by the time processing started, indicated by `started_timestamp_ms`. - - - `ended`: Sort jobs by the time processing ended, indicated by `ended_timestamp_ms`. - - direction : typing.Optional[Direction] - Specify the order in which to sort the jobs. Defaults to descending order. - - - `asc`: Sort in ascending order (chronological, with the oldest records first). - - - `desc`: Sort in descending order (reverse-chronological, with the newest records first). - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - typing.List[UnionJob] - - - Examples - -------- - import asyncio - - from hume import AsyncHumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.expression_measurement.batch.list_jobs() - - - asyncio.run(main()) - """ - _response = await self._raw_client.list_jobs( - limit=limit, - status=status, - when=when, - timestamp_ms=timestamp_ms, - sort_by=sort_by, - direction=direction, - request_options=request_options, - ) - return _response.data - - async def start_inference_job( - self, - *, - models: typing.Optional[Models] = OMIT, - transcription: typing.Optional[Transcription] = OMIT, - urls: typing.Optional[typing.Sequence[str]] = OMIT, - text: typing.Optional[typing.Sequence[str]] = OMIT, - callback_url: typing.Optional[str] = OMIT, - notify: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new measurement inference job. - - Parameters - ---------- - models : typing.Optional[Models] - Specify the models to use for inference. - - If this field is not explicitly set, then all models will run by default. - - transcription : typing.Optional[Transcription] - - urls : typing.Optional[typing.Sequence[str]] - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - - text : typing.Optional[typing.Sequence[str]] - Text supplied directly to our Emotional Language and NER models for analysis. - - callback_url : typing.Optional[str] - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - - notify : typing.Optional[bool] - Whether to send an email notification to the user upon job completion/failure. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - import asyncio - - from hume import AsyncHumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.expression_measurement.batch.start_inference_job( - urls=["https://hume-tutorials.s3.amazonaws.com/faces.zip"], - notify=True, - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.start_inference_job( - models=models, - transcription=transcription, - urls=urls, - text=text, - callback_url=callback_url, - notify=notify, - request_options=request_options, - ) - return _response.data - - async def get_job_details(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> UnionJob: - """ - Get the request details and state of a given job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - UnionJob - - - Examples - -------- - import asyncio - - from hume import AsyncHumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.expression_measurement.batch.get_job_details( - id="job_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.get_job_details(id, request_options=request_options) - return _response.data - - async def get_job_predictions( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.List[UnionPredictResult]: - """ - Get the JSON predictions of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - typing.List[UnionPredictResult] - - - Examples - -------- - import asyncio - - from hume import AsyncHumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.expression_measurement.batch.get_job_predictions( - id="job_id", - ) - - - asyncio.run(main()) - """ - _response = await self._raw_client.get_job_predictions(id, request_options=request_options) - return _response.data - - async def get_job_artifacts( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.AsyncIterator[bytes]: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. - - Returns - ------- - typing.AsyncIterator[bytes] - - """ - async with self._raw_client.get_job_artifacts(id, request_options=request_options) as r: - async for _chunk in r.data: - yield _chunk - - async def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - Stringified JSON object containing the inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - import asyncio - - from hume import AsyncHumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - - - async def main() -> None: - await client.expression_measurement.batch.start_inference_job_from_local_file() - - - asyncio.run(main()) - """ - _response = await self._raw_client.start_inference_job_from_local_file( - file=file, json=json, request_options=request_options - ) - return _response.data diff --git a/src/hume/expression_measurement/batch/raw_client.py b/src/hume/expression_measurement/batch/raw_client.py deleted file mode 100644 index 2bf2c088..00000000 --- a/src/hume/expression_measurement/batch/raw_client.py +++ /dev/null @@ -1,743 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import contextlib -import json as _json -import typing -from json.decoder import JSONDecodeError - -from ... import core -from ...core.api_error import ApiError -from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...core.http_response import AsyncHttpResponse, HttpResponse -from ...core.jsonable_encoder import jsonable_encoder -from ...core.pydantic_utilities import parse_obj_as -from ...core.request_options import RequestOptions -from ...core.serialization import convert_and_respect_annotation_metadata -from .types.direction import Direction -from .types.inference_base_request import InferenceBaseRequest -from .types.job_id import JobId -from .types.models import Models -from .types.sort_by import SortBy -from .types.status import Status -from .types.transcription import Transcription -from .types.union_job import UnionJob -from .types.union_predict_result import UnionPredictResult -from .types.when import When - -# this is used as the default value for optional parameters -OMIT = typing.cast(typing.Any, ...) - - -class RawBatchClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._client_wrapper = client_wrapper - - def list_jobs( - self, - *, - limit: typing.Optional[int] = None, - status: typing.Optional[typing.Union[Status, typing.Sequence[Status]]] = None, - when: typing.Optional[When] = None, - timestamp_ms: typing.Optional[int] = None, - sort_by: typing.Optional[SortBy] = None, - direction: typing.Optional[Direction] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[typing.List[UnionJob]]: - """ - Sort and filter jobs. - - Parameters - ---------- - limit : typing.Optional[int] - The maximum number of jobs to include in the response. - - status : typing.Optional[typing.Union[Status, typing.Sequence[Status]]] - Include only jobs of this status in the response. There are four possible statuses: - - - `QUEUED`: The job has been received and is waiting to be processed. - - - `IN_PROGRESS`: The job is currently being processed. - - - `COMPLETED`: The job has finished processing. - - - `FAILED`: The job encountered an error and could not be completed successfully. - - when : typing.Optional[When] - Specify whether to include jobs created before or after a given `timestamp_ms`. - - timestamp_ms : typing.Optional[int] - Provide a timestamp in milliseconds to filter jobs. - - When combined with the `when` parameter, you can filter jobs before or after the given timestamp. Defaults to the current Unix timestamp if one is not provided. - - sort_by : typing.Optional[SortBy] - Specify which timestamp to sort the jobs by. - - - `created`: Sort jobs by the time of creation, indicated by `created_timestamp_ms`. - - - `started`: Sort jobs by the time processing started, indicated by `started_timestamp_ms`. - - - `ended`: Sort jobs by the time processing ended, indicated by `ended_timestamp_ms`. - - direction : typing.Optional[Direction] - Specify the order in which to sort the jobs. Defaults to descending order. - - - `asc`: Sort in ascending order (chronological, with the oldest records first). - - - `desc`: Sort in descending order (reverse-chronological, with the newest records first). - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[typing.List[UnionJob]] - - """ - _response = self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="GET", - params={ - "limit": limit, - "status": status, - "when": when, - "timestamp_ms": timestamp_ms, - "sort_by": sort_by, - "direction": direction, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - typing.List[UnionJob], - parse_obj_as( - type_=typing.List[UnionJob], # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - def start_inference_job( - self, - *, - models: typing.Optional[Models] = OMIT, - transcription: typing.Optional[Transcription] = OMIT, - urls: typing.Optional[typing.Sequence[str]] = OMIT, - text: typing.Optional[typing.Sequence[str]] = OMIT, - callback_url: typing.Optional[str] = OMIT, - notify: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[str]: - """ - Start a new measurement inference job. - - Parameters - ---------- - models : typing.Optional[Models] - Specify the models to use for inference. - - If this field is not explicitly set, then all models will run by default. - - transcription : typing.Optional[Transcription] - - urls : typing.Optional[typing.Sequence[str]] - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - - text : typing.Optional[typing.Sequence[str]] - Text supplied directly to our Emotional Language and NER models for analysis. - - callback_url : typing.Optional[str] - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - - notify : typing.Optional[bool] - Whether to send an email notification to the user upon job completion/failure. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[str] - - """ - _response = self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="POST", - json={ - "models": convert_and_respect_annotation_metadata(object_=models, annotation=Models, direction="write"), - "transcription": convert_and_respect_annotation_metadata( - object_=transcription, annotation=Transcription, direction="write" - ), - "urls": urls, - "text": text, - "callback_url": callback_url, - "notify": notify, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - _data = _parsed_response.job_id - return HttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - def get_job_details( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[UnionJob]: - """ - Get the request details and state of a given job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[UnionJob] - - """ - _response = self._client_wrapper.httpx_client.request( - f"v0/batch/jobs/{jsonable_encoder(id)}", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UnionJob, - parse_obj_as( - type_=UnionJob, # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - def get_job_predictions( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> HttpResponse[typing.List[UnionPredictResult]]: - """ - Get the JSON predictions of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[typing.List[UnionPredictResult]] - - """ - _response = self._client_wrapper.httpx_client.request( - f"v0/batch/jobs/{jsonable_encoder(id)}/predictions", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - typing.List[UnionPredictResult], - parse_obj_as( - type_=typing.List[UnionPredictResult], # type: ignore - object_=_response.json(), - ), - ) - return HttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - @contextlib.contextmanager - def get_job_artifacts( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.Iterator[HttpResponse[typing.Iterator[bytes]]]: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. - - Returns - ------- - typing.Iterator[HttpResponse[typing.Iterator[bytes]]] - - """ - with self._client_wrapper.httpx_client.stream( - f"v0/batch/jobs/{jsonable_encoder(id)}/artifacts", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) as _response: - - def _stream() -> HttpResponse[typing.Iterator[bytes]]: - try: - if 200 <= _response.status_code < 300: - _chunk_size = request_options.get("chunk_size", None) if request_options is not None else None - return HttpResponse( - response=_response, data=(_chunk for _chunk in _response.iter_bytes(chunk_size=_chunk_size)) - ) - _response.read() - _response_json = _response.json() - except JSONDecodeError: - raise ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - yield _stream() - - def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> HttpResponse[str]: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - Stringified JSON object containing the inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - HttpResponse[str] - - """ - _response = self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="POST", - data={ - "json": _json.dumps(jsonable_encoder(json)), - }, - files={ - "file": file, - }, - request_options=request_options, - omit=OMIT, - force_multipart=True, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - _data = _parsed_response.job_id - return HttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - -class AsyncRawBatchClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - async def list_jobs( - self, - *, - limit: typing.Optional[int] = None, - status: typing.Optional[typing.Union[Status, typing.Sequence[Status]]] = None, - when: typing.Optional[When] = None, - timestamp_ms: typing.Optional[int] = None, - sort_by: typing.Optional[SortBy] = None, - direction: typing.Optional[Direction] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[typing.List[UnionJob]]: - """ - Sort and filter jobs. - - Parameters - ---------- - limit : typing.Optional[int] - The maximum number of jobs to include in the response. - - status : typing.Optional[typing.Union[Status, typing.Sequence[Status]]] - Include only jobs of this status in the response. There are four possible statuses: - - - `QUEUED`: The job has been received and is waiting to be processed. - - - `IN_PROGRESS`: The job is currently being processed. - - - `COMPLETED`: The job has finished processing. - - - `FAILED`: The job encountered an error and could not be completed successfully. - - when : typing.Optional[When] - Specify whether to include jobs created before or after a given `timestamp_ms`. - - timestamp_ms : typing.Optional[int] - Provide a timestamp in milliseconds to filter jobs. - - When combined with the `when` parameter, you can filter jobs before or after the given timestamp. Defaults to the current Unix timestamp if one is not provided. - - sort_by : typing.Optional[SortBy] - Specify which timestamp to sort the jobs by. - - - `created`: Sort jobs by the time of creation, indicated by `created_timestamp_ms`. - - - `started`: Sort jobs by the time processing started, indicated by `started_timestamp_ms`. - - - `ended`: Sort jobs by the time processing ended, indicated by `ended_timestamp_ms`. - - direction : typing.Optional[Direction] - Specify the order in which to sort the jobs. Defaults to descending order. - - - `asc`: Sort in ascending order (chronological, with the oldest records first). - - - `desc`: Sort in descending order (reverse-chronological, with the newest records first). - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[typing.List[UnionJob]] - - """ - _response = await self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="GET", - params={ - "limit": limit, - "status": status, - "when": when, - "timestamp_ms": timestamp_ms, - "sort_by": sort_by, - "direction": direction, - }, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - typing.List[UnionJob], - parse_obj_as( - type_=typing.List[UnionJob], # type: ignore - object_=_response.json(), - ), - ) - return AsyncHttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - async def start_inference_job( - self, - *, - models: typing.Optional[Models] = OMIT, - transcription: typing.Optional[Transcription] = OMIT, - urls: typing.Optional[typing.Sequence[str]] = OMIT, - text: typing.Optional[typing.Sequence[str]] = OMIT, - callback_url: typing.Optional[str] = OMIT, - notify: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[str]: - """ - Start a new measurement inference job. - - Parameters - ---------- - models : typing.Optional[Models] - Specify the models to use for inference. - - If this field is not explicitly set, then all models will run by default. - - transcription : typing.Optional[Transcription] - - urls : typing.Optional[typing.Sequence[str]] - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - - text : typing.Optional[typing.Sequence[str]] - Text supplied directly to our Emotional Language and NER models for analysis. - - callback_url : typing.Optional[str] - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - - notify : typing.Optional[bool] - Whether to send an email notification to the user upon job completion/failure. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[str] - - """ - _response = await self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="POST", - json={ - "models": convert_and_respect_annotation_metadata(object_=models, annotation=Models, direction="write"), - "transcription": convert_and_respect_annotation_metadata( - object_=transcription, annotation=Transcription, direction="write" - ), - "urls": urls, - "text": text, - "callback_url": callback_url, - "notify": notify, - }, - headers={ - "content-type": "application/json", - }, - request_options=request_options, - omit=OMIT, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - _data = _parsed_response.job_id - return AsyncHttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - async def get_job_details( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[UnionJob]: - """ - Get the request details and state of a given job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[UnionJob] - - """ - _response = await self._client_wrapper.httpx_client.request( - f"v0/batch/jobs/{jsonable_encoder(id)}", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - UnionJob, - parse_obj_as( - type_=UnionJob, # type: ignore - object_=_response.json(), - ), - ) - return AsyncHttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - async def get_job_predictions( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> AsyncHttpResponse[typing.List[UnionPredictResult]]: - """ - Get the JSON predictions of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[typing.List[UnionPredictResult]] - - """ - _response = await self._client_wrapper.httpx_client.request( - f"v0/batch/jobs/{jsonable_encoder(id)}/predictions", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _data = typing.cast( - typing.List[UnionPredictResult], - parse_obj_as( - type_=typing.List[UnionPredictResult], # type: ignore - object_=_response.json(), - ), - ) - return AsyncHttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - @contextlib.asynccontextmanager - async def get_job_artifacts( - self, id: str, *, request_options: typing.Optional[RequestOptions] = None - ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]]: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response. - - Returns - ------- - typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[bytes]]] - - """ - async with self._client_wrapper.httpx_client.stream( - f"v0/batch/jobs/{jsonable_encoder(id)}/artifacts", - base_url=self._client_wrapper.get_environment().base, - method="GET", - request_options=request_options, - ) as _response: - - async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]: - try: - if 200 <= _response.status_code < 300: - _chunk_size = request_options.get("chunk_size", None) if request_options is not None else None - return AsyncHttpResponse( - response=_response, - data=(_chunk async for _chunk in _response.aiter_bytes(chunk_size=_chunk_size)), - ) - await _response.aread() - _response_json = _response.json() - except JSONDecodeError: - raise ApiError( - status_code=_response.status_code, headers=dict(_response.headers), body=_response.text - ) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - - yield await _stream() - - async def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = OMIT, - request_options: typing.Optional[RequestOptions] = None, - ) -> AsyncHttpResponse[str]: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - Stringified JSON object containing the inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncHttpResponse[str] - - """ - _response = await self._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._client_wrapper.get_environment().base, - method="POST", - data={ - "json": _json.dumps(jsonable_encoder(json)), - }, - files={ - "file": file, - }, - request_options=request_options, - omit=OMIT, - force_multipart=True, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - _data = _parsed_response.job_id - return AsyncHttpResponse(response=_response, data=_data) - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) - raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) diff --git a/src/hume/expression_measurement/batch/types/__init__.py b/src/hume/expression_measurement/batch/types/__init__.py deleted file mode 100644 index 77054f19..00000000 --- a/src/hume/expression_measurement/batch/types/__init__.py +++ /dev/null @@ -1,472 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .alternative import Alternative - from .bcp_47_tag import Bcp47Tag - from .bounding_box import BoundingBox - from .burst_prediction import BurstPrediction - from .classification import Classification - from .completed_embedding_generation import CompletedEmbeddingGeneration - from .completed_inference import CompletedInference - from .completed_state import CompletedState - from .completed_tl_inference import CompletedTlInference - from .completed_training import CompletedTraining - from .custom_model import CustomModel - from .custom_model_id import CustomModelId - from .custom_model_prediction import CustomModelPrediction - from .custom_model_request import CustomModelRequest - from .custom_model_version_id import CustomModelVersionId - from .custom_models_inference_job import CustomModelsInferenceJob - from .custom_models_training_job import CustomModelsTrainingJob - from .dataset import Dataset - from .dataset_id import DatasetId - from .dataset_version_id import DatasetVersionId - from .descriptions_score import DescriptionsScore - from .direction import Direction - from .embedding_generation_base_request import EmbeddingGenerationBaseRequest - from .embedding_generation_job import EmbeddingGenerationJob - from .emotion_score import EmotionScore - from .error import Error - from .evaluation_args import EvaluationArgs - from .face import Face - from .face_prediction import FacePrediction - from .facemesh_prediction import FacemeshPrediction - from .facs_score import FacsScore - from .failed import Failed - from .failed_state import FailedState - from .file import File - from .granularity import Granularity - from .grouped_predictions_burst_prediction import GroupedPredictionsBurstPrediction - from .grouped_predictions_face_prediction import GroupedPredictionsFacePrediction - from .grouped_predictions_facemesh_prediction import GroupedPredictionsFacemeshPrediction - from .grouped_predictions_language_prediction import GroupedPredictionsLanguagePrediction - from .grouped_predictions_ner_prediction import GroupedPredictionsNerPrediction - from .grouped_predictions_prosody_prediction import GroupedPredictionsProsodyPrediction - from .in_progress import InProgress - from .in_progress_state import InProgressState - from .inference_base_request import InferenceBaseRequest - from .inference_job import InferenceJob - from .inference_prediction import InferencePrediction - from .inference_request import InferenceRequest - from .inference_results import InferenceResults - from .inference_source_predict_result import InferenceSourcePredictResult - from .job_embedding_generation import JobEmbeddingGeneration - from .job_id import JobId - from .job_inference import JobInference - from .job_tl_inference import JobTlInference - from .job_training import JobTraining - from .language import Language - from .language_prediction import LanguagePrediction - from .models import Models - from .models_predictions import ModelsPredictions - from .ner import Ner - from .ner_prediction import NerPrediction - from .null import Null - from .position_interval import PositionInterval - from .predictions_optional_null_burst_prediction import PredictionsOptionalNullBurstPrediction - from .predictions_optional_null_face_prediction import PredictionsOptionalNullFacePrediction - from .predictions_optional_null_facemesh_prediction import PredictionsOptionalNullFacemeshPrediction - from .predictions_optional_transcription_metadata_language_prediction import ( - PredictionsOptionalTranscriptionMetadataLanguagePrediction, - ) - from .predictions_optional_transcription_metadata_ner_prediction import ( - PredictionsOptionalTranscriptionMetadataNerPrediction, - ) - from .predictions_optional_transcription_metadata_prosody_prediction import ( - PredictionsOptionalTranscriptionMetadataProsodyPrediction, - ) - from .prosody import Prosody - from .prosody_prediction import ProsodyPrediction - from .queued import Queued - from .queued_state import QueuedState - from .registry_file_detail import RegistryFileDetail - from .regression import Regression - from .sentiment_score import SentimentScore - from .sort_by import SortBy - from .source import Source, Source_File, Source_Text, Source_Url - from .source_file import SourceFile - from .source_text_source import SourceTextSource - from .source_url import SourceUrl - from .state_embedding_generation import ( - StateEmbeddingGeneration, - StateEmbeddingGeneration_Completed, - StateEmbeddingGeneration_Failed, - StateEmbeddingGeneration_InProgress, - StateEmbeddingGeneration_Queued, - ) - from .state_embedding_generation_completed_embedding_generation import ( - StateEmbeddingGenerationCompletedEmbeddingGeneration, - ) - from .state_embedding_generation_failed import StateEmbeddingGenerationFailed - from .state_embedding_generation_in_progress import StateEmbeddingGenerationInProgress - from .state_embedding_generation_queued import StateEmbeddingGenerationQueued - from .state_inference import ( - StateInference, - StateInference_Completed, - StateInference_Failed, - StateInference_InProgress, - StateInference_Queued, - ) - from .state_tl_inference import ( - StateTlInference, - StateTlInference_Completed, - StateTlInference_Failed, - StateTlInference_InProgress, - StateTlInference_Queued, - ) - from .state_tl_inference_completed_tl_inference import StateTlInferenceCompletedTlInference - from .state_tl_inference_failed import StateTlInferenceFailed - from .state_tl_inference_in_progress import StateTlInferenceInProgress - from .state_tl_inference_queued import StateTlInferenceQueued - from .state_training import ( - StateTraining, - StateTraining_Completed, - StateTraining_Failed, - StateTraining_InProgress, - StateTraining_Queued, - ) - from .state_training_completed_training import StateTrainingCompletedTraining - from .state_training_failed import StateTrainingFailed - from .state_training_in_progress import StateTrainingInProgress - from .state_training_queued import StateTrainingQueued - from .status import Status - from .tag import Tag - from .target import Target - from .task import Task, Task_Classification, Task_Regression - from .task_classification import TaskClassification - from .task_regression import TaskRegression - from .text_source import TextSource - from .time_interval import TimeInterval - from .tl_inference_base_request import TlInferenceBaseRequest - from .tl_inference_prediction import TlInferencePrediction - from .tl_inference_results import TlInferenceResults - from .tl_inference_source_predict_result import TlInferenceSourcePredictResult - from .toxicity_score import ToxicityScore - from .training_base_request import TrainingBaseRequest - from .training_custom_model import TrainingCustomModel - from .transcription import Transcription - from .transcription_metadata import TranscriptionMetadata - from .type import Type - from .unconfigurable import Unconfigurable - from .union_job import UnionJob - from .union_predict_result import UnionPredictResult - from .url import Url - from .validation_args import ValidationArgs - from .when import When - from .window import Window -_dynamic_imports: typing.Dict[str, str] = { - "Alternative": ".alternative", - "Bcp47Tag": ".bcp_47_tag", - "BoundingBox": ".bounding_box", - "BurstPrediction": ".burst_prediction", - "Classification": ".classification", - "CompletedEmbeddingGeneration": ".completed_embedding_generation", - "CompletedInference": ".completed_inference", - "CompletedState": ".completed_state", - "CompletedTlInference": ".completed_tl_inference", - "CompletedTraining": ".completed_training", - "CustomModel": ".custom_model", - "CustomModelId": ".custom_model_id", - "CustomModelPrediction": ".custom_model_prediction", - "CustomModelRequest": ".custom_model_request", - "CustomModelVersionId": ".custom_model_version_id", - "CustomModelsInferenceJob": ".custom_models_inference_job", - "CustomModelsTrainingJob": ".custom_models_training_job", - "Dataset": ".dataset", - "DatasetId": ".dataset_id", - "DatasetVersionId": ".dataset_version_id", - "DescriptionsScore": ".descriptions_score", - "Direction": ".direction", - "EmbeddingGenerationBaseRequest": ".embedding_generation_base_request", - "EmbeddingGenerationJob": ".embedding_generation_job", - "EmotionScore": ".emotion_score", - "Error": ".error", - "EvaluationArgs": ".evaluation_args", - "Face": ".face", - "FacePrediction": ".face_prediction", - "FacemeshPrediction": ".facemesh_prediction", - "FacsScore": ".facs_score", - "Failed": ".failed", - "FailedState": ".failed_state", - "File": ".file", - "Granularity": ".granularity", - "GroupedPredictionsBurstPrediction": ".grouped_predictions_burst_prediction", - "GroupedPredictionsFacePrediction": ".grouped_predictions_face_prediction", - "GroupedPredictionsFacemeshPrediction": ".grouped_predictions_facemesh_prediction", - "GroupedPredictionsLanguagePrediction": ".grouped_predictions_language_prediction", - "GroupedPredictionsNerPrediction": ".grouped_predictions_ner_prediction", - "GroupedPredictionsProsodyPrediction": ".grouped_predictions_prosody_prediction", - "InProgress": ".in_progress", - "InProgressState": ".in_progress_state", - "InferenceBaseRequest": ".inference_base_request", - "InferenceJob": ".inference_job", - "InferencePrediction": ".inference_prediction", - "InferenceRequest": ".inference_request", - "InferenceResults": ".inference_results", - "InferenceSourcePredictResult": ".inference_source_predict_result", - "JobEmbeddingGeneration": ".job_embedding_generation", - "JobId": ".job_id", - "JobInference": ".job_inference", - "JobTlInference": ".job_tl_inference", - "JobTraining": ".job_training", - "Language": ".language", - "LanguagePrediction": ".language_prediction", - "Models": ".models", - "ModelsPredictions": ".models_predictions", - "Ner": ".ner", - "NerPrediction": ".ner_prediction", - "Null": ".null", - "PositionInterval": ".position_interval", - "PredictionsOptionalNullBurstPrediction": ".predictions_optional_null_burst_prediction", - "PredictionsOptionalNullFacePrediction": ".predictions_optional_null_face_prediction", - "PredictionsOptionalNullFacemeshPrediction": ".predictions_optional_null_facemesh_prediction", - "PredictionsOptionalTranscriptionMetadataLanguagePrediction": ".predictions_optional_transcription_metadata_language_prediction", - "PredictionsOptionalTranscriptionMetadataNerPrediction": ".predictions_optional_transcription_metadata_ner_prediction", - "PredictionsOptionalTranscriptionMetadataProsodyPrediction": ".predictions_optional_transcription_metadata_prosody_prediction", - "Prosody": ".prosody", - "ProsodyPrediction": ".prosody_prediction", - "Queued": ".queued", - "QueuedState": ".queued_state", - "RegistryFileDetail": ".registry_file_detail", - "Regression": ".regression", - "SentimentScore": ".sentiment_score", - "SortBy": ".sort_by", - "Source": ".source", - "SourceFile": ".source_file", - "SourceTextSource": ".source_text_source", - "SourceUrl": ".source_url", - "Source_File": ".source", - "Source_Text": ".source", - "Source_Url": ".source", - "StateEmbeddingGeneration": ".state_embedding_generation", - "StateEmbeddingGenerationCompletedEmbeddingGeneration": ".state_embedding_generation_completed_embedding_generation", - "StateEmbeddingGenerationFailed": ".state_embedding_generation_failed", - "StateEmbeddingGenerationInProgress": ".state_embedding_generation_in_progress", - "StateEmbeddingGenerationQueued": ".state_embedding_generation_queued", - "StateEmbeddingGeneration_Completed": ".state_embedding_generation", - "StateEmbeddingGeneration_Failed": ".state_embedding_generation", - "StateEmbeddingGeneration_InProgress": ".state_embedding_generation", - "StateEmbeddingGeneration_Queued": ".state_embedding_generation", - "StateInference": ".state_inference", - "StateInference_Completed": ".state_inference", - "StateInference_Failed": ".state_inference", - "StateInference_InProgress": ".state_inference", - "StateInference_Queued": ".state_inference", - "StateTlInference": ".state_tl_inference", - "StateTlInferenceCompletedTlInference": ".state_tl_inference_completed_tl_inference", - "StateTlInferenceFailed": ".state_tl_inference_failed", - "StateTlInferenceInProgress": ".state_tl_inference_in_progress", - "StateTlInferenceQueued": ".state_tl_inference_queued", - "StateTlInference_Completed": ".state_tl_inference", - "StateTlInference_Failed": ".state_tl_inference", - "StateTlInference_InProgress": ".state_tl_inference", - "StateTlInference_Queued": ".state_tl_inference", - "StateTraining": ".state_training", - "StateTrainingCompletedTraining": ".state_training_completed_training", - "StateTrainingFailed": ".state_training_failed", - "StateTrainingInProgress": ".state_training_in_progress", - "StateTrainingQueued": ".state_training_queued", - "StateTraining_Completed": ".state_training", - "StateTraining_Failed": ".state_training", - "StateTraining_InProgress": ".state_training", - "StateTraining_Queued": ".state_training", - "Status": ".status", - "Tag": ".tag", - "Target": ".target", - "Task": ".task", - "TaskClassification": ".task_classification", - "TaskRegression": ".task_regression", - "Task_Classification": ".task", - "Task_Regression": ".task", - "TextSource": ".text_source", - "TimeInterval": ".time_interval", - "TlInferenceBaseRequest": ".tl_inference_base_request", - "TlInferencePrediction": ".tl_inference_prediction", - "TlInferenceResults": ".tl_inference_results", - "TlInferenceSourcePredictResult": ".tl_inference_source_predict_result", - "ToxicityScore": ".toxicity_score", - "TrainingBaseRequest": ".training_base_request", - "TrainingCustomModel": ".training_custom_model", - "Transcription": ".transcription", - "TranscriptionMetadata": ".transcription_metadata", - "Type": ".type", - "Unconfigurable": ".unconfigurable", - "UnionJob": ".union_job", - "UnionPredictResult": ".union_predict_result", - "Url": ".url", - "ValidationArgs": ".validation_args", - "When": ".when", - "Window": ".window", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "Alternative", - "Bcp47Tag", - "BoundingBox", - "BurstPrediction", - "Classification", - "CompletedEmbeddingGeneration", - "CompletedInference", - "CompletedState", - "CompletedTlInference", - "CompletedTraining", - "CustomModel", - "CustomModelId", - "CustomModelPrediction", - "CustomModelRequest", - "CustomModelVersionId", - "CustomModelsInferenceJob", - "CustomModelsTrainingJob", - "Dataset", - "DatasetId", - "DatasetVersionId", - "DescriptionsScore", - "Direction", - "EmbeddingGenerationBaseRequest", - "EmbeddingGenerationJob", - "EmotionScore", - "Error", - "EvaluationArgs", - "Face", - "FacePrediction", - "FacemeshPrediction", - "FacsScore", - "Failed", - "FailedState", - "File", - "Granularity", - "GroupedPredictionsBurstPrediction", - "GroupedPredictionsFacePrediction", - "GroupedPredictionsFacemeshPrediction", - "GroupedPredictionsLanguagePrediction", - "GroupedPredictionsNerPrediction", - "GroupedPredictionsProsodyPrediction", - "InProgress", - "InProgressState", - "InferenceBaseRequest", - "InferenceJob", - "InferencePrediction", - "InferenceRequest", - "InferenceResults", - "InferenceSourcePredictResult", - "JobEmbeddingGeneration", - "JobId", - "JobInference", - "JobTlInference", - "JobTraining", - "Language", - "LanguagePrediction", - "Models", - "ModelsPredictions", - "Ner", - "NerPrediction", - "Null", - "PositionInterval", - "PredictionsOptionalNullBurstPrediction", - "PredictionsOptionalNullFacePrediction", - "PredictionsOptionalNullFacemeshPrediction", - "PredictionsOptionalTranscriptionMetadataLanguagePrediction", - "PredictionsOptionalTranscriptionMetadataNerPrediction", - "PredictionsOptionalTranscriptionMetadataProsodyPrediction", - "Prosody", - "ProsodyPrediction", - "Queued", - "QueuedState", - "RegistryFileDetail", - "Regression", - "SentimentScore", - "SortBy", - "Source", - "SourceFile", - "SourceTextSource", - "SourceUrl", - "Source_File", - "Source_Text", - "Source_Url", - "StateEmbeddingGeneration", - "StateEmbeddingGenerationCompletedEmbeddingGeneration", - "StateEmbeddingGenerationFailed", - "StateEmbeddingGenerationInProgress", - "StateEmbeddingGenerationQueued", - "StateEmbeddingGeneration_Completed", - "StateEmbeddingGeneration_Failed", - "StateEmbeddingGeneration_InProgress", - "StateEmbeddingGeneration_Queued", - "StateInference", - "StateInference_Completed", - "StateInference_Failed", - "StateInference_InProgress", - "StateInference_Queued", - "StateTlInference", - "StateTlInferenceCompletedTlInference", - "StateTlInferenceFailed", - "StateTlInferenceInProgress", - "StateTlInferenceQueued", - "StateTlInference_Completed", - "StateTlInference_Failed", - "StateTlInference_InProgress", - "StateTlInference_Queued", - "StateTraining", - "StateTrainingCompletedTraining", - "StateTrainingFailed", - "StateTrainingInProgress", - "StateTrainingQueued", - "StateTraining_Completed", - "StateTraining_Failed", - "StateTraining_InProgress", - "StateTraining_Queued", - "Status", - "Tag", - "Target", - "Task", - "TaskClassification", - "TaskRegression", - "Task_Classification", - "Task_Regression", - "TextSource", - "TimeInterval", - "TlInferenceBaseRequest", - "TlInferencePrediction", - "TlInferenceResults", - "TlInferenceSourcePredictResult", - "ToxicityScore", - "TrainingBaseRequest", - "TrainingCustomModel", - "Transcription", - "TranscriptionMetadata", - "Type", - "Unconfigurable", - "UnionJob", - "UnionPredictResult", - "Url", - "ValidationArgs", - "When", - "Window", -] diff --git a/src/hume/expression_measurement/batch/types/alternative.py b/src/hume/expression_measurement/batch/types/alternative.py deleted file mode 100644 index a5ef4687..00000000 --- a/src/hume/expression_measurement/batch/types/alternative.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Alternative = typing.Literal["language_only"] diff --git a/src/hume/expression_measurement/batch/types/bcp_47_tag.py b/src/hume/expression_measurement/batch/types/bcp_47_tag.py deleted file mode 100644 index 4b126681..00000000 --- a/src/hume/expression_measurement/batch/types/bcp_47_tag.py +++ /dev/null @@ -1,38 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Bcp47Tag = typing.Union[ - typing.Literal[ - "zh", - "da", - "nl", - "en", - "en-AU", - "en-IN", - "en-NZ", - "en-GB", - "fr", - "fr-CA", - "de", - "hi", - "hi-Latn", - "id", - "it", - "ja", - "ko", - "no", - "pl", - "pt", - "pt-BR", - "pt-PT", - "ru", - "es", - "es-419", - "sv", - "ta", - "tr", - "uk", - ], - typing.Any, -] diff --git a/src/hume/expression_measurement/batch/types/bounding_box.py b/src/hume/expression_measurement/batch/types/bounding_box.py deleted file mode 100644 index 8b65d4cc..00000000 --- a/src/hume/expression_measurement/batch/types/bounding_box.py +++ /dev/null @@ -1,41 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class BoundingBox(UniversalBaseModel): - """ - A bounding box around a face. - """ - - x: float = pydantic.Field() - """ - x-coordinate of bounding box top left corner. - """ - - y: float = pydantic.Field() - """ - y-coordinate of bounding box top left corner. - """ - - w: float = pydantic.Field() - """ - Bounding box width. - """ - - h: float = pydantic.Field() - """ - Bounding box height. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/burst_prediction.py b/src/hume/expression_measurement/batch/types/burst_prediction.py deleted file mode 100644 index fee1cb19..00000000 --- a/src/hume/expression_measurement/batch/types/burst_prediction.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .descriptions_score import DescriptionsScore -from .emotion_score import EmotionScore -from .time_interval import TimeInterval - - -class BurstPrediction(UniversalBaseModel): - time: TimeInterval - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - descriptions: typing.List[DescriptionsScore] = pydantic.Field() - """ - Modality-specific descriptive features and their scores. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/classification.py b/src/hume/expression_measurement/batch/types/classification.py deleted file mode 100644 index 306b8a2c..00000000 --- a/src/hume/expression_measurement/batch/types/classification.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Classification = typing.Dict[str, typing.Any] diff --git a/src/hume/expression_measurement/batch/types/completed_embedding_generation.py b/src/hume/expression_measurement/batch/types/completed_embedding_generation.py deleted file mode 100644 index 1d1041aa..00000000 --- a/src/hume/expression_measurement/batch/types/completed_embedding_generation.py +++ /dev/null @@ -1,32 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CompletedEmbeddingGeneration(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - ended_timestamp_ms: int = pydantic.Field() - """ - When this job ended (Unix timestamp in milliseconds). - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/completed_inference.py b/src/hume/expression_measurement/batch/types/completed_inference.py deleted file mode 100644 index e4b27eed..00000000 --- a/src/hume/expression_measurement/batch/types/completed_inference.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CompletedInference(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - ended_timestamp_ms: int = pydantic.Field() - """ - When this job ended (Unix timestamp in milliseconds). - """ - - num_predictions: int = pydantic.Field() - """ - The number of predictions that were generated by this job. - """ - - num_errors: int = pydantic.Field() - """ - The number of errors that occurred while running this job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/completed_state.py b/src/hume/expression_measurement/batch/types/completed_state.py deleted file mode 100644 index f629fd54..00000000 --- a/src/hume/expression_measurement/batch/types/completed_state.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .completed_inference import CompletedInference - - -class CompletedState(CompletedInference): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/completed_tl_inference.py b/src/hume/expression_measurement/batch/types/completed_tl_inference.py deleted file mode 100644 index 7c1e635e..00000000 --- a/src/hume/expression_measurement/batch/types/completed_tl_inference.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CompletedTlInference(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - ended_timestamp_ms: int = pydantic.Field() - """ - When this job ended (Unix timestamp in milliseconds). - """ - - num_predictions: int = pydantic.Field() - """ - The number of predictions that were generated by this job. - """ - - num_errors: int = pydantic.Field() - """ - The number of errors that occurred while running this job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/completed_training.py b/src/hume/expression_measurement/batch/types/completed_training.py deleted file mode 100644 index 7f0a930f..00000000 --- a/src/hume/expression_measurement/batch/types/completed_training.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .training_custom_model import TrainingCustomModel - - -class CompletedTraining(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - ended_timestamp_ms: int = pydantic.Field() - """ - When this job ended (Unix timestamp in milliseconds). - """ - - custom_model: TrainingCustomModel - alternatives: typing.Optional[typing.Dict[str, TrainingCustomModel]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_model.py b/src/hume/expression_measurement/batch/types/custom_model.py deleted file mode 100644 index 01e9a8ff..00000000 --- a/src/hume/expression_measurement/batch/types/custom_model.py +++ /dev/null @@ -1,8 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .custom_model_id import CustomModelId -from .custom_model_version_id import CustomModelVersionId - -CustomModel = typing.Union[CustomModelId, CustomModelVersionId] diff --git a/src/hume/expression_measurement/batch/types/custom_model_id.py b/src/hume/expression_measurement/batch/types/custom_model_id.py deleted file mode 100644 index e3219486..00000000 --- a/src/hume/expression_measurement/batch/types/custom_model_id.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CustomModelId(UniversalBaseModel): - id: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_model_prediction.py b/src/hume/expression_measurement/batch/types/custom_model_prediction.py deleted file mode 100644 index 8b6bc39c..00000000 --- a/src/hume/expression_measurement/batch/types/custom_model_prediction.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CustomModelPrediction(UniversalBaseModel): - output: typing.Dict[str, float] - error: str - task_type: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_model_request.py b/src/hume/expression_measurement/batch/types/custom_model_request.py deleted file mode 100644 index f5f34851..00000000 --- a/src/hume/expression_measurement/batch/types/custom_model_request.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .tag import Tag - - -class CustomModelRequest(UniversalBaseModel): - name: str - description: typing.Optional[str] = None - tags: typing.Optional[typing.List[Tag]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_model_version_id.py b/src/hume/expression_measurement/batch/types/custom_model_version_id.py deleted file mode 100644 index 3c732b02..00000000 --- a/src/hume/expression_measurement/batch/types/custom_model_version_id.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class CustomModelVersionId(UniversalBaseModel): - version_id: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_models_inference_job.py b/src/hume/expression_measurement/batch/types/custom_models_inference_job.py deleted file mode 100644 index 219b5a91..00000000 --- a/src/hume/expression_measurement/batch/types/custom_models_inference_job.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .job_tl_inference import JobTlInference - - -class CustomModelsInferenceJob(JobTlInference): - type: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/custom_models_training_job.py b/src/hume/expression_measurement/batch/types/custom_models_training_job.py deleted file mode 100644 index 4bae38cc..00000000 --- a/src/hume/expression_measurement/batch/types/custom_models_training_job.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .job_training import JobTraining - - -class CustomModelsTrainingJob(JobTraining): - type: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/dataset.py b/src/hume/expression_measurement/batch/types/dataset.py deleted file mode 100644 index 3f6ea5a7..00000000 --- a/src/hume/expression_measurement/batch/types/dataset.py +++ /dev/null @@ -1,8 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .dataset_id import DatasetId -from .dataset_version_id import DatasetVersionId - -Dataset = typing.Union[DatasetId, DatasetVersionId] diff --git a/src/hume/expression_measurement/batch/types/dataset_id.py b/src/hume/expression_measurement/batch/types/dataset_id.py deleted file mode 100644 index ad64de01..00000000 --- a/src/hume/expression_measurement/batch/types/dataset_id.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class DatasetId(UniversalBaseModel): - id: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/dataset_version_id.py b/src/hume/expression_measurement/batch/types/dataset_version_id.py deleted file mode 100644 index 2d0ce3de..00000000 --- a/src/hume/expression_measurement/batch/types/dataset_version_id.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class DatasetVersionId(UniversalBaseModel): - version_id: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/descriptions_score.py b/src/hume/expression_measurement/batch/types/descriptions_score.py deleted file mode 100644 index 8263d942..00000000 --- a/src/hume/expression_measurement/batch/types/descriptions_score.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class DescriptionsScore(UniversalBaseModel): - name: str = pydantic.Field() - """ - Name of the descriptive feature being expressed. - """ - - score: float = pydantic.Field() - """ - Embedding value for the descriptive feature being expressed. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/direction.py b/src/hume/expression_measurement/batch/types/direction.py deleted file mode 100644 index 601d325f..00000000 --- a/src/hume/expression_measurement/batch/types/direction.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Direction = typing.Union[typing.Literal["asc", "desc"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/embedding_generation_base_request.py b/src/hume/expression_measurement/batch/types/embedding_generation_base_request.py deleted file mode 100644 index aae13365..00000000 --- a/src/hume/expression_measurement/batch/types/embedding_generation_base_request.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .registry_file_detail import RegistryFileDetail - - -class EmbeddingGenerationBaseRequest(UniversalBaseModel): - registry_file_details: typing.Optional[typing.List[RegistryFileDetail]] = pydantic.Field(default=None) - """ - File ID and File URL pairs for an asset registry file - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/embedding_generation_job.py b/src/hume/expression_measurement/batch/types/embedding_generation_job.py deleted file mode 100644 index 92634f92..00000000 --- a/src/hume/expression_measurement/batch/types/embedding_generation_job.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .job_embedding_generation import JobEmbeddingGeneration - - -class EmbeddingGenerationJob(JobEmbeddingGeneration): - type: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/emotion_score.py b/src/hume/expression_measurement/batch/types/emotion_score.py deleted file mode 100644 index 7249ab32..00000000 --- a/src/hume/expression_measurement/batch/types/emotion_score.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class EmotionScore(UniversalBaseModel): - name: str = pydantic.Field() - """ - Name of the emotion being expressed. - """ - - score: float = pydantic.Field() - """ - Embedding value for the emotion being expressed. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/error.py b/src/hume/expression_measurement/batch/types/error.py deleted file mode 100644 index 83bd0ce8..00000000 --- a/src/hume/expression_measurement/batch/types/error.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Error(UniversalBaseModel): - message: str = pydantic.Field() - """ - An error message. - """ - - file: str = pydantic.Field() - """ - A file path relative to the top level source URL or file. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/evaluation_args.py b/src/hume/expression_measurement/batch/types/evaluation_args.py deleted file mode 100644 index 581132f7..00000000 --- a/src/hume/expression_measurement/batch/types/evaluation_args.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .validation_args import ValidationArgs - - -class EvaluationArgs(UniversalBaseModel): - validation: typing.Optional[ValidationArgs] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/face.py b/src/hume/expression_measurement/batch/types/face.py deleted file mode 100644 index 512e6f98..00000000 --- a/src/hume/expression_measurement/batch/types/face.py +++ /dev/null @@ -1,51 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .unconfigurable import Unconfigurable - - -class Face(UniversalBaseModel): - """ - The Facial Emotional Expression model analyzes human facial expressions in images and videos. Results will be provided per frame for video files. - - Recommended input file types: `.png`, `.jpeg`, `.mp4` - """ - - fps_pred: typing.Optional[float] = pydantic.Field(default=None) - """ - Number of frames per second to process. Other frames will be omitted from the response. Set to `0` to process every frame. - """ - - prob_threshold: typing.Optional[float] = pydantic.Field(default=None) - """ - Face detection probability threshold. Faces detected with a probability less than this threshold will be omitted from the response. - """ - - identify_faces: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for faces across frames. If `true`, unique identifiers will be assigned to face bounding boxes to differentiate different faces. If `false`, all faces will be tagged with an `unknown` ID. - """ - - min_face_size: typing.Optional[int] = pydantic.Field(default=None) - """ - Minimum bounding box side length in pixels to treat as a face. Faces detected with a bounding box side length in pixels less than this threshold will be omitted from the response. - """ - - facs: typing.Optional[Unconfigurable] = None - descriptions: typing.Optional[Unconfigurable] = None - save_faces: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to extract and save the detected faces in the artifacts zip created by each job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/face_prediction.py b/src/hume/expression_measurement/batch/types/face_prediction.py deleted file mode 100644 index 2b796008..00000000 --- a/src/hume/expression_measurement/batch/types/face_prediction.py +++ /dev/null @@ -1,52 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .bounding_box import BoundingBox -from .descriptions_score import DescriptionsScore -from .emotion_score import EmotionScore -from .facs_score import FacsScore - - -class FacePrediction(UniversalBaseModel): - frame: int = pydantic.Field() - """ - Frame number - """ - - time: float = pydantic.Field() - """ - Time in seconds when face detection occurred. - """ - - prob: float = pydantic.Field() - """ - The predicted probability that a detected face was actually a face. - """ - - box: BoundingBox - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - facs: typing.Optional[typing.List[FacsScore]] = pydantic.Field(default=None) - """ - FACS 2.0 features and their scores. - """ - - descriptions: typing.Optional[typing.List[DescriptionsScore]] = pydantic.Field(default=None) - """ - Modality-specific descriptive features and their scores. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/facemesh_prediction.py b/src/hume/expression_measurement/batch/types/facemesh_prediction.py deleted file mode 100644 index 4cca637e..00000000 --- a/src/hume/expression_measurement/batch/types/facemesh_prediction.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .emotion_score import EmotionScore - - -class FacemeshPrediction(UniversalBaseModel): - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/facs_score.py b/src/hume/expression_measurement/batch/types/facs_score.py deleted file mode 100644 index b9a9eeb6..00000000 --- a/src/hume/expression_measurement/batch/types/facs_score.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class FacsScore(UniversalBaseModel): - name: str = pydantic.Field() - """ - Name of the FACS 2.0 feature being expressed. - """ - - score: float = pydantic.Field() - """ - Embedding value for the FACS 2.0 feature being expressed. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/failed.py b/src/hume/expression_measurement/batch/types/failed.py deleted file mode 100644 index 46190522..00000000 --- a/src/hume/expression_measurement/batch/types/failed.py +++ /dev/null @@ -1,37 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Failed(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - ended_timestamp_ms: int = pydantic.Field() - """ - When this job ended (Unix timestamp in milliseconds). - """ - - message: str = pydantic.Field() - """ - An error message. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/failed_state.py b/src/hume/expression_measurement/batch/types/failed_state.py deleted file mode 100644 index 3c3b237b..00000000 --- a/src/hume/expression_measurement/batch/types/failed_state.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .failed import Failed - - -class FailedState(Failed): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/file.py b/src/hume/expression_measurement/batch/types/file.py deleted file mode 100644 index 86c82165..00000000 --- a/src/hume/expression_measurement/batch/types/file.py +++ /dev/null @@ -1,37 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ....core.serialization import FieldMetadata - - -class File(UniversalBaseModel): - """ - The list of files submitted for analysis. - """ - - filename: typing.Optional[str] = pydantic.Field(default=None) - """ - The name of the file. - """ - - content_type: typing.Optional[str] = pydantic.Field(default=None) - """ - The content type of the file. - """ - - md_5_sum: typing_extensions.Annotated[ - str, FieldMetadata(alias="md5sum"), pydantic.Field(alias="md5sum", description="The MD5 checksum of the file.") - ] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/granularity.py b/src/hume/expression_measurement/batch/types/granularity.py deleted file mode 100644 index e087b001..00000000 --- a/src/hume/expression_measurement/batch/types/granularity.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Granularity = typing.Union[typing.Literal["word", "sentence", "utterance", "conversational_turn"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_burst_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_burst_prediction.py deleted file mode 100644 index 9d07c46d..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_burst_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .burst_prediction import BurstPrediction - - -class GroupedPredictionsBurstPrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[BurstPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_face_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_face_prediction.py deleted file mode 100644 index a4ab78e2..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_face_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .face_prediction import FacePrediction - - -class GroupedPredictionsFacePrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[FacePrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_facemesh_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_facemesh_prediction.py deleted file mode 100644 index be606bfc..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_facemesh_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .facemesh_prediction import FacemeshPrediction - - -class GroupedPredictionsFacemeshPrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[FacemeshPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_language_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_language_prediction.py deleted file mode 100644 index a55da868..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_language_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .language_prediction import LanguagePrediction - - -class GroupedPredictionsLanguagePrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[LanguagePrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_ner_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_ner_prediction.py deleted file mode 100644 index 8b601dc4..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_ner_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .ner_prediction import NerPrediction - - -class GroupedPredictionsNerPrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[NerPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/grouped_predictions_prosody_prediction.py b/src/hume/expression_measurement/batch/types/grouped_predictions_prosody_prediction.py deleted file mode 100644 index a63c2a61..00000000 --- a/src/hume/expression_measurement/batch/types/grouped_predictions_prosody_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .prosody_prediction import ProsodyPrediction - - -class GroupedPredictionsProsodyPrediction(UniversalBaseModel): - id: str = pydantic.Field() - """ - An automatically generated label to identify individuals in your media file. Will be `unknown` if you have chosen to disable identification, or if the model is unable to distinguish between individuals. - """ - - predictions: typing.List[ProsodyPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/in_progress.py b/src/hume/expression_measurement/batch/types/in_progress.py deleted file mode 100644 index e338b3f2..00000000 --- a/src/hume/expression_measurement/batch/types/in_progress.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class InProgress(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - started_timestamp_ms: int = pydantic.Field() - """ - When this job started (Unix timestamp in milliseconds). - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/in_progress_state.py b/src/hume/expression_measurement/batch/types/in_progress_state.py deleted file mode 100644 index 66843971..00000000 --- a/src/hume/expression_measurement/batch/types/in_progress_state.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .in_progress import InProgress - - -class InProgressState(InProgress): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/inference_base_request.py b/src/hume/expression_measurement/batch/types/inference_base_request.py deleted file mode 100644 index bd283937..00000000 --- a/src/hume/expression_measurement/batch/types/inference_base_request.py +++ /dev/null @@ -1,49 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .models import Models -from .transcription import Transcription - - -class InferenceBaseRequest(UniversalBaseModel): - models: typing.Optional[Models] = pydantic.Field(default=None) - """ - Specify the models to use for inference. - - If this field is not explicitly set, then all models will run by default. - """ - - transcription: typing.Optional[Transcription] = None - urls: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - """ - - text: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - Text supplied directly to our Emotional Language and NER models for analysis. - """ - - callback_url: typing.Optional[str] = pydantic.Field(default=None) - """ - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - """ - - notify: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to send an email notification to the user upon job completion/failure. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/inference_prediction.py b/src/hume/expression_measurement/batch/types/inference_prediction.py deleted file mode 100644 index 9886f3fe..00000000 --- a/src/hume/expression_measurement/batch/types/inference_prediction.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .models_predictions import ModelsPredictions - - -class InferencePrediction(UniversalBaseModel): - file: str = pydantic.Field() - """ - A file path relative to the top level source URL or file. - """ - - models: ModelsPredictions - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/inference_request.py b/src/hume/expression_measurement/batch/types/inference_request.py deleted file mode 100644 index 244c822c..00000000 --- a/src/hume/expression_measurement/batch/types/inference_request.py +++ /dev/null @@ -1,46 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .file import File -from .models import Models -from .transcription import Transcription - - -class InferenceRequest(UniversalBaseModel): - models: typing.Optional[Models] = None - transcription: typing.Optional[Transcription] = None - urls: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - """ - - text: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - Text to supply directly to our language and NER models. - """ - - callback_url: typing.Optional[str] = pydantic.Field(default=None) - """ - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - """ - - notify: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to send an email notification to the user upon job completion/failure. - """ - - files: typing.List[File] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/inference_results.py b/src/hume/expression_measurement/batch/types/inference_results.py deleted file mode 100644 index acf23734..00000000 --- a/src/hume/expression_measurement/batch/types/inference_results.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .error import Error -from .inference_prediction import InferencePrediction - - -class InferenceResults(UniversalBaseModel): - predictions: typing.List[InferencePrediction] - errors: typing.List[Error] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/inference_source_predict_result.py b/src/hume/expression_measurement/batch/types/inference_source_predict_result.py deleted file mode 100644 index e78a998f..00000000 --- a/src/hume/expression_measurement/batch/types/inference_source_predict_result.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .inference_results import InferenceResults -from .source import Source - - -class InferenceSourcePredictResult(UniversalBaseModel): - source: Source - results: typing.Optional[InferenceResults] = None - error: typing.Optional[str] = pydantic.Field(default=None) - """ - An error message. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/job_embedding_generation.py b/src/hume/expression_measurement/batch/types/job_embedding_generation.py deleted file mode 100644 index 763586fd..00000000 --- a/src/hume/expression_measurement/batch/types/job_embedding_generation.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .embedding_generation_base_request import EmbeddingGenerationBaseRequest -from .state_embedding_generation import StateEmbeddingGeneration - - -class JobEmbeddingGeneration(UniversalBaseModel): - job_id: str = pydantic.Field() - """ - The ID associated with this job. - """ - - user_id: str - request: EmbeddingGenerationBaseRequest - state: StateEmbeddingGeneration - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/job_id.py b/src/hume/expression_measurement/batch/types/job_id.py deleted file mode 100644 index b76f54e8..00000000 --- a/src/hume/expression_measurement/batch/types/job_id.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class JobId(UniversalBaseModel): - job_id: str = pydantic.Field() - """ - The ID of the started job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/job_inference.py b/src/hume/expression_measurement/batch/types/job_inference.py deleted file mode 100644 index e8db47ab..00000000 --- a/src/hume/expression_measurement/batch/types/job_inference.py +++ /dev/null @@ -1,34 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .inference_request import InferenceRequest -from .state_inference import StateInference - - -class JobInference(UniversalBaseModel): - job_id: str = pydantic.Field() - """ - The ID associated with this job. - """ - - request: InferenceRequest = pydantic.Field() - """ - The request that initiated the job. - """ - - state: StateInference = pydantic.Field() - """ - The current state of the job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/job_tl_inference.py b/src/hume/expression_measurement/batch/types/job_tl_inference.py deleted file mode 100644 index a8a284d8..00000000 --- a/src/hume/expression_measurement/batch/types/job_tl_inference.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .state_tl_inference import StateTlInference -from .tl_inference_base_request import TlInferenceBaseRequest - - -class JobTlInference(UniversalBaseModel): - job_id: str = pydantic.Field() - """ - The ID associated with this job. - """ - - user_id: str - request: TlInferenceBaseRequest - state: StateTlInference - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/job_training.py b/src/hume/expression_measurement/batch/types/job_training.py deleted file mode 100644 index 7097b27b..00000000 --- a/src/hume/expression_measurement/batch/types/job_training.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .state_training import StateTraining -from .training_base_request import TrainingBaseRequest - - -class JobTraining(UniversalBaseModel): - job_id: str = pydantic.Field() - """ - The ID associated with this job. - """ - - user_id: str - request: TrainingBaseRequest - state: StateTraining - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/language.py b/src/hume/expression_measurement/batch/types/language.py deleted file mode 100644 index 0474af5e..00000000 --- a/src/hume/expression_measurement/batch/types/language.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .granularity import Granularity -from .unconfigurable import Unconfigurable - - -class Language(UniversalBaseModel): - """ - The Emotional Language model analyzes passages of text. This also supports audio and video files by transcribing and then directly analyzing the transcribed text. - - Recommended input filetypes: `.txt`, `.mp3`, `.wav`, `.mp4` - """ - - granularity: typing.Optional[Granularity] = None - sentiment: typing.Optional[Unconfigurable] = None - toxicity: typing.Optional[Unconfigurable] = None - identify_speakers: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for speakers over time. If `true`, unique identifiers will be assigned to spoken words to differentiate different speakers. If `false`, all speakers will be tagged with an `unknown` ID. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/language_prediction.py b/src/hume/expression_measurement/batch/types/language_prediction.py deleted file mode 100644 index edaf185d..00000000 --- a/src/hume/expression_measurement/batch/types/language_prediction.py +++ /dev/null @@ -1,56 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .emotion_score import EmotionScore -from .position_interval import PositionInterval -from .sentiment_score import SentimentScore -from .time_interval import TimeInterval -from .toxicity_score import ToxicityScore - - -class LanguagePrediction(UniversalBaseModel): - text: str = pydantic.Field() - """ - A segment of text (like a word or a sentence). - """ - - position: PositionInterval - time: typing.Optional[TimeInterval] = None - confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence in this text. - """ - - speaker_confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence that this text was spoken by this speaker. - """ - - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - sentiment: typing.Optional[typing.List[SentimentScore]] = pydantic.Field(default=None) - """ - Sentiment predictions returned as a distribution. This model predicts the probability that a given text could be interpreted as having each sentiment level from `1` (negative) to `9` (positive). - - Compared to returning one estimate of sentiment, this enables a more nuanced analysis of a text's meaning. For example, a text with very neutral sentiment would have an average rating of `5`. But also a text that could be interpreted as having very positive sentiment or very negative sentiment would also have an average rating of `5`. The average sentiment is less informative than the distribution over sentiment, so this API returns a value for each sentiment level. - """ - - toxicity: typing.Optional[typing.List[ToxicityScore]] = pydantic.Field(default=None) - """ - Toxicity predictions returned as probabilities that the text can be classified into the following categories: `toxic`, `severe_toxic`, `obscene`, `threat`, `insult`, and `identity_hate`. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/models.py b/src/hume/expression_measurement/batch/types/models.py deleted file mode 100644 index 07468c37..00000000 --- a/src/hume/expression_measurement/batch/types/models.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .face import Face -from .language import Language -from .ner import Ner -from .prosody import Prosody -from .unconfigurable import Unconfigurable - - -class Models(UniversalBaseModel): - """ - The models used for inference. - """ - - face: typing.Optional[Face] = None - burst: typing.Optional[Unconfigurable] = None - prosody: typing.Optional[Prosody] = None - language: typing.Optional[Language] = None - ner: typing.Optional[Ner] = None - facemesh: typing.Optional[Unconfigurable] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/models_predictions.py b/src/hume/expression_measurement/batch/types/models_predictions.py deleted file mode 100644 index 67f2447d..00000000 --- a/src/hume/expression_measurement/batch/types/models_predictions.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .predictions_optional_null_burst_prediction import PredictionsOptionalNullBurstPrediction -from .predictions_optional_null_face_prediction import PredictionsOptionalNullFacePrediction -from .predictions_optional_null_facemesh_prediction import PredictionsOptionalNullFacemeshPrediction -from .predictions_optional_transcription_metadata_language_prediction import ( - PredictionsOptionalTranscriptionMetadataLanguagePrediction, -) -from .predictions_optional_transcription_metadata_ner_prediction import ( - PredictionsOptionalTranscriptionMetadataNerPrediction, -) -from .predictions_optional_transcription_metadata_prosody_prediction import ( - PredictionsOptionalTranscriptionMetadataProsodyPrediction, -) - - -class ModelsPredictions(UniversalBaseModel): - face: typing.Optional[PredictionsOptionalNullFacePrediction] = None - burst: typing.Optional[PredictionsOptionalNullBurstPrediction] = None - prosody: typing.Optional[PredictionsOptionalTranscriptionMetadataProsodyPrediction] = None - language: typing.Optional[PredictionsOptionalTranscriptionMetadataLanguagePrediction] = None - ner: typing.Optional[PredictionsOptionalTranscriptionMetadataNerPrediction] = None - facemesh: typing.Optional[PredictionsOptionalNullFacemeshPrediction] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/ner.py b/src/hume/expression_measurement/batch/types/ner.py deleted file mode 100644 index 0f4fcf5e..00000000 --- a/src/hume/expression_measurement/batch/types/ner.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Ner(UniversalBaseModel): - """ - The NER (Named-entity Recognition) model identifies real-world objects and concepts in passages of text. This also supports audio and video files by transcribing and then directly analyzing the transcribed text. - - Recommended input filetypes: `.txt`, `.mp3`, `.wav`, `.mp4` - """ - - identify_speakers: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for speakers over time. If `true`, unique identifiers will be assigned to spoken words to differentiate different speakers. If `false`, all speakers will be tagged with an `unknown` ID. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/ner_prediction.py b/src/hume/expression_measurement/batch/types/ner_prediction.py deleted file mode 100644 index b6e7efee..00000000 --- a/src/hume/expression_measurement/batch/types/ner_prediction.py +++ /dev/null @@ -1,62 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .emotion_score import EmotionScore -from .position_interval import PositionInterval -from .time_interval import TimeInterval - - -class NerPrediction(UniversalBaseModel): - entity: str = pydantic.Field() - """ - The recognized topic or entity. - """ - - position: PositionInterval - entity_confidence: float = pydantic.Field() - """ - Our NER model's relative confidence in the recognized topic or entity. - """ - - support: float = pydantic.Field() - """ - A measure of how often the entity is linked to by other entities. - """ - - uri: str = pydantic.Field() - """ - A URL which provides more information about the recognized topic or entity. - """ - - link_word: str = pydantic.Field() - """ - The specific word to which the emotion predictions are linked. - """ - - time: typing.Optional[TimeInterval] = None - confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence in this text. - """ - - speaker_confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence that this text was spoken by this speaker. - """ - - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/null.py b/src/hume/expression_measurement/batch/types/null.py deleted file mode 100644 index 3b56c0d7..00000000 --- a/src/hume/expression_measurement/batch/types/null.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Null = typing.Dict[str, typing.Any] diff --git a/src/hume/expression_measurement/batch/types/position_interval.py b/src/hume/expression_measurement/batch/types/position_interval.py deleted file mode 100644 index b7666cf4..00000000 --- a/src/hume/expression_measurement/batch/types/position_interval.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class PositionInterval(UniversalBaseModel): - """ - Position of a segment of text within a larger document, measured in characters. Uses zero-based indexing. The beginning index is inclusive and the end index is exclusive. - """ - - begin: int = pydantic.Field() - """ - The index of the first character in the text segment, inclusive. - """ - - end: int = pydantic.Field() - """ - The index of the last character in the text segment, exclusive. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_null_burst_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_null_burst_prediction.py deleted file mode 100644 index 3ce51906..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_null_burst_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_burst_prediction import GroupedPredictionsBurstPrediction -from .null import Null - - -class PredictionsOptionalNullBurstPrediction(UniversalBaseModel): - metadata: typing.Optional[Null] = None - grouped_predictions: typing.List[GroupedPredictionsBurstPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_null_face_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_null_face_prediction.py deleted file mode 100644 index ee7e64d2..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_null_face_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_face_prediction import GroupedPredictionsFacePrediction -from .null import Null - - -class PredictionsOptionalNullFacePrediction(UniversalBaseModel): - metadata: typing.Optional[Null] = None - grouped_predictions: typing.List[GroupedPredictionsFacePrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_null_facemesh_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_null_facemesh_prediction.py deleted file mode 100644 index 6c1cce46..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_null_facemesh_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_facemesh_prediction import GroupedPredictionsFacemeshPrediction -from .null import Null - - -class PredictionsOptionalNullFacemeshPrediction(UniversalBaseModel): - metadata: typing.Optional[Null] = None - grouped_predictions: typing.List[GroupedPredictionsFacemeshPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_language_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_language_prediction.py deleted file mode 100644 index 8cd7eef2..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_language_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_language_prediction import GroupedPredictionsLanguagePrediction -from .transcription_metadata import TranscriptionMetadata - - -class PredictionsOptionalTranscriptionMetadataLanguagePrediction(UniversalBaseModel): - metadata: typing.Optional[TranscriptionMetadata] = None - grouped_predictions: typing.List[GroupedPredictionsLanguagePrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_ner_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_ner_prediction.py deleted file mode 100644 index 7f0a675e..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_ner_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_ner_prediction import GroupedPredictionsNerPrediction -from .transcription_metadata import TranscriptionMetadata - - -class PredictionsOptionalTranscriptionMetadataNerPrediction(UniversalBaseModel): - metadata: typing.Optional[TranscriptionMetadata] = None - grouped_predictions: typing.List[GroupedPredictionsNerPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_prosody_prediction.py b/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_prosody_prediction.py deleted file mode 100644 index ad79d743..00000000 --- a/src/hume/expression_measurement/batch/types/predictions_optional_transcription_metadata_prosody_prediction.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .grouped_predictions_prosody_prediction import GroupedPredictionsProsodyPrediction -from .transcription_metadata import TranscriptionMetadata - - -class PredictionsOptionalTranscriptionMetadataProsodyPrediction(UniversalBaseModel): - metadata: typing.Optional[TranscriptionMetadata] = None - grouped_predictions: typing.List[GroupedPredictionsProsodyPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/prosody.py b/src/hume/expression_measurement/batch/types/prosody.py deleted file mode 100644 index 93496893..00000000 --- a/src/hume/expression_measurement/batch/types/prosody.py +++ /dev/null @@ -1,32 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .granularity import Granularity -from .window import Window - - -class Prosody(UniversalBaseModel): - """ - The Speech Prosody model analyzes the intonation, stress, and rhythm of spoken word. - - Recommended input file types: `.wav`, `.mp3`, `.mp4` - """ - - granularity: typing.Optional[Granularity] = None - window: typing.Optional[Window] = None - identify_speakers: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for speakers over time. If `true`, unique identifiers will be assigned to spoken words to differentiate different speakers. If `false`, all speakers will be tagged with an `unknown` ID. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/prosody_prediction.py b/src/hume/expression_measurement/batch/types/prosody_prediction.py deleted file mode 100644 index 31b3cfc9..00000000 --- a/src/hume/expression_measurement/batch/types/prosody_prediction.py +++ /dev/null @@ -1,40 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .emotion_score import EmotionScore -from .time_interval import TimeInterval - - -class ProsodyPrediction(UniversalBaseModel): - text: typing.Optional[str] = pydantic.Field(default=None) - """ - A segment of text (like a word or a sentence). - """ - - time: TimeInterval - confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence in this text. - """ - - speaker_confidence: typing.Optional[float] = pydantic.Field(default=None) - """ - Value between `0.0` and `1.0` that indicates our transcription model's relative confidence that this text was spoken by this speaker. - """ - - emotions: typing.List[EmotionScore] = pydantic.Field() - """ - A high-dimensional embedding in emotion space. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/queued.py b/src/hume/expression_measurement/batch/types/queued.py deleted file mode 100644 index a2623499..00000000 --- a/src/hume/expression_measurement/batch/types/queued.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Queued(UniversalBaseModel): - created_timestamp_ms: int = pydantic.Field() - """ - When this job was created (Unix timestamp in milliseconds). - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/queued_state.py b/src/hume/expression_measurement/batch/types/queued_state.py deleted file mode 100644 index c7a59395..00000000 --- a/src/hume/expression_measurement/batch/types/queued_state.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .queued import Queued - - -class QueuedState(Queued): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/registry_file_detail.py b/src/hume/expression_measurement/batch/types/registry_file_detail.py deleted file mode 100644 index fe21686f..00000000 --- a/src/hume/expression_measurement/batch/types/registry_file_detail.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class RegistryFileDetail(UniversalBaseModel): - file_id: str = pydantic.Field() - """ - File ID in the Asset Registry - """ - - file_url: str = pydantic.Field() - """ - URL to the file in the Asset Registry - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/regression.py b/src/hume/expression_measurement/batch/types/regression.py deleted file mode 100644 index 9480e787..00000000 --- a/src/hume/expression_measurement/batch/types/regression.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Regression = typing.Dict[str, typing.Any] diff --git a/src/hume/expression_measurement/batch/types/sentiment_score.py b/src/hume/expression_measurement/batch/types/sentiment_score.py deleted file mode 100644 index bb424f27..00000000 --- a/src/hume/expression_measurement/batch/types/sentiment_score.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class SentimentScore(UniversalBaseModel): - name: str = pydantic.Field() - """ - Level of sentiment, ranging from `1` (negative) to `9` (positive) - """ - - score: float = pydantic.Field() - """ - Prediction for this level of sentiment - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/sort_by.py b/src/hume/expression_measurement/batch/types/sort_by.py deleted file mode 100644 index 3a45d71f..00000000 --- a/src/hume/expression_measurement/batch/types/sort_by.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -SortBy = typing.Union[typing.Literal["created", "started", "ended"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/source.py b/src/hume/expression_measurement/batch/types/source.py deleted file mode 100644 index bbd96999..00000000 --- a/src/hume/expression_measurement/batch/types/source.py +++ /dev/null @@ -1,58 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ....core.serialization import FieldMetadata - - -class Source_Url(UniversalBaseModel): - type: typing.Literal["url"] = "url" - url: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class Source_File(UniversalBaseModel): - type: typing.Literal["file"] = "file" - filename: typing.Optional[str] = None - content_type: typing.Optional[str] = None - md_5_sum: typing_extensions.Annotated[str, FieldMetadata(alias="md5sum"), pydantic.Field(alias="md5sum")] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class Source_Text(UniversalBaseModel): - type: typing.Literal["text"] = "text" - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -Source = typing_extensions.Annotated[ - typing.Union[Source_Url, Source_File, Source_Text], pydantic.Field(discriminator="type") -] diff --git a/src/hume/expression_measurement/batch/types/source_file.py b/src/hume/expression_measurement/batch/types/source_file.py deleted file mode 100644 index cf72b1f9..00000000 --- a/src/hume/expression_measurement/batch/types/source_file.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .file import File - - -class SourceFile(File): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/source_text_source.py b/src/hume/expression_measurement/batch/types/source_text_source.py deleted file mode 100644 index 89fddaba..00000000 --- a/src/hume/expression_measurement/batch/types/source_text_source.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class SourceTextSource(UniversalBaseModel): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/source_url.py b/src/hume/expression_measurement/batch/types/source_url.py deleted file mode 100644 index 6876957f..00000000 --- a/src/hume/expression_measurement/batch/types/source_url.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .url import Url - - -class SourceUrl(Url): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_embedding_generation.py b/src/hume/expression_measurement/batch/types/state_embedding_generation.py deleted file mode 100644 index b5a4a133..00000000 --- a/src/hume/expression_measurement/batch/types/state_embedding_generation.py +++ /dev/null @@ -1,82 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StateEmbeddingGeneration_Queued(UniversalBaseModel): - status: typing.Literal["QUEUED"] = "QUEUED" - created_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateEmbeddingGeneration_InProgress(UniversalBaseModel): - status: typing.Literal["IN_PROGRESS"] = "IN_PROGRESS" - created_timestamp_ms: int - started_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateEmbeddingGeneration_Completed(UniversalBaseModel): - status: typing.Literal["COMPLETED"] = "COMPLETED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateEmbeddingGeneration_Failed(UniversalBaseModel): - status: typing.Literal["FAILED"] = "FAILED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - message: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -StateEmbeddingGeneration = typing_extensions.Annotated[ - typing.Union[ - StateEmbeddingGeneration_Queued, - StateEmbeddingGeneration_InProgress, - StateEmbeddingGeneration_Completed, - StateEmbeddingGeneration_Failed, - ], - pydantic.Field(discriminator="status"), -] diff --git a/src/hume/expression_measurement/batch/types/state_embedding_generation_completed_embedding_generation.py b/src/hume/expression_measurement/batch/types/state_embedding_generation_completed_embedding_generation.py deleted file mode 100644 index 9fdf30d9..00000000 --- a/src/hume/expression_measurement/batch/types/state_embedding_generation_completed_embedding_generation.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .completed_embedding_generation import CompletedEmbeddingGeneration - - -class StateEmbeddingGenerationCompletedEmbeddingGeneration(CompletedEmbeddingGeneration): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_embedding_generation_failed.py b/src/hume/expression_measurement/batch/types/state_embedding_generation_failed.py deleted file mode 100644 index 5c9bae08..00000000 --- a/src/hume/expression_measurement/batch/types/state_embedding_generation_failed.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .failed import Failed - - -class StateEmbeddingGenerationFailed(Failed): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_embedding_generation_in_progress.py b/src/hume/expression_measurement/batch/types/state_embedding_generation_in_progress.py deleted file mode 100644 index 9b541805..00000000 --- a/src/hume/expression_measurement/batch/types/state_embedding_generation_in_progress.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .in_progress import InProgress - - -class StateEmbeddingGenerationInProgress(InProgress): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_embedding_generation_queued.py b/src/hume/expression_measurement/batch/types/state_embedding_generation_queued.py deleted file mode 100644 index 3ecffeca..00000000 --- a/src/hume/expression_measurement/batch/types/state_embedding_generation_queued.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .queued import Queued - - -class StateEmbeddingGenerationQueued(Queued): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_inference.py b/src/hume/expression_measurement/batch/types/state_inference.py deleted file mode 100644 index f69050f6..00000000 --- a/src/hume/expression_measurement/batch/types/state_inference.py +++ /dev/null @@ -1,79 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StateInference_Queued(UniversalBaseModel): - status: typing.Literal["QUEUED"] = "QUEUED" - created_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateInference_InProgress(UniversalBaseModel): - status: typing.Literal["IN_PROGRESS"] = "IN_PROGRESS" - created_timestamp_ms: int - started_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateInference_Completed(UniversalBaseModel): - status: typing.Literal["COMPLETED"] = "COMPLETED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - num_predictions: int - num_errors: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateInference_Failed(UniversalBaseModel): - status: typing.Literal["FAILED"] = "FAILED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - message: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -StateInference = typing_extensions.Annotated[ - typing.Union[StateInference_Queued, StateInference_InProgress, StateInference_Completed, StateInference_Failed], - pydantic.Field(discriminator="status"), -] diff --git a/src/hume/expression_measurement/batch/types/state_tl_inference.py b/src/hume/expression_measurement/batch/types/state_tl_inference.py deleted file mode 100644 index 4eee6777..00000000 --- a/src/hume/expression_measurement/batch/types/state_tl_inference.py +++ /dev/null @@ -1,81 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StateTlInference_Queued(UniversalBaseModel): - status: typing.Literal["QUEUED"] = "QUEUED" - created_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTlInference_InProgress(UniversalBaseModel): - status: typing.Literal["IN_PROGRESS"] = "IN_PROGRESS" - created_timestamp_ms: int - started_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTlInference_Completed(UniversalBaseModel): - status: typing.Literal["COMPLETED"] = "COMPLETED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - num_predictions: int - num_errors: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTlInference_Failed(UniversalBaseModel): - status: typing.Literal["FAILED"] = "FAILED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - message: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -StateTlInference = typing_extensions.Annotated[ - typing.Union[ - StateTlInference_Queued, StateTlInference_InProgress, StateTlInference_Completed, StateTlInference_Failed - ], - pydantic.Field(discriminator="status"), -] diff --git a/src/hume/expression_measurement/batch/types/state_tl_inference_completed_tl_inference.py b/src/hume/expression_measurement/batch/types/state_tl_inference_completed_tl_inference.py deleted file mode 100644 index f0f60bef..00000000 --- a/src/hume/expression_measurement/batch/types/state_tl_inference_completed_tl_inference.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .completed_tl_inference import CompletedTlInference - - -class StateTlInferenceCompletedTlInference(CompletedTlInference): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_tl_inference_failed.py b/src/hume/expression_measurement/batch/types/state_tl_inference_failed.py deleted file mode 100644 index 88bb1ddd..00000000 --- a/src/hume/expression_measurement/batch/types/state_tl_inference_failed.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .failed import Failed - - -class StateTlInferenceFailed(Failed): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_tl_inference_in_progress.py b/src/hume/expression_measurement/batch/types/state_tl_inference_in_progress.py deleted file mode 100644 index af34ee36..00000000 --- a/src/hume/expression_measurement/batch/types/state_tl_inference_in_progress.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .in_progress import InProgress - - -class StateTlInferenceInProgress(InProgress): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_tl_inference_queued.py b/src/hume/expression_measurement/batch/types/state_tl_inference_queued.py deleted file mode 100644 index 79a4a3f0..00000000 --- a/src/hume/expression_measurement/batch/types/state_tl_inference_queued.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .queued import Queued - - -class StateTlInferenceQueued(Queued): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_training.py b/src/hume/expression_measurement/batch/types/state_training.py deleted file mode 100644 index 00e5e532..00000000 --- a/src/hume/expression_measurement/batch/types/state_training.py +++ /dev/null @@ -1,80 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .training_custom_model import TrainingCustomModel - - -class StateTraining_Queued(UniversalBaseModel): - status: typing.Literal["QUEUED"] = "QUEUED" - created_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTraining_InProgress(UniversalBaseModel): - status: typing.Literal["IN_PROGRESS"] = "IN_PROGRESS" - created_timestamp_ms: int - started_timestamp_ms: int - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTraining_Completed(UniversalBaseModel): - status: typing.Literal["COMPLETED"] = "COMPLETED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - custom_model: TrainingCustomModel - alternatives: typing.Optional[typing.Dict[str, TrainingCustomModel]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class StateTraining_Failed(UniversalBaseModel): - status: typing.Literal["FAILED"] = "FAILED" - created_timestamp_ms: int - started_timestamp_ms: int - ended_timestamp_ms: int - message: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -StateTraining = typing_extensions.Annotated[ - typing.Union[StateTraining_Queued, StateTraining_InProgress, StateTraining_Completed, StateTraining_Failed], - pydantic.Field(discriminator="status"), -] diff --git a/src/hume/expression_measurement/batch/types/state_training_completed_training.py b/src/hume/expression_measurement/batch/types/state_training_completed_training.py deleted file mode 100644 index 01f3f721..00000000 --- a/src/hume/expression_measurement/batch/types/state_training_completed_training.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .completed_training import CompletedTraining - - -class StateTrainingCompletedTraining(CompletedTraining): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_training_failed.py b/src/hume/expression_measurement/batch/types/state_training_failed.py deleted file mode 100644 index d282cd95..00000000 --- a/src/hume/expression_measurement/batch/types/state_training_failed.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .failed import Failed - - -class StateTrainingFailed(Failed): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_training_in_progress.py b/src/hume/expression_measurement/batch/types/state_training_in_progress.py deleted file mode 100644 index 3686e803..00000000 --- a/src/hume/expression_measurement/batch/types/state_training_in_progress.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .in_progress import InProgress - - -class StateTrainingInProgress(InProgress): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/state_training_queued.py b/src/hume/expression_measurement/batch/types/state_training_queued.py deleted file mode 100644 index 87d9693e..00000000 --- a/src/hume/expression_measurement/batch/types/state_training_queued.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .queued import Queued - - -class StateTrainingQueued(Queued): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/status.py b/src/hume/expression_measurement/batch/types/status.py deleted file mode 100644 index 68f2fc45..00000000 --- a/src/hume/expression_measurement/batch/types/status.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Status = typing.Union[typing.Literal["QUEUED", "IN_PROGRESS", "COMPLETED", "FAILED"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/tag.py b/src/hume/expression_measurement/batch/types/tag.py deleted file mode 100644 index 9e504103..00000000 --- a/src/hume/expression_measurement/batch/types/tag.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Tag(UniversalBaseModel): - key: str - value: str - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/target.py b/src/hume/expression_measurement/batch/types/target.py deleted file mode 100644 index 58148210..00000000 --- a/src/hume/expression_measurement/batch/types/target.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Target = typing.Union[int, float, str] diff --git a/src/hume/expression_measurement/batch/types/task.py b/src/hume/expression_measurement/batch/types/task.py deleted file mode 100644 index 6c3d5874..00000000 --- a/src/hume/expression_measurement/batch/types/task.py +++ /dev/null @@ -1,40 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -import pydantic -import typing_extensions -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Task_Classification(UniversalBaseModel): - type: typing.Literal["classification"] = "classification" - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -class Task_Regression(UniversalBaseModel): - type: typing.Literal["regression"] = "regression" - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow - - -Task = typing_extensions.Annotated[ - typing.Union[Task_Classification, Task_Regression], pydantic.Field(discriminator="type") -] diff --git a/src/hume/expression_measurement/batch/types/task_classification.py b/src/hume/expression_measurement/batch/types/task_classification.py deleted file mode 100644 index 65d11824..00000000 --- a/src/hume/expression_measurement/batch/types/task_classification.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TaskClassification(UniversalBaseModel): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/task_regression.py b/src/hume/expression_measurement/batch/types/task_regression.py deleted file mode 100644 index 025bc47b..00000000 --- a/src/hume/expression_measurement/batch/types/task_regression.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TaskRegression(UniversalBaseModel): - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/text_source.py b/src/hume/expression_measurement/batch/types/text_source.py deleted file mode 100644 index 78b7ffc2..00000000 --- a/src/hume/expression_measurement/batch/types/text_source.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -TextSource = typing.Dict[str, typing.Any] diff --git a/src/hume/expression_measurement/batch/types/time_interval.py b/src/hume/expression_measurement/batch/types/time_interval.py deleted file mode 100644 index a8343a4c..00000000 --- a/src/hume/expression_measurement/batch/types/time_interval.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TimeInterval(UniversalBaseModel): - """ - A time range with a beginning and end, measured in seconds. - """ - - begin: float = pydantic.Field() - """ - Beginning of time range in seconds. - """ - - end: float = pydantic.Field() - """ - End of time range in seconds. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/tl_inference_base_request.py b/src/hume/expression_measurement/batch/types/tl_inference_base_request.py deleted file mode 100644 index f11664d8..00000000 --- a/src/hume/expression_measurement/batch/types/tl_inference_base_request.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .custom_model import CustomModel - - -class TlInferenceBaseRequest(UniversalBaseModel): - custom_model: CustomModel - urls: typing.Optional[typing.List[str]] = pydantic.Field(default=None) - """ - URLs to the media files to be processed. Each must be a valid public URL to a media file (see recommended input filetypes) or an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`) of media files. - - If you wish to supply more than 100 URLs, consider providing them as an archive (`.zip`, `.tar.gz`, `.tar.bz2`, `.tar.xz`). - """ - - callback_url: typing.Optional[str] = pydantic.Field(default=None) - """ - If provided, a `POST` request will be made to the URL with the generated predictions on completion or the error message on failure. - """ - - notify: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to send an email notification to the user upon job completion/failure. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/tl_inference_prediction.py b/src/hume/expression_measurement/batch/types/tl_inference_prediction.py deleted file mode 100644 index 726c1b11..00000000 --- a/src/hume/expression_measurement/batch/types/tl_inference_prediction.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .custom_model_prediction import CustomModelPrediction - - -class TlInferencePrediction(UniversalBaseModel): - file: str = pydantic.Field() - """ - A file path relative to the top level source URL or file. - """ - - file_type: str - custom_models: typing.Dict[str, CustomModelPrediction] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/tl_inference_results.py b/src/hume/expression_measurement/batch/types/tl_inference_results.py deleted file mode 100644 index f188479a..00000000 --- a/src/hume/expression_measurement/batch/types/tl_inference_results.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .error import Error -from .tl_inference_prediction import TlInferencePrediction - - -class TlInferenceResults(UniversalBaseModel): - predictions: typing.List[TlInferencePrediction] - errors: typing.List[Error] - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/tl_inference_source_predict_result.py b/src/hume/expression_measurement/batch/types/tl_inference_source_predict_result.py deleted file mode 100644 index 35b00952..00000000 --- a/src/hume/expression_measurement/batch/types/tl_inference_source_predict_result.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .source import Source -from .tl_inference_results import TlInferenceResults - - -class TlInferenceSourcePredictResult(UniversalBaseModel): - source: Source - results: typing.Optional[TlInferenceResults] = None - error: typing.Optional[str] = pydantic.Field(default=None) - """ - An error message. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/toxicity_score.py b/src/hume/expression_measurement/batch/types/toxicity_score.py deleted file mode 100644 index e6a57f14..00000000 --- a/src/hume/expression_measurement/batch/types/toxicity_score.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class ToxicityScore(UniversalBaseModel): - name: str = pydantic.Field() - """ - Category of toxicity. - """ - - score: float = pydantic.Field() - """ - Prediction for this category of toxicity - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/training_base_request.py b/src/hume/expression_measurement/batch/types/training_base_request.py deleted file mode 100644 index 64e26f4e..00000000 --- a/src/hume/expression_measurement/batch/types/training_base_request.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .alternative import Alternative -from .custom_model_request import CustomModelRequest -from .dataset import Dataset -from .evaluation_args import EvaluationArgs -from .task import Task - - -class TrainingBaseRequest(UniversalBaseModel): - custom_model: CustomModelRequest - dataset: Dataset - target_feature: typing.Optional[str] = None - task: typing.Optional[Task] = None - evaluation: typing.Optional[EvaluationArgs] = None - alternatives: typing.Optional[typing.List[Alternative]] = None - callback_url: typing.Optional[str] = None - notify: typing.Optional[bool] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/training_custom_model.py b/src/hume/expression_measurement/batch/types/training_custom_model.py deleted file mode 100644 index 60d99c91..00000000 --- a/src/hume/expression_measurement/batch/types/training_custom_model.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TrainingCustomModel(UniversalBaseModel): - id: str - version_id: typing.Optional[str] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/transcription.py b/src/hume/expression_measurement/batch/types/transcription.py deleted file mode 100644 index 8c83493a..00000000 --- a/src/hume/expression_measurement/batch/types/transcription.py +++ /dev/null @@ -1,70 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .bcp_47_tag import Bcp47Tag - - -class Transcription(UniversalBaseModel): - """ - Transcription-related configuration options. - - To disable transcription, explicitly set this field to `null`. - """ - - language: typing.Optional[Bcp47Tag] = pydantic.Field(default=None) - """ - By default, we use an automated language detection method for our Speech Prosody, Language, and NER models. However, if you know what language is being spoken in your media samples, you can specify it via its BCP-47 tag and potentially obtain more accurate results. - - You can specify any of the following languages: - - Chinese: `zh` - - Danish: `da` - - Dutch: `nl` - - English: `en` - - English (Australia): `en-AU` - - English (India): `en-IN` - - English (New Zealand): `en-NZ` - - English (United Kingdom): `en-GB` - - French: `fr` - - French (Canada): `fr-CA` - - German: `de` - - Hindi: `hi` - - Hindi (Roman Script): `hi-Latn` - - Indonesian: `id` - - Italian: `it` - - Japanese: `ja` - - Korean: `ko` - - Norwegian: `no` - - Polish: `pl` - - Portuguese: `pt` - - Portuguese (Brazil): `pt-BR` - - Portuguese (Portugal): `pt-PT` - - Russian: `ru` - - Spanish: `es` - - Spanish (Latin America): `es-419` - - Swedish: `sv` - - Tamil: `ta` - - Turkish: `tr` - - Ukrainian: `uk` - """ - - identify_speakers: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for speakers over time. If `true`, unique identifiers will be assigned to spoken words to differentiate different speakers. If `false`, all speakers will be tagged with an `unknown` ID. - """ - - confidence_threshold: typing.Optional[float] = pydantic.Field(default=None) - """ - Transcript confidence threshold. Transcripts generated with a confidence less than this threshold will be considered invalid and not used as an input for model inference. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/transcription_metadata.py b/src/hume/expression_measurement/batch/types/transcription_metadata.py deleted file mode 100644 index bfca128a..00000000 --- a/src/hume/expression_measurement/batch/types/transcription_metadata.py +++ /dev/null @@ -1,29 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .bcp_47_tag import Bcp47Tag - - -class TranscriptionMetadata(UniversalBaseModel): - """ - Transcription metadata for your media file. - """ - - confidence: float = pydantic.Field() - """ - Value between `0.0` and `1.0` indicating our transcription model's relative confidence in the transcription of your media file. - """ - - detected_language: typing.Optional[Bcp47Tag] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/type.py b/src/hume/expression_measurement/batch/types/type.py deleted file mode 100644 index 6dff0190..00000000 --- a/src/hume/expression_measurement/batch/types/type.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Type = typing.Union[typing.Literal["EMBEDDING_GENERATION", "INFERENCE", "TL_INFERENCE", "TRAINING"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/unconfigurable.py b/src/hume/expression_measurement/batch/types/unconfigurable.py deleted file mode 100644 index 40885aca..00000000 --- a/src/hume/expression_measurement/batch/types/unconfigurable.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -Unconfigurable = typing.Dict[str, typing.Any] diff --git a/src/hume/expression_measurement/batch/types/union_job.py b/src/hume/expression_measurement/batch/types/union_job.py deleted file mode 100644 index 03e889de..00000000 --- a/src/hume/expression_measurement/batch/types/union_job.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from .inference_job import InferenceJob - -UnionJob = InferenceJob diff --git a/src/hume/expression_measurement/batch/types/union_predict_result.py b/src/hume/expression_measurement/batch/types/union_predict_result.py deleted file mode 100644 index 35620916..00000000 --- a/src/hume/expression_measurement/batch/types/union_predict_result.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from .inference_source_predict_result import InferenceSourcePredictResult - -UnionPredictResult = InferenceSourcePredictResult diff --git a/src/hume/expression_measurement/batch/types/url.py b/src/hume/expression_measurement/batch/types/url.py deleted file mode 100644 index bad598cb..00000000 --- a/src/hume/expression_measurement/batch/types/url.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Url(UniversalBaseModel): - url: str = pydantic.Field() - """ - The URL of the source media file. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/validation_args.py b/src/hume/expression_measurement/batch/types/validation_args.py deleted file mode 100644 index 7cce8f0e..00000000 --- a/src/hume/expression_measurement/batch/types/validation_args.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .target import Target - - -class ValidationArgs(UniversalBaseModel): - positive_label: typing.Optional[Target] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/batch/types/when.py b/src/hume/expression_measurement/batch/types/when.py deleted file mode 100644 index 99abd18d..00000000 --- a/src/hume/expression_measurement/batch/types/when.py +++ /dev/null @@ -1,5 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -When = typing.Union[typing.Literal["created_before", "created_after"], typing.Any] diff --git a/src/hume/expression_measurement/batch/types/window.py b/src/hume/expression_measurement/batch/types/window.py deleted file mode 100644 index 67878d54..00000000 --- a/src/hume/expression_measurement/batch/types/window.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class Window(UniversalBaseModel): - """ - Generate predictions based on time. - - Setting the `window` field allows for a 'sliding window' approach, where a fixed-size window moves across the audio or video file in defined steps. This enables continuous analysis of prosody within subsets of the file, providing dynamic and localized insights into emotional expression. - """ - - length: typing.Optional[float] = pydantic.Field(default=None) - """ - The length of the sliding window. - """ - - step: typing.Optional[float] = pydantic.Field(default=None) - """ - The step size of the sliding window. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/raw_client.py b/src/hume/expression_measurement/raw_client.py deleted file mode 100644 index 4fbabef3..00000000 --- a/src/hume/expression_measurement/raw_client.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper - - -class RawExpressionMeasurementClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._client_wrapper = client_wrapper - - -class AsyncRawExpressionMeasurementClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper diff --git a/src/hume/expression_measurement/stream/__init__.py b/src/hume/expression_measurement/stream/__init__.py deleted file mode 100644 index eb19e225..00000000 --- a/src/hume/expression_measurement/stream/__init__.py +++ /dev/null @@ -1,132 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .types import ( - EmotionEmbedding, - EmotionEmbeddingItem, - Sentiment, - SentimentItem, - StreamBoundingBox, - TextPosition, - TimeRange, - Toxicity, - ToxicityItem, - ) - from . import stream - from .stream import ( - Config, - JobDetails, - StreamErrorMessage, - StreamFace, - StreamLanguage, - StreamModelPredictions, - StreamModelPredictionsBurst, - StreamModelPredictionsBurstPredictionsItem, - StreamModelPredictionsFace, - StreamModelPredictionsFacePredictionsItem, - StreamModelPredictionsFacemesh, - StreamModelPredictionsFacemeshPredictionsItem, - StreamModelPredictionsJobDetails, - StreamModelPredictionsLanguage, - StreamModelPredictionsLanguagePredictionsItem, - StreamModelPredictionsProsody, - StreamModelPredictionsProsodyPredictionsItem, - StreamModelsEndpointPayload, - StreamWarningMessage, - StreamWarningMessageJobDetails, - SubscribeEvent, - ) -_dynamic_imports: typing.Dict[str, str] = { - "Config": ".stream", - "EmotionEmbedding": ".types", - "EmotionEmbeddingItem": ".types", - "JobDetails": ".stream", - "Sentiment": ".types", - "SentimentItem": ".types", - "StreamBoundingBox": ".types", - "StreamErrorMessage": ".stream", - "StreamFace": ".stream", - "StreamLanguage": ".stream", - "StreamModelPredictions": ".stream", - "StreamModelPredictionsBurst": ".stream", - "StreamModelPredictionsBurstPredictionsItem": ".stream", - "StreamModelPredictionsFace": ".stream", - "StreamModelPredictionsFacePredictionsItem": ".stream", - "StreamModelPredictionsFacemesh": ".stream", - "StreamModelPredictionsFacemeshPredictionsItem": ".stream", - "StreamModelPredictionsJobDetails": ".stream", - "StreamModelPredictionsLanguage": ".stream", - "StreamModelPredictionsLanguagePredictionsItem": ".stream", - "StreamModelPredictionsProsody": ".stream", - "StreamModelPredictionsProsodyPredictionsItem": ".stream", - "StreamModelsEndpointPayload": ".stream", - "StreamWarningMessage": ".stream", - "StreamWarningMessageJobDetails": ".stream", - "SubscribeEvent": ".stream", - "TextPosition": ".types", - "TimeRange": ".types", - "Toxicity": ".types", - "ToxicityItem": ".types", - "stream": ".stream", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "Config", - "EmotionEmbedding", - "EmotionEmbeddingItem", - "JobDetails", - "Sentiment", - "SentimentItem", - "StreamBoundingBox", - "StreamErrorMessage", - "StreamFace", - "StreamLanguage", - "StreamModelPredictions", - "StreamModelPredictionsBurst", - "StreamModelPredictionsBurstPredictionsItem", - "StreamModelPredictionsFace", - "StreamModelPredictionsFacePredictionsItem", - "StreamModelPredictionsFacemesh", - "StreamModelPredictionsFacemeshPredictionsItem", - "StreamModelPredictionsJobDetails", - "StreamModelPredictionsLanguage", - "StreamModelPredictionsLanguagePredictionsItem", - "StreamModelPredictionsProsody", - "StreamModelPredictionsProsodyPredictionsItem", - "StreamModelsEndpointPayload", - "StreamWarningMessage", - "StreamWarningMessageJobDetails", - "SubscribeEvent", - "TextPosition", - "TimeRange", - "Toxicity", - "ToxicityItem", - "stream", -] diff --git a/src/hume/expression_measurement/stream/stream/__init__.py b/src/hume/expression_measurement/stream/stream/__init__.py deleted file mode 100644 index 04010dd7..00000000 --- a/src/hume/expression_measurement/stream/stream/__init__.py +++ /dev/null @@ -1,100 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .types import ( - Config, - JobDetails, - StreamErrorMessage, - StreamFace, - StreamLanguage, - StreamModelPredictions, - StreamModelPredictionsBurst, - StreamModelPredictionsBurstPredictionsItem, - StreamModelPredictionsFace, - StreamModelPredictionsFacePredictionsItem, - StreamModelPredictionsFacemesh, - StreamModelPredictionsFacemeshPredictionsItem, - StreamModelPredictionsJobDetails, - StreamModelPredictionsLanguage, - StreamModelPredictionsLanguagePredictionsItem, - StreamModelPredictionsProsody, - StreamModelPredictionsProsodyPredictionsItem, - StreamModelsEndpointPayload, - StreamWarningMessage, - StreamWarningMessageJobDetails, - SubscribeEvent, - ) -_dynamic_imports: typing.Dict[str, str] = { - "Config": ".types", - "JobDetails": ".types", - "StreamErrorMessage": ".types", - "StreamFace": ".types", - "StreamLanguage": ".types", - "StreamModelPredictions": ".types", - "StreamModelPredictionsBurst": ".types", - "StreamModelPredictionsBurstPredictionsItem": ".types", - "StreamModelPredictionsFace": ".types", - "StreamModelPredictionsFacePredictionsItem": ".types", - "StreamModelPredictionsFacemesh": ".types", - "StreamModelPredictionsFacemeshPredictionsItem": ".types", - "StreamModelPredictionsJobDetails": ".types", - "StreamModelPredictionsLanguage": ".types", - "StreamModelPredictionsLanguagePredictionsItem": ".types", - "StreamModelPredictionsProsody": ".types", - "StreamModelPredictionsProsodyPredictionsItem": ".types", - "StreamModelsEndpointPayload": ".types", - "StreamWarningMessage": ".types", - "StreamWarningMessageJobDetails": ".types", - "SubscribeEvent": ".types", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "Config", - "JobDetails", - "StreamErrorMessage", - "StreamFace", - "StreamLanguage", - "StreamModelPredictions", - "StreamModelPredictionsBurst", - "StreamModelPredictionsBurstPredictionsItem", - "StreamModelPredictionsFace", - "StreamModelPredictionsFacePredictionsItem", - "StreamModelPredictionsFacemesh", - "StreamModelPredictionsFacemeshPredictionsItem", - "StreamModelPredictionsJobDetails", - "StreamModelPredictionsLanguage", - "StreamModelPredictionsLanguagePredictionsItem", - "StreamModelPredictionsProsody", - "StreamModelPredictionsProsodyPredictionsItem", - "StreamModelsEndpointPayload", - "StreamWarningMessage", - "StreamWarningMessageJobDetails", - "SubscribeEvent", -] diff --git a/src/hume/expression_measurement/stream/stream/client.py b/src/hume/expression_measurement/stream/stream/client.py deleted file mode 100644 index 859969f3..00000000 --- a/src/hume/expression_measurement/stream/stream/client.py +++ /dev/null @@ -1,161 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing -import urllib.parse -from contextlib import asynccontextmanager, contextmanager - -import websockets.sync.client as websockets_sync_client -from ....core.api_error import ApiError -from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ....core.jsonable_encoder import jsonable_encoder -from ....core.query_encoder import encode_query -from ....core.remove_none_from_dict import remove_none_from_dict -from ....core.request_options import RequestOptions -from ....core.websocket_compat import InvalidWebSocketStatus, get_status_code -from .raw_client import AsyncRawStreamClient, RawStreamClient -from .socket_client import AsyncStreamSocketClient, StreamSocketClient - -try: - from websockets.legacy.client import connect as websockets_client_connect # type: ignore -except ImportError: - from websockets import connect as websockets_client_connect # type: ignore - - -class StreamClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawStreamClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> RawStreamClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - RawStreamClient - """ - return self._raw_client - - @contextmanager - def connect( - self, *, hume_api_key: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None - ) -> typing.Iterator[StreamSocketClient]: - """ - Parameters - ---------- - hume_api_key : typing.Optional[str] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - StreamSocketClient - """ - ws_url = self._raw_client._client_wrapper.get_environment().stream + "/models" - _encoded_query_params = encode_query( - jsonable_encoder( - remove_none_from_dict( - { - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - } - ) - ) - ) - if _encoded_query_params: - ws_url = ws_url + "?" + urllib.parse.urlencode(_encoded_query_params) - headers = self._raw_client._client_wrapper.get_headers() - if hume_api_key is not None: - headers["X-Hume-Api-Key"] = str(hume_api_key) - if request_options and "additional_headers" in request_options: - headers.update(request_options["additional_headers"]) - try: - with websockets_sync_client.connect(ws_url, additional_headers=headers) as protocol: - yield StreamSocketClient(websocket=protocol) - except InvalidWebSocketStatus as exc: - status_code: int = get_status_code(exc) - if status_code == 401: - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Websocket initialized with invalid credentials.", - ) - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Unexpected error when initializing websocket connection.", - ) - - -class AsyncStreamClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawStreamClient(client_wrapper=client_wrapper) - - @property - def with_raw_response(self) -> AsyncRawStreamClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - AsyncRawStreamClient - """ - return self._raw_client - - @asynccontextmanager - async def connect( - self, *, hume_api_key: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None - ) -> typing.AsyncIterator[AsyncStreamSocketClient]: - """ - Parameters - ---------- - hume_api_key : typing.Optional[str] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncStreamSocketClient - """ - ws_url = self._raw_client._client_wrapper.get_environment().stream + "/models" - _encoded_query_params = encode_query( - jsonable_encoder( - remove_none_from_dict( - { - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - } - ) - ) - ) - if _encoded_query_params: - ws_url = ws_url + "?" + urllib.parse.urlencode(_encoded_query_params) - headers = self._raw_client._client_wrapper.get_headers() - if hume_api_key is not None: - headers["X-Hume-Api-Key"] = str(hume_api_key) - if request_options and "additional_headers" in request_options: - headers.update(request_options["additional_headers"]) - try: - async with websockets_client_connect(ws_url, extra_headers=headers) as protocol: - yield AsyncStreamSocketClient(websocket=protocol) - except InvalidWebSocketStatus as exc: - status_code: int = get_status_code(exc) - if status_code == 401: - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Websocket initialized with invalid credentials.", - ) - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Unexpected error when initializing websocket connection.", - ) diff --git a/src/hume/expression_measurement/stream/stream/raw_client.py b/src/hume/expression_measurement/stream/stream/raw_client.py deleted file mode 100644 index cc69f346..00000000 --- a/src/hume/expression_measurement/stream/stream/raw_client.py +++ /dev/null @@ -1,138 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing -import urllib.parse -from contextlib import asynccontextmanager, contextmanager - -import websockets.sync.client as websockets_sync_client -from ....core.api_error import ApiError -from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ....core.jsonable_encoder import jsonable_encoder -from ....core.query_encoder import encode_query -from ....core.remove_none_from_dict import remove_none_from_dict -from ....core.request_options import RequestOptions -from ....core.websocket_compat import InvalidWebSocketStatus, get_status_code -from .socket_client import AsyncStreamSocketClient, StreamSocketClient - -try: - from websockets.legacy.client import connect as websockets_client_connect # type: ignore -except ImportError: - from websockets import connect as websockets_client_connect # type: ignore - - -class RawStreamClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._client_wrapper = client_wrapper - - @contextmanager - def connect( - self, *, hume_api_key: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None - ) -> typing.Iterator[StreamSocketClient]: - """ - Parameters - ---------- - hume_api_key : typing.Optional[str] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - StreamSocketClient - """ - ws_url = self._client_wrapper.get_environment().stream + "/models" - _encoded_query_params = encode_query( - jsonable_encoder( - remove_none_from_dict( - { - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - } - ) - ) - ) - if _encoded_query_params: - ws_url = ws_url + "?" + urllib.parse.urlencode(_encoded_query_params) - headers = self._client_wrapper.get_headers() - if hume_api_key is not None: - headers["X-Hume-Api-Key"] = str(hume_api_key) - if request_options and "additional_headers" in request_options: - headers.update(request_options["additional_headers"]) - try: - with websockets_sync_client.connect(ws_url, additional_headers=headers) as protocol: - yield StreamSocketClient(websocket=protocol) - except InvalidWebSocketStatus as exc: - status_code: int = get_status_code(exc) - if status_code == 401: - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Websocket initialized with invalid credentials.", - ) - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Unexpected error when initializing websocket connection.", - ) - - -class AsyncRawStreamClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._client_wrapper = client_wrapper - - @asynccontextmanager - async def connect( - self, *, hume_api_key: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None - ) -> typing.AsyncIterator[AsyncStreamSocketClient]: - """ - Parameters - ---------- - hume_api_key : typing.Optional[str] - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - AsyncStreamSocketClient - """ - ws_url = self._client_wrapper.get_environment().stream + "/models" - _encoded_query_params = encode_query( - jsonable_encoder( - remove_none_from_dict( - { - **( - request_options.get("additional_query_parameters", {}) or {} - if request_options is not None - else {} - ), - } - ) - ) - ) - if _encoded_query_params: - ws_url = ws_url + "?" + urllib.parse.urlencode(_encoded_query_params) - headers = self._client_wrapper.get_headers() - if hume_api_key is not None: - headers["X-Hume-Api-Key"] = str(hume_api_key) - if request_options and "additional_headers" in request_options: - headers.update(request_options["additional_headers"]) - try: - async with websockets_client_connect(ws_url, extra_headers=headers) as protocol: - yield AsyncStreamSocketClient(websocket=protocol) - except InvalidWebSocketStatus as exc: - status_code: int = get_status_code(exc) - if status_code == 401: - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Websocket initialized with invalid credentials.", - ) - raise ApiError( - status_code=status_code, - headers=dict(headers), - body="Unexpected error when initializing websocket connection.", - ) diff --git a/src/hume/expression_measurement/stream/stream/types/__init__.py b/src/hume/expression_measurement/stream/stream/types/__init__.py deleted file mode 100644 index 1c29b8b9..00000000 --- a/src/hume/expression_measurement/stream/stream/types/__init__.py +++ /dev/null @@ -1,98 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .config import Config - from .job_details import JobDetails - from .stream_error_message import StreamErrorMessage - from .stream_face import StreamFace - from .stream_language import StreamLanguage - from .stream_model_predictions import StreamModelPredictions - from .stream_model_predictions_burst import StreamModelPredictionsBurst - from .stream_model_predictions_burst_predictions_item import StreamModelPredictionsBurstPredictionsItem - from .stream_model_predictions_face import StreamModelPredictionsFace - from .stream_model_predictions_face_predictions_item import StreamModelPredictionsFacePredictionsItem - from .stream_model_predictions_facemesh import StreamModelPredictionsFacemesh - from .stream_model_predictions_facemesh_predictions_item import StreamModelPredictionsFacemeshPredictionsItem - from .stream_model_predictions_job_details import StreamModelPredictionsJobDetails - from .stream_model_predictions_language import StreamModelPredictionsLanguage - from .stream_model_predictions_language_predictions_item import StreamModelPredictionsLanguagePredictionsItem - from .stream_model_predictions_prosody import StreamModelPredictionsProsody - from .stream_model_predictions_prosody_predictions_item import StreamModelPredictionsProsodyPredictionsItem - from .stream_models_endpoint_payload import StreamModelsEndpointPayload - from .stream_warning_message import StreamWarningMessage - from .stream_warning_message_job_details import StreamWarningMessageJobDetails - from .subscribe_event import SubscribeEvent -_dynamic_imports: typing.Dict[str, str] = { - "Config": ".config", - "JobDetails": ".job_details", - "StreamErrorMessage": ".stream_error_message", - "StreamFace": ".stream_face", - "StreamLanguage": ".stream_language", - "StreamModelPredictions": ".stream_model_predictions", - "StreamModelPredictionsBurst": ".stream_model_predictions_burst", - "StreamModelPredictionsBurstPredictionsItem": ".stream_model_predictions_burst_predictions_item", - "StreamModelPredictionsFace": ".stream_model_predictions_face", - "StreamModelPredictionsFacePredictionsItem": ".stream_model_predictions_face_predictions_item", - "StreamModelPredictionsFacemesh": ".stream_model_predictions_facemesh", - "StreamModelPredictionsFacemeshPredictionsItem": ".stream_model_predictions_facemesh_predictions_item", - "StreamModelPredictionsJobDetails": ".stream_model_predictions_job_details", - "StreamModelPredictionsLanguage": ".stream_model_predictions_language", - "StreamModelPredictionsLanguagePredictionsItem": ".stream_model_predictions_language_predictions_item", - "StreamModelPredictionsProsody": ".stream_model_predictions_prosody", - "StreamModelPredictionsProsodyPredictionsItem": ".stream_model_predictions_prosody_predictions_item", - "StreamModelsEndpointPayload": ".stream_models_endpoint_payload", - "StreamWarningMessage": ".stream_warning_message", - "StreamWarningMessageJobDetails": ".stream_warning_message_job_details", - "SubscribeEvent": ".subscribe_event", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "Config", - "JobDetails", - "StreamErrorMessage", - "StreamFace", - "StreamLanguage", - "StreamModelPredictions", - "StreamModelPredictionsBurst", - "StreamModelPredictionsBurstPredictionsItem", - "StreamModelPredictionsFace", - "StreamModelPredictionsFacePredictionsItem", - "StreamModelPredictionsFacemesh", - "StreamModelPredictionsFacemeshPredictionsItem", - "StreamModelPredictionsJobDetails", - "StreamModelPredictionsLanguage", - "StreamModelPredictionsLanguagePredictionsItem", - "StreamModelPredictionsProsody", - "StreamModelPredictionsProsodyPredictionsItem", - "StreamModelsEndpointPayload", - "StreamWarningMessage", - "StreamWarningMessageJobDetails", - "SubscribeEvent", -] diff --git a/src/hume/expression_measurement/stream/stream/types/config.py b/src/hume/expression_measurement/stream/stream/types/config.py deleted file mode 100644 index 14558201..00000000 --- a/src/hume/expression_measurement/stream/stream/types/config.py +++ /dev/null @@ -1,62 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_face import StreamFace -from .stream_language import StreamLanguage - - -class Config(UniversalBaseModel): - """ - Configuration used to specify which models should be used and with what settings. - """ - - burst: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for the vocal burst emotion model. - - Note: Model configuration is not currently available in streaming. - - Please use the default configuration by passing an empty object `{}`. - """ - - face: typing.Optional[StreamFace] = pydantic.Field(default=None) - """ - Configuration for the facial expression emotion model. - - Note: Using the `reset_stream` parameter does not have any effect on face identification. A single face identifier cache is maintained over a full session whether `reset_stream` is used or not. - """ - - facemesh: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for the facemesh emotion model. - - Note: Model configuration is not currently available in streaming. - - Please use the default configuration by passing an empty object `{}`. - """ - - language: typing.Optional[StreamLanguage] = pydantic.Field(default=None) - """ - Configuration for the language emotion model. - """ - - prosody: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for the speech prosody emotion model. - - Note: Model configuration is not currently available in streaming. - - Please use the default configuration by passing an empty object `{}`. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/job_details.py b/src/hume/expression_measurement/stream/stream/types/job_details.py deleted file mode 100644 index e46ec59a..00000000 --- a/src/hume/expression_measurement/stream/stream/types/job_details.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class JobDetails(UniversalBaseModel): - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - job_id: typing.Optional[str] = pydantic.Field(default=None) - """ - ID of the current streaming job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_error_message.py b/src/hume/expression_measurement/stream/stream/types/stream_error_message.py deleted file mode 100644 index a9b42986..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_error_message.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .job_details import JobDetails - - -class StreamErrorMessage(UniversalBaseModel): - """ - Error message - """ - - error: typing.Optional[str] = pydantic.Field(default=None) - """ - Error message text. - """ - - code: typing.Optional[str] = pydantic.Field(default=None) - """ - Unique identifier for the error. - """ - - payload_id: typing.Optional[str] = pydantic.Field(default=None) - """ - If a payload ID was passed in the request, the same payload ID will be sent back in the response body. - """ - - job_details: typing.Optional[JobDetails] = pydantic.Field(default=None) - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_face.py b/src/hume/expression_measurement/stream/stream/types/stream_face.py deleted file mode 100644 index 9ae42a3b..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_face.py +++ /dev/null @@ -1,53 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StreamFace(UniversalBaseModel): - """ - Configuration for the facial expression emotion model. - - Note: Using the `reset_stream` parameter does not have any effect on face identification. A single face identifier cache is maintained over a full session whether `reset_stream` is used or not. - """ - - facs: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for FACS predictions. If missing or null, no FACS predictions will be generated. - """ - - descriptions: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for Descriptions predictions. If missing or null, no Descriptions predictions will be generated. - """ - - identify_faces: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to return identifiers for faces across frames. If true, unique identifiers will be assigned to face bounding boxes to differentiate different faces. If false, all faces will be tagged with an "unknown" ID. - """ - - fps_pred: typing.Optional[float] = pydantic.Field(default=None) - """ - Number of frames per second to process. Other frames will be omitted from the response. - """ - - prob_threshold: typing.Optional[float] = pydantic.Field(default=None) - """ - Face detection probability threshold. Faces detected with a probability less than this threshold will be omitted from the response. - """ - - min_face_size: typing.Optional[float] = pydantic.Field(default=None) - """ - Minimum bounding box side length in pixels to treat as a face. Faces detected with a bounding box side length in pixels less than this threshold will be omitted from the response. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_language.py b/src/hume/expression_measurement/stream/stream/types/stream_language.py deleted file mode 100644 index 48812fa4..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_language.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StreamLanguage(UniversalBaseModel): - """ - Configuration for the language emotion model. - """ - - sentiment: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for sentiment predictions. If missing or null, no sentiment predictions will be generated. - """ - - toxicity: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(default=None) - """ - Configuration for toxicity predictions. If missing or null, no toxicity predictions will be generated. - """ - - granularity: typing.Optional[str] = pydantic.Field(default=None) - """ - The granularity at which to generate predictions. Values are `word`, `sentence`, `utterance`, or `passage`. To get a single prediction for the entire text of your streaming payload use `passage`. Default value is `word`. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions.py deleted file mode 100644 index 3c3acb90..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions.py +++ /dev/null @@ -1,62 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_burst import StreamModelPredictionsBurst -from .stream_model_predictions_face import StreamModelPredictionsFace -from .stream_model_predictions_facemesh import StreamModelPredictionsFacemesh -from .stream_model_predictions_job_details import StreamModelPredictionsJobDetails -from .stream_model_predictions_language import StreamModelPredictionsLanguage -from .stream_model_predictions_prosody import StreamModelPredictionsProsody - - -class StreamModelPredictions(UniversalBaseModel): - """ - Model predictions - """ - - payload_id: typing.Optional[str] = pydantic.Field(default=None) - """ - If a payload ID was passed in the request, the same payload ID will be sent back in the response body. - """ - - job_details: typing.Optional[StreamModelPredictionsJobDetails] = pydantic.Field(default=None) - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - burst: typing.Optional[StreamModelPredictionsBurst] = pydantic.Field(default=None) - """ - Response for the vocal burst emotion model. - """ - - face: typing.Optional[StreamModelPredictionsFace] = pydantic.Field(default=None) - """ - Response for the facial expression emotion model. - """ - - facemesh: typing.Optional[StreamModelPredictionsFacemesh] = pydantic.Field(default=None) - """ - Response for the facemesh emotion model. - """ - - language: typing.Optional[StreamModelPredictionsLanguage] = pydantic.Field(default=None) - """ - Response for the language emotion model. - """ - - prosody: typing.Optional[StreamModelPredictionsProsody] = pydantic.Field(default=None) - """ - Response for the speech prosody emotion model. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst.py deleted file mode 100644 index e18a7451..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_burst_predictions_item import StreamModelPredictionsBurstPredictionsItem - - -class StreamModelPredictionsBurst(UniversalBaseModel): - """ - Response for the vocal burst emotion model. - """ - - predictions: typing.Optional[typing.List[StreamModelPredictionsBurstPredictionsItem]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst_predictions_item.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst_predictions_item.py deleted file mode 100644 index 76a8e211..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_burst_predictions_item.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.emotion_embedding import EmotionEmbedding -from ...types.time_range import TimeRange - - -class StreamModelPredictionsBurstPredictionsItem(UniversalBaseModel): - time: typing.Optional[TimeRange] = None - emotions: typing.Optional[EmotionEmbedding] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face.py deleted file mode 100644 index fa6aff05..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_face_predictions_item import StreamModelPredictionsFacePredictionsItem - - -class StreamModelPredictionsFace(UniversalBaseModel): - """ - Response for the facial expression emotion model. - """ - - predictions: typing.Optional[typing.List[StreamModelPredictionsFacePredictionsItem]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face_predictions_item.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face_predictions_item.py deleted file mode 100644 index de72371c..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_face_predictions_item.py +++ /dev/null @@ -1,44 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.emotion_embedding import EmotionEmbedding -from ...types.stream_bounding_box import StreamBoundingBox - - -class StreamModelPredictionsFacePredictionsItem(UniversalBaseModel): - frame: typing.Optional[float] = pydantic.Field(default=None) - """ - Frame number - """ - - time: typing.Optional[float] = pydantic.Field(default=None) - """ - Time in seconds when face detection occurred. - """ - - bbox: typing.Optional[StreamBoundingBox] = None - prob: typing.Optional[float] = pydantic.Field(default=None) - """ - The predicted probability that a detected face was actually a face. - """ - - face_id: typing.Optional[str] = pydantic.Field(default=None) - """ - Identifier for a face. Not that this defaults to `unknown` unless face identification is enabled in the face model configuration. - """ - - emotions: typing.Optional[EmotionEmbedding] = None - facs: typing.Optional[EmotionEmbedding] = None - descriptions: typing.Optional[EmotionEmbedding] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh.py deleted file mode 100644 index 291056e0..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_facemesh_predictions_item import StreamModelPredictionsFacemeshPredictionsItem - - -class StreamModelPredictionsFacemesh(UniversalBaseModel): - """ - Response for the facemesh emotion model. - """ - - predictions: typing.Optional[typing.List[StreamModelPredictionsFacemeshPredictionsItem]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh_predictions_item.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh_predictions_item.py deleted file mode 100644 index 7c062403..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_facemesh_predictions_item.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.emotion_embedding import EmotionEmbedding - - -class StreamModelPredictionsFacemeshPredictionsItem(UniversalBaseModel): - emotions: typing.Optional[EmotionEmbedding] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_job_details.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_job_details.py deleted file mode 100644 index 003db6aa..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_job_details.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StreamModelPredictionsJobDetails(UniversalBaseModel): - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - job_id: typing.Optional[str] = pydantic.Field(default=None) - """ - ID of the current streaming job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language.py deleted file mode 100644 index 67c4461d..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_language_predictions_item import StreamModelPredictionsLanguagePredictionsItem - - -class StreamModelPredictionsLanguage(UniversalBaseModel): - """ - Response for the language emotion model. - """ - - predictions: typing.Optional[typing.List[StreamModelPredictionsLanguagePredictionsItem]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language_predictions_item.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language_predictions_item.py deleted file mode 100644 index dbfc437c..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_language_predictions_item.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.emotion_embedding import EmotionEmbedding -from ...types.sentiment import Sentiment -from ...types.text_position import TextPosition -from ...types.toxicity import Toxicity - - -class StreamModelPredictionsLanguagePredictionsItem(UniversalBaseModel): - text: typing.Optional[str] = pydantic.Field(default=None) - """ - A segment of text (like a word or a sentence). - """ - - position: typing.Optional[TextPosition] = None - emotions: typing.Optional[EmotionEmbedding] = None - sentiment: typing.Optional[Sentiment] = None - toxicity: typing.Optional[Toxicity] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody.py deleted file mode 100644 index c3f3a151..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_model_predictions_prosody_predictions_item import StreamModelPredictionsProsodyPredictionsItem - - -class StreamModelPredictionsProsody(UniversalBaseModel): - """ - Response for the speech prosody emotion model. - """ - - predictions: typing.Optional[typing.List[StreamModelPredictionsProsodyPredictionsItem]] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody_predictions_item.py b/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody_predictions_item.py deleted file mode 100644 index 9d950cae..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_model_predictions_prosody_predictions_item.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from ...types.emotion_embedding import EmotionEmbedding -from ...types.time_range import TimeRange - - -class StreamModelPredictionsProsodyPredictionsItem(UniversalBaseModel): - time: typing.Optional[TimeRange] = None - emotions: typing.Optional[EmotionEmbedding] = None - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_models_endpoint_payload.py b/src/hume/expression_measurement/stream/stream/types/stream_models_endpoint_payload.py deleted file mode 100644 index 7280ca10..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_models_endpoint_payload.py +++ /dev/null @@ -1,72 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .config import Config as expression_measurement_stream_stream_types_config_Config - - -class StreamModelsEndpointPayload(UniversalBaseModel): - """ - Models endpoint payload - """ - - data: typing.Optional[str] = None - models: typing.Optional[expression_measurement_stream_stream_types_config_Config] = pydantic.Field(default=None) - """ - Configuration used to specify which models should be used and with what settings. - """ - - stream_window_ms: typing.Optional[float] = pydantic.Field(default=None) - """ - Length in milliseconds of streaming sliding window. - - Extending the length of this window will prepend media context from past payloads into the current payload. - - For example, if on the first payload you send 500ms of data and on the second payload you send an additional 500ms of data, a window of at least 1000ms will allow the model to process all 1000ms of stream data. - - A window of 600ms would append the full 500ms of the second payload to the last 100ms of the first payload. - - Note: This feature is currently only supported for audio data and audio models. For other file types and models this parameter will be ignored. - """ - - reset_stream: typing.Optional[bool] = pydantic.Field(default=None) - """ - Whether to reset the streaming sliding window before processing the current payload. - - If this parameter is set to `true` then past context will be deleted before processing the current payload. - - Use reset_stream when one audio file is done being processed and you do not want context to leak across files. - """ - - raw_text: typing.Optional[bool] = pydantic.Field(default=None) - """ - Set to `true` to enable the data parameter to be parsed as raw text rather than base64 encoded bytes. - This parameter is useful if you want to send text to be processed by the language model, but it cannot be used with other file types like audio, image, or video. - """ - - job_details: typing.Optional[bool] = pydantic.Field(default=None) - """ - Set to `true` to get details about the job. - - This parameter can be set in the same payload as data or it can be set without data and models configuration to get the job details between payloads. - - This parameter is useful to get the unique job ID. - """ - - payload_id: typing.Optional[str] = pydantic.Field(default=None) - """ - Pass an arbitrary string as the payload ID and get it back at the top level of the socket response. - - This can be useful if you have multiple requests running asynchronously and want to disambiguate responses as they are received. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_warning_message.py b/src/hume/expression_measurement/stream/stream/types/stream_warning_message.py deleted file mode 100644 index c7e8f89a..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_warning_message.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel -from .stream_warning_message_job_details import StreamWarningMessageJobDetails - - -class StreamWarningMessage(UniversalBaseModel): - """ - Warning message - """ - - warning: typing.Optional[str] = pydantic.Field(default=None) - """ - Warning message text. - """ - - code: typing.Optional[str] = pydantic.Field(default=None) - """ - Unique identifier for the error. - """ - - payload_id: typing.Optional[str] = pydantic.Field(default=None) - """ - If a payload ID was passed in the request, the same payload ID will be sent back in the response body. - """ - - job_details: typing.Optional[StreamWarningMessageJobDetails] = pydantic.Field(default=None) - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/stream_warning_message_job_details.py b/src/hume/expression_measurement/stream/stream/types/stream_warning_message_job_details.py deleted file mode 100644 index eb6e7914..00000000 --- a/src/hume/expression_measurement/stream/stream/types/stream_warning_message_job_details.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StreamWarningMessageJobDetails(UniversalBaseModel): - """ - If the job_details flag was set in the request, details about the current streaming job will be returned in the response body. - """ - - job_id: typing.Optional[str] = pydantic.Field(default=None) - """ - ID of the current streaming job. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/stream/types/subscribe_event.py b/src/hume/expression_measurement/stream/stream/types/subscribe_event.py deleted file mode 100644 index 74113057..00000000 --- a/src/hume/expression_measurement/stream/stream/types/subscribe_event.py +++ /dev/null @@ -1,9 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .stream_error_message import StreamErrorMessage -from .stream_model_predictions import StreamModelPredictions -from .stream_warning_message import StreamWarningMessage - -SubscribeEvent = typing.Union[StreamModelPredictions, StreamErrorMessage, StreamWarningMessage] diff --git a/src/hume/expression_measurement/stream/types/__init__.py b/src/hume/expression_measurement/stream/types/__init__.py deleted file mode 100644 index 53aeace9..00000000 --- a/src/hume/expression_measurement/stream/types/__init__.py +++ /dev/null @@ -1,62 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -# isort: skip_file - -import typing -from importlib import import_module - -if typing.TYPE_CHECKING: - from .emotion_embedding import EmotionEmbedding - from .emotion_embedding_item import EmotionEmbeddingItem - from .sentiment import Sentiment - from .sentiment_item import SentimentItem - from .stream_bounding_box import StreamBoundingBox - from .text_position import TextPosition - from .time_range import TimeRange - from .toxicity import Toxicity - from .toxicity_item import ToxicityItem -_dynamic_imports: typing.Dict[str, str] = { - "EmotionEmbedding": ".emotion_embedding", - "EmotionEmbeddingItem": ".emotion_embedding_item", - "Sentiment": ".sentiment", - "SentimentItem": ".sentiment_item", - "StreamBoundingBox": ".stream_bounding_box", - "TextPosition": ".text_position", - "TimeRange": ".time_range", - "Toxicity": ".toxicity", - "ToxicityItem": ".toxicity_item", -} - - -def __getattr__(attr_name: str) -> typing.Any: - module_name = _dynamic_imports.get(attr_name) - if module_name is None: - raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}") - try: - module = import_module(module_name, __package__) - if module_name == f".{attr_name}": - return module - else: - return getattr(module, attr_name) - except ImportError as e: - raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e - except AttributeError as e: - raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e - - -def __dir__(): - lazy_attrs = list(_dynamic_imports.keys()) - return sorted(lazy_attrs) - - -__all__ = [ - "EmotionEmbedding", - "EmotionEmbeddingItem", - "Sentiment", - "SentimentItem", - "StreamBoundingBox", - "TextPosition", - "TimeRange", - "Toxicity", - "ToxicityItem", -] diff --git a/src/hume/expression_measurement/stream/types/emotion_embedding.py b/src/hume/expression_measurement/stream/types/emotion_embedding.py deleted file mode 100644 index e0329252..00000000 --- a/src/hume/expression_measurement/stream/types/emotion_embedding.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .emotion_embedding_item import EmotionEmbeddingItem - -EmotionEmbedding = typing.List[EmotionEmbeddingItem] diff --git a/src/hume/expression_measurement/stream/types/emotion_embedding_item.py b/src/hume/expression_measurement/stream/types/emotion_embedding_item.py deleted file mode 100644 index 6b1ccbe4..00000000 --- a/src/hume/expression_measurement/stream/types/emotion_embedding_item.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class EmotionEmbeddingItem(UniversalBaseModel): - name: typing.Optional[str] = pydantic.Field(default=None) - """ - Name of the emotion being expressed. - """ - - score: typing.Optional[float] = pydantic.Field(default=None) - """ - Embedding value for the emotion being expressed. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/types/sentiment.py b/src/hume/expression_measurement/stream/types/sentiment.py deleted file mode 100644 index 53e37674..00000000 --- a/src/hume/expression_measurement/stream/types/sentiment.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .sentiment_item import SentimentItem - -Sentiment = typing.List[SentimentItem] diff --git a/src/hume/expression_measurement/stream/types/sentiment_item.py b/src/hume/expression_measurement/stream/types/sentiment_item.py deleted file mode 100644 index aee13064..00000000 --- a/src/hume/expression_measurement/stream/types/sentiment_item.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class SentimentItem(UniversalBaseModel): - name: typing.Optional[str] = pydantic.Field(default=None) - """ - Level of sentiment, ranging from 1 (negative) to 9 (positive) - """ - - score: typing.Optional[float] = pydantic.Field(default=None) - """ - Prediction for this level of sentiment - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/types/stream_bounding_box.py b/src/hume/expression_measurement/stream/types/stream_bounding_box.py deleted file mode 100644 index 7a74adfc..00000000 --- a/src/hume/expression_measurement/stream/types/stream_bounding_box.py +++ /dev/null @@ -1,41 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class StreamBoundingBox(UniversalBaseModel): - """ - A bounding box around a face. - """ - - x: typing.Optional[float] = pydantic.Field(default=None) - """ - x-coordinate of bounding box top left corner. - """ - - y: typing.Optional[float] = pydantic.Field(default=None) - """ - y-coordinate of bounding box top left corner. - """ - - w: typing.Optional[float] = pydantic.Field(default=None) - """ - Bounding box width. - """ - - h: typing.Optional[float] = pydantic.Field(default=None) - """ - Bounding box height. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/types/text_position.py b/src/hume/expression_measurement/stream/types/text_position.py deleted file mode 100644 index 9ca0defa..00000000 --- a/src/hume/expression_measurement/stream/types/text_position.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TextPosition(UniversalBaseModel): - """ - Position of a segment of text within a larger document, measured in characters. Uses zero-based indexing. The beginning index is inclusive and the end index is exclusive. - """ - - begin: typing.Optional[float] = pydantic.Field(default=None) - """ - The index of the first character in the text segment, inclusive. - """ - - end: typing.Optional[float] = pydantic.Field(default=None) - """ - The index of the last character in the text segment, exclusive. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/types/time_range.py b/src/hume/expression_measurement/stream/types/time_range.py deleted file mode 100644 index d95c41e1..00000000 --- a/src/hume/expression_measurement/stream/types/time_range.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class TimeRange(UniversalBaseModel): - """ - A time range with a beginning and end, measured in seconds. - """ - - begin: typing.Optional[float] = pydantic.Field(default=None) - """ - Beginning of time range in seconds. - """ - - end: typing.Optional[float] = pydantic.Field(default=None) - """ - End of time range in seconds. - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/stream/types/toxicity.py b/src/hume/expression_measurement/stream/types/toxicity.py deleted file mode 100644 index 32fa6a16..00000000 --- a/src/hume/expression_measurement/stream/types/toxicity.py +++ /dev/null @@ -1,7 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -from .toxicity_item import ToxicityItem - -Toxicity = typing.List[ToxicityItem] diff --git a/src/hume/expression_measurement/stream/types/toxicity_item.py b/src/hume/expression_measurement/stream/types/toxicity_item.py deleted file mode 100644 index 117cdceb..00000000 --- a/src/hume/expression_measurement/stream/types/toxicity_item.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel - - -class ToxicityItem(UniversalBaseModel): - name: typing.Optional[str] = pydantic.Field(default=None) - """ - Category of toxicity. - """ - - score: typing.Optional[float] = pydantic.Field(default=None) - """ - Prediction for this category of toxicity - """ - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/tests/wire/test_expressionMeasurement_batch.py b/tests/wire/test_expressionMeasurement_batch.py deleted file mode 100644 index 78b70963..00000000 --- a/tests/wire/test_expressionMeasurement_batch.py +++ /dev/null @@ -1,43 +0,0 @@ -from .conftest import get_client, verify_request_count - - -def test_expressionMeasurement_batch_list_jobs() -> None: - """Test list-jobs endpoint with WireMock""" - test_id = "expression_measurement.batch.list_jobs.0" - client = get_client(test_id) - client.expression_measurement.batch.list_jobs() - verify_request_count(test_id, "GET", "/v0/batch/jobs", None, 1) - - -def test_expressionMeasurement_batch_start_inference_job() -> None: - """Test start-inference-job endpoint with WireMock""" - test_id = "expression_measurement.batch.start_inference_job.0" - client = get_client(test_id) - client.expression_measurement.batch.start_inference_job( - urls=["https://hume-tutorials.s3.amazonaws.com/faces.zip"], notify=True - ) - verify_request_count(test_id, "POST", "/v0/batch/jobs", None, 1) - - -def test_expressionMeasurement_batch_get_job_details() -> None: - """Test get-job-details endpoint with WireMock""" - test_id = "expression_measurement.batch.get_job_details.0" - client = get_client(test_id) - client.expression_measurement.batch.get_job_details(id="job_id") - verify_request_count(test_id, "GET", "/v0/batch/jobs/job_id", None, 1) - - -def test_expressionMeasurement_batch_get_job_predictions() -> None: - """Test get-job-predictions endpoint with WireMock""" - test_id = "expression_measurement.batch.get_job_predictions.0" - client = get_client(test_id) - client.expression_measurement.batch.get_job_predictions(id="job_id") - verify_request_count(test_id, "GET", "/v0/batch/jobs/job_id/predictions", None, 1) - - -def test_expressionMeasurement_batch_start_inference_job_from_local_file() -> None: - """Test start-inference-job-from-local-file endpoint with WireMock""" - test_id = "expression_measurement.batch.start_inference_job_from_local_file.0" - client = get_client(test_id) - client.expression_measurement.batch.start_inference_job_from_local_file(file=["example_file"]) - verify_request_count(test_id, "POST", "/v0/batch/jobs", None, 1) diff --git a/wiremock/wiremock-mappings.json b/wiremock/wiremock-mappings.json index 4c2fe5ad..1932fa9c 100644 --- a/wiremock/wiremock-mappings.json +++ b/wiremock/wiremock-mappings.json @@ -1 +1 @@ -{"mappings":[{"id":"e0fc3f32-35c4-4c49-89f2-eaa4e21b9444","name":"Send Message - default","request":{"urlPathTemplate":"/v0/evi/chat/{chat_id}/send","method":"POST","pathParameters":{"chat_id":{"equalTo":"chat_id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e0fc3f32-35c4-4c49-89f2-eaa4e21b9444","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7e5b16a7-b7b9-4e7d-b0a9-61b1ac4b5f7d","name":"List chat_groups - default","request":{"urlPathTemplate":"/v0/evi/chat_groups","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chat_groups_page\": [\n {\n \"id\": \"697056f0-6c7e-487d-9bd8-9c19df79f05f\",\n \"first_start_timestamp\": 1721844196397,\n \"most_recent_start_timestamp\": 1721861821717,\n \"active\": false,\n \"most_recent_chat_id\": \"dfdbdd4d-0ddf-418b-8fc4-80a266579d36\",\n \"num_chats\": 5\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"7e5b16a7-b7b9-4e7d-b0a9-61b1ac4b5f7d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"52c3c012-9681-44fd-b0dd-d644aac44f8c","name":"Get chat_group - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"first_start_timestamp\": 1712334213647,\n \"most_recent_start_timestamp\": 1712334213647,\n \"num_chats\": 1,\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chats_page\": [\n {\n \"id\": \"6375d4f8-cd3e-4d6b-b13b-ace66b7c8aaa\",\n \"chat_group_id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1712334213647,\n \"end_timestamp\": 1712334332571,\n \"event_count\": 0,\n \"metadata\": null,\n \"config\": null\n }\n ],\n \"active\": false\n}","headers":{"Content-Type":"application/json"}},"uuid":"52c3c012-9681-44fd-b0dd-d644aac44f8c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ef5bd433-148e-481b-b653-7b4676a3fbbb","name":"Get chat group audio - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}/audio","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"num_chats\": 1,\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"audio_reconstructions_page\": [\n {\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"status\": \"COMPLETE\",\n \"filename\": \"e6235940-cfda-3988-9147-ff531627cf42/470a49f6-1dec-4afe-8b61-035d3b2d63b0/reconstructed_audio.mp4\",\n \"modified_at\": 1729875432555,\n \"signed_audio_url\": \"https://storage.googleapis.com/...etc.\",\n \"signed_url_expiration_timestamp_millis\": 1730232816964\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ef5bd433-148e-481b-b653-7b4676a3fbbb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"63f657bf-ebac-4bc4-bbae-5a46d2babec4","name":"List chat events from a specific chat_group - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}/events","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"697056f0-6c7e-487d-9bd8-9c19df79f05f\",\n \"page_number\": 0,\n \"page_size\": 3,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"events_page\": [\n {\n \"id\": \"5d44bdbb-49a3-40fb-871d-32bf7e76efe7\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244940762,\n \"role\": \"SYSTEM\",\n \"type\": \"SYSTEM_PROMPT\",\n \"message_text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\",\n \"emotion_features\": \"\",\n \"metadata\": \"\"\n },\n {\n \"id\": \"5976ddf6-d093-4bb9-ba60-8f6c25832dde\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244956278,\n \"role\": \"USER\",\n \"type\": \"USER_MESSAGE\",\n \"message_text\": \"Hello.\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.09906005859375, \\\"Adoration\\\": 0.12213134765625, \\\"Aesthetic Appreciation\\\": 0.05035400390625, \\\"Amusement\\\": 0.16552734375, \\\"Anger\\\": 0.0037384033203125, \\\"Anxiety\\\": 0.010101318359375, \\\"Awe\\\": 0.058197021484375, \\\"Awkwardness\\\": 0.10552978515625, \\\"Boredom\\\": 0.1141357421875, \\\"Calmness\\\": 0.115234375, \\\"Concentration\\\": 0.00444793701171875, \\\"Confusion\\\": 0.0343017578125, \\\"Contemplation\\\": 0.00812530517578125, \\\"Contempt\\\": 0.009002685546875, \\\"Contentment\\\": 0.087158203125, \\\"Craving\\\": 0.00818634033203125, \\\"Desire\\\": 0.018310546875, \\\"Determination\\\": 0.003238677978515625, \\\"Disappointment\\\": 0.024169921875, \\\"Disgust\\\": 0.00702667236328125, \\\"Distress\\\": 0.00936126708984375, \\\"Doubt\\\": 0.00632476806640625, \\\"Ecstasy\\\": 0.0293731689453125, \\\"Embarrassment\\\": 0.01800537109375, \\\"Empathic Pain\\\": 0.0088348388671875, \\\"Entrancement\\\": 0.013397216796875, \\\"Envy\\\": 0.02557373046875, \\\"Excitement\\\": 0.12109375, \\\"Fear\\\": 0.004413604736328125, \\\"Guilt\\\": 0.016571044921875, \\\"Horror\\\": 0.00274658203125, \\\"Interest\\\": 0.2142333984375, \\\"Joy\\\": 0.29638671875, \\\"Love\\\": 0.16015625, \\\"Nostalgia\\\": 0.007843017578125, \\\"Pain\\\": 0.007160186767578125, \\\"Pride\\\": 0.00508880615234375, \\\"Realization\\\": 0.054229736328125, \\\"Relief\\\": 0.048736572265625, \\\"Romance\\\": 0.026397705078125, \\\"Sadness\\\": 0.0265350341796875, \\\"Satisfaction\\\": 0.051361083984375, \\\"Shame\\\": 0.00974273681640625, \\\"Surprise (negative)\\\": 0.0218963623046875, \\\"Surprise (positive)\\\": 0.216064453125, \\\"Sympathy\\\": 0.021728515625, \\\"Tiredness\\\": 0.0173797607421875, \\\"Triumph\\\": 0.004520416259765625}\",\n \"metadata\": \"{\\\"segments\\\": [{\\\"content\\\": \\\"Hello.\\\", \\\"embedding\\\": [0.6181640625, 0.1763916015625, -30.921875, 1.2705078125, 0.927734375, 0.63720703125, 2.865234375, 0.1080322265625, 0.2978515625, 1.0107421875, 1.34375, 0.74560546875, 0.416259765625, 0.99462890625, -0.333740234375, 0.361083984375, -1.388671875, 1.0107421875, 1.3173828125, 0.55615234375, 0.541015625, -0.1837158203125, 1.697265625, 0.228515625, 2.087890625, -0.311767578125, 0.053680419921875, 1.3349609375, 0.95068359375, 0.00441741943359375, 0.705078125, 1.8916015625, -0.939453125, 0.93701171875, -0.28955078125, 1.513671875, 0.5595703125, 1.0126953125, -0.1624755859375, 1.4072265625, -0.28857421875, -0.4560546875, -0.1500244140625, -0.1102294921875, -0.222412109375, 0.8779296875, 1.275390625, 1.6689453125, 0.80712890625, -0.34814453125, -0.325439453125, 0.412841796875, 0.81689453125, 0.55126953125, 1.671875, 0.6611328125, 0.7451171875, 1.50390625, 1.0224609375, -1.671875, 0.7373046875, 2.1328125, 2.166015625, 0.41015625, -0.127685546875, 1.9345703125, -4.2734375, 0.332275390625, 0.26171875, 0.76708984375, 0.2685546875, 0.468017578125, 1.208984375, -1.517578125, 1.083984375, 0.84814453125, 1.0244140625, -0.0072174072265625, 1.34375, 1.0712890625, 1.517578125, -0.52001953125, 0.59228515625, 0.8154296875, -0.951171875, -0.07757568359375, 1.3330078125, 1.125, 0.61181640625, 1.494140625, 0.357421875, 1.1796875, 1.482421875, 0.8046875, 0.1536865234375, 1.8076171875, 0.68115234375, -15.171875, 1.2294921875, 0.319091796875, 0.499755859375, 1.5771484375, 0.94677734375, -0.2490234375, 0.88525390625, 3.47265625, 0.75927734375, 0.71044921875, 1.2333984375, 1.4169921875, -0.56640625, -1.8095703125, 1.37109375, 0.428955078125, 1.89453125, -0.39013671875, 0.1734619140625, 1.5595703125, -1.2294921875, 2.552734375, 0.58349609375, 0.2156982421875, -0.00984954833984375, -0.6865234375, -0.0272979736328125, -0.2264404296875, 2.853515625, 1.3896484375, 0.52978515625, 0.783203125, 3.0390625, 0.75537109375, 0.219970703125, 0.384521484375, 0.385986328125, 2.0546875, -0.10443115234375, 1.5146484375, 1.4296875, 1.9716796875, 1.1318359375, 0.31591796875, 0.338623046875, 1.654296875, -0.88037109375, -0.21484375, 1.45703125, 1.0380859375, -0.52294921875, -0.47802734375, 0.1650390625, 1.2392578125, -1.138671875, 0.56787109375, 1.318359375, 0.4287109375, 0.1981201171875, 2.4375, 0.281005859375, 0.89404296875, -0.1552734375, 0.6474609375, -0.08331298828125, 0.00740814208984375, -0.045501708984375, -0.578125, 2.02734375, 0.59228515625, 0.35693359375, 1.2919921875, 1.22265625, 1.0537109375, 0.145263671875, 1.05859375, -0.369140625, 0.207275390625, 0.78857421875, 0.599609375, 0.99072265625, 0.24462890625, 1.26953125, 0.08404541015625, 1.349609375, 0.73291015625, 1.3212890625, 0.388916015625, 1.0869140625, 0.9931640625, -1.5673828125, 0.0462646484375, 0.650390625, 0.253662109375, 0.58251953125, 1.8134765625, 0.8642578125, 2.591796875, 0.7314453125, 0.85986328125, 0.5615234375, 0.9296875, 0.04144287109375, 1.66015625, 1.99609375, 1.171875, 1.181640625, 1.5126953125, 0.0224456787109375, 0.58349609375, -1.4931640625, 0.81884765625, 0.732421875, -0.6455078125, -0.62451171875, 1.7802734375, 0.01526641845703125, -0.423095703125, 0.461669921875, 4.87890625, 1.2392578125, -0.6953125, 0.6689453125, 0.62451171875, -1.521484375, 1.7685546875, 0.810546875, 0.65478515625, 0.26123046875, 1.6396484375, 0.87548828125, 1.7353515625, 2.046875, 1.5634765625, 0.69384765625, 1.375, 0.8916015625, 1.0107421875, 0.1304931640625, 2.009765625, 0.06402587890625, -0.08428955078125, 0.04351806640625, -1.7529296875, 2.02734375, 3.521484375, 0.404541015625, 1.6337890625, -0.276611328125, 0.8837890625, -0.1287841796875, 0.91064453125, 0.8193359375, 0.701171875, 0.036529541015625, 1.26171875, 1.0478515625, -0.1422119140625, 1.0634765625, 0.61083984375, 1.3505859375, 1.208984375, 0.57275390625, 1.3623046875, 2.267578125, 0.484375, 0.9150390625, 0.56787109375, -0.70068359375, 0.27587890625, -0.70654296875, 0.8466796875, 0.57568359375, 1.6162109375, 0.87939453125, 2.248046875, -0.5458984375, 1.7744140625, 1.328125, 1.232421875, 0.6806640625, 0.9365234375, 1.052734375, -1.08984375, 1.8330078125, -0.4033203125, 1.0673828125, 0.297607421875, 1.5703125, 1.67578125, 1.34765625, 2.8203125, 2.025390625, -0.48583984375, 0.7626953125, 0.01007843017578125, 1.435546875, 0.007205963134765625, 0.05157470703125, -0.9853515625, 0.26708984375, 1.16796875, 1.2041015625, 1.99609375, -0.07916259765625, 1.244140625, -0.32080078125, 0.6748046875, 0.419921875, 1.3212890625, 1.291015625, 0.599609375, 0.0550537109375, 0.9599609375, 0.93505859375, 0.111083984375, 1.302734375, 0.0833740234375, 2.244140625, 1.25390625, 1.6015625, 0.58349609375, 1.7568359375, -0.263427734375, -0.019866943359375, -0.24658203125, -0.1871337890625, 0.927734375, 0.62255859375, 0.275146484375, 0.79541015625, 1.1796875, 1.1767578125, -0.26123046875, -0.268310546875, 1.8994140625, 1.318359375, 2.1875, 0.2469482421875, 1.41015625, 0.03973388671875, 1.2685546875, 1.1025390625, 0.9560546875, 0.865234375, -1.92578125, 1.154296875, 0.389892578125, 1.130859375, 0.95947265625, 0.72314453125, 2.244140625, 0.048553466796875, 0.626953125, 0.42919921875, 0.82275390625, 0.311767578125, -0.320556640625, 0.01041412353515625, 0.1483154296875, 0.10809326171875, -0.3173828125, 1.1337890625, -0.8642578125, 1.4033203125, 0.048828125, 1.1787109375, 0.98779296875, 1.818359375, 1.1552734375, 0.6015625, 1.2392578125, -1.2685546875, 0.39208984375, 0.83251953125, 0.224365234375, 0.0019989013671875, 0.87548828125, 1.6572265625, 1.107421875, 0.434814453125, 1.8251953125, 0.442626953125, 1.2587890625, 0.09320068359375, -0.896484375, 1.8017578125, 1.451171875, -0.0755615234375, 0.6083984375, 2.06640625, 0.673828125, -0.33740234375, 0.192138671875, 0.21435546875, 0.80224609375, -1.490234375, 0.9501953125, 0.86083984375, -0.40283203125, 4.109375, 2.533203125, 1.2529296875, 0.8271484375, 0.225830078125, 1.0478515625, -1.9755859375, 0.841796875, 0.392822265625, 0.525390625, 0.33935546875, -0.79443359375, 0.71630859375, 0.97998046875, -0.175537109375, 0.97705078125, 1.705078125, 0.29638671875, 0.68359375, 0.54150390625, 0.435791015625, 0.99755859375, -0.369140625, 1.009765625, -0.140380859375, 0.426513671875, 0.189697265625, 1.8193359375, 1.1201171875, -0.5009765625, -0.331298828125, 0.759765625, -0.09442138671875, 0.74609375, -1.947265625, 1.3544921875, -3.935546875, 2.544921875, 1.359375, 0.1363525390625, 0.79296875, 0.79931640625, -0.3466796875, 1.1396484375, -0.33447265625, 2.0078125, -0.241455078125, 0.6318359375, 0.365234375, 0.296142578125, 0.830078125, 1.0458984375, 0.5830078125, 0.61572265625, 14.0703125, -2.0078125, -0.381591796875, 1.228515625, 0.08282470703125, -0.67822265625, -0.04339599609375, 0.397216796875, 0.1656494140625, 0.137451171875, 0.244873046875, 1.1611328125, -1.3818359375, 0.8447265625, 1.171875, 0.36328125, 0.252685546875, 0.1197509765625, 0.232177734375, -0.020172119140625, 0.64404296875, -0.01100921630859375, -1.9267578125, 0.222412109375, 0.56005859375, 1.3046875, 1.1630859375, 1.197265625, 1.02734375, 1.6806640625, -0.043731689453125, 1.4697265625, 0.81201171875, 1.5390625, 1.240234375, -0.7353515625, 1.828125, 1.115234375, 1.931640625, -0.517578125, 0.77880859375, 1.0546875, 0.95361328125, 3.42578125, 0.0160369873046875, 0.875, 0.56005859375, 1.2421875, 1.986328125, 1.4814453125, 0.0948486328125, 1.115234375, 0.00665283203125, 2.09375, 0.3544921875, -0.52783203125, 1.2099609375, 0.45068359375, 0.65625, 0.1112060546875, 1.0751953125, -0.9521484375, -0.30029296875, 1.4462890625, 2.046875, 3.212890625, 1.68359375, 1.07421875, -0.5263671875, 0.74560546875, 1.37890625, 0.15283203125, 0.2440185546875, 0.62646484375, -0.1280517578125, 0.7646484375, -0.515625, -0.35693359375, 1.2958984375, 0.96923828125, 0.58935546875, 1.3701171875, 1.0673828125, 0.2337646484375, 0.93115234375, 0.66357421875, 6.0, 1.1025390625, -0.51708984375, -0.38330078125, 0.7197265625, 0.246826171875, -0.45166015625, 1.9521484375, 0.5546875, 0.08807373046875, 0.18505859375, 0.8857421875, -0.57177734375, 0.251708984375, 0.234375, 2.57421875, 0.9599609375, 0.5029296875, 0.10382080078125, 0.08331298828125, 0.66748046875, -0.349609375, 1.287109375, 0.259765625, 2.015625, 2.828125, -0.3095703125, -0.164306640625, -0.3408203125, 0.486572265625, 0.8466796875, 1.9130859375, 0.09088134765625, 0.66552734375, 0.00972747802734375, -0.83154296875, 1.755859375, 0.654296875, 0.173828125, 0.27587890625, -0.47607421875, -0.264404296875, 0.7529296875, 0.6533203125, 0.7275390625, 0.499755859375, 0.833984375, -0.44775390625, -0.05078125, -0.454833984375, 0.75439453125, 0.68505859375, 0.210693359375, -0.283935546875, -0.53564453125, 0.96826171875, 0.861328125, -3.33984375, -0.26171875, 0.77734375, 0.26513671875, -0.14111328125, -0.042236328125, -0.84814453125, 0.2137451171875, 0.94921875, 0.65185546875, -0.5380859375, 0.1529541015625, -0.360595703125, -0.0333251953125, -0.69189453125, 0.8974609375, 0.7109375, 0.81494140625, -0.259521484375, 1.1904296875, 0.62158203125, 1.345703125, 0.89404296875, 0.70556640625, 1.0673828125, 1.392578125, 0.5068359375, 0.962890625, 0.736328125, 1.55078125, 0.50390625, -0.398681640625, 2.361328125, 0.345947265625, -0.61962890625, 0.330078125, 0.75439453125, -0.673828125, -0.2379150390625, 1.5673828125, 1.369140625, 0.1119384765625, -0.1834716796875, 1.4599609375, -0.77587890625, 0.5556640625, 0.09954833984375, 0.0285186767578125, 0.58935546875, -0.501953125, 0.212890625, 0.02679443359375, 0.1715087890625, 0.03466796875, -0.564453125, 2.029296875, 2.45703125, -0.72216796875, 2.138671875, 0.50830078125, -0.09356689453125, 0.230224609375, 1.6943359375, 1.5126953125, 0.39453125, 0.411376953125, 1.07421875, -0.8046875, 0.51416015625, 0.2271728515625, -0.283447265625, 0.38427734375, 0.73388671875, 0.6962890625, 1.4990234375, 0.02813720703125, 0.40478515625, 1.2451171875, 1.1162109375, -5.5703125, 0.76171875, 0.322021484375, 1.0361328125, 1.197265625, 0.1163330078125, 0.2425537109375, 1.5595703125, 1.5791015625, -0.0921630859375, 0.484619140625, 1.9052734375, 5.31640625, 1.6337890625, 0.95947265625, -0.1751708984375, 0.466552734375, 0.8330078125, 1.03125, 0.2044677734375, 0.31298828125, -1.1220703125, 0.5517578125, 0.93505859375, 0.45166015625, 1.951171875, 0.65478515625, 1.30859375, 1.0859375, 0.56494140625, 2.322265625, 0.242919921875, 1.81640625, -0.469970703125, -0.841796875, 0.90869140625, 1.5361328125, 0.923828125, 1.0595703125, 0.356689453125, -0.46142578125, 2.134765625, 1.3037109375, -0.32373046875, -9.2265625, 0.4521484375, 0.88037109375, -0.53955078125, 0.96484375, 0.7705078125, 0.84521484375, 1.580078125, -0.1448974609375, 0.7607421875, 1.0166015625, -0.086669921875, 1.611328125, 0.05938720703125, 0.5078125, 0.8427734375, 2.431640625, 0.66357421875, 3.203125, 0.132080078125, 0.461181640625, 0.779296875, 1.9482421875, 1.8720703125, 0.845703125, -1.3837890625, -0.138916015625, 0.35546875, 0.2457275390625, 0.75341796875, 1.828125, 1.4169921875, 0.60791015625, 1.0068359375, 1.109375, 0.484130859375, -0.302001953125, 0.4951171875, 0.802734375, 1.9482421875, 0.916015625, 0.1646728515625, 2.599609375, 1.7177734375, -0.2374267578125, 0.98046875, 0.39306640625, -1.1396484375, 1.6533203125, 0.375244140625], \\\"scores\\\": [0.09906005859375, 0.12213134765625, 0.05035400390625, 0.16552734375, 0.0037384033203125, 0.010101318359375, 0.058197021484375, 0.10552978515625, 0.1141357421875, 0.115234375, 0.00444793701171875, 0.00812530517578125, 0.0343017578125, 0.009002685546875, 0.087158203125, 0.00818634033203125, 0.003238677978515625, 0.024169921875, 0.00702667236328125, 0.00936126708984375, 0.00632476806640625, 0.0293731689453125, 0.01800537109375, 0.0088348388671875, 0.013397216796875, 0.02557373046875, 0.12109375, 0.004413604736328125, 0.016571044921875, 0.00274658203125, 0.2142333984375, 0.29638671875, 0.16015625, 0.007843017578125, 0.007160186767578125, 0.00508880615234375, 0.054229736328125, 0.048736572265625, 0.026397705078125, 0.0265350341796875, 0.051361083984375, 0.018310546875, 0.00974273681640625, 0.0218963623046875, 0.216064453125, 0.021728515625, 0.0173797607421875, 0.004520416259765625], \\\"stoks\\\": [52, 52, 52, 52, 52, 41, 41, 374, 303, 303, 303, 427], \\\"time\\\": {\\\"begin_ms\\\": 640, \\\"end_ms\\\": 1140}}]}\"\n },\n {\n \"id\": \"7645a0d1-2e64-410d-83a8-b96040432e9a\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244957031,\n \"role\": \"AGENT\",\n \"type\": \"AGENT_MESSAGE\",\n \"message_text\": \"Hello!\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.044921875, \\\"Adoration\\\": 0.0253753662109375, \\\"Aesthetic Appreciation\\\": 0.03265380859375, \\\"Amusement\\\": 0.118408203125, \\\"Anger\\\": 0.06719970703125, \\\"Anxiety\\\": 0.0411376953125, \\\"Awe\\\": 0.03802490234375, \\\"Awkwardness\\\": 0.056549072265625, \\\"Boredom\\\": 0.04217529296875, \\\"Calmness\\\": 0.08709716796875, \\\"Concentration\\\": 0.070556640625, \\\"Confusion\\\": 0.06964111328125, \\\"Contemplation\\\": 0.0343017578125, \\\"Contempt\\\": 0.037689208984375, \\\"Contentment\\\": 0.059417724609375, \\\"Craving\\\": 0.01132965087890625, \\\"Desire\\\": 0.01406097412109375, \\\"Determination\\\": 0.1143798828125, \\\"Disappointment\\\": 0.051177978515625, \\\"Disgust\\\": 0.028594970703125, \\\"Distress\\\": 0.054901123046875, \\\"Doubt\\\": 0.04638671875, \\\"Ecstasy\\\": 0.0258026123046875, \\\"Embarrassment\\\": 0.0222015380859375, \\\"Empathic Pain\\\": 0.015777587890625, \\\"Entrancement\\\": 0.0160980224609375, \\\"Envy\\\": 0.0163421630859375, \\\"Excitement\\\": 0.129638671875, \\\"Fear\\\": 0.03125, \\\"Guilt\\\": 0.01483917236328125, \\\"Horror\\\": 0.0194549560546875, \\\"Interest\\\": 0.1341552734375, \\\"Joy\\\": 0.0738525390625, \\\"Love\\\": 0.0216522216796875, \\\"Nostalgia\\\": 0.0210418701171875, \\\"Pain\\\": 0.020721435546875, \\\"Pride\\\": 0.05499267578125, \\\"Realization\\\": 0.0728759765625, \\\"Relief\\\": 0.04052734375, \\\"Romance\\\": 0.0129241943359375, \\\"Sadness\\\": 0.0254669189453125, \\\"Satisfaction\\\": 0.07159423828125, \\\"Shame\\\": 0.01495361328125, \\\"Surprise (negative)\\\": 0.05560302734375, \\\"Surprise (positive)\\\": 0.07965087890625, \\\"Sympathy\\\": 0.022247314453125, \\\"Tiredness\\\": 0.0194549560546875, \\\"Triumph\\\": 0.04107666015625}\",\n \"metadata\": \"\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"63f657bf-ebac-4bc4-bbae-5a46d2babec4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"741b2853-034c-43df-9eb0-7e4ff5d57dec","name":"List chats - default","request":{"urlPathTemplate":"/v0/evi/chats","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chats_page\": [\n {\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"chat_group_id\": \"9fc18597-3567-42d5-94d6-935bde84bf2f\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1716244940648,\n \"end_timestamp\": 1716244958546,\n \"event_count\": 3,\n \"metadata\": \"\",\n \"config\": {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"741b2853-034c-43df-9eb0-7e4ff5d57dec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"333ce95c-76c7-4621-aa72-bb0ed90fcf50","name":"List chat events - default","request":{"urlPathTemplate":"/v0/evi/chats/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-id"}}},"response":{"status":200,"body":"{\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"chat_group_id\": \"9fc18597-3567-42d5-94d6-935bde84bf2f\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1716244940648,\n \"pagination_direction\": \"ASC\",\n \"events_page\": [\n {\n \"id\": \"5d44bdbb-49a3-40fb-871d-32bf7e76efe7\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244940762,\n \"role\": \"SYSTEM\",\n \"type\": \"SYSTEM_PROMPT\",\n \"message_text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\",\n \"emotion_features\": \"\",\n \"metadata\": \"\"\n },\n {\n \"id\": \"5976ddf6-d093-4bb9-ba60-8f6c25832dde\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244956278,\n \"role\": \"USER\",\n \"type\": \"USER_MESSAGE\",\n \"message_text\": \"Hello.\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.09906005859375, \\\"Adoration\\\": 0.12213134765625, \\\"Aesthetic Appreciation\\\": 0.05035400390625, \\\"Amusement\\\": 0.16552734375, \\\"Anger\\\": 0.0037384033203125, \\\"Anxiety\\\": 0.010101318359375, \\\"Awe\\\": 0.058197021484375, \\\"Awkwardness\\\": 0.10552978515625, \\\"Boredom\\\": 0.1141357421875, \\\"Calmness\\\": 0.115234375, \\\"Concentration\\\": 0.00444793701171875, \\\"Confusion\\\": 0.0343017578125, \\\"Contemplation\\\": 0.00812530517578125, \\\"Contempt\\\": 0.009002685546875, \\\"Contentment\\\": 0.087158203125, \\\"Craving\\\": 0.00818634033203125, \\\"Desire\\\": 0.018310546875, \\\"Determination\\\": 0.003238677978515625, \\\"Disappointment\\\": 0.024169921875, \\\"Disgust\\\": 0.00702667236328125, \\\"Distress\\\": 0.00936126708984375, \\\"Doubt\\\": 0.00632476806640625, \\\"Ecstasy\\\": 0.0293731689453125, \\\"Embarrassment\\\": 0.01800537109375, \\\"Empathic Pain\\\": 0.0088348388671875, \\\"Entrancement\\\": 0.013397216796875, \\\"Envy\\\": 0.02557373046875, \\\"Excitement\\\": 0.12109375, \\\"Fear\\\": 0.004413604736328125, \\\"Guilt\\\": 0.016571044921875, \\\"Horror\\\": 0.00274658203125, \\\"Interest\\\": 0.2142333984375, \\\"Joy\\\": 0.29638671875, \\\"Love\\\": 0.16015625, \\\"Nostalgia\\\": 0.007843017578125, \\\"Pain\\\": 0.007160186767578125, \\\"Pride\\\": 0.00508880615234375, \\\"Realization\\\": 0.054229736328125, \\\"Relief\\\": 0.048736572265625, \\\"Romance\\\": 0.026397705078125, \\\"Sadness\\\": 0.0265350341796875, \\\"Satisfaction\\\": 0.051361083984375, \\\"Shame\\\": 0.00974273681640625, \\\"Surprise (negative)\\\": 0.0218963623046875, \\\"Surprise (positive)\\\": 0.216064453125, \\\"Sympathy\\\": 0.021728515625, \\\"Tiredness\\\": 0.0173797607421875, \\\"Triumph\\\": 0.004520416259765625}\",\n \"metadata\": \"{\\\"segments\\\": [{\\\"content\\\": \\\"Hello.\\\", \\\"embedding\\\": [0.6181640625, 0.1763916015625, -30.921875, 1.2705078125, 0.927734375, 0.63720703125, 2.865234375, 0.1080322265625, 0.2978515625, 1.0107421875, 1.34375, 0.74560546875, 0.416259765625, 0.99462890625, -0.333740234375, 0.361083984375, -1.388671875, 1.0107421875, 1.3173828125, 0.55615234375, 0.541015625, -0.1837158203125, 1.697265625, 0.228515625, 2.087890625, -0.311767578125, 0.053680419921875, 1.3349609375, 0.95068359375, 0.00441741943359375, 0.705078125, 1.8916015625, -0.939453125, 0.93701171875, -0.28955078125, 1.513671875, 0.5595703125, 1.0126953125, -0.1624755859375, 1.4072265625, -0.28857421875, -0.4560546875, -0.1500244140625, -0.1102294921875, -0.222412109375, 0.8779296875, 1.275390625, 1.6689453125, 0.80712890625, -0.34814453125, -0.325439453125, 0.412841796875, 0.81689453125, 0.55126953125, 1.671875, 0.6611328125, 0.7451171875, 1.50390625, 1.0224609375, -1.671875, 0.7373046875, 2.1328125, 2.166015625, 0.41015625, -0.127685546875, 1.9345703125, -4.2734375, 0.332275390625, 0.26171875, 0.76708984375, 0.2685546875, 0.468017578125, 1.208984375, -1.517578125, 1.083984375, 0.84814453125, 1.0244140625, -0.0072174072265625, 1.34375, 1.0712890625, 1.517578125, -0.52001953125, 0.59228515625, 0.8154296875, -0.951171875, -0.07757568359375, 1.3330078125, 1.125, 0.61181640625, 1.494140625, 0.357421875, 1.1796875, 1.482421875, 0.8046875, 0.1536865234375, 1.8076171875, 0.68115234375, -15.171875, 1.2294921875, 0.319091796875, 0.499755859375, 1.5771484375, 0.94677734375, -0.2490234375, 0.88525390625, 3.47265625, 0.75927734375, 0.71044921875, 1.2333984375, 1.4169921875, -0.56640625, -1.8095703125, 1.37109375, 0.428955078125, 1.89453125, -0.39013671875, 0.1734619140625, 1.5595703125, -1.2294921875, 2.552734375, 0.58349609375, 0.2156982421875, -0.00984954833984375, -0.6865234375, -0.0272979736328125, -0.2264404296875, 2.853515625, 1.3896484375, 0.52978515625, 0.783203125, 3.0390625, 0.75537109375, 0.219970703125, 0.384521484375, 0.385986328125, 2.0546875, -0.10443115234375, 1.5146484375, 1.4296875, 1.9716796875, 1.1318359375, 0.31591796875, 0.338623046875, 1.654296875, -0.88037109375, -0.21484375, 1.45703125, 1.0380859375, -0.52294921875, -0.47802734375, 0.1650390625, 1.2392578125, -1.138671875, 0.56787109375, 1.318359375, 0.4287109375, 0.1981201171875, 2.4375, 0.281005859375, 0.89404296875, -0.1552734375, 0.6474609375, -0.08331298828125, 0.00740814208984375, -0.045501708984375, -0.578125, 2.02734375, 0.59228515625, 0.35693359375, 1.2919921875, 1.22265625, 1.0537109375, 0.145263671875, 1.05859375, -0.369140625, 0.207275390625, 0.78857421875, 0.599609375, 0.99072265625, 0.24462890625, 1.26953125, 0.08404541015625, 1.349609375, 0.73291015625, 1.3212890625, 0.388916015625, 1.0869140625, 0.9931640625, -1.5673828125, 0.0462646484375, 0.650390625, 0.253662109375, 0.58251953125, 1.8134765625, 0.8642578125, 2.591796875, 0.7314453125, 0.85986328125, 0.5615234375, 0.9296875, 0.04144287109375, 1.66015625, 1.99609375, 1.171875, 1.181640625, 1.5126953125, 0.0224456787109375, 0.58349609375, -1.4931640625, 0.81884765625, 0.732421875, -0.6455078125, -0.62451171875, 1.7802734375, 0.01526641845703125, -0.423095703125, 0.461669921875, 4.87890625, 1.2392578125, -0.6953125, 0.6689453125, 0.62451171875, -1.521484375, 1.7685546875, 0.810546875, 0.65478515625, 0.26123046875, 1.6396484375, 0.87548828125, 1.7353515625, 2.046875, 1.5634765625, 0.69384765625, 1.375, 0.8916015625, 1.0107421875, 0.1304931640625, 2.009765625, 0.06402587890625, -0.08428955078125, 0.04351806640625, -1.7529296875, 2.02734375, 3.521484375, 0.404541015625, 1.6337890625, -0.276611328125, 0.8837890625, -0.1287841796875, 0.91064453125, 0.8193359375, 0.701171875, 0.036529541015625, 1.26171875, 1.0478515625, -0.1422119140625, 1.0634765625, 0.61083984375, 1.3505859375, 1.208984375, 0.57275390625, 1.3623046875, 2.267578125, 0.484375, 0.9150390625, 0.56787109375, -0.70068359375, 0.27587890625, -0.70654296875, 0.8466796875, 0.57568359375, 1.6162109375, 0.87939453125, 2.248046875, -0.5458984375, 1.7744140625, 1.328125, 1.232421875, 0.6806640625, 0.9365234375, 1.052734375, -1.08984375, 1.8330078125, -0.4033203125, 1.0673828125, 0.297607421875, 1.5703125, 1.67578125, 1.34765625, 2.8203125, 2.025390625, -0.48583984375, 0.7626953125, 0.01007843017578125, 1.435546875, 0.007205963134765625, 0.05157470703125, -0.9853515625, 0.26708984375, 1.16796875, 1.2041015625, 1.99609375, -0.07916259765625, 1.244140625, -0.32080078125, 0.6748046875, 0.419921875, 1.3212890625, 1.291015625, 0.599609375, 0.0550537109375, 0.9599609375, 0.93505859375, 0.111083984375, 1.302734375, 0.0833740234375, 2.244140625, 1.25390625, 1.6015625, 0.58349609375, 1.7568359375, -0.263427734375, -0.019866943359375, -0.24658203125, -0.1871337890625, 0.927734375, 0.62255859375, 0.275146484375, 0.79541015625, 1.1796875, 1.1767578125, -0.26123046875, -0.268310546875, 1.8994140625, 1.318359375, 2.1875, 0.2469482421875, 1.41015625, 0.03973388671875, 1.2685546875, 1.1025390625, 0.9560546875, 0.865234375, -1.92578125, 1.154296875, 0.389892578125, 1.130859375, 0.95947265625, 0.72314453125, 2.244140625, 0.048553466796875, 0.626953125, 0.42919921875, 0.82275390625, 0.311767578125, -0.320556640625, 0.01041412353515625, 0.1483154296875, 0.10809326171875, -0.3173828125, 1.1337890625, -0.8642578125, 1.4033203125, 0.048828125, 1.1787109375, 0.98779296875, 1.818359375, 1.1552734375, 0.6015625, 1.2392578125, -1.2685546875, 0.39208984375, 0.83251953125, 0.224365234375, 0.0019989013671875, 0.87548828125, 1.6572265625, 1.107421875, 0.434814453125, 1.8251953125, 0.442626953125, 1.2587890625, 0.09320068359375, -0.896484375, 1.8017578125, 1.451171875, -0.0755615234375, 0.6083984375, 2.06640625, 0.673828125, -0.33740234375, 0.192138671875, 0.21435546875, 0.80224609375, -1.490234375, 0.9501953125, 0.86083984375, -0.40283203125, 4.109375, 2.533203125, 1.2529296875, 0.8271484375, 0.225830078125, 1.0478515625, -1.9755859375, 0.841796875, 0.392822265625, 0.525390625, 0.33935546875, -0.79443359375, 0.71630859375, 0.97998046875, -0.175537109375, 0.97705078125, 1.705078125, 0.29638671875, 0.68359375, 0.54150390625, 0.435791015625, 0.99755859375, -0.369140625, 1.009765625, -0.140380859375, 0.426513671875, 0.189697265625, 1.8193359375, 1.1201171875, -0.5009765625, -0.331298828125, 0.759765625, -0.09442138671875, 0.74609375, -1.947265625, 1.3544921875, -3.935546875, 2.544921875, 1.359375, 0.1363525390625, 0.79296875, 0.79931640625, -0.3466796875, 1.1396484375, -0.33447265625, 2.0078125, -0.241455078125, 0.6318359375, 0.365234375, 0.296142578125, 0.830078125, 1.0458984375, 0.5830078125, 0.61572265625, 14.0703125, -2.0078125, -0.381591796875, 1.228515625, 0.08282470703125, -0.67822265625, -0.04339599609375, 0.397216796875, 0.1656494140625, 0.137451171875, 0.244873046875, 1.1611328125, -1.3818359375, 0.8447265625, 1.171875, 0.36328125, 0.252685546875, 0.1197509765625, 0.232177734375, -0.020172119140625, 0.64404296875, -0.01100921630859375, -1.9267578125, 0.222412109375, 0.56005859375, 1.3046875, 1.1630859375, 1.197265625, 1.02734375, 1.6806640625, -0.043731689453125, 1.4697265625, 0.81201171875, 1.5390625, 1.240234375, -0.7353515625, 1.828125, 1.115234375, 1.931640625, -0.517578125, 0.77880859375, 1.0546875, 0.95361328125, 3.42578125, 0.0160369873046875, 0.875, 0.56005859375, 1.2421875, 1.986328125, 1.4814453125, 0.0948486328125, 1.115234375, 0.00665283203125, 2.09375, 0.3544921875, -0.52783203125, 1.2099609375, 0.45068359375, 0.65625, 0.1112060546875, 1.0751953125, -0.9521484375, -0.30029296875, 1.4462890625, 2.046875, 3.212890625, 1.68359375, 1.07421875, -0.5263671875, 0.74560546875, 1.37890625, 0.15283203125, 0.2440185546875, 0.62646484375, -0.1280517578125, 0.7646484375, -0.515625, -0.35693359375, 1.2958984375, 0.96923828125, 0.58935546875, 1.3701171875, 1.0673828125, 0.2337646484375, 0.93115234375, 0.66357421875, 6.0, 1.1025390625, -0.51708984375, -0.38330078125, 0.7197265625, 0.246826171875, -0.45166015625, 1.9521484375, 0.5546875, 0.08807373046875, 0.18505859375, 0.8857421875, -0.57177734375, 0.251708984375, 0.234375, 2.57421875, 0.9599609375, 0.5029296875, 0.10382080078125, 0.08331298828125, 0.66748046875, -0.349609375, 1.287109375, 0.259765625, 2.015625, 2.828125, -0.3095703125, -0.164306640625, -0.3408203125, 0.486572265625, 0.8466796875, 1.9130859375, 0.09088134765625, 0.66552734375, 0.00972747802734375, -0.83154296875, 1.755859375, 0.654296875, 0.173828125, 0.27587890625, -0.47607421875, -0.264404296875, 0.7529296875, 0.6533203125, 0.7275390625, 0.499755859375, 0.833984375, -0.44775390625, -0.05078125, -0.454833984375, 0.75439453125, 0.68505859375, 0.210693359375, -0.283935546875, -0.53564453125, 0.96826171875, 0.861328125, -3.33984375, -0.26171875, 0.77734375, 0.26513671875, -0.14111328125, -0.042236328125, -0.84814453125, 0.2137451171875, 0.94921875, 0.65185546875, -0.5380859375, 0.1529541015625, -0.360595703125, -0.0333251953125, -0.69189453125, 0.8974609375, 0.7109375, 0.81494140625, -0.259521484375, 1.1904296875, 0.62158203125, 1.345703125, 0.89404296875, 0.70556640625, 1.0673828125, 1.392578125, 0.5068359375, 0.962890625, 0.736328125, 1.55078125, 0.50390625, -0.398681640625, 2.361328125, 0.345947265625, -0.61962890625, 0.330078125, 0.75439453125, -0.673828125, -0.2379150390625, 1.5673828125, 1.369140625, 0.1119384765625, -0.1834716796875, 1.4599609375, -0.77587890625, 0.5556640625, 0.09954833984375, 0.0285186767578125, 0.58935546875, -0.501953125, 0.212890625, 0.02679443359375, 0.1715087890625, 0.03466796875, -0.564453125, 2.029296875, 2.45703125, -0.72216796875, 2.138671875, 0.50830078125, -0.09356689453125, 0.230224609375, 1.6943359375, 1.5126953125, 0.39453125, 0.411376953125, 1.07421875, -0.8046875, 0.51416015625, 0.2271728515625, -0.283447265625, 0.38427734375, 0.73388671875, 0.6962890625, 1.4990234375, 0.02813720703125, 0.40478515625, 1.2451171875, 1.1162109375, -5.5703125, 0.76171875, 0.322021484375, 1.0361328125, 1.197265625, 0.1163330078125, 0.2425537109375, 1.5595703125, 1.5791015625, -0.0921630859375, 0.484619140625, 1.9052734375, 5.31640625, 1.6337890625, 0.95947265625, -0.1751708984375, 0.466552734375, 0.8330078125, 1.03125, 0.2044677734375, 0.31298828125, -1.1220703125, 0.5517578125, 0.93505859375, 0.45166015625, 1.951171875, 0.65478515625, 1.30859375, 1.0859375, 0.56494140625, 2.322265625, 0.242919921875, 1.81640625, -0.469970703125, -0.841796875, 0.90869140625, 1.5361328125, 0.923828125, 1.0595703125, 0.356689453125, -0.46142578125, 2.134765625, 1.3037109375, -0.32373046875, -9.2265625, 0.4521484375, 0.88037109375, -0.53955078125, 0.96484375, 0.7705078125, 0.84521484375, 1.580078125, -0.1448974609375, 0.7607421875, 1.0166015625, -0.086669921875, 1.611328125, 0.05938720703125, 0.5078125, 0.8427734375, 2.431640625, 0.66357421875, 3.203125, 0.132080078125, 0.461181640625, 0.779296875, 1.9482421875, 1.8720703125, 0.845703125, -1.3837890625, -0.138916015625, 0.35546875, 0.2457275390625, 0.75341796875, 1.828125, 1.4169921875, 0.60791015625, 1.0068359375, 1.109375, 0.484130859375, -0.302001953125, 0.4951171875, 0.802734375, 1.9482421875, 0.916015625, 0.1646728515625, 2.599609375, 1.7177734375, -0.2374267578125, 0.98046875, 0.39306640625, -1.1396484375, 1.6533203125, 0.375244140625], \\\"scores\\\": [0.09906005859375, 0.12213134765625, 0.05035400390625, 0.16552734375, 0.0037384033203125, 0.010101318359375, 0.058197021484375, 0.10552978515625, 0.1141357421875, 0.115234375, 0.00444793701171875, 0.00812530517578125, 0.0343017578125, 0.009002685546875, 0.087158203125, 0.00818634033203125, 0.003238677978515625, 0.024169921875, 0.00702667236328125, 0.00936126708984375, 0.00632476806640625, 0.0293731689453125, 0.01800537109375, 0.0088348388671875, 0.013397216796875, 0.02557373046875, 0.12109375, 0.004413604736328125, 0.016571044921875, 0.00274658203125, 0.2142333984375, 0.29638671875, 0.16015625, 0.007843017578125, 0.007160186767578125, 0.00508880615234375, 0.054229736328125, 0.048736572265625, 0.026397705078125, 0.0265350341796875, 0.051361083984375, 0.018310546875, 0.00974273681640625, 0.0218963623046875, 0.216064453125, 0.021728515625, 0.0173797607421875, 0.004520416259765625], \\\"stoks\\\": [52, 52, 52, 52, 52, 41, 41, 374, 303, 303, 303, 427], \\\"time\\\": {\\\"begin_ms\\\": 640, \\\"end_ms\\\": 1140}}]}\"\n },\n {\n \"id\": \"7645a0d1-2e64-410d-83a8-b96040432e9a\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244957031,\n \"role\": \"AGENT\",\n \"type\": \"AGENT_MESSAGE\",\n \"message_text\": \"Hello!\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.044921875, \\\"Adoration\\\": 0.0253753662109375, \\\"Aesthetic Appreciation\\\": 0.03265380859375, \\\"Amusement\\\": 0.118408203125, \\\"Anger\\\": 0.06719970703125, \\\"Anxiety\\\": 0.0411376953125, \\\"Awe\\\": 0.03802490234375, \\\"Awkwardness\\\": 0.056549072265625, \\\"Boredom\\\": 0.04217529296875, \\\"Calmness\\\": 0.08709716796875, \\\"Concentration\\\": 0.070556640625, \\\"Confusion\\\": 0.06964111328125, \\\"Contemplation\\\": 0.0343017578125, \\\"Contempt\\\": 0.037689208984375, \\\"Contentment\\\": 0.059417724609375, \\\"Craving\\\": 0.01132965087890625, \\\"Desire\\\": 0.01406097412109375, \\\"Determination\\\": 0.1143798828125, \\\"Disappointment\\\": 0.051177978515625, \\\"Disgust\\\": 0.028594970703125, \\\"Distress\\\": 0.054901123046875, \\\"Doubt\\\": 0.04638671875, \\\"Ecstasy\\\": 0.0258026123046875, \\\"Embarrassment\\\": 0.0222015380859375, \\\"Empathic Pain\\\": 0.015777587890625, \\\"Entrancement\\\": 0.0160980224609375, \\\"Envy\\\": 0.0163421630859375, \\\"Excitement\\\": 0.129638671875, \\\"Fear\\\": 0.03125, \\\"Guilt\\\": 0.01483917236328125, \\\"Horror\\\": 0.0194549560546875, \\\"Interest\\\": 0.1341552734375, \\\"Joy\\\": 0.0738525390625, \\\"Love\\\": 0.0216522216796875, \\\"Nostalgia\\\": 0.0210418701171875, \\\"Pain\\\": 0.020721435546875, \\\"Pride\\\": 0.05499267578125, \\\"Realization\\\": 0.0728759765625, \\\"Relief\\\": 0.04052734375, \\\"Romance\\\": 0.0129241943359375, \\\"Sadness\\\": 0.0254669189453125, \\\"Satisfaction\\\": 0.07159423828125, \\\"Shame\\\": 0.01495361328125, \\\"Surprise (negative)\\\": 0.05560302734375, \\\"Surprise (positive)\\\": 0.07965087890625, \\\"Sympathy\\\": 0.022247314453125, \\\"Tiredness\\\": 0.0194549560546875, \\\"Triumph\\\": 0.04107666015625}\",\n \"metadata\": \"\"\n }\n ],\n \"page_number\": 0,\n \"page_size\": 3,\n \"total_pages\": 1,\n \"end_timestamp\": 1716244958546,\n \"metadata\": \"\",\n \"config\": {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"333ce95c-76c7-4621-aa72-bb0ed90fcf50","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1c210e60-fc3e-4020-ba31-155c211461a5","name":"Get chat audio - default","request":{"urlPathTemplate":"/v0/evi/chats/{id}/audio","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-id"}}},"response":{"status":200,"body":"{\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"status\": \"COMPLETE\",\n \"filename\": \"e6235940-cfda-3988-9147-ff531627cf42/470a49f6-1dec-4afe-8b61-035d3b2d63b0/reconstructed_audio.mp4\",\n \"modified_at\": 1729875432555,\n \"signed_audio_url\": \"https://storage.googleapis.com/...etc.\",\n \"signed_url_expiration_timestamp_millis\": 1730232816964\n}","headers":{"Content-Type":"application/json"}},"uuid":"1c210e60-fc3e-4020-ba31-155c211461a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"95990ecd-a7f2-495c-84ec-e0b2f0f1e471","name":"List configs - default","request":{"urlPathTemplate":"/v0/evi/configs","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"configs_page\": [\n {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"95990ecd-a7f2-495c-84ec-e0b2f0f1e471","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"73a53d69-e4fb-44c0-a4cc-3ebdee8e8c36","name":"Create config - default","request":{"urlPathTemplate":"/v0/evi/configs","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"73a53d69-e4fb-44c0-a4cc-3ebdee8e8c36","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9fa7c906-3213-4358-9fd3-fb98a80ccff9","name":"List config versions - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"configs_page\": [\n {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"9fa7c906-3213-4358-9fd3-fb98a80ccff9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"66129a1a-71df-4899-a702-a2582339ad92","name":"Create config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":201,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"This is an updated version of the Weather Assistant Config.\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1722642242998,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": true\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"66129a1a-71df-4899-a702-a2582339ad92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"96ab709e-8ce5-42ad-8930-11174405a07f","name":"Delete config - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"96ab709e-8ce5-42ad-8930-11174405a07f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac036d7f-9200-454a-ad8b-058cedce8018","name":"Update config name - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ac036d7f-9200-454a-ad8b-058cedce8018","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"336e4516-6577-4544-8e15-559222ec726d","name":"Get config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"336e4516-6577-4544-8e15-559222ec726d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3631f032-af11-4788-9ada-63c97ec90d03","name":"Delete config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"3631f032-af11-4788-9ada-63c97ec90d03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a8a419e-4772-4077-95b5-281c2bd2851b","name":"Update config description - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"This is an updated version_description.\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a8a419e-4772-4077-95b5-281c2bd2851b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3760f9c4-fbaa-40e9-9770-35af4592adb1","name":"List prompts - default","request":{"urlPathTemplate":"/v0/evi/prompts","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 2,\n \"total_pages\": 1,\n \"prompts_page\": [\n {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n {\n \"id\": \"616b2b4c-a096-4445-9c23-64058b564fc2\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Web Search Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI web search assistant designed to help users find accurate and relevant information on the web. Respond to user queries promptly, using the built-in web search tool to retrieve up-to-date results. Present information clearly and concisely, summarizing key points where necessary. Use simple language and avoid technical jargon. If needed, provide helpful tips for refining search queries to obtain better results.\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"3760f9c4-fbaa-40e9-9770-35af4592adb1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1fab19ce-cf01-4f16-b221-518ebe235e05","name":"Create prompt - default","request":{"urlPathTemplate":"/v0/evi/prompts","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": null,\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1fab19ce-cf01-4f16-b221-518ebe235e05","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"818fa71c-38b4-45da-92f3-167567201251","name":"List prompt versions - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"prompts_page\": [\n {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"818fa71c-38b4-45da-92f3-167567201251","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b2978df3-51e4-4d99-b160-6287c20dda6f","name":"Create prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":201,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"This is an updated version of the Weather Assistant Prompt.\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722635140150,\n \"text\": \"You are an updated version of an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"b2978df3-51e4-4d99-b160-6287c20dda6f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"722d1802-e538-4d83-9720-79ff982e0011","name":"Delete prompt - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"722d1802-e538-4d83-9720-79ff982e0011","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e0c3636-6d00-4e26-92d7-40460ef14c6c","name":"Update prompt name - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6e0c3636-6d00-4e26-92d7-40460ef14c6c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3812aa90-4c73-4d5b-a38b-d5ca8efde008","name":"Get prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"0"}}},"response":{"status":200,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3812aa90-4c73-4d5b-a38b-d5ca8efde008","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27f84b39-bfde-4b0f-a49e-fbd93767a180","name":"Delete prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"27f84b39-bfde-4b0f-a49e-fbd93767a180","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"760d3795-9a2c-4a38-940a-6b7459dff285","name":"Update prompt description - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"This is an updated version_description.\",\n \"name\": \"string\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722634770585,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"760d3795-9a2c-4a38-940a-6b7459dff285","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"76070823-253f-4b18-9c68-a80f6d2373ee","name":"List tools - default","request":{"urlPathTemplate":"/v0/evi/tools","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 2,\n \"total_pages\": 1,\n \"tools_page\": [\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"d20827af-5d8d-4f66-b6b9-ce2e3e1ea2b2\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches user's current location.\",\n \"name\": \"get_current_location\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"fallback_content\": \"Unable to fetch location.\",\n \"description\": \"Fetches user's current location.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }}, \\\"required\\\": [\\\"location\\\"] }\"\n },\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"4442f3ea-9038-40e3-a2ce-1522b7de770f\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715266126705,\n \"modified_on\": 1715266126705,\n \"fallback_content\": \"Unable to fetch location.\",\n \"description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"76070823-253f-4b18-9c68-a80f6d2373ee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dc71f1b-3d70-4527-a21f-326f7db77dec","name":"Create tool - default","request":{"urlPathTemplate":"/v0/evi/tools","method":"POST"},"response":{"status":201,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"aa9b71c4-723c-47ff-9f83-1a1829e74376\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"7dc71f1b-3d70-4527-a21f-326f7db77dec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"97f54c38-2fe1-4344-9355-88765ad39e92","name":"List tool versions - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"tools_page\": [\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"97f54c38-2fe1-4344-9355-88765ad39e92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1230a7c7-82ee-4940-98d3-3f0e1acc2cba","name":"Create tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":201,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1230a7c7-82ee-4940-98d3-3f0e1acc2cba","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e58cf98-dbd8-465b-a6cc-53941c38f006","name":"Delete tool - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6e58cf98-dbd8-465b-a6cc-53941c38f006","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7bb920f0-9b75-4374-bdfb-540a599f3fce","name":"Update tool name - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"7bb920f0-9b75-4374-bdfb-540a599f3fce","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f4fe78ec-6b74-402d-8aef-0cbd04c6a473","name":"Get tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"string\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f4fe78ec-6b74-402d-8aef-0cbd04c6a473","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"74ef73ce-49e2-492e-a4cb-ea6a1dc9b948","name":"Delete tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"74ef73ce-49e2-492e-a4cb-ea6a1dc9b948","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"82d8c062-5280-4378-afad-8057ebea037a","name":"Update tool description - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current temperature, precipitation, wind speed, AQI, and other weather conditions. Uses Celsius, Fahrenheit, or kelvin depending on user's region.\",\n \"name\": \"string\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"82d8c062-5280-4378-afad-8057ebea037a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1d60b8ea-f512-4ce0-92ad-0a086a4717a2","name":"List voices - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"voices_page\": [\n {\n \"id\": \"c42352c0-4566-455d-b180-0f654b65b525\",\n \"name\": \"David Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n },\n {\n \"id\": \"d87352b0-26a3-4b11-081b-d157a5674d19\",\n \"name\": \"Goliath Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"1d60b8ea-f512-4ce0-92ad-0a086a4717a2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2c434990-d686-4fec-940d-7b86327bf9d5","name":"Create voice - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"c42352c0-4566-455d-b180-0f654b65b525\",\n \"name\": \"David Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2c434990-d686-4fec-940d-7b86327bf9d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"69163bef-50c2-4c89-b4f9-70f5a04bfec8","name":"Delete voice - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"DELETE"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"69163bef-50c2-4c89-b4f9-70f5a04bfec8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a9089ce-a462-43bb-afa5-ed028dd296e5","name":"Text-to-Speech (Json) - default","request":{"urlPathTemplate":"/v0/tts","method":"POST"},"response":{"status":200,"body":"{\n \"generations\": [\n {\n \"audio\": \"//PExAA0DDYRvkpNfhv3JI5JZ...etc.\",\n \"duration\": 7.44225,\n \"encoding\": {\n \"format\": \"mp3\",\n \"sample_rate\": 48000\n },\n \"file_size\": 120192,\n \"generation_id\": \"795c949a-1510-4a80-9646-7d0863b023ab\",\n \"snippets\": [\n [\n {\n \"audio\": \"//PExAA0DDYRvkpNfhv3JI5JZ...etc.\",\n \"generation_id\": \"795c949a-1510-4a80-9646-7d0863b023ab\",\n \"id\": \"37b1b1b1-1b1b-1b1b-1b1b-1b1b1b1b1b1b\",\n \"text\": \"Beauty is no quality in things themselves: It exists merely in the mind which contemplates them.\",\n \"utterance_index\": 0,\n \"timestamps\": []\n }\n ]\n ]\n }\n ],\n \"request_id\": \"66e01f90-4501-4aa0-bbaf-74f45dc15aa725906\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a9089ce-a462-43bb-afa5-ed028dd296e5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"449bb149-6027-4735-a265-0a0a5bc0d0ef","name":"Text-to-Speech (File) - default","request":{"urlPathTemplate":"/v0/tts/file","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"449bb149-6027-4735-a265-0a0a5bc0d0ef","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd6bbe04-a38a-4d6e-bc3a-f8cf25725dbe","name":"Text-to-Speech (Streamed File) - default","request":{"urlPathTemplate":"/v0/tts/stream/file","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fd6bbe04-a38a-4d6e-bc3a-f8cf25725dbe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e8e8262-38fd-4f81-836b-c9d7ee07cd84","name":"Text-to-Speech (Streamed JSON) - default","request":{"urlPathTemplate":"/v0/tts/stream/json","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e8e8262-38fd-4f81-836b-c9d7ee07cd84","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f75e0a57-c1d9-44df-80c7-c8485a7a76d6","name":"Voice Conversion (Streamed JSON) - default","request":{"urlPathTemplate":"/v0/tts/voice_conversion/json","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f75e0a57-c1d9-44df-80c7-c8485a7a76d6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac2d855e-1240-4aa0-88e2-61efb0c0026a","name":"List jobs - default","request":{"urlPathTemplate":"/v0/batch/jobs","method":"GET"},"response":{"status":200,"body":"[\n {\n \"job_id\": \"job_id\",\n \"request\": {\n \"callback_url\": null,\n \"files\": [\n {\n \"filename\": \"filename\",\n \"md5sum\": \"md5sum\",\n \"content_type\": \"content_type\"\n }\n ],\n \"models\": {\n \"burst\": {},\n \"face\": {\n \"descriptions\": null,\n \"facs\": null,\n \"fps_pred\": 3,\n \"identify_faces\": false,\n \"min_face_size\": 60,\n \"prob_threshold\": 0.99,\n \"save_faces\": false\n },\n \"facemesh\": {},\n \"language\": {\n \"granularity\": \"word\",\n \"identify_speakers\": false,\n \"sentiment\": null,\n \"toxicity\": null\n },\n \"ner\": {\n \"identify_speakers\": false\n },\n \"prosody\": {\n \"granularity\": \"utterance\",\n \"identify_speakers\": false,\n \"window\": null\n }\n },\n \"notify\": true,\n \"text\": [],\n \"urls\": [\n \"https://hume-tutorials.s3.amazonaws.com/faces.zip\"\n ]\n },\n \"state\": {\n \"created_timestamp_ms\": 1712587158717,\n \"ended_timestamp_ms\": 1712587159274,\n \"num_errors\": 0,\n \"num_predictions\": 10,\n \"started_timestamp_ms\": 1712587158800,\n \"status\": \"COMPLETED\"\n },\n \"type\": \"INFERENCE\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"ac2d855e-1240-4aa0-88e2-61efb0c0026a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"53d86d3c-c150-433f-ab12-ef8e8e9210eb","name":"Start inference job - default","request":{"urlPathTemplate":"/v0/batch/jobs","method":"POST"},"response":{"status":200,"body":"{\n \"job_id\": \"job_id\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"53d86d3c-c150-433f-ab12-ef8e8e9210eb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b5838b5a-8fe8-4d6b-9439-5e77b6a8b017","name":"Get job details - default","request":{"urlPathTemplate":"/v0/batch/jobs/{id}","method":"GET","pathParameters":{"id":{"equalTo":"job_id"}}},"response":{"status":200,"body":"{\n \"type\": \"INFERENCE\",\n \"job_id\": \"job_id\",\n \"request\": {\n \"callback_url\": null,\n \"files\": [],\n \"models\": {\n \"burst\": {},\n \"face\": {\n \"descriptions\": null,\n \"facs\": null,\n \"fps_pred\": 3,\n \"identify_faces\": false,\n \"min_face_size\": 60,\n \"prob_threshold\": 0.99,\n \"save_faces\": false\n },\n \"facemesh\": {},\n \"language\": {\n \"granularity\": \"word\",\n \"identify_speakers\": false,\n \"sentiment\": null,\n \"toxicity\": null\n },\n \"ner\": {\n \"identify_speakers\": false\n },\n \"prosody\": {\n \"granularity\": \"utterance\",\n \"identify_speakers\": false,\n \"window\": null\n }\n },\n \"notify\": true,\n \"text\": [],\n \"urls\": [\n \"https://hume-tutorials.s3.amazonaws.com/faces.zip\"\n ]\n },\n \"state\": {\n \"created_timestamp_ms\": 1712590457884,\n \"ended_timestamp_ms\": 1712590462252,\n \"num_errors\": 0,\n \"num_predictions\": 10,\n \"started_timestamp_ms\": 1712590457995,\n \"status\": \"COMPLETED\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"b5838b5a-8fe8-4d6b-9439-5e77b6a8b017","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27496704-1278-4ec0-804b-5b06a9ddad44","name":"Get job predictions - default","request":{"urlPathTemplate":"/v0/batch/jobs/{id}/predictions","method":"GET","pathParameters":{"id":{"equalTo":"job_id"}}},"response":{"status":200,"body":"[\n {\n \"source\": {\n \"type\": \"url\",\n \"url\": \"https://hume-tutorials.s3.amazonaws.com/faces.zip\"\n },\n \"results\": {\n \"predictions\": [\n {\n \"file\": \"faces/100.jpg\",\n \"models\": {\n \"face\": {\n \"metadata\": null,\n \"grouped_predictions\": [\n {\n \"id\": \"unknown\",\n \"predictions\": [\n {\n \"frame\": 0,\n \"time\": 0,\n \"prob\": 0.9994111061096191,\n \"box\": {\n \"x\": 1187.885986328125,\n \"y\": 1397.697509765625,\n \"w\": 1401.668701171875,\n \"h\": 1961.424560546875\n },\n \"emotions\": [\n {\n \"name\": \"Admiration\",\n \"score\": 0.10722749680280685\n },\n {\n \"name\": \"Adoration\",\n \"score\": 0.06395940482616425\n },\n {\n \"name\": \"Aesthetic Appreciation\",\n \"score\": 0.05811462551355362\n },\n {\n \"name\": \"Amusement\",\n \"score\": 0.14187128841876984\n },\n {\n \"name\": \"Anger\",\n \"score\": 0.02804684266448021\n },\n {\n \"name\": \"Anxiety\",\n \"score\": 0.2713485360145569\n },\n {\n \"name\": \"Awe\",\n \"score\": 0.33812594413757324\n },\n {\n \"name\": \"Awkwardness\",\n \"score\": 0.1745193600654602\n },\n {\n \"name\": \"Boredom\",\n \"score\": 0.23600080609321594\n },\n {\n \"name\": \"Calmness\",\n \"score\": 0.18988418579101562\n },\n {\n \"name\": \"Concentration\",\n \"score\": 0.44288986921310425\n },\n {\n \"name\": \"Confusion\",\n \"score\": 0.39346569776535034\n },\n {\n \"name\": \"Contemplation\",\n \"score\": 0.31002455949783325\n },\n {\n \"name\": \"Contempt\",\n \"score\": 0.048870109021663666\n },\n {\n \"name\": \"Contentment\",\n \"score\": 0.0579497292637825\n },\n {\n \"name\": \"Craving\",\n \"score\": 0.06544201076030731\n },\n {\n \"name\": \"Desire\",\n \"score\": 0.05526508390903473\n },\n {\n \"name\": \"Determination\",\n \"score\": 0.08590991795063019\n },\n {\n \"name\": \"Disappointment\",\n \"score\": 0.19508258998394012\n },\n {\n \"name\": \"Disgust\",\n \"score\": 0.031529419124126434\n },\n {\n \"name\": \"Distress\",\n \"score\": 0.23210826516151428\n },\n {\n \"name\": \"Doubt\",\n \"score\": 0.3284550905227661\n },\n {\n \"name\": \"Ecstasy\",\n \"score\": 0.040716782212257385\n },\n {\n \"name\": \"Embarrassment\",\n \"score\": 0.1467227339744568\n },\n {\n \"name\": \"Empathic Pain\",\n \"score\": 0.07633581757545471\n },\n {\n \"name\": \"Entrancement\",\n \"score\": 0.16245244443416595\n },\n {\n \"name\": \"Envy\",\n \"score\": 0.03267110139131546\n },\n {\n \"name\": \"Excitement\",\n \"score\": 0.10656816512346268\n },\n {\n \"name\": \"Fear\",\n \"score\": 0.3115977346897125\n },\n {\n \"name\": \"Guilt\",\n \"score\": 0.11615975946187973\n },\n {\n \"name\": \"Horror\",\n \"score\": 0.19795553386211395\n },\n {\n \"name\": \"Interest\",\n \"score\": 0.3136432468891144\n },\n {\n \"name\": \"Joy\",\n \"score\": 0.06285581737756729\n },\n {\n \"name\": \"Love\",\n \"score\": 0.06339752674102783\n },\n {\n \"name\": \"Nostalgia\",\n \"score\": 0.05866732448339462\n },\n {\n \"name\": \"Pain\",\n \"score\": 0.07684041559696198\n },\n {\n \"name\": \"Pride\",\n \"score\": 0.026822954416275024\n },\n {\n \"name\": \"Realization\",\n \"score\": 0.30000734329223633\n },\n {\n \"name\": \"Relief\",\n \"score\": 0.04414166510105133\n },\n {\n \"name\": \"Romance\",\n \"score\": 0.042728863656520844\n },\n {\n \"name\": \"Sadness\",\n \"score\": 0.14773206412792206\n },\n {\n \"name\": \"Satisfaction\",\n \"score\": 0.05902980640530586\n },\n {\n \"name\": \"Shame\",\n \"score\": 0.08103451132774353\n },\n {\n \"name\": \"Surprise (negative)\",\n \"score\": 0.25518184900283813\n },\n {\n \"name\": \"Surprise (positive)\",\n \"score\": 0.28845661878585815\n },\n {\n \"name\": \"Sympathy\",\n \"score\": 0.062488824129104614\n },\n {\n \"name\": \"Tiredness\",\n \"score\": 0.1559651643037796\n },\n {\n \"name\": \"Triumph\",\n \"score\": 0.01955239288508892\n }\n ],\n \"facs\": null,\n \"descriptions\": null\n }\n ]\n }\n ]\n }\n }\n }\n ],\n \"errors\": []\n }\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"27496704-1278-4ec0-804b-5b06a9ddad44","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"12d3146e-fa86-4658-bfca-755d6e939757","name":"Start inference job from local file - default","request":{"urlPathTemplate":"/v0/batch/jobs","method":"POST"},"response":{"status":200,"body":"{\n \"job_id\": \"job_id\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"12d3146e-fa86-4658-bfca-755d6e939757","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":48}} \ No newline at end of file +{"mappings":[{"id":"e0fc3f32-35c4-4c49-89f2-eaa4e21b9444","name":"Send Message - default","request":{"urlPathTemplate":"/v0/evi/chat/{chat_id}/send","method":"POST","pathParameters":{"chat_id":{"equalTo":"chat_id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e0fc3f32-35c4-4c49-89f2-eaa4e21b9444","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7e5b16a7-b7b9-4e7d-b0a9-61b1ac4b5f7d","name":"List chat_groups - default","request":{"urlPathTemplate":"/v0/evi/chat_groups","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chat_groups_page\": [\n {\n \"id\": \"697056f0-6c7e-487d-9bd8-9c19df79f05f\",\n \"first_start_timestamp\": 1721844196397,\n \"most_recent_start_timestamp\": 1721861821717,\n \"active\": false,\n \"most_recent_chat_id\": \"dfdbdd4d-0ddf-418b-8fc4-80a266579d36\",\n \"num_chats\": 5\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"7e5b16a7-b7b9-4e7d-b0a9-61b1ac4b5f7d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"52c3c012-9681-44fd-b0dd-d644aac44f8c","name":"Get chat_group - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"first_start_timestamp\": 1712334213647,\n \"most_recent_start_timestamp\": 1712334213647,\n \"num_chats\": 1,\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chats_page\": [\n {\n \"id\": \"6375d4f8-cd3e-4d6b-b13b-ace66b7c8aaa\",\n \"chat_group_id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1712334213647,\n \"end_timestamp\": 1712334332571,\n \"event_count\": 0,\n \"metadata\": null,\n \"config\": null\n }\n ],\n \"active\": false\n}","headers":{"Content-Type":"application/json"}},"uuid":"52c3c012-9681-44fd-b0dd-d644aac44f8c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ef5bd433-148e-481b-b653-7b4676a3fbbb","name":"Get chat group audio - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}/audio","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"369846cf-6ad5-404d-905e-a8acb5cdfc78\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"num_chats\": 1,\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"audio_reconstructions_page\": [\n {\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"status\": \"COMPLETE\",\n \"filename\": \"e6235940-cfda-3988-9147-ff531627cf42/470a49f6-1dec-4afe-8b61-035d3b2d63b0/reconstructed_audio.mp4\",\n \"modified_at\": 1729875432555,\n \"signed_audio_url\": \"https://storage.googleapis.com/...etc.\",\n \"signed_url_expiration_timestamp_millis\": 1730232816964\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ef5bd433-148e-481b-b653-7b4676a3fbbb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"63f657bf-ebac-4bc4-bbae-5a46d2babec4","name":"List chat events from a specific chat_group - default","request":{"urlPathTemplate":"/v0/evi/chat_groups/{id}/events","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-group-id"}}},"response":{"status":200,"body":"{\n \"id\": \"697056f0-6c7e-487d-9bd8-9c19df79f05f\",\n \"page_number\": 0,\n \"page_size\": 3,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"events_page\": [\n {\n \"id\": \"5d44bdbb-49a3-40fb-871d-32bf7e76efe7\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244940762,\n \"role\": \"SYSTEM\",\n \"type\": \"SYSTEM_PROMPT\",\n \"message_text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\",\n \"emotion_features\": \"\",\n \"metadata\": \"\"\n },\n {\n \"id\": \"5976ddf6-d093-4bb9-ba60-8f6c25832dde\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244956278,\n \"role\": \"USER\",\n \"type\": \"USER_MESSAGE\",\n \"message_text\": \"Hello.\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.09906005859375, \\\"Adoration\\\": 0.12213134765625, \\\"Aesthetic Appreciation\\\": 0.05035400390625, \\\"Amusement\\\": 0.16552734375, \\\"Anger\\\": 0.0037384033203125, \\\"Anxiety\\\": 0.010101318359375, \\\"Awe\\\": 0.058197021484375, \\\"Awkwardness\\\": 0.10552978515625, \\\"Boredom\\\": 0.1141357421875, \\\"Calmness\\\": 0.115234375, \\\"Concentration\\\": 0.00444793701171875, \\\"Confusion\\\": 0.0343017578125, \\\"Contemplation\\\": 0.00812530517578125, \\\"Contempt\\\": 0.009002685546875, \\\"Contentment\\\": 0.087158203125, \\\"Craving\\\": 0.00818634033203125, \\\"Desire\\\": 0.018310546875, \\\"Determination\\\": 0.003238677978515625, \\\"Disappointment\\\": 0.024169921875, \\\"Disgust\\\": 0.00702667236328125, \\\"Distress\\\": 0.00936126708984375, \\\"Doubt\\\": 0.00632476806640625, \\\"Ecstasy\\\": 0.0293731689453125, \\\"Embarrassment\\\": 0.01800537109375, \\\"Empathic Pain\\\": 0.0088348388671875, \\\"Entrancement\\\": 0.013397216796875, \\\"Envy\\\": 0.02557373046875, \\\"Excitement\\\": 0.12109375, \\\"Fear\\\": 0.004413604736328125, \\\"Guilt\\\": 0.016571044921875, \\\"Horror\\\": 0.00274658203125, \\\"Interest\\\": 0.2142333984375, \\\"Joy\\\": 0.29638671875, \\\"Love\\\": 0.16015625, \\\"Nostalgia\\\": 0.007843017578125, \\\"Pain\\\": 0.007160186767578125, \\\"Pride\\\": 0.00508880615234375, \\\"Realization\\\": 0.054229736328125, \\\"Relief\\\": 0.048736572265625, \\\"Romance\\\": 0.026397705078125, \\\"Sadness\\\": 0.0265350341796875, \\\"Satisfaction\\\": 0.051361083984375, \\\"Shame\\\": 0.00974273681640625, \\\"Surprise (negative)\\\": 0.0218963623046875, \\\"Surprise (positive)\\\": 0.216064453125, \\\"Sympathy\\\": 0.021728515625, \\\"Tiredness\\\": 0.0173797607421875, \\\"Triumph\\\": 0.004520416259765625}\",\n \"metadata\": \"{\\\"segments\\\": [{\\\"content\\\": \\\"Hello.\\\", \\\"embedding\\\": [0.6181640625, 0.1763916015625, -30.921875, 1.2705078125, 0.927734375, 0.63720703125, 2.865234375, 0.1080322265625, 0.2978515625, 1.0107421875, 1.34375, 0.74560546875, 0.416259765625, 0.99462890625, -0.333740234375, 0.361083984375, -1.388671875, 1.0107421875, 1.3173828125, 0.55615234375, 0.541015625, -0.1837158203125, 1.697265625, 0.228515625, 2.087890625, -0.311767578125, 0.053680419921875, 1.3349609375, 0.95068359375, 0.00441741943359375, 0.705078125, 1.8916015625, -0.939453125, 0.93701171875, -0.28955078125, 1.513671875, 0.5595703125, 1.0126953125, -0.1624755859375, 1.4072265625, -0.28857421875, -0.4560546875, -0.1500244140625, -0.1102294921875, -0.222412109375, 0.8779296875, 1.275390625, 1.6689453125, 0.80712890625, -0.34814453125, -0.325439453125, 0.412841796875, 0.81689453125, 0.55126953125, 1.671875, 0.6611328125, 0.7451171875, 1.50390625, 1.0224609375, -1.671875, 0.7373046875, 2.1328125, 2.166015625, 0.41015625, -0.127685546875, 1.9345703125, -4.2734375, 0.332275390625, 0.26171875, 0.76708984375, 0.2685546875, 0.468017578125, 1.208984375, -1.517578125, 1.083984375, 0.84814453125, 1.0244140625, -0.0072174072265625, 1.34375, 1.0712890625, 1.517578125, -0.52001953125, 0.59228515625, 0.8154296875, -0.951171875, -0.07757568359375, 1.3330078125, 1.125, 0.61181640625, 1.494140625, 0.357421875, 1.1796875, 1.482421875, 0.8046875, 0.1536865234375, 1.8076171875, 0.68115234375, -15.171875, 1.2294921875, 0.319091796875, 0.499755859375, 1.5771484375, 0.94677734375, -0.2490234375, 0.88525390625, 3.47265625, 0.75927734375, 0.71044921875, 1.2333984375, 1.4169921875, -0.56640625, -1.8095703125, 1.37109375, 0.428955078125, 1.89453125, -0.39013671875, 0.1734619140625, 1.5595703125, -1.2294921875, 2.552734375, 0.58349609375, 0.2156982421875, -0.00984954833984375, -0.6865234375, -0.0272979736328125, -0.2264404296875, 2.853515625, 1.3896484375, 0.52978515625, 0.783203125, 3.0390625, 0.75537109375, 0.219970703125, 0.384521484375, 0.385986328125, 2.0546875, -0.10443115234375, 1.5146484375, 1.4296875, 1.9716796875, 1.1318359375, 0.31591796875, 0.338623046875, 1.654296875, -0.88037109375, -0.21484375, 1.45703125, 1.0380859375, -0.52294921875, -0.47802734375, 0.1650390625, 1.2392578125, -1.138671875, 0.56787109375, 1.318359375, 0.4287109375, 0.1981201171875, 2.4375, 0.281005859375, 0.89404296875, -0.1552734375, 0.6474609375, -0.08331298828125, 0.00740814208984375, -0.045501708984375, -0.578125, 2.02734375, 0.59228515625, 0.35693359375, 1.2919921875, 1.22265625, 1.0537109375, 0.145263671875, 1.05859375, -0.369140625, 0.207275390625, 0.78857421875, 0.599609375, 0.99072265625, 0.24462890625, 1.26953125, 0.08404541015625, 1.349609375, 0.73291015625, 1.3212890625, 0.388916015625, 1.0869140625, 0.9931640625, -1.5673828125, 0.0462646484375, 0.650390625, 0.253662109375, 0.58251953125, 1.8134765625, 0.8642578125, 2.591796875, 0.7314453125, 0.85986328125, 0.5615234375, 0.9296875, 0.04144287109375, 1.66015625, 1.99609375, 1.171875, 1.181640625, 1.5126953125, 0.0224456787109375, 0.58349609375, -1.4931640625, 0.81884765625, 0.732421875, -0.6455078125, -0.62451171875, 1.7802734375, 0.01526641845703125, -0.423095703125, 0.461669921875, 4.87890625, 1.2392578125, -0.6953125, 0.6689453125, 0.62451171875, -1.521484375, 1.7685546875, 0.810546875, 0.65478515625, 0.26123046875, 1.6396484375, 0.87548828125, 1.7353515625, 2.046875, 1.5634765625, 0.69384765625, 1.375, 0.8916015625, 1.0107421875, 0.1304931640625, 2.009765625, 0.06402587890625, -0.08428955078125, 0.04351806640625, -1.7529296875, 2.02734375, 3.521484375, 0.404541015625, 1.6337890625, -0.276611328125, 0.8837890625, -0.1287841796875, 0.91064453125, 0.8193359375, 0.701171875, 0.036529541015625, 1.26171875, 1.0478515625, -0.1422119140625, 1.0634765625, 0.61083984375, 1.3505859375, 1.208984375, 0.57275390625, 1.3623046875, 2.267578125, 0.484375, 0.9150390625, 0.56787109375, -0.70068359375, 0.27587890625, -0.70654296875, 0.8466796875, 0.57568359375, 1.6162109375, 0.87939453125, 2.248046875, -0.5458984375, 1.7744140625, 1.328125, 1.232421875, 0.6806640625, 0.9365234375, 1.052734375, -1.08984375, 1.8330078125, -0.4033203125, 1.0673828125, 0.297607421875, 1.5703125, 1.67578125, 1.34765625, 2.8203125, 2.025390625, -0.48583984375, 0.7626953125, 0.01007843017578125, 1.435546875, 0.007205963134765625, 0.05157470703125, -0.9853515625, 0.26708984375, 1.16796875, 1.2041015625, 1.99609375, -0.07916259765625, 1.244140625, -0.32080078125, 0.6748046875, 0.419921875, 1.3212890625, 1.291015625, 0.599609375, 0.0550537109375, 0.9599609375, 0.93505859375, 0.111083984375, 1.302734375, 0.0833740234375, 2.244140625, 1.25390625, 1.6015625, 0.58349609375, 1.7568359375, -0.263427734375, -0.019866943359375, -0.24658203125, -0.1871337890625, 0.927734375, 0.62255859375, 0.275146484375, 0.79541015625, 1.1796875, 1.1767578125, -0.26123046875, -0.268310546875, 1.8994140625, 1.318359375, 2.1875, 0.2469482421875, 1.41015625, 0.03973388671875, 1.2685546875, 1.1025390625, 0.9560546875, 0.865234375, -1.92578125, 1.154296875, 0.389892578125, 1.130859375, 0.95947265625, 0.72314453125, 2.244140625, 0.048553466796875, 0.626953125, 0.42919921875, 0.82275390625, 0.311767578125, -0.320556640625, 0.01041412353515625, 0.1483154296875, 0.10809326171875, -0.3173828125, 1.1337890625, -0.8642578125, 1.4033203125, 0.048828125, 1.1787109375, 0.98779296875, 1.818359375, 1.1552734375, 0.6015625, 1.2392578125, -1.2685546875, 0.39208984375, 0.83251953125, 0.224365234375, 0.0019989013671875, 0.87548828125, 1.6572265625, 1.107421875, 0.434814453125, 1.8251953125, 0.442626953125, 1.2587890625, 0.09320068359375, -0.896484375, 1.8017578125, 1.451171875, -0.0755615234375, 0.6083984375, 2.06640625, 0.673828125, -0.33740234375, 0.192138671875, 0.21435546875, 0.80224609375, -1.490234375, 0.9501953125, 0.86083984375, -0.40283203125, 4.109375, 2.533203125, 1.2529296875, 0.8271484375, 0.225830078125, 1.0478515625, -1.9755859375, 0.841796875, 0.392822265625, 0.525390625, 0.33935546875, -0.79443359375, 0.71630859375, 0.97998046875, -0.175537109375, 0.97705078125, 1.705078125, 0.29638671875, 0.68359375, 0.54150390625, 0.435791015625, 0.99755859375, -0.369140625, 1.009765625, -0.140380859375, 0.426513671875, 0.189697265625, 1.8193359375, 1.1201171875, -0.5009765625, -0.331298828125, 0.759765625, -0.09442138671875, 0.74609375, -1.947265625, 1.3544921875, -3.935546875, 2.544921875, 1.359375, 0.1363525390625, 0.79296875, 0.79931640625, -0.3466796875, 1.1396484375, -0.33447265625, 2.0078125, -0.241455078125, 0.6318359375, 0.365234375, 0.296142578125, 0.830078125, 1.0458984375, 0.5830078125, 0.61572265625, 14.0703125, -2.0078125, -0.381591796875, 1.228515625, 0.08282470703125, -0.67822265625, -0.04339599609375, 0.397216796875, 0.1656494140625, 0.137451171875, 0.244873046875, 1.1611328125, -1.3818359375, 0.8447265625, 1.171875, 0.36328125, 0.252685546875, 0.1197509765625, 0.232177734375, -0.020172119140625, 0.64404296875, -0.01100921630859375, -1.9267578125, 0.222412109375, 0.56005859375, 1.3046875, 1.1630859375, 1.197265625, 1.02734375, 1.6806640625, -0.043731689453125, 1.4697265625, 0.81201171875, 1.5390625, 1.240234375, -0.7353515625, 1.828125, 1.115234375, 1.931640625, -0.517578125, 0.77880859375, 1.0546875, 0.95361328125, 3.42578125, 0.0160369873046875, 0.875, 0.56005859375, 1.2421875, 1.986328125, 1.4814453125, 0.0948486328125, 1.115234375, 0.00665283203125, 2.09375, 0.3544921875, -0.52783203125, 1.2099609375, 0.45068359375, 0.65625, 0.1112060546875, 1.0751953125, -0.9521484375, -0.30029296875, 1.4462890625, 2.046875, 3.212890625, 1.68359375, 1.07421875, -0.5263671875, 0.74560546875, 1.37890625, 0.15283203125, 0.2440185546875, 0.62646484375, -0.1280517578125, 0.7646484375, -0.515625, -0.35693359375, 1.2958984375, 0.96923828125, 0.58935546875, 1.3701171875, 1.0673828125, 0.2337646484375, 0.93115234375, 0.66357421875, 6.0, 1.1025390625, -0.51708984375, -0.38330078125, 0.7197265625, 0.246826171875, -0.45166015625, 1.9521484375, 0.5546875, 0.08807373046875, 0.18505859375, 0.8857421875, -0.57177734375, 0.251708984375, 0.234375, 2.57421875, 0.9599609375, 0.5029296875, 0.10382080078125, 0.08331298828125, 0.66748046875, -0.349609375, 1.287109375, 0.259765625, 2.015625, 2.828125, -0.3095703125, -0.164306640625, -0.3408203125, 0.486572265625, 0.8466796875, 1.9130859375, 0.09088134765625, 0.66552734375, 0.00972747802734375, -0.83154296875, 1.755859375, 0.654296875, 0.173828125, 0.27587890625, -0.47607421875, -0.264404296875, 0.7529296875, 0.6533203125, 0.7275390625, 0.499755859375, 0.833984375, -0.44775390625, -0.05078125, -0.454833984375, 0.75439453125, 0.68505859375, 0.210693359375, -0.283935546875, -0.53564453125, 0.96826171875, 0.861328125, -3.33984375, -0.26171875, 0.77734375, 0.26513671875, -0.14111328125, -0.042236328125, -0.84814453125, 0.2137451171875, 0.94921875, 0.65185546875, -0.5380859375, 0.1529541015625, -0.360595703125, -0.0333251953125, -0.69189453125, 0.8974609375, 0.7109375, 0.81494140625, -0.259521484375, 1.1904296875, 0.62158203125, 1.345703125, 0.89404296875, 0.70556640625, 1.0673828125, 1.392578125, 0.5068359375, 0.962890625, 0.736328125, 1.55078125, 0.50390625, -0.398681640625, 2.361328125, 0.345947265625, -0.61962890625, 0.330078125, 0.75439453125, -0.673828125, -0.2379150390625, 1.5673828125, 1.369140625, 0.1119384765625, -0.1834716796875, 1.4599609375, -0.77587890625, 0.5556640625, 0.09954833984375, 0.0285186767578125, 0.58935546875, -0.501953125, 0.212890625, 0.02679443359375, 0.1715087890625, 0.03466796875, -0.564453125, 2.029296875, 2.45703125, -0.72216796875, 2.138671875, 0.50830078125, -0.09356689453125, 0.230224609375, 1.6943359375, 1.5126953125, 0.39453125, 0.411376953125, 1.07421875, -0.8046875, 0.51416015625, 0.2271728515625, -0.283447265625, 0.38427734375, 0.73388671875, 0.6962890625, 1.4990234375, 0.02813720703125, 0.40478515625, 1.2451171875, 1.1162109375, -5.5703125, 0.76171875, 0.322021484375, 1.0361328125, 1.197265625, 0.1163330078125, 0.2425537109375, 1.5595703125, 1.5791015625, -0.0921630859375, 0.484619140625, 1.9052734375, 5.31640625, 1.6337890625, 0.95947265625, -0.1751708984375, 0.466552734375, 0.8330078125, 1.03125, 0.2044677734375, 0.31298828125, -1.1220703125, 0.5517578125, 0.93505859375, 0.45166015625, 1.951171875, 0.65478515625, 1.30859375, 1.0859375, 0.56494140625, 2.322265625, 0.242919921875, 1.81640625, -0.469970703125, -0.841796875, 0.90869140625, 1.5361328125, 0.923828125, 1.0595703125, 0.356689453125, -0.46142578125, 2.134765625, 1.3037109375, -0.32373046875, -9.2265625, 0.4521484375, 0.88037109375, -0.53955078125, 0.96484375, 0.7705078125, 0.84521484375, 1.580078125, -0.1448974609375, 0.7607421875, 1.0166015625, -0.086669921875, 1.611328125, 0.05938720703125, 0.5078125, 0.8427734375, 2.431640625, 0.66357421875, 3.203125, 0.132080078125, 0.461181640625, 0.779296875, 1.9482421875, 1.8720703125, 0.845703125, -1.3837890625, -0.138916015625, 0.35546875, 0.2457275390625, 0.75341796875, 1.828125, 1.4169921875, 0.60791015625, 1.0068359375, 1.109375, 0.484130859375, -0.302001953125, 0.4951171875, 0.802734375, 1.9482421875, 0.916015625, 0.1646728515625, 2.599609375, 1.7177734375, -0.2374267578125, 0.98046875, 0.39306640625, -1.1396484375, 1.6533203125, 0.375244140625], \\\"scores\\\": [0.09906005859375, 0.12213134765625, 0.05035400390625, 0.16552734375, 0.0037384033203125, 0.010101318359375, 0.058197021484375, 0.10552978515625, 0.1141357421875, 0.115234375, 0.00444793701171875, 0.00812530517578125, 0.0343017578125, 0.009002685546875, 0.087158203125, 0.00818634033203125, 0.003238677978515625, 0.024169921875, 0.00702667236328125, 0.00936126708984375, 0.00632476806640625, 0.0293731689453125, 0.01800537109375, 0.0088348388671875, 0.013397216796875, 0.02557373046875, 0.12109375, 0.004413604736328125, 0.016571044921875, 0.00274658203125, 0.2142333984375, 0.29638671875, 0.16015625, 0.007843017578125, 0.007160186767578125, 0.00508880615234375, 0.054229736328125, 0.048736572265625, 0.026397705078125, 0.0265350341796875, 0.051361083984375, 0.018310546875, 0.00974273681640625, 0.0218963623046875, 0.216064453125, 0.021728515625, 0.0173797607421875, 0.004520416259765625], \\\"stoks\\\": [52, 52, 52, 52, 52, 41, 41, 374, 303, 303, 303, 427], \\\"time\\\": {\\\"begin_ms\\\": 640, \\\"end_ms\\\": 1140}}]}\"\n },\n {\n \"id\": \"7645a0d1-2e64-410d-83a8-b96040432e9a\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244957031,\n \"role\": \"AGENT\",\n \"type\": \"AGENT_MESSAGE\",\n \"message_text\": \"Hello!\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.044921875, \\\"Adoration\\\": 0.0253753662109375, \\\"Aesthetic Appreciation\\\": 0.03265380859375, \\\"Amusement\\\": 0.118408203125, \\\"Anger\\\": 0.06719970703125, \\\"Anxiety\\\": 0.0411376953125, \\\"Awe\\\": 0.03802490234375, \\\"Awkwardness\\\": 0.056549072265625, \\\"Boredom\\\": 0.04217529296875, \\\"Calmness\\\": 0.08709716796875, \\\"Concentration\\\": 0.070556640625, \\\"Confusion\\\": 0.06964111328125, \\\"Contemplation\\\": 0.0343017578125, \\\"Contempt\\\": 0.037689208984375, \\\"Contentment\\\": 0.059417724609375, \\\"Craving\\\": 0.01132965087890625, \\\"Desire\\\": 0.01406097412109375, \\\"Determination\\\": 0.1143798828125, \\\"Disappointment\\\": 0.051177978515625, \\\"Disgust\\\": 0.028594970703125, \\\"Distress\\\": 0.054901123046875, \\\"Doubt\\\": 0.04638671875, \\\"Ecstasy\\\": 0.0258026123046875, \\\"Embarrassment\\\": 0.0222015380859375, \\\"Empathic Pain\\\": 0.015777587890625, \\\"Entrancement\\\": 0.0160980224609375, \\\"Envy\\\": 0.0163421630859375, \\\"Excitement\\\": 0.129638671875, \\\"Fear\\\": 0.03125, \\\"Guilt\\\": 0.01483917236328125, \\\"Horror\\\": 0.0194549560546875, \\\"Interest\\\": 0.1341552734375, \\\"Joy\\\": 0.0738525390625, \\\"Love\\\": 0.0216522216796875, \\\"Nostalgia\\\": 0.0210418701171875, \\\"Pain\\\": 0.020721435546875, \\\"Pride\\\": 0.05499267578125, \\\"Realization\\\": 0.0728759765625, \\\"Relief\\\": 0.04052734375, \\\"Romance\\\": 0.0129241943359375, \\\"Sadness\\\": 0.0254669189453125, \\\"Satisfaction\\\": 0.07159423828125, \\\"Shame\\\": 0.01495361328125, \\\"Surprise (negative)\\\": 0.05560302734375, \\\"Surprise (positive)\\\": 0.07965087890625, \\\"Sympathy\\\": 0.022247314453125, \\\"Tiredness\\\": 0.0194549560546875, \\\"Triumph\\\": 0.04107666015625}\",\n \"metadata\": \"\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"63f657bf-ebac-4bc4-bbae-5a46d2babec4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"741b2853-034c-43df-9eb0-7e4ff5d57dec","name":"List chats - default","request":{"urlPathTemplate":"/v0/evi/chats","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"pagination_direction\": \"ASC\",\n \"chats_page\": [\n {\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"chat_group_id\": \"9fc18597-3567-42d5-94d6-935bde84bf2f\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1716244940648,\n \"end_timestamp\": 1716244958546,\n \"event_count\": 3,\n \"metadata\": \"\",\n \"config\": {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"741b2853-034c-43df-9eb0-7e4ff5d57dec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"333ce95c-76c7-4621-aa72-bb0ed90fcf50","name":"List chat events - default","request":{"urlPathTemplate":"/v0/evi/chats/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-id"}}},"response":{"status":200,"body":"{\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"chat_group_id\": \"9fc18597-3567-42d5-94d6-935bde84bf2f\",\n \"status\": \"USER_ENDED\",\n \"start_timestamp\": 1716244940648,\n \"pagination_direction\": \"ASC\",\n \"events_page\": [\n {\n \"id\": \"5d44bdbb-49a3-40fb-871d-32bf7e76efe7\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244940762,\n \"role\": \"SYSTEM\",\n \"type\": \"SYSTEM_PROMPT\",\n \"message_text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\",\n \"emotion_features\": \"\",\n \"metadata\": \"\"\n },\n {\n \"id\": \"5976ddf6-d093-4bb9-ba60-8f6c25832dde\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244956278,\n \"role\": \"USER\",\n \"type\": \"USER_MESSAGE\",\n \"message_text\": \"Hello.\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.09906005859375, \\\"Adoration\\\": 0.12213134765625, \\\"Aesthetic Appreciation\\\": 0.05035400390625, \\\"Amusement\\\": 0.16552734375, \\\"Anger\\\": 0.0037384033203125, \\\"Anxiety\\\": 0.010101318359375, \\\"Awe\\\": 0.058197021484375, \\\"Awkwardness\\\": 0.10552978515625, \\\"Boredom\\\": 0.1141357421875, \\\"Calmness\\\": 0.115234375, \\\"Concentration\\\": 0.00444793701171875, \\\"Confusion\\\": 0.0343017578125, \\\"Contemplation\\\": 0.00812530517578125, \\\"Contempt\\\": 0.009002685546875, \\\"Contentment\\\": 0.087158203125, \\\"Craving\\\": 0.00818634033203125, \\\"Desire\\\": 0.018310546875, \\\"Determination\\\": 0.003238677978515625, \\\"Disappointment\\\": 0.024169921875, \\\"Disgust\\\": 0.00702667236328125, \\\"Distress\\\": 0.00936126708984375, \\\"Doubt\\\": 0.00632476806640625, \\\"Ecstasy\\\": 0.0293731689453125, \\\"Embarrassment\\\": 0.01800537109375, \\\"Empathic Pain\\\": 0.0088348388671875, \\\"Entrancement\\\": 0.013397216796875, \\\"Envy\\\": 0.02557373046875, \\\"Excitement\\\": 0.12109375, \\\"Fear\\\": 0.004413604736328125, \\\"Guilt\\\": 0.016571044921875, \\\"Horror\\\": 0.00274658203125, \\\"Interest\\\": 0.2142333984375, \\\"Joy\\\": 0.29638671875, \\\"Love\\\": 0.16015625, \\\"Nostalgia\\\": 0.007843017578125, \\\"Pain\\\": 0.007160186767578125, \\\"Pride\\\": 0.00508880615234375, \\\"Realization\\\": 0.054229736328125, \\\"Relief\\\": 0.048736572265625, \\\"Romance\\\": 0.026397705078125, \\\"Sadness\\\": 0.0265350341796875, \\\"Satisfaction\\\": 0.051361083984375, \\\"Shame\\\": 0.00974273681640625, \\\"Surprise (negative)\\\": 0.0218963623046875, \\\"Surprise (positive)\\\": 0.216064453125, \\\"Sympathy\\\": 0.021728515625, \\\"Tiredness\\\": 0.0173797607421875, \\\"Triumph\\\": 0.004520416259765625}\",\n \"metadata\": \"{\\\"segments\\\": [{\\\"content\\\": \\\"Hello.\\\", \\\"embedding\\\": [0.6181640625, 0.1763916015625, -30.921875, 1.2705078125, 0.927734375, 0.63720703125, 2.865234375, 0.1080322265625, 0.2978515625, 1.0107421875, 1.34375, 0.74560546875, 0.416259765625, 0.99462890625, -0.333740234375, 0.361083984375, -1.388671875, 1.0107421875, 1.3173828125, 0.55615234375, 0.541015625, -0.1837158203125, 1.697265625, 0.228515625, 2.087890625, -0.311767578125, 0.053680419921875, 1.3349609375, 0.95068359375, 0.00441741943359375, 0.705078125, 1.8916015625, -0.939453125, 0.93701171875, -0.28955078125, 1.513671875, 0.5595703125, 1.0126953125, -0.1624755859375, 1.4072265625, -0.28857421875, -0.4560546875, -0.1500244140625, -0.1102294921875, -0.222412109375, 0.8779296875, 1.275390625, 1.6689453125, 0.80712890625, -0.34814453125, -0.325439453125, 0.412841796875, 0.81689453125, 0.55126953125, 1.671875, 0.6611328125, 0.7451171875, 1.50390625, 1.0224609375, -1.671875, 0.7373046875, 2.1328125, 2.166015625, 0.41015625, -0.127685546875, 1.9345703125, -4.2734375, 0.332275390625, 0.26171875, 0.76708984375, 0.2685546875, 0.468017578125, 1.208984375, -1.517578125, 1.083984375, 0.84814453125, 1.0244140625, -0.0072174072265625, 1.34375, 1.0712890625, 1.517578125, -0.52001953125, 0.59228515625, 0.8154296875, -0.951171875, -0.07757568359375, 1.3330078125, 1.125, 0.61181640625, 1.494140625, 0.357421875, 1.1796875, 1.482421875, 0.8046875, 0.1536865234375, 1.8076171875, 0.68115234375, -15.171875, 1.2294921875, 0.319091796875, 0.499755859375, 1.5771484375, 0.94677734375, -0.2490234375, 0.88525390625, 3.47265625, 0.75927734375, 0.71044921875, 1.2333984375, 1.4169921875, -0.56640625, -1.8095703125, 1.37109375, 0.428955078125, 1.89453125, -0.39013671875, 0.1734619140625, 1.5595703125, -1.2294921875, 2.552734375, 0.58349609375, 0.2156982421875, -0.00984954833984375, -0.6865234375, -0.0272979736328125, -0.2264404296875, 2.853515625, 1.3896484375, 0.52978515625, 0.783203125, 3.0390625, 0.75537109375, 0.219970703125, 0.384521484375, 0.385986328125, 2.0546875, -0.10443115234375, 1.5146484375, 1.4296875, 1.9716796875, 1.1318359375, 0.31591796875, 0.338623046875, 1.654296875, -0.88037109375, -0.21484375, 1.45703125, 1.0380859375, -0.52294921875, -0.47802734375, 0.1650390625, 1.2392578125, -1.138671875, 0.56787109375, 1.318359375, 0.4287109375, 0.1981201171875, 2.4375, 0.281005859375, 0.89404296875, -0.1552734375, 0.6474609375, -0.08331298828125, 0.00740814208984375, -0.045501708984375, -0.578125, 2.02734375, 0.59228515625, 0.35693359375, 1.2919921875, 1.22265625, 1.0537109375, 0.145263671875, 1.05859375, -0.369140625, 0.207275390625, 0.78857421875, 0.599609375, 0.99072265625, 0.24462890625, 1.26953125, 0.08404541015625, 1.349609375, 0.73291015625, 1.3212890625, 0.388916015625, 1.0869140625, 0.9931640625, -1.5673828125, 0.0462646484375, 0.650390625, 0.253662109375, 0.58251953125, 1.8134765625, 0.8642578125, 2.591796875, 0.7314453125, 0.85986328125, 0.5615234375, 0.9296875, 0.04144287109375, 1.66015625, 1.99609375, 1.171875, 1.181640625, 1.5126953125, 0.0224456787109375, 0.58349609375, -1.4931640625, 0.81884765625, 0.732421875, -0.6455078125, -0.62451171875, 1.7802734375, 0.01526641845703125, -0.423095703125, 0.461669921875, 4.87890625, 1.2392578125, -0.6953125, 0.6689453125, 0.62451171875, -1.521484375, 1.7685546875, 0.810546875, 0.65478515625, 0.26123046875, 1.6396484375, 0.87548828125, 1.7353515625, 2.046875, 1.5634765625, 0.69384765625, 1.375, 0.8916015625, 1.0107421875, 0.1304931640625, 2.009765625, 0.06402587890625, -0.08428955078125, 0.04351806640625, -1.7529296875, 2.02734375, 3.521484375, 0.404541015625, 1.6337890625, -0.276611328125, 0.8837890625, -0.1287841796875, 0.91064453125, 0.8193359375, 0.701171875, 0.036529541015625, 1.26171875, 1.0478515625, -0.1422119140625, 1.0634765625, 0.61083984375, 1.3505859375, 1.208984375, 0.57275390625, 1.3623046875, 2.267578125, 0.484375, 0.9150390625, 0.56787109375, -0.70068359375, 0.27587890625, -0.70654296875, 0.8466796875, 0.57568359375, 1.6162109375, 0.87939453125, 2.248046875, -0.5458984375, 1.7744140625, 1.328125, 1.232421875, 0.6806640625, 0.9365234375, 1.052734375, -1.08984375, 1.8330078125, -0.4033203125, 1.0673828125, 0.297607421875, 1.5703125, 1.67578125, 1.34765625, 2.8203125, 2.025390625, -0.48583984375, 0.7626953125, 0.01007843017578125, 1.435546875, 0.007205963134765625, 0.05157470703125, -0.9853515625, 0.26708984375, 1.16796875, 1.2041015625, 1.99609375, -0.07916259765625, 1.244140625, -0.32080078125, 0.6748046875, 0.419921875, 1.3212890625, 1.291015625, 0.599609375, 0.0550537109375, 0.9599609375, 0.93505859375, 0.111083984375, 1.302734375, 0.0833740234375, 2.244140625, 1.25390625, 1.6015625, 0.58349609375, 1.7568359375, -0.263427734375, -0.019866943359375, -0.24658203125, -0.1871337890625, 0.927734375, 0.62255859375, 0.275146484375, 0.79541015625, 1.1796875, 1.1767578125, -0.26123046875, -0.268310546875, 1.8994140625, 1.318359375, 2.1875, 0.2469482421875, 1.41015625, 0.03973388671875, 1.2685546875, 1.1025390625, 0.9560546875, 0.865234375, -1.92578125, 1.154296875, 0.389892578125, 1.130859375, 0.95947265625, 0.72314453125, 2.244140625, 0.048553466796875, 0.626953125, 0.42919921875, 0.82275390625, 0.311767578125, -0.320556640625, 0.01041412353515625, 0.1483154296875, 0.10809326171875, -0.3173828125, 1.1337890625, -0.8642578125, 1.4033203125, 0.048828125, 1.1787109375, 0.98779296875, 1.818359375, 1.1552734375, 0.6015625, 1.2392578125, -1.2685546875, 0.39208984375, 0.83251953125, 0.224365234375, 0.0019989013671875, 0.87548828125, 1.6572265625, 1.107421875, 0.434814453125, 1.8251953125, 0.442626953125, 1.2587890625, 0.09320068359375, -0.896484375, 1.8017578125, 1.451171875, -0.0755615234375, 0.6083984375, 2.06640625, 0.673828125, -0.33740234375, 0.192138671875, 0.21435546875, 0.80224609375, -1.490234375, 0.9501953125, 0.86083984375, -0.40283203125, 4.109375, 2.533203125, 1.2529296875, 0.8271484375, 0.225830078125, 1.0478515625, -1.9755859375, 0.841796875, 0.392822265625, 0.525390625, 0.33935546875, -0.79443359375, 0.71630859375, 0.97998046875, -0.175537109375, 0.97705078125, 1.705078125, 0.29638671875, 0.68359375, 0.54150390625, 0.435791015625, 0.99755859375, -0.369140625, 1.009765625, -0.140380859375, 0.426513671875, 0.189697265625, 1.8193359375, 1.1201171875, -0.5009765625, -0.331298828125, 0.759765625, -0.09442138671875, 0.74609375, -1.947265625, 1.3544921875, -3.935546875, 2.544921875, 1.359375, 0.1363525390625, 0.79296875, 0.79931640625, -0.3466796875, 1.1396484375, -0.33447265625, 2.0078125, -0.241455078125, 0.6318359375, 0.365234375, 0.296142578125, 0.830078125, 1.0458984375, 0.5830078125, 0.61572265625, 14.0703125, -2.0078125, -0.381591796875, 1.228515625, 0.08282470703125, -0.67822265625, -0.04339599609375, 0.397216796875, 0.1656494140625, 0.137451171875, 0.244873046875, 1.1611328125, -1.3818359375, 0.8447265625, 1.171875, 0.36328125, 0.252685546875, 0.1197509765625, 0.232177734375, -0.020172119140625, 0.64404296875, -0.01100921630859375, -1.9267578125, 0.222412109375, 0.56005859375, 1.3046875, 1.1630859375, 1.197265625, 1.02734375, 1.6806640625, -0.043731689453125, 1.4697265625, 0.81201171875, 1.5390625, 1.240234375, -0.7353515625, 1.828125, 1.115234375, 1.931640625, -0.517578125, 0.77880859375, 1.0546875, 0.95361328125, 3.42578125, 0.0160369873046875, 0.875, 0.56005859375, 1.2421875, 1.986328125, 1.4814453125, 0.0948486328125, 1.115234375, 0.00665283203125, 2.09375, 0.3544921875, -0.52783203125, 1.2099609375, 0.45068359375, 0.65625, 0.1112060546875, 1.0751953125, -0.9521484375, -0.30029296875, 1.4462890625, 2.046875, 3.212890625, 1.68359375, 1.07421875, -0.5263671875, 0.74560546875, 1.37890625, 0.15283203125, 0.2440185546875, 0.62646484375, -0.1280517578125, 0.7646484375, -0.515625, -0.35693359375, 1.2958984375, 0.96923828125, 0.58935546875, 1.3701171875, 1.0673828125, 0.2337646484375, 0.93115234375, 0.66357421875, 6.0, 1.1025390625, -0.51708984375, -0.38330078125, 0.7197265625, 0.246826171875, -0.45166015625, 1.9521484375, 0.5546875, 0.08807373046875, 0.18505859375, 0.8857421875, -0.57177734375, 0.251708984375, 0.234375, 2.57421875, 0.9599609375, 0.5029296875, 0.10382080078125, 0.08331298828125, 0.66748046875, -0.349609375, 1.287109375, 0.259765625, 2.015625, 2.828125, -0.3095703125, -0.164306640625, -0.3408203125, 0.486572265625, 0.8466796875, 1.9130859375, 0.09088134765625, 0.66552734375, 0.00972747802734375, -0.83154296875, 1.755859375, 0.654296875, 0.173828125, 0.27587890625, -0.47607421875, -0.264404296875, 0.7529296875, 0.6533203125, 0.7275390625, 0.499755859375, 0.833984375, -0.44775390625, -0.05078125, -0.454833984375, 0.75439453125, 0.68505859375, 0.210693359375, -0.283935546875, -0.53564453125, 0.96826171875, 0.861328125, -3.33984375, -0.26171875, 0.77734375, 0.26513671875, -0.14111328125, -0.042236328125, -0.84814453125, 0.2137451171875, 0.94921875, 0.65185546875, -0.5380859375, 0.1529541015625, -0.360595703125, -0.0333251953125, -0.69189453125, 0.8974609375, 0.7109375, 0.81494140625, -0.259521484375, 1.1904296875, 0.62158203125, 1.345703125, 0.89404296875, 0.70556640625, 1.0673828125, 1.392578125, 0.5068359375, 0.962890625, 0.736328125, 1.55078125, 0.50390625, -0.398681640625, 2.361328125, 0.345947265625, -0.61962890625, 0.330078125, 0.75439453125, -0.673828125, -0.2379150390625, 1.5673828125, 1.369140625, 0.1119384765625, -0.1834716796875, 1.4599609375, -0.77587890625, 0.5556640625, 0.09954833984375, 0.0285186767578125, 0.58935546875, -0.501953125, 0.212890625, 0.02679443359375, 0.1715087890625, 0.03466796875, -0.564453125, 2.029296875, 2.45703125, -0.72216796875, 2.138671875, 0.50830078125, -0.09356689453125, 0.230224609375, 1.6943359375, 1.5126953125, 0.39453125, 0.411376953125, 1.07421875, -0.8046875, 0.51416015625, 0.2271728515625, -0.283447265625, 0.38427734375, 0.73388671875, 0.6962890625, 1.4990234375, 0.02813720703125, 0.40478515625, 1.2451171875, 1.1162109375, -5.5703125, 0.76171875, 0.322021484375, 1.0361328125, 1.197265625, 0.1163330078125, 0.2425537109375, 1.5595703125, 1.5791015625, -0.0921630859375, 0.484619140625, 1.9052734375, 5.31640625, 1.6337890625, 0.95947265625, -0.1751708984375, 0.466552734375, 0.8330078125, 1.03125, 0.2044677734375, 0.31298828125, -1.1220703125, 0.5517578125, 0.93505859375, 0.45166015625, 1.951171875, 0.65478515625, 1.30859375, 1.0859375, 0.56494140625, 2.322265625, 0.242919921875, 1.81640625, -0.469970703125, -0.841796875, 0.90869140625, 1.5361328125, 0.923828125, 1.0595703125, 0.356689453125, -0.46142578125, 2.134765625, 1.3037109375, -0.32373046875, -9.2265625, 0.4521484375, 0.88037109375, -0.53955078125, 0.96484375, 0.7705078125, 0.84521484375, 1.580078125, -0.1448974609375, 0.7607421875, 1.0166015625, -0.086669921875, 1.611328125, 0.05938720703125, 0.5078125, 0.8427734375, 2.431640625, 0.66357421875, 3.203125, 0.132080078125, 0.461181640625, 0.779296875, 1.9482421875, 1.8720703125, 0.845703125, -1.3837890625, -0.138916015625, 0.35546875, 0.2457275390625, 0.75341796875, 1.828125, 1.4169921875, 0.60791015625, 1.0068359375, 1.109375, 0.484130859375, -0.302001953125, 0.4951171875, 0.802734375, 1.9482421875, 0.916015625, 0.1646728515625, 2.599609375, 1.7177734375, -0.2374267578125, 0.98046875, 0.39306640625, -1.1396484375, 1.6533203125, 0.375244140625], \\\"scores\\\": [0.09906005859375, 0.12213134765625, 0.05035400390625, 0.16552734375, 0.0037384033203125, 0.010101318359375, 0.058197021484375, 0.10552978515625, 0.1141357421875, 0.115234375, 0.00444793701171875, 0.00812530517578125, 0.0343017578125, 0.009002685546875, 0.087158203125, 0.00818634033203125, 0.003238677978515625, 0.024169921875, 0.00702667236328125, 0.00936126708984375, 0.00632476806640625, 0.0293731689453125, 0.01800537109375, 0.0088348388671875, 0.013397216796875, 0.02557373046875, 0.12109375, 0.004413604736328125, 0.016571044921875, 0.00274658203125, 0.2142333984375, 0.29638671875, 0.16015625, 0.007843017578125, 0.007160186767578125, 0.00508880615234375, 0.054229736328125, 0.048736572265625, 0.026397705078125, 0.0265350341796875, 0.051361083984375, 0.018310546875, 0.00974273681640625, 0.0218963623046875, 0.216064453125, 0.021728515625, 0.0173797607421875, 0.004520416259765625], \\\"stoks\\\": [52, 52, 52, 52, 52, 41, 41, 374, 303, 303, 303, 427], \\\"time\\\": {\\\"begin_ms\\\": 640, \\\"end_ms\\\": 1140}}]}\"\n },\n {\n \"id\": \"7645a0d1-2e64-410d-83a8-b96040432e9a\",\n \"chat_id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"timestamp\": 1716244957031,\n \"role\": \"AGENT\",\n \"type\": \"AGENT_MESSAGE\",\n \"message_text\": \"Hello!\",\n \"emotion_features\": \"{\\\"Admiration\\\": 0.044921875, \\\"Adoration\\\": 0.0253753662109375, \\\"Aesthetic Appreciation\\\": 0.03265380859375, \\\"Amusement\\\": 0.118408203125, \\\"Anger\\\": 0.06719970703125, \\\"Anxiety\\\": 0.0411376953125, \\\"Awe\\\": 0.03802490234375, \\\"Awkwardness\\\": 0.056549072265625, \\\"Boredom\\\": 0.04217529296875, \\\"Calmness\\\": 0.08709716796875, \\\"Concentration\\\": 0.070556640625, \\\"Confusion\\\": 0.06964111328125, \\\"Contemplation\\\": 0.0343017578125, \\\"Contempt\\\": 0.037689208984375, \\\"Contentment\\\": 0.059417724609375, \\\"Craving\\\": 0.01132965087890625, \\\"Desire\\\": 0.01406097412109375, \\\"Determination\\\": 0.1143798828125, \\\"Disappointment\\\": 0.051177978515625, \\\"Disgust\\\": 0.028594970703125, \\\"Distress\\\": 0.054901123046875, \\\"Doubt\\\": 0.04638671875, \\\"Ecstasy\\\": 0.0258026123046875, \\\"Embarrassment\\\": 0.0222015380859375, \\\"Empathic Pain\\\": 0.015777587890625, \\\"Entrancement\\\": 0.0160980224609375, \\\"Envy\\\": 0.0163421630859375, \\\"Excitement\\\": 0.129638671875, \\\"Fear\\\": 0.03125, \\\"Guilt\\\": 0.01483917236328125, \\\"Horror\\\": 0.0194549560546875, \\\"Interest\\\": 0.1341552734375, \\\"Joy\\\": 0.0738525390625, \\\"Love\\\": 0.0216522216796875, \\\"Nostalgia\\\": 0.0210418701171875, \\\"Pain\\\": 0.020721435546875, \\\"Pride\\\": 0.05499267578125, \\\"Realization\\\": 0.0728759765625, \\\"Relief\\\": 0.04052734375, \\\"Romance\\\": 0.0129241943359375, \\\"Sadness\\\": 0.0254669189453125, \\\"Satisfaction\\\": 0.07159423828125, \\\"Shame\\\": 0.01495361328125, \\\"Surprise (negative)\\\": 0.05560302734375, \\\"Surprise (positive)\\\": 0.07965087890625, \\\"Sympathy\\\": 0.022247314453125, \\\"Tiredness\\\": 0.0194549560546875, \\\"Triumph\\\": 0.04107666015625}\",\n \"metadata\": \"\"\n }\n ],\n \"page_number\": 0,\n \"page_size\": 3,\n \"total_pages\": 1,\n \"end_timestamp\": 1716244958546,\n \"metadata\": \"\",\n \"config\": {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"333ce95c-76c7-4621-aa72-bb0ed90fcf50","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1c210e60-fc3e-4020-ba31-155c211461a5","name":"Get chat audio - default","request":{"urlPathTemplate":"/v0/evi/chats/{id}/audio","method":"GET","pathParameters":{"id":{"equalTo":"your-chat-id"}}},"response":{"status":200,"body":"{\n \"id\": \"470a49f6-1dec-4afe-8b61-035d3b2d63b0\",\n \"user_id\": \"e6235940-cfda-3988-9147-ff531627cf42\",\n \"status\": \"COMPLETE\",\n \"filename\": \"e6235940-cfda-3988-9147-ff531627cf42/470a49f6-1dec-4afe-8b61-035d3b2d63b0/reconstructed_audio.mp4\",\n \"modified_at\": 1729875432555,\n \"signed_audio_url\": \"https://storage.googleapis.com/...etc.\",\n \"signed_url_expiration_timestamp_millis\": 1730232816964\n}","headers":{"Content-Type":"application/json"}},"uuid":"1c210e60-fc3e-4020-ba31-155c211461a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"95990ecd-a7f2-495c-84ec-e0b2f0f1e471","name":"List configs - default","request":{"urlPathTemplate":"/v0/evi/configs","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 1,\n \"total_pages\": 1,\n \"configs_page\": [\n {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"95990ecd-a7f2-495c-84ec-e0b2f0f1e471","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"73a53d69-e4fb-44c0-a4cc-3ebdee8e8c36","name":"Create config - default","request":{"urlPathTemplate":"/v0/evi/configs","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"73a53d69-e4fb-44c0-a4cc-3ebdee8e8c36","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9fa7c906-3213-4358-9fd3-fb98a80ccff9","name":"List config versions - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"configs_page\": [\n {\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 0,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"9fa7c906-3213-4358-9fd3-fb98a80ccff9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"66129a1a-71df-4899-a702-a2582339ad92","name":"Create config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":201,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"This is an updated version of the Weather Assistant Config.\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1722642242998,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": true\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"66129a1a-71df-4899-a702-a2582339ad92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"96ab709e-8ce5-42ad-8930-11174405a07f","name":"Delete config - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"96ab709e-8ce5-42ad-8930-11174405a07f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac036d7f-9200-454a-ad8b-058cedce8018","name":"Update config name - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-config-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ac036d7f-9200-454a-ad8b-058cedce8018","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"336e4516-6577-4544-8e15-559222ec726d","name":"Get config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"336e4516-6577-4544-8e15-559222ec726d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3631f032-af11-4788-9ada-63c97ec90d03","name":"Delete config version - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"3631f032-af11-4788-9ada-63c97ec90d03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a8a419e-4772-4077-95b5-281c2bd2851b","name":"Update config description - default","request":{"urlPathTemplate":"/v0/evi/configs/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-config-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"1b60e1a0-cc59-424a-8d2c-189d354db3f3\",\n \"version\": 1,\n \"version_description\": \"This is an updated version_description.\",\n \"name\": \"Weather Assistant Config\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"evi_version\": \"3\",\n \"prompt\": {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n \"voice\": {\n \"provider\": \"HUME_AI\",\n \"name\": \"Ava Song\",\n \"id\": \"5bb7de05-c8fe-426a-8fcc-ba4fc4ce9f9c\"\n },\n \"language_model\": {\n \"model_provider\": \"ANTHROPIC\",\n \"model_resource\": \"claude-3-7-sonnet-latest\",\n \"temperature\": 1\n },\n \"ellm_model\": {\n \"allow_short_responses\": false\n },\n \"tools\": [],\n \"builtin_tools\": [],\n \"event_messages\": {\n \"on_new_chat\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_inactivity_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n },\n \"on_max_duration_timeout\": {\n \"enabled\": false,\n \"text\": \"\"\n }\n },\n \"timeouts\": {\n \"inactivity\": {\n \"enabled\": true,\n \"duration_secs\": 600\n },\n \"max_duration\": {\n \"enabled\": true,\n \"duration_secs\": 1800\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a8a419e-4772-4077-95b5-281c2bd2851b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3760f9c4-fbaa-40e9-9770-35af4592adb1","name":"List prompts - default","request":{"urlPathTemplate":"/v0/evi/prompts","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 2,\n \"total_pages\": 1,\n \"prompts_page\": [\n {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n },\n {\n \"id\": \"616b2b4c-a096-4445-9c23-64058b564fc2\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Web Search Assistant Prompt\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"text\": \"You are an AI web search assistant designed to help users find accurate and relevant information on the web. Respond to user queries promptly, using the built-in web search tool to retrieve up-to-date results. Present information clearly and concisely, summarizing key points where necessary. Use simple language and avoid technical jargon. If needed, provide helpful tips for refining search queries to obtain better results.\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"3760f9c4-fbaa-40e9-9770-35af4592adb1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1fab19ce-cf01-4f16-b221-518ebe235e05","name":"Create prompt - default","request":{"urlPathTemplate":"/v0/evi/prompts","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": null,\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1fab19ce-cf01-4f16-b221-518ebe235e05","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"818fa71c-38b4-45da-92f3-167567201251","name":"List prompt versions - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"prompts_page\": [\n {\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"818fa71c-38b4-45da-92f3-167567201251","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b2978df3-51e4-4d99-b160-6287c20dda6f","name":"Create prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":201,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"This is an updated version of the Weather Assistant Prompt.\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722635140150,\n \"text\": \"You are an updated version of an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"b2978df3-51e4-4d99-b160-6287c20dda6f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"722d1802-e538-4d83-9720-79ff982e0011","name":"Delete prompt - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"722d1802-e538-4d83-9720-79ff982e0011","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e0c3636-6d00-4e26-92d7-40460ef14c6c","name":"Update prompt name - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-prompt-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6e0c3636-6d00-4e26-92d7-40460ef14c6c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3812aa90-4c73-4d5b-a38b-d5ca8efde008","name":"Get prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"0"}}},"response":{"status":200,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"\",\n \"name\": \"Weather Assistant Prompt\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722633247488,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3812aa90-4c73-4d5b-a38b-d5ca8efde008","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27f84b39-bfde-4b0f-a49e-fbd93767a180","name":"Delete prompt version - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"27f84b39-bfde-4b0f-a49e-fbd93767a180","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"760d3795-9a2c-4a38-940a-6b7459dff285","name":"Update prompt description - default","request":{"urlPathTemplate":"/v0/evi/prompts/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-prompt-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"id\": \"af699d45-2985-42cc-91b9-af9e5da3bac5\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"This is an updated version_description.\",\n \"name\": \"string\",\n \"created_on\": 1722633247488,\n \"modified_on\": 1722634770585,\n \"text\": \"You are an AI weather assistant providing users with accurate and up-to-date weather information. Respond to user queries concisely and clearly. Use simple language and avoid technical jargon. Provide temperature, precipitation, wind conditions, and any weather alerts. Include helpful tips if severe weather is expected.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"760d3795-9a2c-4a38-940a-6b7459dff285","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"76070823-253f-4b18-9c68-a80f6d2373ee","name":"List tools - default","request":{"urlPathTemplate":"/v0/evi/tools","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 2,\n \"total_pages\": 1,\n \"tools_page\": [\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"d20827af-5d8d-4f66-b6b9-ce2e3e1ea2b2\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches user's current location.\",\n \"name\": \"get_current_location\",\n \"created_on\": 1715267200693,\n \"modified_on\": 1715267200693,\n \"fallback_content\": \"Unable to fetch location.\",\n \"description\": \"Fetches user's current location.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }}, \\\"required\\\": [\\\"location\\\"] }\"\n },\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"4442f3ea-9038-40e3-a2ce-1522b7de770f\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715266126705,\n \"modified_on\": 1715266126705,\n \"fallback_content\": \"Unable to fetch location.\",\n \"description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"76070823-253f-4b18-9c68-a80f6d2373ee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dc71f1b-3d70-4527-a21f-326f7db77dec","name":"Create tool - default","request":{"urlPathTemplate":"/v0/evi/tools","method":"POST"},"response":{"status":201,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"aa9b71c4-723c-47ff-9f83-1a1829e74376\",\n \"version\": 0,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius or fahrenheit based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715275452390,\n \"modified_on\": 1715275452390,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"7dc71f1b-3d70-4527-a21f-326f7db77dec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"97f54c38-2fe1-4344-9355-88765ad39e92","name":"List tool versions - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"GET","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"tools_page\": [\n {\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"97f54c38-2fe1-4344-9355-88765ad39e92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1230a7c7-82ee-4940-98d3-3f0e1acc2cba","name":"Create tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"POST","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":201,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"get_current_weather\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1230a7c7-82ee-4940-98d3-3f0e1acc2cba","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e58cf98-dbd8-465b-a6cc-53941c38f006","name":"Delete tool - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6e58cf98-dbd8-465b-a6cc-53941c38f006","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7bb920f0-9b75-4374-bdfb-540a599f3fce","name":"Update tool name - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-tool-id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"7bb920f0-9b75-4374-bdfb-540a599f3fce","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f4fe78ec-6b74-402d-8aef-0cbd04c6a473","name":"Get tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"GET","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current weather and uses celsius, fahrenheit, or kelvin based on location of user.\",\n \"name\": \"string\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f4fe78ec-6b74-402d-8aef-0cbd04c6a473","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"74ef73ce-49e2-492e-a4cb-ea6a1dc9b948","name":"Delete tool version - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"DELETE","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"74ef73ce-49e2-492e-a4cb-ea6a1dc9b948","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"82d8c062-5280-4378-afad-8057ebea037a","name":"Update tool description - default","request":{"urlPathTemplate":"/v0/evi/tools/{id}/version/{version}","method":"PATCH","pathParameters":{"id":{"equalTo":"your-tool-id"},"version":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"tool_type\": \"FUNCTION\",\n \"id\": \"00183a3f-79ba-413d-9f3b-609864268bea\",\n \"version\": 1,\n \"version_type\": \"FIXED\",\n \"version_description\": \"Fetches current temperature, precipitation, wind speed, AQI, and other weather conditions. Uses Celsius, Fahrenheit, or kelvin depending on user's region.\",\n \"name\": \"string\",\n \"created_on\": 1715277014228,\n \"modified_on\": 1715277602313,\n \"fallback_content\": \"Unable to fetch current weather.\",\n \"description\": \"This tool is for getting the current weather.\",\n \"parameters\": \"{ \\\"type\\\": \\\"object\\\", \\\"properties\\\": { \\\"location\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"The city and state, e.g. San Francisco, CA\\\" }, \\\"format\\\": { \\\"type\\\": \\\"string\\\", \\\"enum\\\": [\\\"celsius\\\", \\\"fahrenheit\\\", \\\"kelvin\\\"], \\\"description\\\": \\\"The temperature unit to use. Infer this from the users location.\\\" } }, \\\"required\\\": [\\\"location\\\", \\\"format\\\"] }\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"82d8c062-5280-4378-afad-8057ebea037a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1d60b8ea-f512-4ce0-92ad-0a086a4717a2","name":"List voices - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"GET"},"response":{"status":200,"body":"{\n \"page_number\": 0,\n \"page_size\": 10,\n \"total_pages\": 1,\n \"voices_page\": [\n {\n \"id\": \"c42352c0-4566-455d-b180-0f654b65b525\",\n \"name\": \"David Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n },\n {\n \"id\": \"d87352b0-26a3-4b11-081b-d157a5674d19\",\n \"name\": \"Goliath Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"1d60b8ea-f512-4ce0-92ad-0a086a4717a2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2c434990-d686-4fec-940d-7b86327bf9d5","name":"Create voice - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"c42352c0-4566-455d-b180-0f654b65b525\",\n \"name\": \"David Hume\",\n \"provider\": \"CUSTOM_VOICE\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2c434990-d686-4fec-940d-7b86327bf9d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"69163bef-50c2-4c89-b4f9-70f5a04bfec8","name":"Delete voice - default","request":{"urlPathTemplate":"/v0/tts/voices","method":"DELETE"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"69163bef-50c2-4c89-b4f9-70f5a04bfec8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a9089ce-a462-43bb-afa5-ed028dd296e5","name":"Text-to-Speech (Json) - default","request":{"urlPathTemplate":"/v0/tts","method":"POST"},"response":{"status":200,"body":"{\n \"generations\": [\n {\n \"audio\": \"//PExAA0DDYRvkpNfhv3JI5JZ...etc.\",\n \"duration\": 7.44225,\n \"encoding\": {\n \"format\": \"mp3\",\n \"sample_rate\": 48000\n },\n \"file_size\": 120192,\n \"generation_id\": \"795c949a-1510-4a80-9646-7d0863b023ab\",\n \"snippets\": [\n [\n {\n \"audio\": \"//PExAA0DDYRvkpNfhv3JI5JZ...etc.\",\n \"generation_id\": \"795c949a-1510-4a80-9646-7d0863b023ab\",\n \"id\": \"37b1b1b1-1b1b-1b1b-1b1b-1b1b1b1b1b1b\",\n \"text\": \"Beauty is no quality in things themselves: It exists merely in the mind which contemplates them.\",\n \"utterance_index\": 0,\n \"timestamps\": []\n }\n ]\n ]\n }\n ],\n \"request_id\": \"66e01f90-4501-4aa0-bbaf-74f45dc15aa725906\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a9089ce-a462-43bb-afa5-ed028dd296e5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"449bb149-6027-4735-a265-0a0a5bc0d0ef","name":"Text-to-Speech (File) - default","request":{"urlPathTemplate":"/v0/tts/file","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"449bb149-6027-4735-a265-0a0a5bc0d0ef","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd6bbe04-a38a-4d6e-bc3a-f8cf25725dbe","name":"Text-to-Speech (Streamed File) - default","request":{"urlPathTemplate":"/v0/tts/stream/file","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fd6bbe04-a38a-4d6e-bc3a-f8cf25725dbe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e8e8262-38fd-4f81-836b-c9d7ee07cd84","name":"Text-to-Speech (Streamed JSON) - default","request":{"urlPathTemplate":"/v0/tts/stream/json","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e8e8262-38fd-4f81-836b-c9d7ee07cd84","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f75e0a57-c1d9-44df-80c7-c8485a7a76d6","name":"Voice Conversion (Streamed JSON) - default","request":{"urlPathTemplate":"/v0/tts/voice_conversion/json","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f75e0a57-c1d9-44df-80c7-c8485a7a76d6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":43}} \ No newline at end of file From f43f0353e5da4ce90e2c44867119b785c681a361 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 20:50:04 +0000 Subject: [PATCH 2/5] [fern-replay] Applied customizations Patches with unresolved conflicts (1): - patch-ece510a1: Expose temperature parameter on TTS client (#486) Run `fern-replay resolve` to apply these customizations. --- .fern/replay.lock | 167 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 165 insertions(+), 2 deletions(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index b3d1c416..dcd4fc01 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -6,5 +6,168 @@ generations: timestamp: 2026-03-04T21:44:25.857Z cli_version: unknown generator_versions: {} -current_generation: 49870a174e0242036241ef71f5ed00f7573d11af -patches: [] + - commit_sha: fe01fd08770ba763f2599c946a16b6b338e6e86f + tree_hash: d0b66290fa6e15f864f77fb3fd897340b79062eb + timestamp: 2026-06-15T20:50:01.935Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.61.0 +current_generation: fe01fd08770ba763f2599c946a16b6b338e6e86f +patches: + - id: patch-ece510a1 + content_hash: sha256:2296c327028f8024cba5c6ffccf276bca01550441a8ddc9ec88499b9e056f429 + original_commit: ece510a1ed2211a1803f6964767988211f2a74f9 + original_message: Expose temperature parameter on TTS client (#486) + original_author: Rob Hughes <77rgh77@gmail.com> + base_generation: b5be3efc6b1ca84a043b82c57631736c867cac35 + files: + - pyproject.toml + patch_content: | + diff --git a/pyproject.toml b/pyproject.toml + index 3b3bc72..d173560 100644 + --- a/pyproject.toml + +++ b/pyproject.toml + @@ -4,7 +4,7 @@ dynamic = ["version"] + + [tool.poetry] + name = "hume" + -version = "0.13.12" + +version = "0.13.13" + description = "A Python SDK for Hume AI" + readme = "README.md" + authors = [] + theirs_snapshot: + pyproject.toml: | + [project] + name = "hume" + dynamic = ["version"] + + [tool.poetry] + name = "hume" + version = "0.13.13" + description = "A Python SDK for Hume AI" + readme = "README.md" + authors = [] + keywords = [ + "hume", + "ai", + "evi", + "empathic", + "multimodal", + "expression", + "analysis", + "sentiment", + "voice", + "recognition", + "detection", + "emotion", + "interface", + "speech", + "audio", + "vision", + "expressive", + "embeddings", + "communication", + "learning" + ] + license = "MIT" + classifiers = [ + "Intended Audience :: Developers", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", + "Operating System :: OS Independent", + "Operating System :: POSIX", + "Operating System :: MacOS", + "Operating System :: POSIX :: Linux", + "Operating System :: Microsoft :: Windows", + "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", + "License :: OSI Approved :: MIT License" + ] + packages = [ + { include = "hume", from = "src"} + ] + + [tool.poetry.urls] + Documentation = 'https://dev.hume.ai' + Homepage = 'https://www.hume.ai/' + Repository = 'https://github.com/HumeAI/hume-python-sdk' + + [tool.poetry.dependencies] + python = ">=3.9,<4" + aiofiles = "^24.1.0" + eval-type-backport = "^0.2.0" + exceptiongroup = "^1.3.0" + httpx = ">=0.21.2" + jupyter = { version = "^1.0.0", optional = true} + pydantic = ">= 1.9.2" + pydantic-core = ">=2.18.2" + sounddevice = { version = "^0.4.6", optional = true} + typing_extensions = ">= 4.0.0" + websockets = ">=12.0" + + [tool.poetry.group.dev.dependencies] + mypy = "==1.13.0" + pytest = "^7.4.0" + pytest-asyncio = "^0.23.5" + pytest-xdist = "^3.6.1" + python-dateutil = "^2.9.0" + types-python-dateutil = "^2.9.0.20240316" + requests = "^2.31.0" + types-requests = "^2.31.0" + covcheck = { version = "^0.4.3", extras = ["toml"]} + pydocstyle = "^6.1.1" + pydub-stubs = "^0.25.1" + pylint = "^2.16.2" + pytest-cov = "^4.0.0" + ruff = "==0.11.5" + semver = "^2.13.0" + testbook = "^0.4.2" + types-aiofiles = "^24.1.0.20240626" + + [tool.pytest.ini_options] + testpaths = [ "tests" ] + asyncio_mode = "auto" + + [tool.mypy] + plugins = ["pydantic.mypy"] + + [tool.ruff] + line-length = 120 + + [tool.ruff.lint] + select = [ + "E", # pycodestyle errors + "F", # pyflakes + "I", # isort + ] + ignore = [ + "E402", # Module level import not at top of file + "E501", # Line too long + "E711", # Comparison to `None` should be `cond is not None` + "E712", # Avoid equality comparisons to `True`; use `if ...:` checks + "E721", # Use `is` and `is not` for type comparisons, or `isinstance()` for insinstance checks + "E722", # Do not use bare `except` + "E731", # Do not assign a `lambda` expression, use a `def` + "F821", # Undefined name + "F841" # Local variable ... is assigned to but never used + ] + + [tool.ruff.lint.isort] + section-order = ["future", "standard-library", "third-party", "first-party"] + + [build-system] + requires = ["poetry-core"] + build-backend = "poetry.core.masonry.api" + + [tool.poetry.extras] + examples=["jupyter"] + microphone=["sounddevice"] + status: unresolved From d92bec9f51f4e3a262d4d9a9e3b4c96903c12884 Mon Sep 17 00:00:00 2001 From: zach Date: Wed, 17 Jun 2026 08:37:50 -0700 Subject: [PATCH 3/5] remove expression measurement modules, tests, and docs --- README.md | 41 +-- .../batch/client_with_utils.py | 225 -------------- .../batch/types/inference_job.py | 31 -- src/hume/expression_measurement/client.py | 81 ----- .../stream/stream/socket_client.py | 280 ------------------ tests/custom/test_client.py | 34 --- tests/custom/test_hume_wss_client.py | 7 - 7 files changed, 10 insertions(+), 689 deletions(-) delete mode 100644 src/hume/expression_measurement/batch/client_with_utils.py delete mode 100644 src/hume/expression_measurement/batch/types/inference_job.py delete mode 100644 src/hume/expression_measurement/client.py delete mode 100644 src/hume/expression_measurement/stream/stream/socket_client.py delete mode 100644 tests/custom/test_client.py diff --git a/README.md b/README.md index 3b742014..5ecfc3ea 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,6 @@ The Hume Python SDK is compatible across several Python versions and operating s - For the [Empathic Voice Interface](https://dev.hume.ai/docs/empathic-voice-interface-evi/overview), Python versions `3.9` through `3.13` are supported on macOS and Linux. - For [Text-to-speech (TTS)](https://dev.hume.ai/docs/text-to-speech-tts/overview), Python versions `3.9` through `3.13` are supported on macOS, Linux, and Windows. -- For [Expression Measurement](https://dev.hume.ai/docs/expression-measurement/overview), Python versions `3.9` through `3.13` are supported on macOS, Linux, and Windows. Below is a table which shows the version and operating system compatibilities by product: @@ -37,7 +36,6 @@ Below is a table which shows the version and operating system compatibilities by | ------------------------ | -------------------------------------- | --------------------- | | Empathic Voice Interface | `3.9`, `3.10`, `3.11`, `3.12`, `3.13` | macOS, Linux | | Text-to-speech (TTS) | `3.9`, `3.10`, `3.11`, `3.12`, `3.13` | macOS, Linux, Windows | -| Expression Measurement | `3.9`, `3.10`, `3.11`, `3.12`, `3.13` | macOS, Linux, Windows | ## Installation @@ -64,7 +62,6 @@ Starter projects that use this SDK: - **[EVI Python quickstart](https://github.com/HumeAI/hume-api-examples/tree/main/evi/evi-python-quickstart)** — Empathic Voice Interface - **[TTS Python quickstart](https://github.com/HumeAI/hume-api-examples/tree/main/tts/tts-python-quickstart)** — Text-to-speech -- **[Expression Measurement streaming (Python)](https://github.com/HumeAI/hume-api-examples/tree/main/expression-measurement/streaming/python-streaming-example)** — Streaming expression measurement ## Async Client @@ -83,25 +80,9 @@ async def main() -> None: asyncio.run(main()) ``` -### Writing File - -Writing files with an async stream of bytes can be tricky in Python! `aiofiles` can simplify this some. For example, -you can download your job artifacts like so: - -```python -import aiofiles - -from hume import AsyncHumeClient - -client = AsyncHumeClient() -async with aiofiles.open('artifacts.zip', mode='wb') as file: - async for chunk in client.expression_measurement.batch.get_job_artifacts(id="my-job-id"): - await file.write(chunk) -``` - ## Namespaces -This SDK contains the APIs for empathic voice, tts, and expression measurement. Even +This SDK contains the APIs for empathic voice and tts. Even if you do not plan on using more than one API to start, the SDK provides easy access in case you would like to use additional APIs in the future. @@ -112,9 +93,8 @@ from hume.client import HumeClient client = HumeClient(api_key="YOUR_API_KEY") -client.empathic_voice. # APIs specific to Empathic Voice -client.tts. # APIs specific to Text-to-speech -client.expression_measurement. # APIs specific to Expression Measurement +client.empathic_voice. # APIs specific to Empathic Voice +client.tts. # APIs specific to Text-to-speech ``` ## Exception Handling @@ -127,7 +107,7 @@ from hume.core import ApiError client = HumeClient(api_key="YOUR_API_KEY") try: - client.expression_measurement.batch.get_job_predictions(id="my-job-id") + client.empathic_voice.configs.list_configs() except ApiError as e: print(e.status_code) print(e.body) @@ -166,7 +146,7 @@ print(pager.items) ## WebSockets -We expose a websocket client for interacting with the EVI API as well as Expression Measurement. +We expose a websocket client for interacting with the EVI API. When interacting with these clients, you can use them very similarly to how you'd use the common `websockets` library: @@ -174,14 +154,13 @@ When interacting with these clients, you can use them very similarly to how you' import os from hume import AsyncHumeClient +from hume.empathic_voice.types import UserInput client = AsyncHumeClient(api_key=os.getenv("HUME_API_KEY")) -async with client.expression_measurement.stream.connect() as hume_socket: - print(await hume_socket.get_job_details()) +async with client.empathic_voice.chat.connect() as hume_socket: + await hume_socket.send_user_input(message=UserInput(text="Hello!")) ``` -Model configuration (e.g. face, language, prosody) is sent per payload when you send data (e.g. via `send_publish()`, `send_text()`, or `send_file()`), not at connect time. - The underlying connection, in this case `hume_socket`, will support intellisense/autocomplete for the different functions that are available on the socket! ### Advanced @@ -208,7 +187,7 @@ from hume.core import RequestOptions client = HumeClient(...) # Override retries for a specific method -client.expression_measurement.batch.get_job_predictions(..., +client.empathic_voice.configs.list_configs( request_options=RequestOptions(max_retries=5) ) ``` @@ -228,7 +207,7 @@ client = HumeClient( ) # Override timeout for a specific method -client.expression_measurement.batch.get_job_predictions(..., +client.empathic_voice.configs.list_configs( request_options=RequestOptions(timeout_in_seconds=20) ) ``` diff --git a/src/hume/expression_measurement/batch/client_with_utils.py b/src/hume/expression_measurement/batch/client_with_utils.py deleted file mode 100644 index f3915a6a..00000000 --- a/src/hume/expression_measurement/batch/client_with_utils.py +++ /dev/null @@ -1,225 +0,0 @@ -import aiofiles -import typing -import json as jsonlib -from json.decoder import JSONDecodeError - -from ...core.request_options import RequestOptions -from ...core.jsonable_encoder import jsonable_encoder -from ... import core - -from .types.inference_base_request import InferenceBaseRequest -from ...core.pydantic_utilities import parse_obj_as -from .types.job_id import JobId -from .client import AsyncBatchClient, BatchClient -from ...core.api_error import ApiError - -class BatchClientWithUtils(BatchClient): - def get_and_write_job_artifacts( - self, - id: str, - *, - file_name: str = "artifacts.zip", - request_options: typing.Optional[RequestOptions] = None) -> None: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - file_name : typing.Optional[str] - The name of the file to write the artifacts to. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Yields - ------ - typing.Iterator[bytes] - - - Examples - -------- - from hume.client import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.get_and_write_job_artifacts( - id="string", - file_name="artifacts.zip", - ) - """ - with open(file_name, mode='wb') as f: - for chunk in self.get_job_artifacts(id=id, request_options=request_options): - f.write(chunk) - - def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - The inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.start_inference_job_from_local_file() - """ - files: typing.Dict[str, typing.Any] = { - "file": file, - } - if json is not None: - files["json"] = jsonlib.dumps(jsonable_encoder(json)).encode("utf-8") - - _response = self._raw_client._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._raw_client._client_wrapper.get_environment().base, - method="POST", - files=files, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - return _parsed_response.job_id - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, body=_response.text) - raise ApiError(status_code=_response.status_code, body=_response_json) - - -class AsyncBatchClientWithUtils(AsyncBatchClient): - async def get_and_write_job_artifacts( - self, - id: str, - *, - file_name: str = "artifacts.zip", - request_options: typing.Optional[RequestOptions] = None) -> None: - """ - Get the artifacts ZIP of a completed inference job. - - Parameters - ---------- - id : str - The unique identifier for the job. - - file_name : typing.Optional[str] - The name of the file to write the artifacts to. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Yields - ------ - typing.AsyncIterator[bytes] - - - Examples - -------- - from hume.client import HumeClient - - client = AsyncHumeClient( - api_key="YOUR_API_KEY", - ) - await client.expression_measurement.batch.get_and_write_job_artifacts( - id="string", - file_name="artifacts.zip", - ) - """ - async with aiofiles.open(file_name, mode='wb') as f: - async for chunk in self.get_job_artifacts(id=id, request_options=request_options): - await f.write(chunk) - - async def start_inference_job_from_local_file( - self, - *, - file: typing.List[core.File], - json: typing.Optional[InferenceBaseRequest] = None, - request_options: typing.Optional[RequestOptions] = None, - ) -> str: - """ - Start a new batch inference job. - - Parameters - ---------- - file : typing.List[core.File] - See core.File for more documentation - - json : typing.Optional[InferenceBaseRequest] - The inference job configuration. - - request_options : typing.Optional[RequestOptions] - Request-specific configuration. - - Returns - ------- - str - - - Examples - -------- - from hume import HumeClient - - client = HumeClient( - api_key="YOUR_API_KEY", - ) - client.expression_measurement.batch.start_inference_job_from_local_file() - """ - files: typing.Dict[str, typing.Any] = { - "file": file, - } - if json is not None: - files["json"] = jsonlib.dumps(jsonable_encoder(json)).encode("utf-8") - - _response = await self._raw_client._client_wrapper.httpx_client.request( - "v0/batch/jobs", - base_url=self._raw_client._client_wrapper.get_environment().base, - method="POST", - files=files, - request_options=request_options, - ) - try: - if 200 <= _response.status_code < 300: - _parsed_response = typing.cast( - JobId, - parse_obj_as( - type_=JobId, # type: ignore - object_=_response.json(), - ), - ) - return _parsed_response.job_id - _response_json = _response.json() - except JSONDecodeError: - raise ApiError(status_code=_response.status_code, body=_response.text) - raise ApiError(status_code=_response.status_code, body=_response_json) diff --git a/src/hume/expression_measurement/batch/types/inference_job.py b/src/hume/expression_measurement/batch/types/inference_job.py deleted file mode 100644 index 08add412..00000000 --- a/src/hume/expression_measurement/batch/types/inference_job.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import typing -from typing_extensions import deprecated - -import pydantic -from ....core.pydantic_utilities import IS_PYDANTIC_V2 -from .job_inference import JobInference - - -class InferenceJob(JobInference): - type: str = pydantic.Field() - """ - Denotes the job type. - - Jobs created with the Expression Measurement API will have this field set to `INFERENCE`. - """ - - @property - @deprecated("Use .state.status instead") - def status(self) -> str: - return self.state.status - - if IS_PYDANTIC_V2: - model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 - else: - - class Config: - frozen = True - smart_union = True - extra = pydantic.Extra.allow diff --git a/src/hume/expression_measurement/client.py b/src/hume/expression_measurement/client.py deleted file mode 100644 index f75d9210..00000000 --- a/src/hume/expression_measurement/client.py +++ /dev/null @@ -1,81 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -from __future__ import annotations - -import typing - -from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from .raw_client import AsyncRawExpressionMeasurementClient, RawExpressionMeasurementClient - -if typing.TYPE_CHECKING: - from .batch.client_with_utils import AsyncBatchClientWithUtils, BatchClientWithUtils - from .stream.stream.client import StreamClient, AsyncStreamClient - - -class ExpressionMeasurementClient: - def __init__(self, *, client_wrapper: SyncClientWrapper): - self._raw_client = RawExpressionMeasurementClient(client_wrapper=client_wrapper) - self._client_wrapper = client_wrapper - self._batch: typing.Optional[BatchClientWithUtils] = None - self._stream: typing.Optional[StreamClient] = None - - @property - def with_raw_response(self) -> RawExpressionMeasurementClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - RawExpressionMeasurementClient - """ - return self._raw_client - - @property - def batch(self): - if self._batch is None: - from .batch.client_with_utils import BatchClientWithUtils # noqa: E402 - - self._batch = BatchClientWithUtils(client_wrapper=self._client_wrapper) - return self._batch - - @property - def stream(self): - if self._stream is None: - from .stream.stream.client import StreamClient # noqa: E402 - self._stream = StreamClient(client_wrapper=self._client_wrapper) - return self._stream - - -class AsyncExpressionMeasurementClient: - def __init__(self, *, client_wrapper: AsyncClientWrapper): - self._raw_client = AsyncRawExpressionMeasurementClient(client_wrapper=client_wrapper) - self._client_wrapper = client_wrapper - self._batch: typing.Optional[AsyncBatchClientWithUtils] = None - self._stream: typing.Optional[AsyncStreamClient] = None - - @property - def with_raw_response(self) -> AsyncRawExpressionMeasurementClient: - """ - Retrieves a raw implementation of this client that returns raw responses. - - Returns - ------- - AsyncRawExpressionMeasurementClient - """ - return self._raw_client - - @property - def batch(self): - if self._batch is None: - from .batch.client_with_utils import AsyncBatchClientWithUtils # noqa: E402 - - self._batch = AsyncBatchClientWithUtils(client_wrapper=self._client_wrapper) - return self._batch - - @property - def stream(self): - if self._stream is None: - from .stream.stream.client import AsyncStreamClient # noqa: E402 - - self._stream = AsyncStreamClient(client_wrapper=self._client_wrapper) - return self._stream diff --git a/src/hume/expression_measurement/stream/stream/socket_client.py b/src/hume/expression_measurement/stream/stream/socket_client.py deleted file mode 100644 index fcd83929..00000000 --- a/src/hume/expression_measurement/stream/stream/socket_client.py +++ /dev/null @@ -1,280 +0,0 @@ -# This file was auto-generated by Fern from our API Definition. - -import base64 -import json -import typing -from json.decoder import JSONDecodeError -from pathlib import Path - -import websockets -import websockets.sync.connection as websockets_sync_connection - -from ....core.api_error import ApiError -from ....core.events import EventEmitterMixin, EventType -from ....core.pydantic_utilities import parse_obj_as -from .types.config import Config -from .types.stream_models_endpoint_payload import StreamModelsEndpointPayload -from .types.subscribe_event import SubscribeEvent - -try: - from websockets.legacy.client import WebSocketClientProtocol # type: ignore -except ImportError: - from websockets import WebSocketClientProtocol # type: ignore - -StreamSocketClientResponse = typing.Union[SubscribeEvent] - - -class AsyncStreamSocketClient(EventEmitterMixin): - def __init__(self, *, websocket: WebSocketClientProtocol): - super().__init__() - self._websocket = websocket - - async def __aiter__(self): - async for message in self._websocket: - yield parse_obj_as(StreamSocketClientResponse, json.loads(message)) # type: ignore - - async def start_listening(self): - """ - Start listening for messages on the websocket connection. - - Emits events in the following order: - - EventType.OPEN when connection is established - - EventType.MESSAGE for each message received - - EventType.ERROR if an error occurs - - EventType.CLOSE when connection is closed - """ - await self._emit_async(EventType.OPEN, None) - try: - async for raw_message in self._websocket: - json_data = json.loads(raw_message) - parsed = parse_obj_as(StreamSocketClientResponse, json_data) # type: ignore - await self._emit_async(EventType.MESSAGE, parsed) - except (websockets.WebSocketException, JSONDecodeError) as exc: - await self._emit_async(EventType.ERROR, exc) - finally: - await self._emit_async(EventType.CLOSE, None) - - async def send_publish(self, message: StreamModelsEndpointPayload) -> None: - """ - Send a message to the websocket connection. - The message will be sent as a StreamModelsEndpointPayload. - """ - await self._send_model(message) - - async def recv(self) -> StreamSocketClientResponse: - """ - Receive a message from the websocket connection. - """ - data = await self._websocket.recv() - json_data = json.loads(data) - return parse_obj_as(StreamSocketClientResponse, json_data) # type: ignore - - async def _send(self, data: typing.Any) -> None: - """ - Send a message to the websocket connection. - """ - if isinstance(data, dict): - data = json.dumps(data) - await self._websocket.send(data) - - async def _send_model(self, data: typing.Any) -> None: - """ - Send a Pydantic model to the websocket connection. - """ - await self._send(data.dict()) - - async def send_facemesh( - self, - landmarks: typing.List[typing.List[typing.List[float]]], - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - landmarks_str = json.dumps(landmarks) - payload = { - "data": landmarks_str, - "models": config.dict() if config else None, - "raw_text": False, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - await self._websocket.send(json.dumps(payload)) - return await self.recv() - - async def send_text( - self, - text: str, - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - payload = { - "data": text, - "models": config.dict() if config else None, - "raw_text": True, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - await self._websocket.send(json.dumps(payload)) - return await self.recv() - - async def send_file( - self, - file_: typing.Union[str, Path], - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - try: - with open(file_, "rb") as f: - bytes_data = base64.b64encode(f.read()).decode() - except: - if isinstance(file_, Path): - raise ApiError(body=f"Failed to open file: {file_}") - # If you cannot open the file, assume you were passed a b64 string, not a file path - bytes_data = str(file_) - - payload = { - "data": bytes_data, - "models": config.dict() if config else None, - "raw_text": False, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - await self._websocket.send(json.dumps(payload)) - return await self.recv() - - async def get_job_details(self) -> StreamSocketClientResponse: - payload = {"job_details": True} - await self._websocket.send(json.dumps(payload)) - return await self.recv() - - async def reset(self) -> StreamSocketClientResponse: - payload = {"reset_stream": True} - await self._websocket.send(json.dumps(payload)) - return await self.recv() - - -class StreamSocketClient(EventEmitterMixin): - def __init__(self, *, websocket: websockets_sync_connection.Connection): - super().__init__() - self._websocket = websocket - - def __iter__(self): - for message in self._websocket: - yield parse_obj_as(StreamSocketClientResponse, json.loads(message)) # type: ignore - - def start_listening(self): - """ - Start listening for messages on the websocket connection. - - Emits events in the following order: - - EventType.OPEN when connection is established - - EventType.MESSAGE for each message received - - EventType.ERROR if an error occurs - - EventType.CLOSE when connection is closed - """ - self._emit(EventType.OPEN, None) - try: - for raw_message in self._websocket: - json_data = json.loads(raw_message) - parsed = parse_obj_as(StreamSocketClientResponse, json_data) # type: ignore - self._emit(EventType.MESSAGE, parsed) - except (websockets.WebSocketException, JSONDecodeError) as exc: - self._emit(EventType.ERROR, exc) - finally: - self._emit(EventType.CLOSE, None) - - def send_publish(self, message: StreamModelsEndpointPayload) -> None: - """ - Send a message to the websocket connection. - The message will be sent as a StreamModelsEndpointPayload. - """ - self._send_model(message) - - def recv(self) -> StreamSocketClientResponse: - """ - Receive a message from the websocket connection. - """ - data = self._websocket.recv() - json_data = json.loads(data) - return parse_obj_as(StreamSocketClientResponse, json_data) # type: ignore - - def _send(self, data: typing.Any) -> None: - """ - Send a message to the websocket connection. - """ - if isinstance(data, dict): - data = json.dumps(data) - self._websocket.send(data) - - def _send_model(self, data: typing.Any) -> None: - """ - Send a Pydantic model to the websocket connection. - """ - self._send(data.dict()) - - def send_facemesh( - self, - landmarks: typing.List[typing.List[typing.List[float]]], - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - landmarks_str = json.dumps(landmarks) - payload = { - "data": landmarks_str, - "models": config.dict() if config else None, - "raw_text": False, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - self._websocket.send(json.dumps(payload)) - return self.recv() - - def send_text( - self, - text: str, - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - payload = { - "data": text, - "models": config.dict() if config else None, - "raw_text": True, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - self._websocket.send(json.dumps(payload)) - return self.recv() - - def send_file( - self, - file_: typing.Union[str, Path], - config: typing.Optional[Config] = None, - payload_id: typing.Optional[str] = None, - ) -> StreamSocketClientResponse: - try: - with open(file_, "rb") as f: - bytes_data = base64.b64encode(f.read()).decode() - except: - if isinstance(file_, Path): - raise ApiError(body=f"Failed to open file: {file_}") - # If you cannot open the file, assume you were passed a b64 string, not a file path - bytes_data = str(file_) - - payload = { - "data": bytes_data, - "models": config.dict() if config else None, - "raw_text": False, - "payload_id": payload_id, - } - payload = {k: v for k, v in payload.items() if v is not None} - self._websocket.send(json.dumps(payload)) - return self.recv() - - def get_job_details(self) -> StreamSocketClientResponse: - payload = {"job_details": True} - self._websocket.send(json.dumps(payload)) - return self.recv() - - def reset(self) -> StreamSocketClientResponse: - payload = {"reset_stream": True} - self._websocket.send(json.dumps(payload)) - return self.recv() diff --git a/tests/custom/test_client.py b/tests/custom/test_client.py deleted file mode 100644 index dd3a501e..00000000 --- a/tests/custom/test_client.py +++ /dev/null @@ -1,34 +0,0 @@ -import pytest -import aiofiles - -from hume.client import AsyncHumeClient, HumeClient -from hume.expression_measurement.batch.types.face import Face -from hume.expression_measurement.batch.types.inference_base_request import InferenceBaseRequest -from hume.expression_measurement.batch.types.models import Models - - -@pytest.mark.skip(reason="CI does not have authentication.") -async def test_write_job_artifacts() -> None: - client = AsyncHumeClient(api_key="MY_API_KEY") - async with aiofiles.open('artifacts.zip', mode='wb') as file: - async for chunk in client.expression_measurement.batch.get_job_artifacts(id="my-job-id"): - await file.write(chunk) - -@pytest.mark.skip(reason="CI does not have authentication.") -async def test_get_job_predictions() -> None: - client = AsyncHumeClient(api_key="MY_API_KEY") - await client.expression_measurement.batch.get_job_predictions(id="my-job-id", request_options={ - "max_retries": 3, - }) - -@pytest.mark.skip(reason="CI does not have authentication.") -async def test_start_inference_job_from_local_file() -> None: - client = HumeClient(api_key="MY_API_KEY") - client.expression_measurement.batch.start_inference_job_from_local_file( - file=[], - json=InferenceBaseRequest( - models=Models( - face=Face() - ) - ) - ) diff --git a/tests/custom/test_hume_wss_client.py b/tests/custom/test_hume_wss_client.py index ca68b5d1..c5e2ffa4 100644 --- a/tests/custom/test_hume_wss_client.py +++ b/tests/custom/test_hume_wss_client.py @@ -4,7 +4,6 @@ from unittest.mock import Mock import websockets.legacy.client -from hume.expression_measurement.stream.stream.socket_client import AsyncStreamSocketClient from pytest import MonkeyPatch from hume.client import AsyncHumeClient @@ -41,9 +40,3 @@ async def test_chat_connect_basic(monkeypatch: MonkeyPatch) -> None: monkeypatch.setattr(websockets.legacy.client, "connect", get_mock_connect("wss://api.hume.ai/v0/evi/chat")) async with hu.empathic_voice.chat.connect() as socket: assert isinstance(socket, AsyncChatSocketClient) - -async def test_stream_models_connect_basic(monkeypatch: MonkeyPatch) -> None: - hu = AsyncHumeClient(api_key="0000-0000-0000-0000") - monkeypatch.setattr(websockets.legacy.client, "connect", get_mock_connect("wss://api.hume.ai/v0/stream/models")) - async with hu.expression_measurement.stream.connect() as socket: - assert isinstance(socket, AsyncStreamSocketClient) From e72b586577eb5fe05f9c613f7c6cd8e17e558338 Mon Sep 17 00:00:00 2001 From: zach Date: Wed, 17 Jun 2026 08:38:00 -0700 Subject: [PATCH 4/5] remove expression measurement entries from .fernignore --- .fernignore | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.fernignore b/.fernignore index 62a455ef..1b97b0e2 100644 --- a/.fernignore +++ b/.fernignore @@ -19,16 +19,9 @@ src/hume/client.py src/hume/empathic_voice/chat/client.py src/hume/empathic_voice/chat/raw_client.py -# Needs to add .stream to reference expression measurement stream client -# Also wrap the .batch client in BatchClientWithUtils -src/hume/expression_measurement/client.py - # Need to add .stream_input to reference stream_input client src/hume/tts/client.py -src/hume/expression_measurement/batch/client_with_utils.py -# Backward compatibility for InferenceJob.status -src/hume/expression_measurement/batch/types/inference_job.py src/hume/empathic_voice/chat/audio/microphone.py src/hume/empathic_voice/chat/audio/microphone_interface.py src/hume/empathic_voice/chat/audio/microphone_sender.py @@ -39,7 +32,6 @@ src/hume/empathic_voice/chat/audio/chat_client.py # Manually maintained to support deprecated methods src/hume/empathic_voice/chat/client.py src/hume/empathic_voice/chat/socket_client.py -src/hume/expression_measurement/stream/stream/socket_client.py src/hume/core/websocket.py # Customize the GitHub workflow to run only Fern tests (not legacy) From 2637fb5ec275641a64b56e5846b720b3fab616fd Mon Sep 17 00:00:00 2001 From: zach Date: Wed, 17 Jun 2026 08:38:10 -0700 Subject: [PATCH 5/5] drop aiofiles dependency unused after expression measurement removal --- .fern/metadata.json | 4 +- poetry.lock | 310 +++++++++++++++++++++++++++++++++++++------- pyproject.toml | 2 - requirements.txt | 1 - 4 files changed, 262 insertions(+), 55 deletions(-) diff --git a/.fern/metadata.json b/.fern/metadata.json index 14942f50..00b12bfa 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -23,7 +23,6 @@ "optional": true }, "eval-type-backport": "^0.2.0", - "aiofiles": "^24.1.0", "exceptiongroup": "^1.3.0" }, "extra_dev_dependencies": { @@ -38,8 +37,7 @@ ] }, "testbook": "^0.4.2", - "pydocstyle": "^6.1.1", - "types-aiofiles": "^24.1.0.20240626" + "pydocstyle": "^6.1.1" }, "extras": { "examples": [ diff --git a/poetry.lock b/poetry.lock index 00e47cb2..91357150 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,15 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. - -[[package]] -name = "aiofiles" -version = "24.1.0" -description = "File support for asyncio." -optional = false -python-versions = ">=3.8" -files = [ - {file = "aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5"}, - {file = "aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c"}, -] +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "annotated-types" @@ -17,6 +6,7 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -28,6 +18,7 @@ version = "4.12.1" description = "High-level concurrency and networking framework on top of asyncio or Trio" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c"}, {file = "anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703"}, @@ -39,7 +30,7 @@ idna = ">=2.8" typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] -trio = ["trio (>=0.31.0)", "trio (>=0.32.0)"] +trio = ["trio (>=0.31.0) ; python_version < \"3.10\"", "trio (>=0.32.0) ; python_version >= \"3.10\""] [[package]] name = "appnope" @@ -47,6 +38,8 @@ version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"examples\" and platform_system == \"Darwin\"" files = [ {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, @@ -58,6 +51,8 @@ version = "25.1.0" description = "Argon2 for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741"}, {file = "argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1"}, @@ -72,6 +67,8 @@ version = "25.1.0" description = "Low-level CFFI bindings for Argon2" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f"}, {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b"}, @@ -113,6 +110,8 @@ version = "1.4.0" description = "Better dates & times for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205"}, {file = "arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7"}, @@ -132,6 +131,7 @@ version = "2.15.8" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.7.2" +groups = ["dev"] files = [ {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, @@ -151,6 +151,8 @@ version = "3.0.1" description = "Annotate AST trees with source code positions" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a"}, {file = "asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7"}, @@ -166,6 +168,8 @@ version = "2.0.5" description = "Simple LRU cache for asyncio" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "async_lru-2.0.5-py3-none-any.whl", hash = "sha256:ab95404d8d2605310d345932697371a5f40def0487c03d6d0ad9138de52c9943"}, {file = "async_lru-2.0.5.tar.gz", hash = "sha256:481d52ccdd27275f42c43a928b4a50c3bfb2d67af4e78b170e3e0bb39c66e5bb"}, @@ -180,10 +184,12 @@ version = "26.1.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309"}, {file = "attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32"}, ] +markers = {main = "extra == \"examples\""} [[package]] name = "babel" @@ -191,13 +197,15 @@ version = "2.18.0" description = "Internationalization utilities" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35"}, {file = "babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d"}, ] [package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] [[package]] name = "beautifulsoup4" @@ -205,6 +213,8 @@ version = "4.15.0" description = "Screen-scraping library" optional = true python-versions = ">=3.7.0" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9"}, {file = "beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7"}, @@ -227,6 +237,8 @@ version = "6.2.0" description = "An easy safelist-based HTML-sanitizing tool." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, @@ -245,6 +257,7 @@ version = "2026.5.20" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897"}, {file = "certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d"}, @@ -256,6 +269,7 @@ version = "2.0.0" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44"}, {file = "cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49"}, @@ -342,6 +356,7 @@ files = [ {file = "cffi-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9"}, {file = "cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529"}, ] +markers = {main = "extra == \"examples\" or extra == \"microphone\"", dev = "implementation_name == \"pypy\""} [package.dependencies] pycparser = {version = "*", markers = "implementation_name != \"PyPy\""} @@ -352,6 +367,7 @@ version = "3.4.7" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cdd68a1fb318e290a2077696b7eb7a21a49163c455979c639bf5a5dcdc46617d"}, {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e17b8d5d6a8c47c85e68ca8379def1303fd360c3e22093a807cd34a71cd082b8"}, @@ -490,10 +506,12 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "extra == \"examples\" and sys_platform == \"win32\"", dev = "sys_platform == \"win32\""} [[package]] name = "comm" @@ -501,6 +519,8 @@ version = "0.2.3" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417"}, {file = "comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971"}, @@ -515,6 +535,7 @@ version = "0.4.3" description = "Code coverage validation" optional = false python-versions = ">=3.8.1" +groups = ["dev"] files = [ {file = "covcheck-0.4.3-py3-none-any.whl", hash = "sha256:31cc069b779840b2d758f434bee3bc83b47a4ce8f3161bac32b88dc7fd82543a"}, {file = "covcheck-0.4.3.tar.gz", hash = "sha256:2c7bbb7e6a5f6992b63cae75a319fa8c883161401ac7035f577b5ec0f2ad0b90"}, @@ -532,6 +553,7 @@ version = "7.10.7" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "coverage-7.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fc04cc7a3db33664e0c2d10eb8990ff6b3536f6842c9590ae8da4c614b9ed05a"}, {file = "coverage-7.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e201e015644e207139f7e2351980feb7040e6f4b2c2978892f3e3789d1c125e5"}, @@ -643,7 +665,7 @@ files = [ tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "debugpy" @@ -651,6 +673,8 @@ version = "1.8.21" description = "An implementation of the Debug Adapter Protocol for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "debugpy-1.8.21-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:8eeab7b5462f683452c57c0126aaa5ec4e974ddb705f39ba87dff8818c8e08f9"}, {file = "debugpy-1.8.21-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:0fddfdc130ac6d8bfc0415b0409822fa901c8f310e5c945ac5653a0352532344"}, @@ -690,6 +714,8 @@ version = "5.3.1" description = "Decorators for Humans" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "decorator-5.3.1-py3-none-any.whl", hash = "sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c"}, {file = "decorator-5.3.1.tar.gz", hash = "sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82"}, @@ -701,6 +727,8 @@ version = "0.7.1" description = "XML bomb protection for Python stdlib modules" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, @@ -712,6 +740,7 @@ version = "0.4.1" description = "serialize all of Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d"}, {file = "dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa"}, @@ -727,6 +756,7 @@ version = "0.2.2" description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, @@ -741,10 +771,12 @@ version = "1.3.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, {file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"}, ] +markers = {dev = "python_version < \"3.11\""} [package.dependencies] typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} @@ -758,6 +790,7 @@ version = "2.1.2" description = "execnet: rapid multi-Python deployment" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec"}, {file = "execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd"}, @@ -772,13 +805,15 @@ version = "2.2.1" description = "Get the currently executing AST node of a frame, and other information" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017"}, {file = "executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4"}, ] [package.extras] -tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich ; python_version >= \"3.11\""] [[package]] name = "fastjsonschema" @@ -786,10 +821,12 @@ version = "2.21.2" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" +groups = ["main", "dev"] files = [ {file = "fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463"}, {file = "fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de"}, ] +markers = {main = "extra == \"examples\""} [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] @@ -800,6 +837,8 @@ version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" optional = true python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, @@ -811,6 +850,7 @@ version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, @@ -822,6 +862,7 @@ version = "1.0.9" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, @@ -843,6 +884,7 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -855,7 +897,7 @@ httpcore = "==1.*" idna = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -867,6 +909,7 @@ version = "3.18" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2"}, {file = "idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848"}, @@ -881,22 +924,24 @@ version = "8.7.1" description = "Read metadata from Python packages" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151"}, {file = "importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb"}, ] +markers = {main = "extra == \"examples\" and python_version < \"3.10\"", dev = "python_version < \"3.10\""} [package.dependencies] zipp = ">=3.20" [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=3.4)"] perf = ["ipython"] test = ["flufl.flake8", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] -type = ["mypy (<1.19)", "pytest-mypy (>=1.0.1)"] +type = ["mypy (<1.19) ; platform_python_implementation == \"PyPy\"", "pytest-mypy (>=1.0.1)"] [[package]] name = "iniconfig" @@ -904,6 +949,7 @@ version = "2.1.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, @@ -915,6 +961,8 @@ version = "6.31.0" description = "IPython Kernel for Jupyter" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "ipykernel-6.31.0-py3-none-any.whl", hash = "sha256:abe5386f6ced727a70e0eb0cf1da801fa7c5fa6ff82147747d5a0406cd8c94af"}, {file = "ipykernel-6.31.0.tar.gz", hash = "sha256:2372ce8bc1ff4f34e58cafed3a0feb2194b91fc7cad0fc72e79e47b45ee9e8f6"}, @@ -948,6 +996,8 @@ version = "8.18.1" description = "IPython: Productive Interactive Computing" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "ipython-8.18.1-py3-none-any.whl", hash = "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397"}, {file = "ipython-8.18.1.tar.gz", hash = "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27"}, @@ -985,6 +1035,8 @@ version = "8.1.8" description = "Jupyter interactive widgets" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e"}, {file = "ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668"}, @@ -1006,6 +1058,8 @@ version = "20.11.0" description = "Operations with ISO 8601 durations" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, @@ -1020,6 +1074,7 @@ version = "5.13.2" description = "A Python utility / library to sort Python imports." optional = false python-versions = ">=3.8.0" +groups = ["dev"] files = [ {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, @@ -1034,6 +1089,8 @@ version = "0.19.2" description = "An autocompletion tool for Python that can be used for text editors." optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, @@ -1053,6 +1110,8 @@ version = "3.1.6" description = "A very fast and expressive template engine." optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, @@ -1070,6 +1129,8 @@ version = "0.14.0" description = "A Python implementation of the JSON5 data format." optional = true python-versions = ">=3.8.0" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "json5-0.14.0-py3-none-any.whl", hash = "sha256:56cf861bab076b1178eb8c92e1311d273a9b9acea2ccc82c276abf839ebaef3a"}, {file = "json5-0.14.0.tar.gz", hash = "sha256:b3f492fad9f6cdbced8b7d40b28b9b1c9701c5f561bef0d33b81c2ff433fefcb"}, @@ -1081,6 +1142,8 @@ version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, @@ -1092,10 +1155,12 @@ version = "4.25.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63"}, {file = "jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] attrs = ">=22.2.0" @@ -1122,10 +1187,12 @@ version = "2025.9.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe"}, {file = "jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] referencing = ">=0.31.0" @@ -1136,6 +1203,8 @@ version = "1.1.1" description = "Jupyter metapackage. Install all the Jupyter components in one go." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, @@ -1155,10 +1224,12 @@ version = "8.6.3" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} @@ -1170,7 +1241,7 @@ traitlets = ">=5.3" [package.extras] docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko ; sys_platform == \"win32\"", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" @@ -1178,6 +1249,8 @@ version = "6.6.3" description = "Jupyter terminal console" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, @@ -1202,10 +1275,12 @@ version = "5.8.1" description = "Jupyter core package. A base package on which Jupyter projects rely." optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0"}, {file = "jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] platformdirs = ">=2.5" @@ -1222,6 +1297,8 @@ version = "0.12.1" description = "Jupyter Event System library" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter_events-0.12.1-py3-none-any.whl", hash = "sha256:c366585253f537a627da52fa7ca7410c5b5301fe893f511e7b077c2d93ec8bcf"}, {file = "jupyter_events-0.12.1.tar.gz", hash = "sha256:faff25f77218335752f35f23c5fe6e4a392a7bd99a5939ccb9b8fbf594636cf3"}, @@ -1248,6 +1325,8 @@ version = "2.3.1" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter_lsp-2.3.1-py3-none-any.whl", hash = "sha256:71b954d834e85ff3096400554f2eefaf7fe37053036f9a782b0f7c5e42dadb81"}, {file = "jupyter_lsp-2.3.1.tar.gz", hash = "sha256:fdf8a4aa7d85813976d6e29e95e6a2c8f752701f926f2715305249a3829805a6"}, @@ -1263,6 +1342,8 @@ version = "2.18.2" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter_server-2.18.2-py3-none-any.whl", hash = "sha256:fa5e46539ded65791838035a2b6001f13e54d5f64b8b3752eb1e91fdd641a5b8"}, {file = "jupyter_server-2.18.2.tar.gz", hash = "sha256:06b4f40d8a7a00bb39d5216859c81374a0e7cfefe6d8a5a7facc5a5c37c679a7"}, @@ -1299,6 +1380,8 @@ version = "0.5.4" description = "A Jupyter Server Extension Providing Terminals." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyter_server_terminals-0.5.4-py3-none-any.whl", hash = "sha256:55be353fc74a80bc7f3b20e6be50a55a61cd525626f578dcb66a5708e2007d14"}, {file = "jupyter_server_terminals-0.5.4.tar.gz", hash = "sha256:bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5"}, @@ -1318,6 +1401,8 @@ version = "4.5.8" description = "JupyterLab computational environment" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyterlab-4.5.8-py3-none-any.whl", hash = "sha256:7d514c856d0d607601ec7692374da4f26e2aaf3b6e7cd363136b422a50588d6c"}, {file = "jupyterlab-4.5.8.tar.gz", hash = "sha256:af54d7242cc689a1e6c3ad213cc9b6d9781787d9ec67c52ec9a8f4707088cadd"}, @@ -1353,6 +1438,8 @@ version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, @@ -1364,6 +1451,8 @@ version = "2.28.0" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968"}, {file = "jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c"}, @@ -1390,6 +1479,8 @@ version = "3.0.16" description = "Jupyter interactive widgets for JupyterLab" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8"}, {file = "jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0"}, @@ -1401,6 +1492,8 @@ version = "1.3.1" description = "a modern parsing library" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12"}, {file = "lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905"}, @@ -1418,6 +1511,7 @@ version = "1.12.0" description = "A fast and thorough lazy object proxy." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "lazy_object_proxy-1.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:61d5e3310a4aa5792c2b599a7a78ccf8687292c8eb09cf187cca8f09cf6a7519"}, {file = "lazy_object_proxy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1ca33565f698ac1aece152a10f432415d1a2aa9a42dfe23e5ba2bc255ab91f6"}, @@ -1471,6 +1565,8 @@ version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, @@ -1569,6 +1665,8 @@ version = "0.2.2" description = "Inline Matplotlib backend for Jupyter" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6"}, {file = "matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79"}, @@ -1586,6 +1684,7 @@ version = "0.7.0" description = "McCabe checker, plugin for flake8" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, @@ -1597,6 +1696,8 @@ version = "3.2.1" description = "A sane and fast Markdown parser with useful plugins and renderers" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "mistune-3.2.1-py3-none-any.whl", hash = "sha256:78cdb0ba5e938053ccf63651b352508d2efa9411dc8810bfb05f2dc5140c0048"}, {file = "mistune-3.2.1.tar.gz", hash = "sha256:7c8e5501d38bac1582e067e46c8343f17d57ea1aaa735823f3aba1fd59c88a28"}, @@ -1611,6 +1712,7 @@ version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, @@ -1664,6 +1766,7 @@ version = "1.1.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, @@ -1675,10 +1778,12 @@ version = "0.10.2" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false python-versions = ">=3.9.0" +groups = ["main", "dev"] files = [ {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] jupyter-client = ">=6.1.12" @@ -1697,6 +1802,8 @@ version = "7.17.1" description = "Convert Jupyter Notebooks (.ipynb files) to other formats." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "nbconvert-7.17.1-py3-none-any.whl", hash = "sha256:aa85c087b435e7bf1ffd03319f658e285f2b89eccab33bc1ba7025495ab3e7c8"}, {file = "nbconvert-7.17.1.tar.gz", hash = "sha256:34d0d0a7e73ce3cbab6c5aae8f4f468797280b01fd8bd2ca746da8569eddd7d2"}, @@ -1734,10 +1841,12 @@ version = "5.10.4" description = "The Jupyter Notebook format" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] fastjsonschema = ">=2.15" @@ -1755,6 +1864,8 @@ version = "1.6.0" description = "Patch asyncio to allow nested event loops" optional = true python-versions = ">=3.5" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, @@ -1766,6 +1877,8 @@ version = "7.5.7" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "notebook-7.5.7-py3-none-any.whl", hash = "sha256:1f95f79d117e47d20b5555b5c85a397d2cfecf136978aaab767cf0314b09165b"}, {file = "notebook-7.5.7.tar.gz", hash = "sha256:d6d59288a25303b25e1dcb71e9b017ec3a785f7d92f38b9bc288ca1970d5b0a8"}, @@ -1781,7 +1894,7 @@ tornado = ">=6.2.0" [package.extras] dev = ["hatch", "pre-commit"] docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.28.0,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] +test = ["importlib-resources (>=5.0) ; python_version < \"3.10\"", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.28.0,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] [[package]] name = "notebook-shim" @@ -1789,6 +1902,8 @@ version = "0.2.4" description = "A shim layer for notebook traits and config" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, @@ -1806,6 +1921,8 @@ version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"examples\" and python_version <= \"3.11\"" files = [ {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, @@ -1817,10 +1934,12 @@ version = "26.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e"}, {file = "packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661"}, ] +markers = {main = "extra == \"examples\""} [[package]] name = "pandocfilters" @@ -1828,6 +1947,8 @@ version = "1.5.1" description = "Utilities for writing pandoc filters in python" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, @@ -1839,6 +1960,8 @@ version = "0.8.7" description = "A Python Parser" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c"}, {file = "parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1"}, @@ -1854,6 +1977,8 @@ version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\" and sys_platform != \"win32\"" files = [ {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, @@ -1868,10 +1993,12 @@ version = "4.4.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85"}, {file = "platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf"}, ] +markers = {main = "extra == \"examples\""} [package.extras] docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] @@ -1884,6 +2011,7 @@ version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, @@ -1899,6 +2027,8 @@ version = "0.25.0" description = "Python client for the Prometheus monitoring system." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "prometheus_client-0.25.0-py3-none-any.whl", hash = "sha256:d5aec89e349a6ec230805d0df882f3807f74fd6c1a2fa86864e3c2279059fed1"}, {file = "prometheus_client-0.25.0.tar.gz", hash = "sha256:5e373b75c31afb3c86f1a52fa1ad470c9aace18082d39ec0d2f918d11cc9ba28"}, @@ -1915,6 +2045,8 @@ version = "3.0.52" description = "Library for building powerful interactive command lines in Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955"}, {file = "prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855"}, @@ -1929,6 +2061,8 @@ version = "7.2.2" description = "Cross-platform lib for process and system monitoring." optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b"}, {file = "psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea"}, @@ -1954,8 +2088,8 @@ files = [ ] [package.extras] -dev = ["abi3audit", "black", "check-manifest", "colorama", "coverage", "packaging", "psleak", "pylint", "pyperf", "pypinfo", "pyreadline3", "pytest", "pytest-cov", "pytest-instafail", "pytest-xdist", "pywin32", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel", "wheel", "wmi"] -test = ["psleak", "pytest", "pytest-instafail", "pytest-xdist", "pywin32", "setuptools", "wheel", "wmi"] +dev = ["abi3audit", "black", "check-manifest", "colorama ; os_name == \"nt\"", "coverage", "packaging", "psleak", "pylint", "pyperf", "pypinfo", "pyreadline3 ; os_name == \"nt\"", "pytest", "pytest-cov", "pytest-instafail", "pytest-xdist", "pywin32 ; os_name == \"nt\" and implementation_name != \"pypy\"", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel", "wheel ; os_name == \"nt\" and implementation_name != \"pypy\"", "wmi ; os_name == \"nt\" and implementation_name != \"pypy\""] +test = ["psleak", "pytest", "pytest-instafail", "pytest-xdist", "pywin32 ; os_name == \"nt\" and implementation_name != \"pypy\"", "setuptools", "wheel ; os_name == \"nt\" and implementation_name != \"pypy\"", "wmi ; os_name == \"nt\" and implementation_name != \"pypy\""] [[package]] name = "ptyprocess" @@ -1963,6 +2097,8 @@ version = "0.7.0" description = "Run a subprocess in a pseudo terminal" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\" and (os_name != \"nt\" or sys_platform != \"win32\")" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, @@ -1974,6 +2110,8 @@ version = "0.2.3" description = "Safely evaluate AST nodes without side effects" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, @@ -1988,10 +2126,12 @@ version = "2.23" description = "C parser in Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934"}, {file = "pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2"}, ] +markers = {main = "implementation_name != \"PyPy\" and (extra == \"examples\" or extra == \"microphone\")", dev = "implementation_name == \"pypy\""} [[package]] name = "pydantic" @@ -1999,6 +2139,7 @@ version = "2.13.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba"}, {file = "pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6"}, @@ -2012,7 +2153,7 @@ typing-inspection = ">=0.4.2" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-core" @@ -2020,6 +2161,7 @@ version = "2.46.4" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4"}, {file = "pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5"}, @@ -2152,6 +2294,7 @@ version = "6.3.0" description = "Python docstring style checker" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, @@ -2161,7 +2304,7 @@ files = [ snowballstemmer = ">=2.2.0" [package.extras] -toml = ["tomli (>=1.2.3)"] +toml = ["tomli (>=1.2.3) ; python_version < \"3.11\""] [[package]] name = "pydub-stubs" @@ -2169,6 +2312,7 @@ version = "0.25.1.6" description = "Stub-only package containing type information for pydub" optional = false python-versions = "<4.0,>=3.9" +groups = ["dev"] files = [ {file = "pydub_stubs-0.25.1.6-py3-none-any.whl", hash = "sha256:235be0707485c48fe3d6537c751171bfeca21480c914e7e7bc9db2d6ed65f8ae"}, {file = "pydub_stubs-0.25.1.6.tar.gz", hash = "sha256:38e9a1e490b11e9fdd3c5a0b01667e2d959c817aadb56555b124c6c8be028ff5"}, @@ -2183,6 +2327,8 @@ version = "2.20.0" description = "Pygments is a syntax highlighting package written in Python." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, @@ -2197,6 +2343,7 @@ version = "2.17.7" description = "python code static checker" optional = false python-versions = ">=3.7.2" +groups = ["dev"] files = [ {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, @@ -2226,6 +2373,7 @@ version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -2248,6 +2396,7 @@ version = "0.23.8" description = "Pytest support for asyncio" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"}, {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"}, @@ -2266,6 +2415,7 @@ version = "4.1.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, @@ -2284,6 +2434,7 @@ version = "3.8.0" description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88"}, {file = "pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1"}, @@ -2304,6 +2455,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -2318,6 +2470,8 @@ version = "4.0.0" description = "JSON Log Formatter for the Python Logging Package" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2"}, {file = "python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f"}, @@ -2327,7 +2481,7 @@ files = [ typing_extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec ; implementation_name != \"pypy\"", "mypy", "orjson ; implementation_name != \"pypy\"", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] [[package]] name = "pywin32" @@ -2335,6 +2489,7 @@ version = "312" description = "Python for Windows Extensions" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "pywin32-312-cp310-cp310-win32.whl", hash = "sha256:772235332b5d1024c696f11cea1ae4be7930f0a8b894bb43db14e3f435f1ff7e"}, {file = "pywin32-312-cp310-cp310-win_amd64.whl", hash = "sha256:5dbc35d2b5320dc07f25fa31269cfb767471002b17de5eb067d03da68c7cb2db"}, @@ -2358,6 +2513,7 @@ files = [ {file = "pywin32-312-cp39-cp39-win_amd64.whl", hash = "sha256:dc90147579a905b8635e1b0ec6514967dcb07e6e0d9c42f1477feef14cac23bb"}, {file = "pywin32-312-cp39-cp39-win_arm64.whl", hash = "sha256:02ebca0f0242b75292e218065004310d6a477407c09fa449bfe4f6022bc0c0fc"}, ] +markers = {main = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\" and extra == \"examples\"", dev = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} [[package]] name = "pywinpty" @@ -2365,6 +2521,8 @@ version = "3.0.3" description = "Pseudo terminal support for Windows from Python." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\" and os_name == \"nt\"" files = [ {file = "pywinpty-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:ff05f12d775b142b11c6fe085129bdd759b61cf7d41da6c745e78e3a1ef5bf40"}, {file = "pywinpty-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:340ccacb4d74278a631923794ccd758471cfc8eeeeee4610b280420a17ad1e82"}, @@ -2390,6 +2548,8 @@ version = "6.0.3" description = "YAML parser and emitter for Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, @@ -2472,6 +2632,7 @@ version = "27.1.0" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4"}, {file = "pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556"}, @@ -2566,6 +2727,7 @@ files = [ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff8d114d14ac671d88c89b9224c63d6c4e5a613fe8acd5594ce53d752a3aafe9"}, {file = "pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} @@ -2576,10 +2738,12 @@ version = "0.36.2" description = "JSON Referencing + Python" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] +markers = {main = "extra == \"examples\""} [package.dependencies] attrs = ">=22.2.0" @@ -2592,6 +2756,7 @@ version = "2.32.5" description = "Python HTTP for Humans." optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, @@ -2613,6 +2778,8 @@ version = "0.1.4" description = "A pure python RFC3339 validator" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, @@ -2627,6 +2794,8 @@ version = "0.1.1" description = "Pure python rfc3986 validator" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, @@ -2638,6 +2807,8 @@ version = "1.1.0" description = "Helper functions to syntactically validate strings according to RFC 3987." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f"}, {file = "rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d"}, @@ -2655,6 +2826,7 @@ version = "0.27.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "rpds_py-0.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:68afeec26d42ab3b47e541b272166a0b4400313946871cba3ed3a4fc0cab1cef"}, {file = "rpds_py-0.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74e5b2f7bb6fa38b1b10546d27acbacf2a022a8b5543efb06cfebc72a59c85be"}, @@ -2812,6 +2984,7 @@ files = [ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4fc9b7fe29478824361ead6e14e4f5aed570d477e06088826537e202d25fe859"}, {file = "rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8"}, ] +markers = {main = "extra == \"examples\""} [[package]] name = "ruff" @@ -2819,6 +2992,7 @@ version = "0.11.5" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ruff-0.11.5-py3-none-linux_armv6l.whl", hash = "sha256:2561294e108eb648e50f210671cc56aee590fb6167b594144401532138c66c7b"}, {file = "ruff-0.11.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac12884b9e005c12d0bd121f56ccf8033e1614f736f766c118ad60780882a077"}, @@ -2846,6 +3020,7 @@ version = "2.13.0" description = "Python helper for Semantic Versioning (http://semver.org/)" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev"] files = [ {file = "semver-2.13.0-py2.py3-none-any.whl", hash = "sha256:ced8b23dceb22134307c1b8abfa523da14198793d9787ac838e70e29e77458d4"}, {file = "semver-2.13.0.tar.gz", hash = "sha256:fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f"}, @@ -2857,13 +3032,15 @@ version = "2.1.0" description = "Send file to trash natively under Mac OS X, Windows and Linux" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "send2trash-2.1.0-py3-none-any.whl", hash = "sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c"}, {file = "send2trash-2.1.0.tar.gz", hash = "sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459"}, ] [package.extras] -nativelib = ["pyobjc (>=9.0)", "pywin32 (>=305)"] +nativelib = ["pyobjc (>=9.0) ; sys_platform == \"darwin\"", "pywin32 (>=305) ; sys_platform == \"win32\""] test = ["pytest (>=8)"] [[package]] @@ -2872,19 +3049,21 @@ version = "82.0.1" description = "Most extensible Python build backend with support for C/C++ extension modules" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb"}, {file = "setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.13.0)"] -core = ["importlib_metadata (>=6)", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.13.0) ; sys_platform != \"cygwin\""] +core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.18.*)", "pytest-mypy"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.18.*)", "pytest-mypy"] [[package]] name = "six" @@ -2892,6 +3071,7 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -2903,6 +3083,7 @@ version = "3.1.1" description = "This package provides 36 stemmers for 34 languages generated from Snowball algorithms." optional = false python-versions = ">=3.3" +groups = ["dev"] files = [ {file = "snowballstemmer-3.1.1-py3-none-any.whl", hash = "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752"}, {file = "snowballstemmer-3.1.1.tar.gz", hash = "sha256:e07bbc54a0d798fe6010a12398422e62a8bfbba95c394fd0956ef58cb4d3e260"}, @@ -2914,6 +3095,8 @@ version = "0.4.7" description = "Play and Record Sound with Python" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"microphone\"" files = [ {file = "sounddevice-0.4.7-py3-none-any.whl", hash = "sha256:1c3f18bfa4d9a257f5715f2ab83f2c0eb412a09f3e6a9fa73720886ca88f6bc7"}, {file = "sounddevice-0.4.7-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl", hash = "sha256:d6ddfd341ad7412b14ca001f2c4dbf5fa2503bdc9eb15ad2c3105f6c260b698a"}, @@ -2934,6 +3117,8 @@ version = "2.8.4" description = "A modern CSS selector implementation for Beautiful Soup." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65"}, {file = "soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e"}, @@ -2945,6 +3130,8 @@ version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, @@ -2964,6 +3151,8 @@ version = "0.18.1" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, @@ -2985,6 +3174,7 @@ version = "0.4.2" description = "A unit testing framework for Jupyter Notebooks" optional = false python-versions = ">=3.6" +groups = ["dev"] files = [ {file = "testbook-0.4.2-py3-none-any.whl", hash = "sha256:21e03818017d1315607e117c101cf4b5f5b6dcd5ead77eab65ac9508a281f644"}, ] @@ -2994,9 +3184,9 @@ nbclient = ">=0.4.0" nbformat = ">=5.0.4" [package.extras] -dev = ["black", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "ipykernel", "ipython", "ipywidgets", "pandas", "pip (>=18.1)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] +dev = ["black ; python_version >= \"3.6\"", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "ipykernel", "ipython", "ipywidgets", "pandas", "pip (>=18.1)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] sphinx = ["Sphinx (>=1.7,<3.0)", "myst-parser (==0.9.1)", "sphinx-book-theme (==0.0.35)"] -test = ["black", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "ipykernel", "ipython", "ipywidgets", "pandas", "pip (>=18.1)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] +test = ["black ; python_version >= \"3.6\"", "bumpversion", "check-manifest", "codecov", "coverage", "flake8", "ipykernel", "ipython", "ipywidgets", "pandas", "pip (>=18.1)", "pytest (>=4.1)", "pytest-cov (>=2.6.1)", "setuptools (>=38.6.0)", "tox", "twine (>=1.11.0)", "wheel (>=0.31.0)", "xmltodict"] [[package]] name = "tinycss2" @@ -3004,6 +3194,8 @@ version = "1.4.0" description = "A tiny CSS parser" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, @@ -3022,6 +3214,7 @@ version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["dev"] files = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, @@ -3033,6 +3226,7 @@ version = "2.4.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30"}, {file = "tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a"}, @@ -3082,6 +3276,7 @@ files = [ {file = "tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe"}, {file = "tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f"}, ] +markers = {main = "python_version < \"3.11\" and extra == \"examples\"", dev = "python_version < \"3.11\""} [[package]] name = "tomlkit" @@ -3089,6 +3284,7 @@ version = "0.15.0" description = "Style preserving TOML library" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "tomlkit-0.15.0-py3-none-any.whl", hash = "sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738"}, {file = "tomlkit-0.15.0.tar.gz", hash = "sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3"}, @@ -3100,6 +3296,7 @@ version = "6.5.7" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "tornado-6.5.7-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:148b2eb15c2c765a50796172c1e499649b35f30d2e3c3d3e15913cfa56bfb163"}, {file = "tornado-6.5.7-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9da38de27f1da3b78a966f0dae12b5a1ea9afe72ca805d84ff06508272ddf100"}, @@ -3112,6 +3309,7 @@ files = [ {file = "tornado-6.5.7-cp39-abi3-win_arm64.whl", hash = "sha256:ff934fce95643af5f11efdae618eaa73d469dc588641e5c8d19295a0c65c4796"}, {file = "tornado-6.5.7.tar.gz", hash = "sha256:66c513a76cda70d53907bc27cf1447557699c2e95aa48ba27a442ff61c3ddfc2"}, ] +markers = {main = "extra == \"examples\""} [[package]] name = "traitlets" @@ -3119,32 +3317,24 @@ version = "5.15.1" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "traitlets-5.15.1-py3-none-any.whl", hash = "sha256:770a53705f84b81ac107e83a1b3328ff2dae16094d8fc3cfc004e4b22dfd8e92"}, {file = "traitlets-5.15.1.tar.gz", hash = "sha256:7b1c07854fe25acb39e009bae49f11b79ff6cbb2f27999104e9110e7a6b53722"}, ] +markers = {main = "extra == \"examples\""} [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.17.0,<1.19)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] -[[package]] -name = "types-aiofiles" -version = "24.1.0.20250822" -description = "Typing stubs for aiofiles" -optional = false -python-versions = ">=3.9" -files = [ - {file = "types_aiofiles-24.1.0.20250822-py3-none-any.whl", hash = "sha256:0ec8f8909e1a85a5a79aed0573af7901f53120dd2a29771dd0b3ef48e12328b0"}, - {file = "types_aiofiles-24.1.0.20250822.tar.gz", hash = "sha256:9ab90d8e0c307fe97a7cf09338301e3f01a163e39f3b529ace82466355c84a7b"}, -] - [[package]] name = "types-python-dateutil" version = "2.9.0.20260124" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "types_python_dateutil-2.9.0.20260124-py3-none-any.whl", hash = "sha256:f802977ae08bf2260142e7ca1ab9d4403772a254409f7bbdf652229997124951"}, {file = "types_python_dateutil-2.9.0.20260124.tar.gz", hash = "sha256:7d2db9f860820c30e5b8152bfe78dbdf795f7d1c6176057424e8b3fdd1f581af"}, @@ -3156,6 +3346,7 @@ version = "2.32.4.20260107" description = "Typing stubs for requests" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "types_requests-2.32.4.20260107-py3-none-any.whl", hash = "sha256:b703fe72f8ce5b31ef031264fe9395cac8f46a04661a79f7ed31a80fb308730d"}, {file = "types_requests-2.32.4.20260107.tar.gz", hash = "sha256:018a11ac158f801bfa84857ddec1650750e393df8a004a8a9ae2a9bec6fcb24f"}, @@ -3170,6 +3361,7 @@ version = "4.15.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, @@ -3181,6 +3373,7 @@ version = "0.4.2" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7"}, {file = "typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"}, @@ -3195,6 +3388,8 @@ version = "2026.2" description = "Provider of IANA time zone data" optional = true python-versions = ">=2" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7"}, {file = "tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10"}, @@ -3206,6 +3401,8 @@ version = "1.3.0" description = "RFC 6570 URI Template Processor" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, @@ -3220,16 +3417,17 @@ version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.2.0)", "brotlicffi (>=1.2.0.0)"] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["backports-zstd (>=1.0.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "wcwidth" @@ -3237,6 +3435,8 @@ version = "0.8.1" description = "Measures the displayed width of unicode strings in a terminal" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "wcwidth-0.8.1-py3-none-any.whl", hash = "sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8"}, {file = "wcwidth-0.8.1.tar.gz", hash = "sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9"}, @@ -3248,6 +3448,8 @@ version = "24.11.1" description = "A library for working with the color formats defined by HTML and CSS." optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, @@ -3259,6 +3461,8 @@ version = "0.5.1" description = "Character encoding aliases for legacy web content" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, @@ -3270,6 +3474,8 @@ version = "1.9.0" description = "WebSocket client for Python with low level API options" optional = true python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef"}, {file = "websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98"}, @@ -3286,6 +3492,7 @@ version = "15.0.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b"}, {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205"}, @@ -3364,6 +3571,8 @@ version = "4.0.15" description = "Jupyter interactive widgets for Jupyter Notebook" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"examples\"" files = [ {file = "widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366"}, {file = "widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9"}, @@ -3375,6 +3584,7 @@ version = "1.17.3" description = "Module for decorators, wrappers and monkey patching." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04"}, {file = "wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2"}, @@ -3465,13 +3675,15 @@ version = "3.23.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.9" +groups = ["main", "dev"] files = [ {file = "zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc"}, {file = "zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110"}, ] +markers = {main = "extra == \"examples\" and python_version < \"3.10\"", dev = "python_version < \"3.10\""} [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] @@ -3483,6 +3695,6 @@ examples = ["jupyter"] microphone = ["sounddevice"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = ">=3.9,<4" -content-hash = "0ec4eef60479d73e9ed22b1b6576d7e8745363c006bbe425285f6cd802f47e3a" +content-hash = "9c095f82d42cb1d1bb89c2a9de82740c987b7ea74cfca88ab03e0598481fc09c" diff --git a/pyproject.toml b/pyproject.toml index 8d8eca27..f0fe992c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,6 @@ Repository = 'https://github.com/HumeAI/hume-python-sdk' [tool.poetry.dependencies] python = ">=3.9,<4" -aiofiles = "^24.1.0" eval-type-backport = "^0.2.0" exceptiongroup = "^1.3.0" httpx = ">=0.21.2" @@ -90,7 +89,6 @@ pytest-cov = "^4.0.0" ruff = "==0.11.5" semver = "^2.13.0" testbook = "^0.4.2" -types-aiofiles = "^24.1.0.20240626" [tool.pytest.ini_options] testpaths = [ "tests" ] diff --git a/requirements.txt b/requirements.txt index 43eb260e..05fa0566 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -aiofiles==24.1.0 eval-type-backport==0.2.0 exceptiongroup==1.3.0 httpx>=0.21.2