Skip to content
following-conventions logo

Python Coding Conventions

following-conventions

Tenzir Python coding standards and tooling setup. Use when writing python code, running ruff/mypy/pytest, encountering pyproject.toml/uv.lock, or setting up a new Python project.

SKILL.md

Full skill instructions

Python Coding Conventions

Coding standards for Python projects at Tenzir.

Required Tools

All projects use:

  • uv — Dependency management and virtual environments
  • Ruff — Linting and formatting
  • Mypy — Static type checking
  • pytest — Testing

Default Libraries

Prefer to use these libraries to ensure uniform codebase across Tenzir repositories:

  • pydantic - Defining and validating models
  • FastAPI - Declaring REST APIs
  • Click - Providing a CLI interface

Quality Gates

Run before committing or releasing:

uv run ruff check \
  && uv run ruff format --check \
  && uv run mypy \
  && uv run pytest \
  && uv build

The chain fails fast on the first error.

Python Version

Target Python 3.12+. Use modern syntax and stdlib features freely—no backwards-compatibility with older versions.

Coding Style

Formatting

  • Ruff controls whitespace: 4-space indentation, double-quoted strings
  • 88 character line limit (Ruff/​Black default)
  • Let Ruff order imports automatically

Type Hints

  • All public surfaces must be fully typed
  • Strict Mypy settings reject untyped or partial definitions
  • Avoid Any; fix warnings rather than ignoring them

Package structure and imports

  • Keep __init__.py files empty. They are only used to mark a directory as importable but do not contain any content, let alone non-trivial code.
  • Always use absolute imports from the package top level: from this_package.foo import bar instead of from .foo import bar.
  • Never use wildcard imports

Naming Conventions

ElementConventionExample
Modulessnake_casemy_module.py
Functionssnake_casecalculate_total()
Variablessnake_caseuser_count
ClassesPascalCaseDataProcessor
ConstantsCONSTANT_CASEMAX_RETRIES

CLI Conventions

  • Use kebab-case for CLI flags: --output-file, not --output_file
  • Keep user messages concise

Documentation Style

  • Write in active voice; rewrite passive sentences before committing
  • Focus on user-facing impact, not implementation details
  • Use explicit imports; isolate configuration helpers in config.py

Unit Test Conventions

  • Use pytest as testing framework
  • Use CliRunner for end-to-end CLI testing
  • Favor tmp_path for filesystem tests
  • Use parametrization for scenario variation
  • Maintain ≥80% coverage when coverage is configured

Project Setup

Only read the specific file you need when setting up a new project or modifying that tool's configuration:

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View