replace use of pydantic_settings w/ dataclass

This commit is contained in:
AcerecA 2026-01-02 12:52:08 +01:00
parent e190653961
commit b874441f06
1 changed files with 12 additions and 6 deletions

View File

@ -1,8 +1,9 @@
from dataclasses import dataclass, field
from json import loads
from typing import Any
from os import environ
from typing import Any, Callable
from pydantic import AliasPath, BaseModel, Field, field_validator
from pydantic_settings import BaseSettings
from urllib.request import Request, urlopen
@ -105,10 +106,15 @@ class ClickupTask(BaseModel):
return ret
class ClickupSession(BaseSettings):
auth_key: str = Field(alias="CLICKUP_AUTH", default=...)
workspace_id: str = Field(alias="CLICKUP_WORKSPACE_ID", default=...)
user_id: str = Field(alias="CLICKUP_USER_ID", default=...)
def get_env_var(var_name: str) -> Callable[[], str]:
return lambda var=var_name: environ[var]
@dataclass
class ClickupSession:
auth_key: str = field(default_factory=get_env_var("CLICKUP_AUTH"))
workspace_id: str = field(default_factory=get_env_var("CLICKUP_WORKSPACE_ID"))
user_id: str = field(default_factory=get_env_var("CLICKUP_USER_ID"))
base_url: str = "https://api.clickup.com/api/v2"
def _get(self, endpoint: str, **query_params: Any) -> dict[str, Any]: