Reference library

Python Code Samples

Copy-ready Python snippets by topic and difficulty — short, focused, and runnable in the browser editor.

50 matches
API design & gRPC easy

How to Create an RFC 7807 Error JSON in Python

Construct a structured error response using the RFC 7807 Problem Details format with a reusable function.

rfc7807 json error-handling
Python
import json
from typing import Dict


def create_rfc7807_error(
    type_: str,
    title: str,
    status: int,
    detail: str,
    instance: str,
    extra_fields: Dict[str, object] | None = None,
) -> str:
    """
    Build a JSON string following RFC 7807 Problem Details format.
    """
    problem = {
        "t…
14 0 Open
API design & gRPC easy

How to Expand Related Resources with a Mock Embed in Python

Simulate API response embedding by attaching mock embedded data to each related resource in a list using a simple Python class.

api embed mock
Python
import json

class EmbedMock:
    def __init__(self, resources):
        self.resources = resources

    def expand(self):
        for resource in self.resources:
            resource["embedded"] = self._generate_embed()

    def _generate_embed(self):
        return {
            "id": 1,
            "type": "mock",
…
15 0 Open
API design & gRPC medium

How to Handle Retry-After Header in Python

Parse the Retry-After header from rate-limited API responses and implement retry logic with proper delays in Python.

retry-after api rate-limiting
Python
```python
import time
from datetime import datetime, timedelta


class RetryAfterHandler:
    def __init__(self, max_retries=3):
        self.max_retries = max_retries

    def get_retry_after_seconds(self, response_headers):
        retry_after_value = response_headers.get("Retry-After")
        if retry_after_value …
14 0 Open
API design & gRPC medium

How to Implement Content Negotiation with JSON and XML in Python

Build an HTTP server that returns JSON or XML responses based on the client's Accept header, with a 406 response for unsupported formats.

http-server content-negotiation json
Python
import json
import xml.etree.ElementTree as ET
from http.server import BaseHTTPRequestHandler, HTTPServer


class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        data = {"message": "Hello, world!"}
        accept_header = self.headers.get("Accept", "")

        if "application/json" in accept_hea…
11 0 Open
API design & gRPC easy

How to Implement Sparse Fieldsets in Python

A function that filters API responses by resource type, returning only requested fields plus IDs, as a sparse fieldset mock.

api jsonapi sparse-fieldsets
Python
from dataclasses import dataclass, field
from typing import Dict, List, Optional


@dataclass
class MockResponse:
    data: Dict[str, object] = field(default_factory=dict)
    included: List[Dict[str, object]] = field(default_factory=list)


def select_fields(
    data: Dict[str, object],
    sparse_fields: Optional[D…
12 0 Open
API design & gRPC easy

How to Mock HTTP 304 Responses with If-None-Match in Python

Spin up a local HTTP server that returns a 304 Not Modified when a request carries a matching ETag, useful for testing cache behavior.

http caching mock-server
Python
from http.server import BaseHTTPRequestHandler, HTTPServer
from threading import Thread
import urllib.request

ETAG = '"abc123"'
BODY = b'{"status": "ok"}'

class MockServer(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.headers.get('If-None-Match') == ETAG:
            self.send_response(304)
        …
11 0 Open
API design & gRPC medium

How to Mock X-RateLimit Headers in Python

This code creates a local HTTP server that mimics rate limit headers (X-RateLimit-Limit, Remaining, Reset, Update) and returns 429 responses when the limit is exceeded.

http rate-limit server
Python
import time
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer


class RateLimitHandler(BaseHTTPRequestHandler):
    RATE_LIMIT = 5          # max requests allowed
    WINDOW_SECONDS = 60     # per time window

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
…
14 0 Open
API design & gRPC medium

How to Mock a 202 Accepted Long-Running Operation in Python

Build a mock HTTP server that returns a 202 Accepted response immediately and simulates a long-running operation in the background with threading.

api mock-server http
Python
import time
import threading
from http.server import HTTPServer, BaseHTTPRequestHandler

class MockHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        if self.path == "/long-running":
            self.send_response(202)
            self.send_header("Content-Type", "application/json")
            self.end_h…
13 0 Open
API design & gRPC medium

How to Mock a Chunked Encoding Streaming Response in Python

Build a local mock HTTP server with Python's http.server that streams a chunked-encoded response with a 0.5s delay per chunk.

http streaming chunked
Python
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
import time

class ChunkedHandler(BaseHTTPRequestHandler):
    protocol_version = "HTTP/1.1"

    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-Type", "text/plain")
        self.send_header("Transfer-Encoding", "c…
15 0 Open
API design & gRPC easy

How to Mock an API Key Header Authentication Server in Python

A minimal HTTP server that validates requests using an X-API-Key header and returns JSON responses for authenticated and unauthenticated calls.

api authentication http
Python
import json
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer

API_KEYS = {"test-user": "secret-key-123"}

class AuthHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        auth = self.headers.get("X-API-Key")
        if not auth or auth not in API_KEYS.values():
            self.send_response…
13 0 Open
API design & gRPC easy

How to Serialize a Dataclass to JSON in Python

Serialize a Python dataclass instance to JSON using asdict and json.dumps for API responses or mocks.

dataclass json serialization
Python
from dataclasses import dataclass, asdict
import json


@dataclass
class UserResponse:
    id: int
    name: str
    email: str
    active: bool = True


if __name__ == "__main__":
    response = UserResponse(id=42, name="Ada Lovelace", email="ada@example.com")
    print(json.dumps(asdict(response), indent=2))
13 0 Open
Reliability & rate limiting easy

Implementing Fallback with Cached Stale Data in Python

This code demonstrates a resilient data-fetching pattern that caches successful responses, falls back to cached data when the external API fails, and returns stale data as a last-resort fallback.

cache fallback resilience
Python
import random
import time

# Simulated cache dictionary: key -> (value, timestamp)
_cache = {}
_CACHE_TTL = 3  # seconds

# Mock data source (simulates an unreliable external API)
def fetch_mock_data(key):
    failure = random.random() < 0.4  # 40% chance of failure
    if failure:
        raise ConnectionError("Mock …
14 0 Open
Observability & SRE medium

How to Check Uptime with a Synthetic HTTP Mock in Python

Run a mock HTTP server locally and probe it with urllib to measure synthetic uptime and response times, perfect for testing monitoring logic without external dependencies.

uptime http-server monitoring
Python
import http.server
import threading
import time
import urllib.request


class MockHandler(http.server.BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == "/health":
            self.send_response(200)
            self.send_header("Content-Type", "application/json")
            self.end_headers()
   …
14 0 Open
Observability & SRE easy

How to Create a Deep Health Check Database in Python

Setup a SQLite-backed health check database, insert mock data with response times and statuses, and generate a report ordered by most recent check.

sqlite health-check database
Python
import sqlite3
from datetime import datetime, timedelta
from pathlib import Path

DB_PATH = Path("deep_health_check.db")


def setup_database():
    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS health_checks (
            id INTEGER PRIMARY KEY AU…
14 0 Open
Observability & SRE medium

How to Create a TCP DNS Mock Server in Python

This code creates a mock TCP DNS server that listens on a specified port, accepts probe connections, and returns a fixed DNS response header to simulate a live DNS service for testing and observability.

socket dns tcp
Python
import socket
import threading


def handle_client(client_socket, address):
    print(f"[+] Connection from {address}")
    try:
        while True:
            data = client_socket.recv(1024)
            if not data:
                break
            print(f"[*] Received {len(data)} bytes (TCP DNS probe)")
          …
16 0 Open
Observability & SRE easy

How to Ship Logs to an Aggregator Endpoint in Python

Ship batched log entries to a mock HTTP aggregator endpoint with proper error handling and response status.

logging requests json
Python
import json
import requests
from datetime import datetime, timezone

LOG_ENTRIES = [
    {"timestamp": "2024-01-15T10:00:00Z", "level": "INFO", "message": "Server started"},
    {"timestamp": "2024-01-15T10:00:05Z", "level": "WARN", "message": "High memory usage"},
    {"timestamp": "2024-01-15T10:00:10Z", "level": "E…
13 0 Open
Microservices patterns easy

BFF aggregation pattern: combine multiple service responses in Python

Mock three backend services and aggregate their responses into one unified payload — the BFF pattern every Python microservice gateway relies on.

bff aggregation microservices
Python
from dataclasses import dataclass
from typing import Any


@dataclass
class Service:
    name: str
    data: dict[str, Any]


def get_user_service() -> Service:
    return Service("user", {"id": 1, "name": "Alice"})


def get_orders_service() -> Service:
    return Service("orders", {"total": 299.99, "count": 2})


de…
14 0 Open
Microservices patterns medium

Fallback cached response mock in Python

Wraps a mock function with a fallback to a real service and caches results to mask transient failures.

microservices caching fallback
Python
import time
from functools import wraps

class CachedMock:
    def __init__(self, cache_ttl=5):
        self.cache = {}
        self.cache_ttl = cache_ttl

    def get(self, key):
        cached = self.cache.get(key)
        if cached and time.time() - cached["timestamp"] < self.cache_ttl:
            return cached["v…
14 0 Open
Microservices patterns easy

How to Build a Microservice Helper in Python

A beginner-friendly Python helper that validates input, normalizes service responses, and simulates user management—showing clean patterns for microservice development.

microservices validation oop
Python
import json
from typing import Any, Dict, List


class DataValidator:
    """Simple validator for common data patterns."""

    @staticmethod
    def is_valid_email(value: str) -> bool:
        """Check if value looks like an email."""
        return "@" in value and "." in value.split("@")[-1]

    @staticmethod
    …
12 0 Open
Microservices patterns easy

How to Compose Parallel API Calls in Python with asyncio.gather

Compose multiple mock API responses in parallel using asyncio.gather with per-service simulated latency.

asyncio concurrency api
Python
import asyncio
import random
import time

async def mock_api(name: str, delay: float) -> dict:
    await asyncio.sleep(delay)
    return {"service": name, "value": random.randint(1, 100)}

async def fetch_all():
    services = {
        "users": mock_api("users", 0.2),
        "orders": mock_api("orders", 0.3),
      …
15 0 Open
Microservices patterns easy

How to Mock an API Gateway Router in Python

Create a lightweight HTTP server that routes requests to mock microservice responses, simulating an API gateway for local development and testing.

api-gateway mock-server http
Python
from http.server import HTTPServer, BaseHTTPRequestHandler
import json


class SimpleGateway(BaseHTTPRequestHandler):
    def do_GET(self):
        routes = {
            "/users": {"service": "user-service", "status": "ok", "count": 42},
            "/orders": {"service": "order-service", "status": "ok", "count": 17}…
14 0 Open
A/B testing & experimentation easy

How to Mock a Remote Config Fetch in Python

Simulate a remote config API response with metadata, timestamps, and mock data for testing or local development.

mock config testing
Python
import json
from datetime import datetime
from typing import Any, Dict

def fetch_remote_config(mock_data: Dict[str, Any]) -> Dict[str, Any]:
    """Simulate fetching a remote config with metadata and timestamps."""
    return {
        "status": "success",
        "source": "mock",
        "fetched_at": datetime.utcn…
14 0 Open
Auth & security at scale medium

How to Mock HTTP Responses to Verify HSTS Headers in Python

This code demonstrates how to use unittest.mock to intercept and capture HTTP response headers, specifically the Strict-Transport-Security header, from a mocked HTTPServer handler for security validation.

hsts mock security
Python
from http.server import BaseHTTPRequestHandler, HTTPServer
from unittest.mock import patch

class StrictTransportMock(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
        self.end_headers()
  …
13 0 Open
Auth & security at scale easy

How to Set X-Frame-Options DENY in Flask with a Mock Response

Set the X-Frame-Options header to DENY in a Flask response to prevent clickjacking, and verify it with Flask's test client.

flask security headers
Python
from flask import Flask, Response

app = Flask(__name__)

@app.route("/")
def index():
    response = Response("Hello, World!")
    response.headers["X-Frame-Options"] = "DENY"
    return response

if __name__ == "__main__":
    with app.test_client() as client:
        resp = client.get("/")
        print(resp.get_da…
12 0 Open

Browse by section

Each section groups closely related Python snippets.

Guide: free Python code samples library

Copy-ready Python snippets for learners and developers

PythonSkillset code samples are short, focused examples organised by topic and difficulty. Every snippet is server-rendered HTML — readable by search engines and easy to copy. Open any sample, read the notes, copy the code, then press Try in editor to run it in the browser with Pyodide.

How to use this library

  1. Pick a topic section — strings, lists, files, functions, and more
  2. Open a sample, read How it works, and copy the code block
  3. Run it in the IDE, tweak values, then take a related quiz or tutorial lesson

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.