Skip to content

Commit 7787334

Browse files
authored
Deprecate GoogleGLAProvider and GoogleVertexProvider (#2450)
1 parent d51906b commit 7787334

File tree

10 files changed

+34
-19
lines changed

10 files changed

+34
-19
lines changed

pydantic_ai_slim/pydantic_ai/providers/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ def infer_provider_class(provider: str) -> type[Provider[Any]]: # noqa: C901
7171

7272
return AzureProvider
7373
elif provider == 'google-vertex':
74-
from .google_vertex import GoogleVertexProvider
74+
from .google_vertex import GoogleVertexProvider # type: ignore[reportDeprecated]
7575

76-
return GoogleVertexProvider
76+
return GoogleVertexProvider # type: ignore[reportDeprecated]
7777
elif provider == 'google-gla':
78-
from .google_gla import GoogleGLAProvider
78+
from .google_gla import GoogleGLAProvider # type: ignore[reportDeprecated]
7979

80-
return GoogleGLAProvider
80+
return GoogleGLAProvider # type: ignore[reportDeprecated]
8181
# NOTE: We don't test because there are many ways the `boto3.client` can retrieve the credentials.
8282
elif provider == 'bedrock':
8383
from .bedrock import BedrockProvider

pydantic_ai_slim/pydantic_ai/providers/google_gla.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import os
44

55
import httpx
6+
from typing_extensions import deprecated
67

78
from pydantic_ai.exceptions import UserError
89
from pydantic_ai.models import cached_async_http_client
@@ -11,6 +12,7 @@
1112
from pydantic_ai.providers import Provider
1213

1314

15+
@deprecated('`GoogleGLAProvider` is deprecated, use `GoogleProvider` with `GoogleModel` instead.')
1416
class GoogleGLAProvider(Provider[httpx.AsyncClient]):
1517
"""Provider for Google Generative Language AI API."""
1618

pydantic_ai_slim/pydantic_ai/providers/google_vertex.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import anyio.to_thread
99
import httpx
10+
from typing_extensions import deprecated
1011

1112
from pydantic_ai.exceptions import UserError
1213
from pydantic_ai.models import cached_async_http_client
@@ -29,6 +30,7 @@
2930
__all__ = ('GoogleVertexProvider',)
3031

3132

33+
@deprecated('`GoogleVertexProvider` is deprecated, use `GoogleProvider` with `GoogleModel` instead.')
3234
class GoogleVertexProvider(Provider[httpx.AsyncClient]):
3335
"""Provider for Vertex AI API."""
3436

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ def model(
479479
return CohereModel('command-r-plus', provider=CohereProvider(api_key=co_api_key))
480480
elif request.param == 'gemini':
481481
from pydantic_ai.models.gemini import GeminiModel # type: ignore[reportDeprecated]
482-
from pydantic_ai.providers.google_gla import GoogleGLAProvider
482+
from pydantic_ai.providers.google_gla import GoogleGLAProvider # type: ignore[reportDeprecated]
483483

484484
return GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key=gemini_api_key)) # type: ignore[reportDeprecated]
485485
elif request.param == 'google':

tests/models/test_gemini.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@
6161

6262
from ..conftest import ClientWithHandler, IsDatetime, IsInstance, IsNow, IsStr, TestEnv, try_import
6363

64-
pytestmark = [pytest.mark.anyio, pytest.mark.filterwarnings('ignore:Use `GoogleModel` instead.:DeprecationWarning')]
64+
pytestmark = [
65+
pytest.mark.anyio,
66+
pytest.mark.filterwarnings('ignore:Use `GoogleModel` instead.:DeprecationWarning'),
67+
pytest.mark.filterwarnings('ignore:`GoogleGLAProvider` is deprecated.:DeprecationWarning'),
68+
]
6569

6670

6771
async def test_model_simple(allow_model_requests: None):

tests/models/test_gemini_vertex.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
pytest.mark.skipif(not imports_successful(), reason='google-auth not installed'),
3535
pytest.mark.anyio,
3636
pytest.mark.filterwarnings('ignore:Use `GoogleModel` instead.:DeprecationWarning'),
37+
pytest.mark.filterwarnings('ignore:`GoogleVertexProvider` is deprecated.:DeprecationWarning'),
3738
]
3839

3940

tests/providers/test_google_gla.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# pyright: reportDeprecated=false
12
import re
23

34
import pytest
@@ -7,6 +8,10 @@
78

89
from ..conftest import TestEnv
910

11+
pytestmark = [
12+
pytest.mark.filterwarnings('ignore:`GoogleGLAProvider` is deprecated.:DeprecationWarning'),
13+
]
14+
1015

1116
def test_api_key_arg(env: TestEnv):
1217
env.set('GEMINI_API_KEY', 'via-env-var')

