Reference library

Modern tooling

uv, ruff, pyproject.toml, packaging, and current Python project workflows.

10 matches
Modern tooling easy

Build a Recipe Runner Mock in Python

A Python script that mocks a command runner recipe system: maps recipe names to shell commands, executes them with subprocess, and prints the output and exit code.

subprocess command-runner recipes
Python
import subprocess
import sys


def run_recipe(recipe: str) -> None:
    """Simulate a command runner recipe by printing the command and exit code."""
    print(f"Running recipe: {recipe}")
    result = subprocess.run(recipe, shell=True, capture_output=True, text=True)
    print(f"Exit code: {result.returncode}")
    i…
13 0 Open
Modern tooling easy

How to Build a Wheel with Hatchling in Python

Build a Python wheel using the hatchling build backend and the build package, handling missing project metadata automatically.

hatchling wheel packaging
Python
import subprocess
import sys
import tempfile
from pathlib import Path


def build_wheel_with_hatchling(project_dir: str) -> str:
    """Build a wheel using hatchling and return the wheel file path."""
    project_path = Path(project_dir)

    # Simulate a minimal project structure if missing
    if not (project_path /…
14 0 Open
Modern tooling easy

How to Define Nox Sessions in Python

Automate repetitive tasks like testing and linting with reusable Nox sessions.

nox automation task-runner
Python
import nox


@nox.session(python=["3.9", "3.10"])
def tests(session):
    session.install("pytest")
    session.run("pytest")


@nox.session(python="3.9")
def lint(session):
    session.install("ruff")
    session.run("ruff", "check", ".")


if __name__ == "__main__":
    print("Nox sessions defined: tests, lint")
   …
13 0 Open
Modern tooling easy

How to Load and Save CSV and JSON Files in Python

A beginner-friendly data helper that loads or saves CSV and JSON files using only the Python standard library, with automatic format detection from the file extension.

csv json file-io
Python
from pathlib import Path
import json
import csv


def load_data(file_path):
    """Load CSV or JSON data from disk based on file extension."""
    path = Path(file_path)
    if path.suffix == ".json":
        with path.open() as f:
            return json.load(f)
    elif path.suffix == ".csv":
        with path.open(…
13 0 Open
Modern tooling easy

How to Mock Fabric Connections in Python for Task Testing

Create a lightweight MockConnection class to replace fabric.Connection and test task functions without SSH.

fabric mocking testing
Python
from fabric import Connection


class MockConnection:
    """Minimal mock of fabric.Connection for task testing."""

    def __init__(self):
        self.commands = []

    def run(self, command, **kwargs):
        self.commands.append(command)
        return f"OK: {command}"


def deploy(conn):
    """Deploy the app:…
14 0 Open
Modern tooling medium

How to Mock a PEP 517 Build Backend in Python

Use unittest.mock.Mock to simulate a PEP 517 backend interface, stub build hooks, and verify calls for package build automation.

pep517 unittest.mock packaging
Python
import json
from unittest.mock import Mock

# Simulate a PEP 517 backend interface
class Pep517Backend:
    def build_wheel(self, wheel_directory, config_settings=None, metadata_directory=None):
        return f"{wheel_directory}/mock_package-1.0.0-py3-none-any.whl"

    def get_requires_for_build_wheel(self, config_s…
14 0 Open
Modern tooling medium

How to Mock a semantic-release Changelog in Python

This Python code simulates a semantic-release changelog generator, grouping commits by type and formatting them into a markdown changelog.

semantic-release changelog automation
Python
import json
from datetime import datetime


class SemanticReleaseChangelog:
    def __init__(self, version, commits):
        self.version = version
        self.commits = commits
        self.release_date = datetime.now().isoformat()

    def generate_changelog(self):
        grouped = {}
        for commit in self.c…
15 0 Open
Modern tooling easy

How to Use prompt_toolkit Autocomplete in Python

Demonstrates an interactive command-line prompt with autocomplete using prompt_toolkit's WordCompleter and a mock dataset.

cli autocomplete prompt-toolkit
Python
from prompt_toolkit import prompt
from prompt_toolkit.completion import WordCompleter

def main():
    """Demo of prompt_toolkit autocomplete with a mock dataset."""
    # A simple mock "database" of programming languages
    languages = [
        "Python", "Java", "JavaScript", "TypeScript", "C++", "C#",
        "Go"…
15 0 Open
Modern tooling easy

Lint a Dockerfile with a Mock Hadolint in Python

A lightweight Python script that simulates hadolint by scanning Dockerfile text for common lint rules and printing violations.

docker linting hadolint
Python
import subprocess
import tempfile
from pathlib import Path


def lint_dockerfile(content: str) -> list[str]:
    """Mock hadolint by checking a few rules and returning violations."""
    violations = []
    lines = content.splitlines()

    for idx, line in enumerate(lines, start=1):
        stripped = line.strip()
  …
14 0 Open
Modern tooling easy

Makefile Targets for lint, test, and build in Python

This Python script defines common Makefile targets (lint, test, build) as subprocess commands, printing each target's command and executing them with error checking.

subprocess makefile tooling
Python
import subprocess

TARGETS = {
    "lint": ["ruff", "check", "."],
    "test": ["pytest", "-q"],
    "build": ["python", "-m", "build"],
}


def run(target: str) -> None:
    if target not in TARGETS:
        raise ValueError(f"Unknown target: {target}")
    print(f"Running {target}...")
    subprocess.run(TARGETS[tar…
14 0 Open

Browse by section

Each section groups closely related Python snippets.

Modern tooling — Python code examples

What you will find here

This page collects modern tooling snippets — short, copy-ready Python you can paste into our free online IDE and run without installing anything. Each sample includes a plain-English explanation and the full source code.

Samples vs tutorials and challenges

Samples are quick reference — one concept per page. For step-by-step teaching, use our Python tutorials. To test yourself, try quizzes or coding challenges. Clean up style with the Python formatter.