Skip to content

fix: add missing properties to Transcript class #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 31, 2023
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
30 changes: 14 additions & 16 deletions assemblyai/__init__.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
from .transcriber import Transcriber, Transcript, TranscriptGroup
from .client import Client
from .lemur import Lemur

from .transcriber import Transcriber, Transcript, TranscriptGroup
from .types import (
AssemblyAIError,
Settings,
TranscriptError,
TranscriptStatus,
TranscriptionConfig,
Utterance,
UtteranceWord,
LanguageCode,
Paragraph,
Sentence,
LemurModel,
LemurError,
LemurModel,
LemurQuestion,
LemurQuestionResult,
SummarizationModel,
Paragraph,
PIIRedactionPolicy,
PIISubstitutionPolicy,
RawTranscriptionConfig,
Sentence,
Settings,
SummarizationModel,
SummarizationType,
Timestamp,
TranscriptError,
TranscriptionConfig,
TranscriptStatus,
Utterance,
UtteranceWord,
Word,
WordBoost,
WordSearchMatch,
Word,
Timestamp,
PIIRedactionPolicy,
)


settings = Settings()
"""Global settings object that applies to all classes that use the `Client` class."""

Expand Down
6 changes: 3 additions & 3 deletions assemblyai/api.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import Optional, List, BinaryIO

from . import types
from typing import BinaryIO, List, Optional

import httpx

from . import types


def _get_error_message(response: httpx.Response) -> str:
"""
Expand Down
6 changes: 3 additions & 3 deletions assemblyai/client.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import threading
from typing import Optional, ClassVar
from typing import ClassVar, Optional

import httpx
from typing_extensions import Self

from . import types

import httpx


class Client:
_default: ClassVar[Optional["Client"]] = None
Expand Down
5 changes: 3 additions & 2 deletions assemblyai/lemur.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from typing import Optional, List, Union, Dict, Any
from typing import Any, Dict, List, Optional, Union

from . import api, types
from . import api
from . import client as _client
from . import types


class _LemurImpl:
Expand Down
48 changes: 45 additions & 3 deletions assemblyai/transcriber.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
from __future__ import annotations

import concurrent.futures
import os
import time
from typing import Dict, Iterator, List, Optional, Union
from urllib.parse import urlparse
import concurrent.futures
from typing import Dict, Iterator, Optional, List, Union

from typing_extensions import Self

from . import lemur, types, api
from . import api
from . import client as _client
from . import lemur, types


class _TranscriptImpl:
Expand Down Expand Up @@ -213,6 +216,45 @@ def error(self) -> Optional[str]:

return self._impl.transcript.error

@property
def words(self) -> Optional[List[types.Word]]:
"The list of words in the transcript"

return self._impl.transcript.words

@property
def utterances(self) -> Optional[List[types.Utterance]]:
"""
When `dual_channel` or `speaker_labels` is enabled,
a list of utterances in the transcript.
"""

return self._impl.transcript.utterances

@property
def confidence(self) -> Optional[float]:
"The confidence our model has in the transcribed text, between 0 and 1"

return self._impl.transcript.confidence

@property
def audio_duration(self) -> Optional[float]:
"The duration of the audio in seconds"

return self._impl.transcript.audio_duration

@property
def webhook_status_code(self) -> Optional[int]:
"The status code we received from your server when delivering your webhook"

return self._impl.transcript.webhook_status_code

@property
def webhook_auth(self) -> Optional[bool]:
"Whether the webhook was sent with an HTTP authentication header"

return self._impl.transcript.webhook_auth

@property
def lemur(self) -> lemur.Lemur:
"""
Expand Down
9 changes: 4 additions & 5 deletions assemblyai/types.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
from enum import Enum

from typing import Optional, Dict, Any, List, Tuple, Union, Sequence
from typing_extensions import Self
from typing import Any, Dict, List, Optional, Sequence, Tuple, Union

from pydantic import BaseModel, BaseSettings, Extra
from typing_extensions import Self


class AssemblyAIError(Exception):
Expand Down Expand Up @@ -1271,7 +1270,7 @@ class BaseTranscript(BaseModel):
# iab_categories: bool = False
# "Enable Topic Detection."

custom_spelling: Optional[List[dict]]
custom_spelling: Optional[List[Dict[str, str]]]
"Customize how words are spelled and formatted using to and from values"

disfluencies: Optional[bool]
Expand Down Expand Up @@ -1347,7 +1346,7 @@ class TranscriptResponse(BaseTranscript):
audio_duration: Optional[float]
"The duration of your media file, in seconds"

webhook_status_code: Optional[str]
webhook_status_code: Optional[int]
"The status code we received from your server when delivering your webhook"
webhook_auth: Optional[bool]
"Whether the webhook was sent with an HTTP authentication header"
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from pathlib import Path

from setuptools import setup, find_packages
from setuptools import find_packages, setup

long_description = (Path(__file__).parent / "README.md").read_text()


setup(
name="assemblyai",
version="0.4.0",
version="0.4.1",
description="AssemblyAI Python SDK",
author="AssemblyAI",
author_email="[email protected]",
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"""

from functools import partial
from typing import Any, Dict, Callable
from typing import Any, Callable, Dict

import factory
import factory.base
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_config.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import inspect

import assemblyai as aai

import pytest

import assemblyai as aai


def test_configuration_are_none_by_default():
"""
Expand Down
8 changes: 3 additions & 5 deletions tests/unit/test_lemur.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import httpx
from pytest_httpx import HTTPXMock
import uuid

import httpx
import pytest
from pytest_httpx import HTTPXMock

import assemblyai as aai
from tests.unit import factories

import pytest


aai.settings.api_key = "test"


Expand Down
9 changes: 4 additions & 5 deletions tests/unit/test_transcriber.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import httpx
from pytest_httpx import HTTPXMock
from unittest.mock import patch, mock_open
import os
import copy
import os
from unittest.mock import mock_open, patch

import httpx
import pytest

from pytest_httpx import HTTPXMock

import assemblyai as aai
from tests.unit import factories
Expand Down
8 changes: 3 additions & 5 deletions tests/unit/test_transcript.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
from typing import Any, Dict, List

import httpx
import pytest
from faker import Faker
from pytest_httpx import HTTPXMock


import assemblyai as aai
from tests.unit import factories

import pytest
from faker import Faker


aai.settings.api_key = "test"


Expand Down