Skip to content

Commit 097a2d2

Browse files
authored
Remove typings stubs (#3673)
1 parent 07a76ad commit 097a2d2

26 files changed

+44
-271
lines changed

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ typecheck-pyright:
4343
.PHONY: typecheck-mypy
4444
typecheck-mypy:
4545
uv run mypy
46-
uv run mypy typings/ --strict
4746

4847
.PHONY: typecheck
4948
typecheck: typecheck-pyright ## Run static type checking

pydantic_ai_slim/pydantic_ai/models/outlines.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@
5252
from outlines.inputs import Chat, Image
5353
from outlines.models.base import AsyncModel as OutlinesAsyncBaseModel, Model as OutlinesBaseModel
5454
from outlines.models.llamacpp import LlamaCpp, from_llamacpp
55-
from outlines.models.mlxlm import MLXLM, from_mlxlm
55+
from outlines.models.mlxlm import MLXLM, from_mlxlm # pyright: ignore[reportUnknownVariableType]
5656
from outlines.models.sglang import AsyncSGLang, SGLang, from_sglang
5757
from outlines.models.transformers import (
5858
Transformers,
5959
from_transformers,
6060
)
6161
from outlines.models.vllm_offline import (
6262
VLLMOffline,
63-
from_vllm_offline,
63+
from_vllm_offline, # pyright: ignore[reportUnknownVariableType]
6464
)
6565
from outlines.types.dsl import JsonSchema
6666
from PIL import Image as PILImage
@@ -72,7 +72,7 @@
7272

7373
if TYPE_CHECKING:
7474
import llama_cpp
75-
import mlx.nn as nn
75+
import mlx.nn as nn # pyright: ignore[reportMissingImports]
7676
import transformers
7777

7878

@@ -157,7 +157,7 @@ def from_llamacpp(
157157
@classmethod
158158
def from_mlxlm( # pragma: no cover
159159
cls,
160-
mlx_model: nn.Module,
160+
mlx_model: nn.Module, # pyright: ignore[reportUnknownParameterType, reportUnknownMemberType]
161161
mlx_tokenizer: transformers.tokenization_utils.PreTrainedTokenizer,
162162
*,
163163
provider: Literal['outlines'] | Provider[OutlinesBaseModel] = 'outlines',
@@ -174,7 +174,7 @@ def from_mlxlm( # pragma: no cover
174174
profile: The model profile to use. Defaults to a profile picked by the provider.
175175
settings: Default model settings for this model instance.
176176
"""
177-
outlines_model: OutlinesBaseModel = from_mlxlm(mlx_model, mlx_tokenizer)
177+
outlines_model: OutlinesBaseModel = from_mlxlm(mlx_model, mlx_tokenizer) # pyright: ignore[reportUnknownArgumentType]
178178
return cls(outlines_model, provider=provider, profile=profile, settings=settings)
179179

180180
@classmethod
@@ -393,7 +393,9 @@ def _format_vllm_offline_inference_kwargs( # pragma: no cover
393393
self, model_settings: dict[str, Any]
394394
) -> dict[str, Any]:
395395
"""Select the model settings supported by the vLLMOffline model."""
396-
from vllm.sampling_params import SamplingParams
396+
from vllm.sampling_params import ( # pyright: ignore[reportMissingImports]
397+
SamplingParams, # pyright: ignore[reportUnknownVariableType]
398+
)
397399

398400
supported_args = [
399401
'max_tokens',

pyproject.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ include = [
147147
"clai/**/*.py",
148148
"tests/**/*.py",
149149
"docs/**/*.py",
150-
"typings/**/*.pyi",
151150
]
152151

153152
[tool.ruff.lint]
@@ -195,10 +194,8 @@ quote-style = "single"
195194
"examples/**/*.py" = ["D101", "D103"]
196195
"tests/**/*.py" = ["D"]
197196
"docs/**/*.py" = ["D"]
198-
"typings/**/*.pyi" = ["F401", "PYI044", "PYI035", "ANN401"]
199197

200198
[tool.pyright]
201-
stubPath = "typings"
202199
pythonVersion = "3.12"
203200
typeCheckingMode = "strict"
204201
reportMissingTypeStubs = false
@@ -228,7 +225,6 @@ exclude = [
228225
[tool.mypy]
229226
files = "tests/typed_agent.py,tests/typed_graph.py"
230227
strict = true
231-
mypy_path = "typings"
232228

233229
[tool.pytest.ini_options]
234230
testpaths = ["tests", "docs/.hooks"]

tests/models/test_outlines.py

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@
5454
import llama_cpp
5555

5656
with try_import() as vllm_imports_successful:
57-
import vllm
57+
import vllm # pyright: ignore[reportMissingImports]
5858

5959
# We try to load the vllm model to ensure it is available
6060
try: # pragma: no lax cover
61-
vllm.LLM('microsoft/Phi-3-mini-4k-instruct')
61+
vllm.LLM('microsoft/Phi-3-mini-4k-instruct') # pyright: ignore[reportUnknownMemberType]
6262
except RuntimeError as e: # pragma: lax no cover
6363
if 'Found no NVIDIA driver' in str(e) or 'Device string must not be empty' in str(e):
6464
# Treat as import failure
@@ -69,7 +69,7 @@
6969
import openai
7070

7171
with try_import() as mlxlm_imports_successful:
72-
import mlx_lm
72+
import mlx_lm # pyright: ignore[reportMissingImports]
7373

7474

7575
pytestmark = [
@@ -104,60 +104,64 @@ class MockOutlinesAsyncModel(OutlinesAsyncBaseModel):
104104
only implemented because they are abstract methods in the OutlinesAsyncModel class.
105105
"""
106106

107-
async def __call__(self, model_input: Any, output_type: Any, backend: Any, **inference_kwargs: Any) -> str:
107+
async def __call__(self, model_input: Any, output_type: Any, backend: Any, **inference_kwargs: Any) -> str: # pyright: ignore[reportIncompatibleMethodOverride]
108108
return 'test'
109109

110-
async def stream(self, model_input: Any, output_type: Any, backend: Any, **inference_kwargs: Any):
110+
async def stream(self, model_input: Any, output_type: Any, backend: Any, **inference_kwargs: Any): # pyright: ignore[reportIncompatibleMethodOverride]
111111
for _ in range(2):
112112
yield 'test'
113113

114-
async def generate(self, model_input: Any, output_type: Any, **inference_kwargs: Any): ... # pragma: no cover
114+
async def generate( # pyright: ignore[reportIncompatibleMethodOverride] # pragma: no cover
115+
self, model_input: Any, output_type: Any, **inference_kwargs: Any
116+
): ...
115117

116-
async def generate_batch(
118+
async def generate_batch( # pyright: ignore[reportIncompatibleMethodOverride] # pragma: no cover
117119
self, model_input: Any, output_type: Any, **inference_kwargs: Any
118-
): ... # pragma: no cover
120+
): ...
119121

120-
async def generate_stream(
122+
async def generate_stream( # pyright: ignore[reportIncompatibleMethodOverride] # pragma: no cover
121123
self, model_input: Any, output_type: Any, **inference_kwargs: Any
122-
): ... # pragma: no cover
124+
): ...
123125

124126
return OutlinesModel(MockOutlinesAsyncModel(), provider=OutlinesProvider())
125127

126128

127129
@pytest.fixture
128130
def transformers_model() -> OutlinesModel:
129-
hf_model = transformers.AutoModelForCausalLM.from_pretrained(
131+
hf_model = transformers.AutoModelForCausalLM.from_pretrained( # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
130132
'erwanf/gpt2-mini',
131133
device_map='cpu',
132134
)
133-
hf_tokenizer = transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini')
135+
hf_tokenizer = transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini') # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
134136
chat_template = '{% for message in messages %}{{ message.role }}: {{ message.content }}{% endfor %}'
135137
hf_tokenizer.chat_template = chat_template
136138
outlines_model = outlines.models.transformers.from_transformers(
137-
hf_model,
138-
hf_tokenizer,
139+
hf_model, # pyright: ignore[reportUnknownArgumentType]
140+
hf_tokenizer, # pyright: ignore[reportUnknownArgumentType]
139141
)
140142
return OutlinesModel(outlines_model, provider=OutlinesProvider())
141143

142144

143145
@pytest.fixture
144146
def transformers_multimodal_model() -> OutlinesModel:
145-
hf_model = transformers.LlavaForConditionalGeneration.from_pretrained(
147+
hf_model = transformers.LlavaForConditionalGeneration.from_pretrained( # pyright: ignore[reportUnknownMemberType]
146148
'trl-internal-testing/tiny-LlavaForConditionalGeneration',
147149
device_map='cpu',
148150
)
149-
hf_processor = transformers.AutoProcessor.from_pretrained('trl-internal-testing/tiny-LlavaForConditionalGeneration')
151+
hf_processor = transformers.AutoProcessor.from_pretrained( # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
152+
'trl-internal-testing/tiny-LlavaForConditionalGeneration'
153+
)
150154
outlines_model = outlines.models.transformers.from_transformers(
151155
hf_model,
152-
hf_processor,
156+
hf_processor, # pyright: ignore[reportUnknownArgumentType]
153157
)
154158
return OutlinesModel(outlines_model, provider=OutlinesProvider())
155159

156160

157161
@pytest.fixture
158162
def llamacpp_model() -> OutlinesModel:
159163
outlines_model_llamacpp = outlines.models.llamacpp.from_llamacpp(
160-
llama_cpp.Llama.from_pretrained(
164+
llama_cpp.Llama.from_pretrained( # pyright: ignore[reportUnknownMemberType]
161165
repo_id='M4-ai/TinyMistral-248M-v2-Instruct-GGUF',
162166
filename='TinyMistral-248M-v2-Instruct.Q4_K_M.gguf',
163167
)
@@ -167,7 +171,7 @@ def llamacpp_model() -> OutlinesModel:
167171

168172
@pytest.fixture
169173
def mlxlm_model() -> OutlinesModel: # pragma: no cover
170-
outlines_model = outlines.models.mlxlm.from_mlxlm(*mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit'))
174+
outlines_model = outlines.models.mlxlm.from_mlxlm(*mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit')) # pyright: ignore[reportUnknownMemberType, reportArgumentType, reportUnknownArgumentType]
171175
return OutlinesModel(outlines_model, provider=OutlinesProvider())
172176

173177

@@ -181,7 +185,7 @@ def sglang_model() -> OutlinesModel:
181185

182186
@pytest.fixture
183187
def vllm_model_offline() -> OutlinesModel: # pragma: no cover
184-
outlines_model = outlines.models.vllm_offline.from_vllm_offline(vllm.LLM('microsoft/Phi-3-mini-4k-instruct'))
188+
outlines_model = outlines.models.vllm_offline.from_vllm_offline(vllm.LLM('microsoft/Phi-3-mini-4k-instruct')) # pyright: ignore[reportUnknownMemberType, reportUnknownArgumentType]
185189
return OutlinesModel(outlines_model, provider=OutlinesProvider())
186190

187191

@@ -195,19 +199,19 @@ def binary_image() -> BinaryImage:
195199
outlines_parameters = [
196200
pytest.param(
197201
'from_transformers',
198-
lambda: (
199-
transformers.AutoModelForCausalLM.from_pretrained(
202+
lambda: ( # pyright: ignore[reportUnknownLambdaType]
203+
transformers.AutoModelForCausalLM.from_pretrained( # pyright: ignore[reportUnknownMemberType]
200204
'erwanf/gpt2-mini',
201205
device_map='cpu',
202206
),
203-
transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini'),
207+
transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini'), # pyright: ignore[reportUnknownMemberType]
204208
),
205209
marks=skip_if_transformers_imports_unsuccessful,
206210
),
207211
pytest.param(
208212
'from_llamacpp',
209213
lambda: (
210-
llama_cpp.Llama.from_pretrained(
214+
llama_cpp.Llama.from_pretrained( # pyright: ignore[reportUnknownMemberType]
211215
repo_id='M4-ai/TinyMistral-248M-v2-Instruct-GGUF',
212216
filename='TinyMistral-248M-v2-Instruct.Q4_K_M.gguf',
213217
),
@@ -216,7 +220,7 @@ def binary_image() -> BinaryImage:
216220
),
217221
pytest.param(
218222
'from_mlxlm',
219-
lambda: mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit'),
223+
lambda: mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit'), # pyright: ignore[reportUnknownMemberType, reportUnknownLambdaType]
220224
marks=skip_if_mlxlm_imports_unsuccessful,
221225
),
222226
pytest.param(
@@ -226,7 +230,7 @@ def binary_image() -> BinaryImage:
226230
),
227231
pytest.param(
228232
'from_vllm_offline',
229-
lambda: (vllm.LLM('microsoft/Phi-3-mini-4k-instruct'),),
233+
lambda: (vllm.LLM('microsoft/Phi-3-mini-4k-instruct'),), # pyright: ignore[reportUnknownLambdaType, reportUnknownMemberType]
230234
marks=skip_if_vllm_imports_unsuccessful,
231235
),
232236
]
@@ -254,19 +258,19 @@ def test_init(model_loading_function_name: str, args: Callable[[], tuple[Any]])
254258
pydantic_ai_parameters = [
255259
pytest.param(
256260
'from_transformers',
257-
lambda: (
258-
transformers.AutoModelForCausalLM.from_pretrained(
261+
lambda: ( # pyright: ignore[reportUnknownLambdaType]
262+
transformers.AutoModelForCausalLM.from_pretrained( # pyright: ignore[reportUnknownMemberType]
259263
'erwanf/gpt2-mini',
260264
device_map='cpu',
261265
),
262-
transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini'),
266+
transformers.AutoTokenizer.from_pretrained('erwanf/gpt2-mini'), # pyright: ignore[reportUnknownMemberType]
263267
),
264268
marks=skip_if_transformers_imports_unsuccessful,
265269
),
266270
pytest.param(
267271
'from_llamacpp',
268272
lambda: (
269-
llama_cpp.Llama.from_pretrained(
273+
llama_cpp.Llama.from_pretrained( # pyright: ignore[reportUnknownMemberType]
270274
repo_id='M4-ai/TinyMistral-248M-v2-Instruct-GGUF',
271275
filename='TinyMistral-248M-v2-Instruct.Q4_K_M.gguf',
272276
),
@@ -275,7 +279,7 @@ def test_init(model_loading_function_name: str, args: Callable[[], tuple[Any]])
275279
),
276280
pytest.param(
277281
'from_mlxlm',
278-
lambda: mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit'),
282+
lambda: mlx_lm.load('mlx-community/SmolLM-135M-Instruct-4bit'), # pyright: ignore[reportUnknownMemberType, reportUnknownLambdaType]
279283
marks=skip_if_mlxlm_imports_unsuccessful,
280284
),
281285
pytest.param(
@@ -285,7 +289,7 @@ def test_init(model_loading_function_name: str, args: Callable[[], tuple[Any]])
285289
),
286290
pytest.param(
287291
'from_vllm_offline',
288-
lambda: (vllm.LLM('microsoft/Phi-3-mini-4k-instruct'),),
292+
lambda: (vllm.LLM('microsoft/Phi-3-mini-4k-instruct'),), # pyright: ignore[reportUnknownLambdaType, reportUnknownMemberType]
289293
marks=skip_if_vllm_imports_unsuccessful,
290294
),
291295
]

typings/README.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

typings/llama_cpp.pyi

Lines changed: 0 additions & 19 deletions
This file was deleted.

typings/mlx/__init__.pyi

Lines changed: 0 additions & 6 deletions
This file was deleted.

typings/mlx/nn.pyi

Lines changed: 0 additions & 3 deletions
This file was deleted.

typings/mlx_lm.pyi

Lines changed: 0 additions & 7 deletions
This file was deleted.

typings/outlines/__init__.pyi

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)