Skip to main content

🧱🏗️ Provide Foundation

License Python 3.11+ uv Ruff CI

A comprehensive Python foundation library for modern applications

provide.foundation offers structured logging, CLI utilities, configuration management, error handling, and essential application building blocks. Built with modern Python practices, it provides the core infrastructure that production applications need.

✨ Key Features

  • 📝 Structured Logging - Beautiful, performant logging with emoji-enhanced visual parsing
  • 🛡️ Error Handling - Comprehensive error handling with retry logic and error boundaries
  • ⚙️ Configuration Management - Flexible configuration with environment variables and files
  • 🔧 CLI Framework - Build command-line interfaces with automatic help generation
  • 🔐 Cryptographic Utilities - Modern algorithms and secure defaults
  • 📁 File Operations - Atomic file operations with format support and safety guarantees
  • 🔄 Resilience Patterns - Retry, circuit breaker, and bulkhead decorators
  • ⚡ Async Support - High-level utilities for managing asynchronous tasks

Quick Start

Note: provide-foundation is in pre-release (v0.x.x). APIs and features may change before 1.0 release.

  1. Install: uv add provide-foundation
  2. Read the Quick Start guide.
  3. Explore runnable examples in examples/README.md.

Documentation

Development

Quick Start

# Set up environment
uv sync

# Run common tasks
we run test       # Run tests
we run lint       # Check code
we run format     # Format code
we tasks          # See all available commands

See CLAUDE.md for detailed development instructions and architecture information.

Contributing

See CONTRIBUTING.md for contribution guidelines.

License

See LICENSE for license details.

Quality Standards

provide.foundation focuses on code quality, testing, and reliability:

  • Test Coverage is tracked and enforced in CI.
  • Security Checks include path traversal and symlink validation tests.
  • Performance Benchmarks cover logging, transport, and archive operations.
  • Type Checking is enforced with mypy.
  • Linting and Formatting are enforced with ruff.

Optional Dependencies

provide.foundation has optional feature sets that require additional dependencies:

Feature Install Command Required For
Basic logging uv add provide-foundation Core logging functionality
CLI framework uv add provide-foundation[cli] Command-line interface features
Cryptography uv add provide-foundation[crypto] Hash functions, digital signatures, certificates
HTTP Transport uv add provide-foundation[transport] HTTP client utilities and transport features
OpenTelemetry uv add provide-foundation[opentelemetry] Distributed tracing and metrics
All features uv add provide-foundation[all] Everything above

Quick Start Tip: For immediate use with just logging, install the base package. Add extras as needed.


What's Included

provide.foundation offers a comprehensive toolkit for building robust applications:

Core Components

  • Structured Logging - Beautiful, performant logging built on structlog with event-enriched structured logging and zero configuration required
  • Metrics - Lightweight and extensible metrics collection with optional OpenTelemetry integration
  • CLI Framework - Build command-line interfaces with automatic help generation and component registration (requires [cli] extra)
  • Configuration Management - Flexible configuration system supporting environment variables, files, and runtime updates
  • Error Handling - Comprehensive error handling with retry logic and error boundaries
  • Resilience Patterns - Suite of decorators for building reliable applications (retry, circuit breaker, bulkhead)
  • Concurrency Utilities - High-level utilities for managing asynchronous tasks and thread-safe operations
  • Cryptographic Utilities - Comprehensive cryptographic operations with modern algorithms and secure defaults (requires [crypto] extra)
  • File Operations - Atomic file operations with format support and safety guarantees
  • Archive Operations - Create and extract archives with support for TAR, ZIP, GZIP, and BZIP2 formats
  • Serialization - Safe and consistent JSON serialization and deserialization
  • Console I/O - Enhanced console input/output with color support, JSON mode, and interactive prompts
  • Formatting Utilities - Collection of helpers for formatting text, numbers, and data structures
  • Platform Utilities - Cross-platform detection and system information gathering
  • Process Execution - Safe subprocess execution with streaming and async support
  • Hub and Registry - Central system for managing application components, commands, and resources

Architecture & Design Philosophy

provide.foundation is intentionally designed as a foundation layer, not a full-stack framework. Understanding our architectural decisions helps teams evaluate whether the library aligns with their requirements.

When to Use provide.foundation

Excellent fit:

  • CLI applications and developer tools
  • Microservices with structured logging needs
  • Data processing pipelines
  • Background task processors

Good fit (with awareness):

  • Web APIs (use for logging, not HTTP server)
  • Task processors (Celery, RQ)
  • Libraries needing structured logging

Consider alternatives:

  • Ultra-low latency systems (<100μs requirements) - e.g., HFT systems, real-time gaming servers where Foundation's lock-based registry adds unwanted overhead
  • Full-stack framework needs (use Django, Rails) - Foundation provides logging/config but not ORM, templating, or routing
  • Tool stack incompatibility - e.g., if your team standardized on Pydantic models (Foundation uses attrs) or loguru (Foundation uses structlog)

Key Design Decisions

Tool Stack Philosophy: Built on proven tools (attrs, structlog, click) with strong opinions for consistency. Trade-off: less flexibility, but cohesive and well-tested stack.

Threading Model: Registry uses threading.RLock (not asyncio.Lock). Negligible impact for typical use cases (CLI apps, initialization-time registration, read-heavy workloads). For high-throughput async web services (>10k req/sec) with runtime registration in hot paths, consider async-native alternatives.

Global State Pattern: Singletons (get_hub(), logger) for ergonomic APIs. Mitigation: provide-testkit provides reset_foundation_setup_for_testing() for clean test state.

Intentional Scope: Provides logging, configuration, CLI patterns. Does NOT provide web frameworks, databases, auth, or templates. Integrate with FastAPI/Flask/Django for web applications.

Built by provide.io

Copyright (c) provide.io LLC.

Metadata

Release files for provide-foundation 0.4.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for provide-foundation 0.4.10
File Size Uploaded
provide_foundation-0.4.10.tar.gz 425.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for provide-foundation 0.4.10
File Interpreter ABI Platform
provide_foundation-0.4.10-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / provide_foundation-0.4.10.tar.gz

Download URL provide_foundation-0.4.10.tar.gz
Size 425.4 kB
Tags Source
SHA-256 checksum
How to use checksums
41641ce5218b6114c9e9f26323ffb30e2e261100ae304222dfdab51a175d977b
BLAKE2b-256 checksum
How to use checksums
67e36968621dc33735f8884d9717fc135e4300aa44ba9c06ad9661ff2d9c0971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / provide_foundation-0.4.10-py3-none-any.whl

Download URL provide_foundation-0.4.10-py3-none-any.whl
Size 622.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
166114924e7c1b6aa0c0ede3692a1b91fa0e03366c47bd82ac543986effaa6af
BLAKE2b-256 checksum
How to use checksums
bcaf2fb25b64b9d63b99204dd0654dadbc9cbd859af3163d0bcb54b962f9b223
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page