Reference library

Python Code Samples

Medium snippets you can copy, study, and run in the browser editor.

9 matches
Automation & scripting medium

Detect Circular Imports Across Python Projects Automatically

This script walks through all .py files in a directory, builds an import graph, and uses depth-first search to find cycles—printing each circular dependency chain.

circular-imports import-graph ast
Python
import ast
import sys
from pathlib import Path
from collections import defaultdict, deque

def find_imports(filepath):
    """Return set of module names imported by a Python file."""
    imports = set()
    try:
        with open(filepath) as f:
            tree = ast.parse(f.read())
    except (SyntaxError, UnicodeDe…
39 0 Open
Automation & scripting medium

How to Generate a Dependency Graph for Python Projects

This script walks through a Python project directory, parses each .py file's imports, and prints a dependency graph showing which modules depend on which other modules.

ast dependency graph import parsing
Python
import os
import ast
from pathlib import Path
from collections import defaultdict

def get_imports(filepath):
    with open(filepath) as f:
        try:
            tree = ast.parse(f.read())
        except SyntaxError:
            return []
    imports = []
    for node in ast.walk(tree):
        if isinstance(node, …
39 0 Open
Testing & modern typing medium

How to Use Stubs, Fakes, Spies, and Mocks in Python Testing

Implement four types of test doubles — stubs, fakes, spies, and mocks — as subclasses of a PaymentGateway interface to replace real dependencies during testing.

testing mocks stubs
Python
class PaymentGateway:
    def charge(self, amount):
        raise NotImplementedError


class StubPaymentGateway(PaymentGateway):
    """Returns a fixed response without any logic."""
    def charge(self, amount):
        return {"success": True, "transaction_id": "stub-12345"}


class FakePaymentGateway(PaymentGatewa…
12 0 Open
System design patterns medium

How to Apply the Clean Architecture Dependency Rule in Python

Demonstrates the dependency rule with a Protocol repository, a use case, and a presenter wired together at a composition root.

clean-architecture dependency-inversion protocol
Python
from dataclasses import dataclass
from typing import List, Protocol

class Repository(Protocol):
    def get_items(self) -> List[str]:
        ...

@dataclass
class InMemoryRepository:
    items: List[str]

    def get_items(self) -> List[str]:
        return self.items

class UseCase:
    """Application layer depends…
13 0 Open
System design patterns medium

How to Build an Adapter to Translate External API Responses in Python

Build an adapter class that translates a mock external API's response shape into your internal representation, keeping callers decoupled from the external contract.

adapter-pattern api architecture
Python
import json
from typing import Dict, Any


class ExternalAPI:
    """Mock external service returning a different data shape."""
    def get_user(self, user_id: int) -> Dict[str, Any]:
        return {
            "id": user_id,
            "full_name": "Jane Doe",
            "email_address": "jane@example.com",
     …
14 0 Open
System design patterns medium

How to Migrate a Legacy Facade with the Strangler Fig Pattern in Python

Use a facade to wrap a legacy API and incrementally migrate callers to a modern interface, following the strangler fig pattern.

facade legacy migration
Python
class LegacyAPI:
    """Simulates the legacy system's raw interface."""
    def get_user(self, user_id):
        return {"id": user_id, "name": "Alice", "legacy": True}


class UserService:
    """Facade that wraps the legacy system with a modern interface."""
    def __init__(self, legacy_api=None):
        self.lega…
12 0 Open
System design patterns medium

How to Mock a Timeout per Dependency Call in Python

This code demonstrates how to simulate and test per-call timeouts for external dependencies using Python's unittest.mock and a simple timing wrapper.

mock timeout unittest
Python
```python
import time
from unittest.mock import Mock, patch

def call_dependency(dependency, timeout):
    start = time.time()
    result = dependency.call()
    elapsed = time.time() - start
    if elapsed > timeout:
        raise TimeoutError(f"Dependency call took {elapsed:.2f}s, exceeding timeout {timeout}s")
    …
14 0 Open
Reliability & rate limiting medium

How to Implement Graceful Degradation with Feature Disabling in Python

A pattern that disables enhanced features and falls back to basic functionality when a dependency fails, with mock-based testing.

graceful-degradation feature-flags resilience
Python
import random
from unittest.mock import patch


class EnhancedFeature:
    """A feature that can gracefully degrade when a dependency is unavailable."""

    def __init__(self):
        self.feature_enabled = True

    def get_enhanced_data(self):
        """Simulate an enhanced feature that depends on external data."…
12 0 Open
ML engineering pipelines medium

Training Pipeline Orchestration Mock DAG in Python

Build a mock DAG orchestrator that runs ML pipeline stages in dependency order using topological sorting (Kahn's algorithm).

dag pipeline topological-sort
Python
from collections import deque
from dataclasses import dataclass, field


@dataclass
class DAGNode:
    name: str
    task: callable
    dependencies: list[str] = field(default_factory=list)


class MockDAG:
    def __init__(self, nodes: list[DAGNode]):
        self.nodes = {n.name: n for n in nodes}
        self.execu…
13 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.