mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-11 19:56:03 +00:00
Add comprehensive mypy remediation plan for remaining 1200 errors
This commit is contained in:
parent
c3f817f344
commit
b8ac1940d3
1 changed files with 177 additions and 0 deletions
177
MYPY_REMEDIATION_PLAN.md
Normal file
177
MYPY_REMEDIATION_PLAN.md
Normal file
|
|
@ -0,0 +1,177 @@
|
||||||
|
# MyPy Error Remediation Plan
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
After removing all mypy suppressions (except `strong_typing/auxiliary.py`), we have:
|
||||||
|
- **Total Errors**: 1,200 errors
|
||||||
|
- **Total Files**: 117 files
|
||||||
|
- **Suggested PRs**: 17 stacked PRs
|
||||||
|
|
||||||
|
## Top Error Types
|
||||||
|
|
||||||
|
| Error Type | Count | Description |
|
||||||
|
|------------|-------|-------------|
|
||||||
|
| union-attr | 324 | Accessing attributes on Optional/Union types without None checks |
|
||||||
|
| arg-type | 270 | Function argument type mismatches |
|
||||||
|
| assignment | 132 | Variable assignment type mismatches |
|
||||||
|
| attr-defined | 121 | Accessing undefined attributes on objects |
|
||||||
|
| no-any-return | 108 | Functions returning 'Any' instead of specific types |
|
||||||
|
| return-value | 36 | Return type doesn't match function signature |
|
||||||
|
| call-arg | 32 | Wrong arguments passed to function calls |
|
||||||
|
| var-annotated | 29 | Variables missing type annotations |
|
||||||
|
| override | 22 | Method override signature doesn't match parent |
|
||||||
|
|
||||||
|
## Stacked PR Plan
|
||||||
|
|
||||||
|
### HIGH Priority (Do First)
|
||||||
|
|
||||||
|
#### PR1: Core Routing Tables
|
||||||
|
- **Errors**: 163 | **Files**: 8 | **Complexity**: MEDIUM
|
||||||
|
- **Main errors**: union-attr(81), arg-type(42), no-any-return(25)
|
||||||
|
- **Description**: Fix routing tables (models, shields, vector_stores, common)
|
||||||
|
- **Top files**:
|
||||||
|
- `core/routing_tables/common.py` (90 errors)
|
||||||
|
- `core/routing_tables/models.py` (28 errors)
|
||||||
|
- `core/routing_tables/vector_stores.py` (26 errors)
|
||||||
|
- **Why first**: Foundation for the routing system, affects other PRs
|
||||||
|
|
||||||
|
#### PR2: Core Routers
|
||||||
|
- **Errors**: 80 | **Files**: 7 | **Complexity**: MEDIUM
|
||||||
|
- **Main errors**: no-any-return(34), attr-defined(16), union-attr(12)
|
||||||
|
- **Description**: Fix core router implementations (inference, vector_io, safety)
|
||||||
|
- **Top files**:
|
||||||
|
- `core/routers/inference.py` (29 errors)
|
||||||
|
- `core/routers/vector_io.py` (28 errors)
|
||||||
|
- `core/routers/safety.py` (9 errors)
|
||||||
|
- **Depends on**: PR1 (uses routing tables)
|
||||||
|
|
||||||
|
#### PR3: OpenAI Compatibility Layer
|
||||||
|
- **Errors**: 112 | **Files**: 2 | **Complexity**: HIGH
|
||||||
|
- **Main errors**: arg-type(37), union-attr(23), assignment(17)
|
||||||
|
- **Description**: Fix OpenAI/LiteLLM integration utils
|
||||||
|
- **Top files**:
|
||||||
|
- `providers/utils/inference/openai_compat.py` (88 errors)
|
||||||
|
- `providers/utils/inference/litellm_openai_mixin.py` (24 errors)
|
||||||
|
- **Independent**: Can be done in parallel with PR1-2
|
||||||
|
|
||||||
|
#### PR4: Meta Reference Agents
|
||||||
|
- **Errors**: 280 | **Files**: 9 | **Complexity**: HIGH
|
||||||
|
- **Main errors**: union-attr(128), arg-type(78), attr-defined(27)
|
||||||
|
- **Description**: Fix meta reference agent implementation
|
||||||
|
- **Top files**:
|
||||||
|
- `providers/inline/agents/meta_reference/agent_instance.py` (81 errors)
|
||||||
|
- `providers/inline/agents/meta_reference/responses/openai_responses.py` (76 errors)
|
||||||
|
- `providers/inline/agents/meta_reference/responses/tool_executor.py` (45 errors)
|
||||||
|
- **Independent**: Can be done in parallel
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### MEDIUM Priority (Do After HIGH)
|
||||||
|
|
||||||
|
#### PR5: Llama Models
|
||||||
|
- **Errors**: 123 | **Files**: 15 | **Complexity**: HIGH
|
||||||
|
- **Main errors**: assignment(31), attr-defined(26), no-any-return(13)
|
||||||
|
- **Description**: Fix llama model implementations (llama3, llama4, multimodal)
|
||||||
|
- **Top files**:
|
||||||
|
- `models/llama/llama3/multimodal/model.py` (27 errors)
|
||||||
|
- `models/llama/llama3/generation.py` (24 errors)
|
||||||
|
|
||||||
|
#### PR6: Provider Utils - Inference
|
||||||
|
- **Errors**: 41 | **Files**: 3 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix provider inference utilities (prompt_adapter, model_registry, embedding_mixin)
|
||||||
|
|
||||||
|
#### PR7: Provider Utils - Storage
|
||||||
|
- **Errors**: 36 | **Files**: 4 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix storage utilities (kvstore, memory, sqlstore)
|
||||||
|
|
||||||
|
#### PR8: Provider Utils - Other
|
||||||
|
- **Errors**: 28 | **Files**: 4 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix other provider utils (bedrock, telemetry, tools, scoring)
|
||||||
|
|
||||||
|
#### PR9: Inline Providers - Eval
|
||||||
|
- **Errors**: 53 | **Files**: 1 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix inline eval provider
|
||||||
|
|
||||||
|
#### PR10: Inline Providers - Safety
|
||||||
|
- **Errors**: 21 | **Files**: 4 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix inline safety providers (llama_guard, code_scanner)
|
||||||
|
|
||||||
|
#### PR12: Inline Providers - Inference & Post-Training
|
||||||
|
- **Errors**: 10 | **Files**: 2 | **Complexity**: HIGH
|
||||||
|
- **Description**: Fix inline inference and post-training providers
|
||||||
|
|
||||||
|
#### PR14: Remote Providers - Inference
|
||||||
|
- **Errors**: 67 | **Files**: 12 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix remote inference providers (bedrock, nvidia, tgi, together, etc.)
|
||||||
|
|
||||||
|
#### PR17: Core - Remaining
|
||||||
|
- **Errors**: 43 | **Files**: 7 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix remaining core modules (server, client, build, utils, store)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### LOW Priority (Can be parallelized or done last)
|
||||||
|
|
||||||
|
#### PR11: Inline Providers - Scoring
|
||||||
|
- **Errors**: 27 | **Files**: 10 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix inline scoring providers (basic, braintrust, llm_as_judge)
|
||||||
|
|
||||||
|
#### PR13: Inline Providers - Other
|
||||||
|
- **Errors**: 10 | **Files**: 2 | **Complexity**: LOW
|
||||||
|
- **Description**: Fix other inline providers (datasetio, vector_io)
|
||||||
|
|
||||||
|
#### PR15: Remote Providers - Vector IO
|
||||||
|
- **Errors**: 51 | **Files**: 11 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix remote vector_io providers (chroma, qdrant, weaviate, pgvector, milvus)
|
||||||
|
|
||||||
|
#### PR16: Remote Providers - Other
|
||||||
|
- **Errors**: 49 | **Files**: 15 | **Complexity**: MEDIUM
|
||||||
|
- **Description**: Fix other remote providers (safety, tool_runtime, post_training, etc.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommended Execution Strategy
|
||||||
|
|
||||||
|
### Phase 1: Foundation (Week 1)
|
||||||
|
1. **PR1**: Core Routing Tables (163 errors) - Start here
|
||||||
|
2. **PR2**: Core Routers (80 errors) - Stack on PR1
|
||||||
|
|
||||||
|
### Phase 2: High-Value Infrastructure (Week 1-2)
|
||||||
|
3. **PR3**: OpenAI Compatibility Layer (112 errors) - Parallel with Phase 1
|
||||||
|
4. **PR4**: Meta Reference Agents (280 errors) - Parallel with Phase 1
|
||||||
|
|
||||||
|
### Phase 3: Core Components (Week 2-3)
|
||||||
|
- **PR5**: Llama Models (123 errors)
|
||||||
|
- **PR17**: Core - Remaining (43 errors)
|
||||||
|
- Can be done in parallel
|
||||||
|
|
||||||
|
### Phase 4: Provider Utilities (Week 3-4)
|
||||||
|
- **PR6-10**: Provider Utils & Inline Providers
|
||||||
|
- Can be done in parallel by different developers
|
||||||
|
|
||||||
|
### Phase 5: Remote Providers (Week 4-5)
|
||||||
|
- **PR14-16**: Remote provider implementations
|
||||||
|
- Can be done in parallel
|
||||||
|
|
||||||
|
### Phase 6: Cleanup (Week 5)
|
||||||
|
- **PR11, PR13**: Low priority items
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run mypy with full type checking
|
||||||
|
uv run --group dev --group type_checking mypy
|
||||||
|
|
||||||
|
# Run mypy on specific module
|
||||||
|
uv run --group dev --group type_checking mypy src/llama_stack/core/routing_tables/
|
||||||
|
|
||||||
|
# See detailed errors for a file
|
||||||
|
uv run --group dev --group type_checking mypy src/llama_stack/core/routing_tables/common.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- All PRs should include tests where applicable
|
||||||
|
- Each PR should pass `uv run --group dev --group type_checking mypy` on its changed files
|
||||||
|
- Consider adding `--check-untyped-defs` flag for even stricter checking in the future
|
||||||
|
- Some errors may cascade - fixing one file might fix errors in dependent files
|
||||||
Loading…
Add table
Add a link
Reference in a new issue