From c23d157a9633270c14e343b1a5546a04369d7270 Mon Sep 17 00:00:00 2001 From: Samuel Colvin Date: Fri, 29 Nov 2024 19:36:34 +0000 Subject: [PATCH] stop ignoring some D linting errors --- pydantic_ai_slim/pydantic_ai/messages.py | 4 ++++ pydantic_ai_slim/pydantic_ai/models/gemini.py | 4 ++++ pydantic_ai_slim/pydantic_ai/models/test.py | 12 ++++-------- pydantic_ai_slim/pydantic_ai/models/vertexai.py | 2 ++ pyproject.toml | 7 +++---- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/pydantic_ai_slim/pydantic_ai/messages.py b/pydantic_ai_slim/pydantic_ai/messages.py index 1c881cd909..763f27169d 100644 --- a/pydantic_ai_slim/pydantic_ai/messages.py +++ b/pydantic_ai_slim/pydantic_ai/messages.py @@ -139,12 +139,16 @@ class ModelTextResponse: @dataclass class ArgsJson: + """Tool arguments as a JSON string.""" + args_json: str """A JSON string of arguments.""" @dataclass class ArgsDict: + """Tool arguments as a Python dictionary.""" + args_dict: dict[str, Any] """A python dictionary of arguments.""" diff --git a/pydantic_ai_slim/pydantic_ai/models/gemini.py b/pydantic_ai_slim/pydantic_ai/models/gemini.py index 07fc7721bc..7f1b3ca304 100644 --- a/pydantic_ai_slim/pydantic_ai/models/gemini.py +++ b/pydantic_ai_slim/pydantic_ai/models/gemini.py @@ -109,11 +109,15 @@ def name(self) -> str: class AuthProtocol(Protocol): + """Abstract definition for Gemini authentication.""" + async def headers(self) -> dict[str, str]: ... @dataclass class ApiKeyAuth: + """Authentication using an API key for the `X-Goog-Api-Key` header.""" + api_key: str async def headers(self) -> dict[str, str]: diff --git a/pydantic_ai_slim/pydantic_ai/models/test.py b/pydantic_ai_slim/pydantic_ai/models/test.py index bdcd5c00b2..6658368f2a 100644 --- a/pydantic_ai_slim/pydantic_ai/models/test.py +++ b/pydantic_ai_slim/pydantic_ai/models/test.py @@ -31,14 +31,6 @@ ) -class UnSetType: - def __repr__(self): - return 'UnSet' - - -UnSet = UnSetType() - - @dataclass class TestModel(Model): """A model specifically for testing purposes. @@ -186,6 +178,8 @@ def _request(self, messages: list[Message]) -> ModelAnyResponse: @dataclass class TestStreamTextResponse(StreamTextResponse): + """A text response that streams test data.""" + _text: str _cost: Cost _iter: Iterator[str] = field(init=False) @@ -217,6 +211,8 @@ def timestamp(self) -> datetime: @dataclass class TestStreamStructuredResponse(StreamStructuredResponse): + """A structured response that streams test data.""" + _structured_response: ModelStructuredResponse _cost: Cost _iter: Iterator[None] = field(default_factory=lambda: iter([None])) diff --git a/pydantic_ai_slim/pydantic_ai/models/vertexai.py b/pydantic_ai_slim/pydantic_ai/models/vertexai.py index e6d8d108c3..cdab581279 100644 --- a/pydantic_ai_slim/pydantic_ai/models/vertexai.py +++ b/pydantic_ai_slim/pydantic_ai/models/vertexai.py @@ -182,6 +182,8 @@ async def _async_google_auth() -> tuple[BaseCredentials, str | None]: @dataclass class BearerTokenAuth: + """Authentication using a bearer token generated by google-auth.""" + credentials: BaseCredentials | ServiceAccountCredentials token_created: datetime | None = field(default=None, init=False) diff --git a/pyproject.toml b/pyproject.toml index 1e6e7e2e4a..07339b909f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -88,12 +88,11 @@ flake8-quotes = { inline-quotes = "single", multiline-quotes = "double" } isort = { combine-as-imports = true, known-first-party = ["pydantic_ai"] } mccabe = { max-complexity = 15 } ignore = [ - "D101", # ignore missing docstring in public class TODO remove - "D102", # ignore missing docstring in public method TODO remove - "D107", # ignore missing docstring in __init__ methods "D100", # ignore missing docstring in module + "D102", # ignore missing docstring in public method "D104", # ignore missing docstring in public package "D105", # ignore missing docstring in magic methods + "D107", # ignore missing docstring in __init__ methods ] [tool.ruff.lint.pydocstyle] @@ -107,7 +106,7 @@ quote-style = "single" [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = ["D"] "docs/**/*.py" = ["D"] -"pydantic_ai_examples/**/*.py" = ["D103"] +"pydantic_ai_examples/**/*.py" = ["D101", "D103"] [tool.pyright] typeCheckingMode = "strict"