tests/providers/test_google_vertex.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# pyright: reportDeprecated=false
12
from __future__ import annotations as _annotations
23

34
import json
@@ -13,7 +14,7 @@
1314
from pytest_mock import MockerFixture
1415

1516
from pydantic_ai.agent import Agent
16-
from pydantic_ai.models.gemini import GeminiModel # type: ignore[reportDeprecated]
17+
from pydantic_ai.models.gemini import GeminiModel
1718

1819
from ..conftest import try_import
1920

@@ -26,6 +27,7 @@
2627
pytest.mark.skipif(not imports_successful(), reason='google-genai not installed'),
2728
pytest.mark.anyio(),
2829
pytest.mark.filterwarnings('ignore:Use `GoogleModel` instead.:DeprecationWarning'),
30+
pytest.mark.filterwarnings('ignore:`GoogleVertexProvider` is deprecated.:DeprecationWarning'),
2931
]
3032

3133

@@ -168,7 +170,7 @@ def refresh(self, request: Request): ...
168170
)
169171
@pytest.mark.vcr()
170172
async def test_vertexai_provider(allow_model_requests: None): # pragma: lax no cover
171-
m = GeminiModel('gemini-2.0-flash', provider='google-vertex') # type: ignore[reportDeprecated]
173+
m = GeminiModel('gemini-2.0-flash', provider='google-vertex')
172174
agent = Agent(m)
173175

174176
result = await agent.run('What is the capital of France?')

tests/providers/test_provider_names.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
from pydantic_ai.providers.deepseek import DeepSeekProvider
2121
from pydantic_ai.providers.fireworks import FireworksProvider
2222
from pydantic_ai.providers.github import GitHubProvider
23-
from pydantic_ai.providers.google_gla import GoogleGLAProvider
24-
from pydantic_ai.providers.google_vertex import GoogleVertexProvider
23+
from pydantic_ai.providers.google_gla import GoogleGLAProvider # type: ignore[reportDeprecated]
24+
from pydantic_ai.providers.google_vertex import GoogleVertexProvider # type: ignore[reportDeprecated]
2525
from pydantic_ai.providers.grok import GrokProvider
2626
from pydantic_ai.providers.groq import GroqProvider
2727
from pydantic_ai.providers.heroku import HerokuProvider
@@ -40,8 +40,8 @@
4040
('vercel', VercelProvider, 'VERCEL_AI_GATEWAY_API_KEY'),
4141
('openai', OpenAIProvider, 'OPENAI_API_KEY'),
4242
('azure', AzureProvider, 'AZURE_OPENAI'),
43-
('google-vertex', GoogleVertexProvider, None),
44-
('google-gla', GoogleGLAProvider, 'GEMINI_API_KEY'),
43+
('google-vertex', GoogleVertexProvider, None), # type: ignore[reportDeprecated]
44+
('google-gla', GoogleGLAProvider, 'GEMINI_API_KEY'), # type: ignore[reportDeprecated]
4545
('groq', GroqProvider, 'GROQ_API_KEY'),
4646
('mistral', MistralProvider, 'MISTRAL_API_KEY'),
4747
('grok', GrokProvider, 'GROK_API_KEY'),
@@ -55,7 +55,11 @@
5555
if not imports_successful():
5656
test_infer_provider_params = [] # pragma: lax no cover
5757

58-
pytestmark = pytest.mark.skipif(not imports_successful(), reason='need to install all extra packages')
58+
pytestmark = [
59+
pytest.mark.skipif(not imports_successful(), reason='need to install all extra packages'),
60+
pytest.mark.filterwarnings('ignore:`GoogleGLAProvider` is deprecated:DeprecationWarning'),
61+
pytest.mark.filterwarnings('ignore:`GoogleVertexProvider` is deprecated:DeprecationWarning'),
62+
]
5963

6064

6165
@pytest.fixture(autouse=True)

tests/test_examples.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@
4545

4646
try:
4747
from pydantic_ai.providers.google import GoogleProvider
48-
from pydantic_ai.providers.google_vertex import GoogleVertexProvider
4948
except ImportError: # pragma: lax no cover
50-
GoogleVertexProvider = None
5149
GoogleProvider = None
5250

5351

@@ -63,10 +61,7 @@
6361

6462
pytestmark = [
6563
pytest.mark.skipif(not imports_successful(), reason='extras not installed'),
66-
pytest.mark.skipif(
67-
GoogleVertexProvider is None or logfire is None or GoogleProvider is None,
68-
reason='google-auth or logfire or google-provider not installed',
69-
),
64+
pytest.mark.skipif(logfire is None or GoogleProvider is None, reason='logfire or google-provider not installed'),
7065
]
7166
code_examples: dict[str, CodeExample] = {}
7267

0 commit comments

Comments
 (0)