diff --git a/pyproject.toml b/pyproject.toml index 4699ba9..dcfb2a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,6 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.12" dependencies = [ - "pydantic-settings~=2.12", "pynvim~=0.6.0", "requests>=2.32.5", ] diff --git a/rplugin/python3/mrpy/clickup.py b/rplugin/python3/mrpy/clickup.py index 00be9a5..a60a4f3 100644 --- a/rplugin/python3/mrpy/clickup.py +++ b/rplugin/python3/mrpy/clickup.py @@ -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]: