Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gradient-labs"
version = "0.12.0"
version = "0.12.1"
description = "Python bindings for the Gradient Labs API"
readme = "README.md"
requires-python = ">=3.9,<4.0"
Expand Down
8 changes: 8 additions & 0 deletions src/gradient_labs/_back_office_task_delete.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from ._http_client import HttpClient


def delete_back_office_task(*, client: HttpClient, task_id: str) -> None:
_ = client.delete(
path=f"back-office-tasks/{task_id}",
body=None,
)
8 changes: 8 additions & 0 deletions src/gradient_labs/_conversation_delete.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from ._http_client import HttpClient


def delete_conversation(*, client: HttpClient, conversation_id: str) -> None:
_ = client.delete(
path=f"conversations/{conversation_id}",
body=None,
)
24 changes: 24 additions & 0 deletions src/gradient_labs/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from ._conversation_rate import rate_conversation, RatingParams
from ._conversation_resume import resume_conversation, ResumeParams
from ._conversation_read import read_conversation, ReadParams
from ._conversation_delete import delete_conversation
from ._conversation_start import (
start_conversation,
StartConversationParams,
Expand Down Expand Up @@ -123,6 +124,7 @@
BackOfficeTaskCreateAttachment as BackOfficeTaskCreateAttachment,
)
from ._back_office_task_read import read_back_office_task
from ._back_office_task_delete import delete_back_office_task

from .terminology_substitution import TerminologySubstitution
from ._terminology_substitution_create import (
Expand Down Expand Up @@ -317,6 +319,17 @@ def read_conversation(
params=params,
)

def delete_conversation(self, *, conversation_id: str) -> None:
"""delete_conversation deletes a conversation and its associated messages, events and other data.

The deletion happens asynchronously and may not take effect immediately.

Note: requires a `Management` API key."""
delete_conversation(
client=self.http_client,
conversation_id=conversation_id,
)

def start_conversation(
self,
*,
Expand Down Expand Up @@ -869,6 +882,17 @@ def read_back_office_task(self, *, task_id: str) -> BackOfficeTask:
task_id=task_id,
)

def delete_back_office_task(self, *, task_id: str) -> None:
"""delete_back_office_task deletes a back-office task and its associated input data, attachments, decisions and events.

The deletion happens asynchronously and may not take effect immediately.

Note: requires a `Management` API key."""
delete_back_office_task(
client=self.http_client,
task_id=task_id,
)

# ==================== Terminology Substitution Operations ====================

def create_terminology_substitution(
Expand Down
23 changes: 23 additions & 0 deletions tests/test_back_office_task_delete.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from unittest.mock import MagicMock

from gradient_labs import Client

TASK_ID = "task-123"


def _client():
client = Client(api_key="test-key")
delete = MagicMock(return_value=None)
client.http_client.delete = delete
return client, delete


def test_delete_back_office_task():
client, delete = _client()

result = client.delete_back_office_task(task_id=TASK_ID)

_, kwargs = delete.call_args
assert kwargs["path"] == f"back-office-tasks/{TASK_ID}"
assert kwargs["body"] is None
assert result is None
23 changes: 23 additions & 0 deletions tests/test_conversation_delete.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from unittest.mock import MagicMock

from gradient_labs import Client

CONVERSATION_ID = "conv_01ham6bzcdeja9xzqhjf6daq30"


def _client():
client = Client(api_key="test-key")
delete = MagicMock(return_value=None)
client.http_client.delete = delete
return client, delete


def test_delete_conversation():
client, delete = _client()

result = client.delete_conversation(conversation_id=CONVERSATION_ID)

_, kwargs = delete.call_args
assert kwargs["path"] == f"conversations/{CONVERSATION_ID}"
assert kwargs["body"] is None
assert result is None
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading