Compare commits

...

1 Commits

Author SHA1 Message Date
AcerecA b874441f06 replace use of pydantic_settings w/ dataclass 2026-01-02 12:52:08 +01:00
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 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 import AliasPath, BaseModel, Field, field_validator
from pydantic_settings import BaseSettings
from urllib.request import Request, urlopen from urllib.request import Request, urlopen
@ -105,10 +106,15 @@ class ClickupTask(BaseModel):
return ret return ret
class ClickupSession(BaseSettings): def get_env_var(var_name: str) -> Callable[[], str]:
auth_key: str = Field(alias="CLICKUP_AUTH", default=...) return lambda var=var_name: environ[var]
workspace_id: str = Field(alias="CLICKUP_WORKSPACE_ID", default=...)
user_id: str = Field(alias="CLICKUP_USER_ID", default=...)
@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" base_url: str = "https://api.clickup.com/api/v2"
def _get(self, endpoint: str, **query_params: Any) -> dict[str, Any]: def _get(self, endpoint: str, **query_params: Any) -> dict[str, Any]: