mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2026-01-09 00:44:20 +01:00
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# Tool Usage Learnings
|
|
|
|
This file is intended to be used by an LLM such as Claude.
|
|
|
|
## UV Package Manager
|
|
|
|
- Use `uv run` to run Python tools without activating virtual environments
|
|
- For formatting: `uv run ruff format .`
|
|
- For type checking: `uv run pyright`
|
|
- For upgrading packages:
|
|
- `uv add --dev package --upgrade-package package` to upgrade a specific package
|
|
- Don't use `@latest` syntax - it doesn't work
|
|
- Be careful with `uv pip install` as it may downgrade packages
|
|
|
|
## Git and GitHub CLI
|
|
|
|
- When using gh CLI for PRs, always quote title and body:
|
|
```bash
|
|
gh pr create --title "\"my title\"" --body "\"my body\""
|
|
```
|
|
- For git commits, use double quotes and escape inner quotes:
|
|
```bash
|
|
git commit -am "\"fix: my commit message\""
|
|
```
|
|
|
|
## Python Tools
|
|
|
|
### Ruff
|
|
- Handles both formatting and linting
|
|
- For formatting: `uv run ruff format .`
|
|
- For checking: `uv run ruff check .`
|
|
- For auto-fixing: `uv run ruff check . --fix`
|
|
- Common issues:
|
|
- Line length (default 88 chars)
|
|
- Import sorting (I001 errors)
|
|
- Unused imports
|
|
- When line length errors occur:
|
|
- For strings, use parentheses and line continuation
|
|
- For function calls, use multiple lines with proper indentation
|
|
- For imports, split into multiple lines
|
|
|
|
### Pyright
|
|
- Type checker
|
|
- Run with: `uv run pyright`
|
|
- Version warnings can be ignored if type checking passes
|
|
- Common issues:
|
|
- Optional types need explicit None checks
|
|
- String operations need type narrowing
|
|
|
|
## Pre-commit Hooks
|
|
|
|
- Configuration in `.pre-commit-config.yaml`
|
|
- Runs automatically on git commit
|
|
- Includes:
|
|
- Prettier for YAML/JSON formatting
|
|
- Ruff for Python formatting and linting
|
|
- When updating ruff version:
|
|
- Check available versions on PyPI
|
|
- Update `rev` in config to match available version
|
|
- Add and commit config changes before other changes
|
|
|
|
## Best Practices
|
|
|
|
1. Always check git status and diff before committing
|
|
2. Run formatters before type checkers
|
|
3. When fixing CI:
|
|
- Start with formatting issues
|
|
- Then fix type errors
|
|
- Then address any remaining linting issues
|
|
4. For type errors:
|
|
- Get full context around error lines
|
|
- Consider optional types
|
|
- Add type narrowing checks when needed
|