CtrlK
BlogDocsLog inGet started
Tessl Logo

giuseppe-trisciuoglio/developer-kit

Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.

89

Quality

89%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

naming-conventions.mdplugins/developer-kit-python/rules/

paths:
**/*.py

Rule: Python Naming Conventions

Context

Standardize identifier naming across Python projects following PEP 8 conventions to ensure readability and consistency.

Guidelines

Modules and Packages

  • Modules: Must use snake_case (e.g., order_service.py, user_repository.py)
  • Packages: Must use snake_case, short and lowercase (e.g., models, services, utils)
  • Avoid single-character or overly abbreviated module names

Classes

  • Classes: Must use PascalCase (e.g., OrderService, UserRepository)
  • Exception classes: Must end with Error or Exception suffix (e.g., OrderNotFoundError)
  • Abstract base classes: Use PascalCase, optionally prefixed with Base or Abstract
  • Dataclasses / Pydantic models: Must use PascalCase

Functions and Methods

  • Functions: Must use snake_case (e.g., calculate_total(), find_by_email())
  • Methods: Must use snake_case (e.g., process_order(), get_user_name())
  • Private methods: Prefix with single underscore (e.g., _validate_input())
  • Name-mangled methods: Prefix with double underscore only when needed to avoid subclass conflicts

Variables

  • Variables: Must use snake_case (e.g., order_total, customer_name)
  • Constants: Must use UPPER_SNAKE_CASE (e.g., MAX_RETRY_COUNT, DEFAULT_TIMEOUT)
  • Private variables: Prefix with single underscore (e.g., _internal_state)
  • Boolean variables: Use is_, has_, can_, should_ prefixes (e.g., is_active, has_permission)

Type Variables and Generics

  • TypeVar: Use PascalCase single letters or short names (e.g., T, KT, VT)
  • Type aliases: Use PascalCase (e.g., UserId = int)

Examples

✅ Good

from dataclasses import dataclass

MAX_RETRY_COUNT = 3

@dataclass
class OrderResponse:
    order_id: int
    customer_name: str
    is_active: bool

class OrderService:
    def __init__(self, order_repository: OrderRepository) -> None:
        self._order_repository = order_repository

    def find_by_id(self, order_id: int) -> OrderResponse:
        ...

    def _validate_order(self, order: Order) -> bool:
        ...

❌ Bad

maxRetryCount = 3  # Should be UPPER_SNAKE_CASE

class order_response:  # Should be PascalCase
    OrderId: int       # Should be snake_case
    CustomerName: str

class orderService:  # Should be PascalCase
    def FindById(self, Id):  # Should be snake_case
        ...

plugins

CHANGELOG.md

context7.json

CONTRIBUTING.md

README_CN.md

README_ES.md

README_IT.md

README.md

tessl.json

tile.json