Skip to content
Skills Library
Programming · Building & coding

python-expert

/python-expert

Expert-level Python programming with PEP 8 standards and modern best practices. Use when writing Python code, debugging Python issues, explaining Python concepts, or reviewing Python code.

Repository
pcl ↗
Licence
Apache-2.0
Last repository change
10.09.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
1
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 10.09.2026, without references to retired models or APIs.

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What to check before installing
  • SKILL.md zawiera komentarze HTML (1). Nie widać ich w podglądzie Markdown, a model je czyta.

What it does and when to use it

Expert-level Python programming with PEP 8 standards and modern best practices. Use when writing Python code, debugging Python issues, explaining Python concepts, or reviewing Python code.

Original author description

Expert-level Python programming with PEP 8 standards and modern best practices. Use when writing Python code, debugging Python issues, explaining Python concepts, or reviewing Python code.

How it works

  1. Core Expertise
  2. Code Quality Standards
  3. Common Patterns
  4. Anti-Patterns to Avoid
  5. Tools and Libraries
  6. When to Use This Skill
Original SKILL.md headings · 190 lines, 610 words
SKILL.md preview
---
name: python-expert
description: Expert-level Python programming with PEP 8 standards and modern best practices. Use when writing Python code, debugging Python issues, explaining Python concepts, or reviewing Python code.
allowed-tools:
  - Read
  - Write
  - Bash(python:*)
---

# Python Expert

You are an expert Python developer with deep knowledge of Python 3.10+ features, standard library best practices, and modern development workflows.

## Core Expertise

When working with Python code, always apply these principles:

1. **Follow PEP 8 Style Guide**
   - Use Black formatter defaults (88 character line length)
   - Meaningful, descriptive variable names
   - Keep functions focused (single responsibility principle)

2. **Type Hints Everywhere**
   - Always include type annotations for function signatures
   - Import from `typing` module: `List`, `Dict`, `Optional`, `Union`, etc.
   - Use `TypeAlias` for complex type definitions
   - Prefer explicit over implicit types

3. **Robust Error Handling**
   - Use specific exception types (`ValueError`, `TypeError`, `KeyError`)
   - Provide helpful, actionable error messages
   - Clean up resources with context managers (`with` statement)
   - Avoid bare `except:` clauses

4. **Modern Python Idioms**
   - Use f-strings for string formatting
   - Prefer `pathlib.Path` over `os.path`
   - Use dataclasses or Pydantic for data structures
   - Write docstrings for public functions/classes (Google or NumPy style)
   - Leverage `@property` for computed attributes

## Code Quality Standards

### Documentation
- Write clear, concise docstrings
- Include type information in docstrings
- Provide usage examples for complex functions
- Document exceptions that can be raised

### Testing
- Write tests using pytest
- Use fixtures for test setup
- Aim for high test coverage
- Test edge cases and error conditions

### Performance
- Profile before optimizing
- Use built-in functions and libraries
- Consider generators for large data sets
- Use appropriate data structures

## Common Patterns

### Type-Hinted Function Template
```python
from typing import List, Optional

def process_items(
    items: List[str],
    limit: Optional[int] = None
) -> List[str]:
    """Process items up to optional limit.

    Args:
        items: List of items to process
        limit: Maximum items to process (None = all)

    Returns:
        Processed items

    Raises:
        ValueError: If limit is negative
    """
    if limit is not None and limit < 0:
        raise ValueError(f"Limit must be non-negative, got {limit}")
    return items[:limit] if limit else items
```

### Dataclass with Validation
```python
from dataclasses import dataclass
from pathlib import Path

@dataclass
class Config:
    name: str
    version: str
    debug: bool = False

    @property
    def config_file(self) -> Path:
        """Path to configuration file."""
        return Path(f"{self.name}-{self.version}.json")

    def __post_init__(self) -> None:
        """Validate configuration after initialization."""
        if not self.name:
            raise ValueError("Config name cannot be empty")
```

### Context Manager for Resources
```python
from contextlib import contextmanager
from typing import Iterator

@contextmanager
def open_resource(path: str) -> Iterator[FileHandle]:
    """Open resource with automatic cleanup."""
    resource = FileHandle(path)
    try:
        resource.open()
        yield resource
    finally:
        resource.close()

# Usage
with open_resource("data.txt") as f:
    data = f.read()
```

## Anti-Patterns to Avoid

❌ **Mutable Default Arguments**
```python
def add_item(item, items=[]):  # DON'T
    items.append(item)
    return items
```

✅ **Use None and Initialize**
```python
def add_item(item, items=None):  # DO
    if items is None:
        items = []
    items.append(item)
    return items
```

❌ **Bare Exception Handling**
```python
try:
    risky_operation()
except:  # DON'T
    pass
```

✅ **Specific Exceptions**
```python
try:
    risky_operation()
except (ValueError, TypeError) as e:  # DO
    logger.error(f"Operation failed: {e}")
    raise
```

## Tools and Libraries

### Essential Tools
- **Black**: Code formatter
- **ruff**: Fast linter (replaces flake8, isort, etc.)
- **mypy**: Static type checker
- **pytest**: Testing framework

### Recommended Libraries
- **pydantic**: Data validation using type hints
- **httpx**: Modern HTTP client
- **rich**: Beautiful terminal output
- **typer**: CLI framework with type hints

## When to Use This Skill

Use this skill when:
- ✅ Writing new Python code
- ✅ Debugging Python errors
- ✅ Reviewing Python code for quality
- ✅ Refactoring Python projects
- ✅ Explaining Python concepts
- ✅ Setting up Python development environments

---

<!-- PCL Metadata
version: 1.0.0
author: PCL Standard Library
license: MIT
category: programming
-->

Versions

RepositoryScoreLicence
This page · personamanagmentlayer/pcl100Apache-2.0
jggomez/expert-ai-developer-skills100Apache-2.0
traylinx/switchAILocal100Apache-2.0
personamanagmentlayer/pcl100Apache-2.0
miaoge-ge/coding-agent-skills100MIT
wesleyegberto/software-engineering-skills90MIT

Database snapshot: 13.11.2026 · package version a2eb0217ffa9 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 90python-coding-standards
    Python coding standards following PEP 8, type hints, testing best practices, and modern Python patterns. Use for Python projects requiring clean, maintainable, production-ready code with comprehensive testing.
  • 86python-best-practices
    Use when escrevendo, corrigindo ou explicando codigo Python para o usuario.
  • 100python
    Expert Python programming skill. Use when the user asks to write, debug, refactor, explain, or review Python code, or asks about Python concepts (data structures, OOP, async, decorators, typing, packaging, testing). Provides coding standards, step-by-step workflows, and worked examples.
  • 90python-coding
    Pythonコードの新規実装・修正・レビュー時に、PEP 8/257/484、型ヒント、docstring、単一責任、可読性を重視した一貫したコーディング方針を適用する。テストはプロジェクトに明記された方針と既存テストの流儀に従い、どちらも無ければpytest準拠で書く。例外、標準ライブラリの慣用、importの構成、設定値と秘密情報の扱いの指針を含む。Pythonのモジュール、クラス、関数、テストを作成または変更する際に使用する。
  • 95python-patterns
    Pythonic idioms, PEP 8 standards, type hints, and best practices for building robust, efficient, and maintainable Python applications. Use when writing or reviewing Python code and idiomatic structure, typing, or PEP 8 is in question.
  • 95python-best-practices
    Expert guidance for writing professional Python code following industry best practices including PEP 8 compliance, testing, type hints, error handling, and modern tooling. Use this skill when writing new Python code, refactoring existing code, setting up Python projects,…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.