Skip to content
Merged
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
8 changes: 8 additions & 0 deletions deepgram/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Union
import re
from ._types import Options
from .keys import Keys
from .transcription import Transcription
Expand All @@ -12,6 +13,11 @@
from .errors import DeepgramSetupError, DeepgramApiError


def api_key_is_valid(api_key: str) -> bool:
pattern = r"^[a-f0-9]{40}$"
return re.match(pattern, api_key) is not None


class Deepgram:
def __init__(self, options: Union[str, Options]) -> None:
if not isinstance(options, (str, dict)):
Expand All @@ -23,6 +29,8 @@ def __init__(self, options: Union[str, Options]) -> None:

if "api_key" not in options:
raise DeepgramSetupError("API key is required")
if not api_key_is_valid(options["api_key"]):
raise DeepgramSetupError("Invalid API key")

if "api_url" in options and options.get("api_url", None) is None:
raise DeepgramSetupError("API URL must be valid or omitted")
Expand Down