Skip to main content Brad's PyNotes

Posts

2025

  1. Enumerate Function

    TL;DR

    The enumerate() function adds automatic counters to any iterable, returning tuples of (index, value) pairs that make loops cleaner and more Pythonic.

  2. Concurrent Futures

    TL;DR

    The concurrent.futures module provides a simple, high-level interface for executing tasks concurrently using either threads or processes, making parallel programming accessible without dealing with low-level threading or multiprocessing details.

  3. Math Module: Mathematical Functions and Constants

    TL;DR

    The math module provides mathematical functions like sin(), cos(), sqrt(), and constants like pi and e for scientific and mathematical computations.

    Interesting!

    The math.isclose() function solves floating-point comparison issues by checking if two numbers are “close enough” rather than exactly equal, essential for robust numerical code.

  4. Textwrap Module: Elegant Text Formatting and Wrapping

    TL;DR

    The textwrap module provides functions for formatting text blocks with intelligent line wrapping, indentation control, and paragraph formatting - perfect for creating clean output, documentation, and user interfaces.

  5. Struct Module: Binary Data Processing and C Integration

    TL;DR

    The struct module converts between Python values and C structs represented as bytes objects, enabling binary data processing for network protocols, file formats, and hardware communication with precise control over byte layout.

  6. PEP 544: Protocols - Structural Subtyping (Static Duck Typing)

    TL;DR

    PEP 544 introduces Protocol classes that enable structural subtyping (static duck typing) - type checking based on what methods an object has rather than its inheritance hierarchy, making Python’s type system more flexible and duck-typing friendly.

  7. Timeit Module: Precision Performance Measurement

    TL;DR

    The timeit module provides precise execution time measurement for small code snippets, automatically handling timing complexities and providing both programmatic and command-line interfaces for performance benchmarking.

  8. Tempfile Module: Secure Temporary File Handling

    TL;DR

    The tempfile module creates secure temporary files and directories with automatic cleanup, preventing race conditions and ensuring cross-platform compatibility for safe temporary data handling.

  9. UUID Module: Generating Universally Unique Identifiers

    TL;DR

    The uuid module generates 128-bit universally unique identifiers using multiple methods - random (uuid4), time-based (uuid1), or namespace-based (uuid3/uuid5) - perfect for unique IDs in databases and distributed systems.

  10. Decimal Module: Precise Decimal Arithmetic

    TL;DR

    The decimal module provides exact decimal arithmetic without floating-point precision errors, essential for financial calculations, scientific computing, and any application requiring precise decimal representation.

  11. Urllib Module

    TL;DR

    The urllib package provides URL handling through four submodules: request (fetch URLs), parse (manipulate URLs), error (exceptions), and robotparser (robots.txt).

    Interesting!

    Unlike many languages that require external libraries, Python includes full-featured HTTP client capabilities right in the standard library!

  12. Sys Module: System-Specific Parameters and Functions

    TL;DR

    The sys module provides access to interpreter variables like sys.argv (command-line arguments), sys.path (module search paths), sys.version, sys.exit(), and functions for interacting with the Python runtime environment.

  13. PEP 604 Union Types

    TL;DR

    PEP 604 introduced the | operator for union types, allowing int | str instead of Union[int, str] for cleaner type annotations.

    Interesting!

    The | operator for union types makes Python’s type hints look more like mathematical set notation - int | str means “integer OR string”!

  14. PEP 570 Positional Only

    TL;DR

    PEP 570 introduced the / separator to mark positional-only parameters, giving API designers control over function call semantics and preventing keyword argument usage.