Skip to main content

A collection of helper utilities for Python projects.

Project description

pytoolkit

pytoolkit is a small collection of helper modules that can be used across different Python projects.

The focus is on simple building blocks: configuration handling, logging, timing, HTTP helpers, caching, string helpers, and more.

Current version: 0.4.0

🌐 Website: www.actobotics.net
🐦 X/Twitter: @actoboticsnet

CI codecov Python Version License

Project goals

  • Provide small, composable utilities instead of a heavy framework
  • Keep dependencies minimal and well known
  • Make it easy to reuse the same helpers across many projects
  • Stay readable and beginner friendly while still being robust

Installation

Basic Installation

pip install acto-pytoolkit

From Source

git clone https://github.com/actobotics/pyToolkit.git
cd pyToolkit
pip install -e .

Optional Dependencies

# For async HTTP client support
pip install acto-pytoolkit[async]

# For development (testing, linting, type checking)
pip install acto-pytoolkit[dev]

# For building documentation
pip install acto-pytoolkit[docs]

# Install everything
pip install acto-pytoolkit[all]

Usage overview

The package is split into focused modules:

  • config_loader - Load configuration from JSON, YAML, TOML, and .env files
  • logger - Colored logging with environment-based configuration
  • timer - Function timing and profiling utilities
  • http_client - Sync HTTP client with retry logic
  • async_http_client - Async HTTP client using aiohttp (optional)
  • crypto_utils - Hashing and secure token generation
  • file_utils - Safe file operations with atomic writes
  • cache - In-memory caching with TTL support
  • retry - Retry decorator with exponential backoff
  • validators - Validation for email, URL, UUID, IP addresses
  • math_tools - Moving average, normalization, scaling
  • string_tools - Slugify, case conversion, text processing
  • task_scheduler - Simple in-process task scheduling
  • env - Environment detection utilities
  • cli - Command-line interface framework
  • context_utils - Nested dictionary operations
  • serialization - JSON, YAML, TOML helpers

See the examples directory for small, complete scripts, or check the full documentation.

Quick Example

from pytoolkit import ConfigLoader, get_logger, HttpClient

# Configure logging
logger = get_logger()

# Load configuration
config = ConfigLoader(env_file=".env", json_file="config.json")
api_url = config.get("API_URL", "https://api.example.com")

# Make HTTP request with automatic retries
with HttpClient(base_url=api_url, max_retries=3) as client:
    response = client.get("/users")
    users = client.json(response)
    logger.info("Fetched %d users", len(users))

CLI

After installation a small CLI entry point is available:

pytoolkit info
pytoolkit env

Use pytoolkit --help to see available commands.

Contributing

  • Fork the repository
  • Create a new branch for your change
  • Add or adjust tests where it makes sense
  • Run the test suite:
python -m unittest discover -s tests
  • Open a pull request with a short description of your change

Versioning

The project follows a simple semantic versioning scheme:

  • Breaking changes bump the major version
  • New features bump the minor version
  • Small fixes bump the patch version

Key Features

🚀 Enhanced HTTP Client

  • Support for PATCH method
  • Custom headers and authentication
  • Async HTTP client with aiohttp

🎯 Improved Validators

  • Better email validation (RFC 5322 compliant)
  • URL validation with TLD requirements
  • Strict mode options

🧪 Comprehensive Testing

  • 80%+ code coverage
  • Tests for all modules
  • CI/CD with GitHub Actions

📚 Complete Documentation

  • Sphinx documentation
  • API reference for all modules
  • Quick start guide and examples

🛠️ Developer Tools

  • Pre-commit hooks (Black, Ruff)
  • MyPy strict type checking
  • Automated testing on Python 3.9-3.12

Changelog

See CHANGELOG.md for a detailed history of changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acto_pytoolkit-0.4.0.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

acto_pytoolkit-0.4.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file acto_pytoolkit-0.4.0.tar.gz.

File metadata

  • Download URL: acto_pytoolkit-0.4.0.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for acto_pytoolkit-0.4.0.tar.gz
Algorithm Hash digest
SHA256 59ff9aeca6022cc7deff0c417c2330a3f8b39fd15b768d668468e70ac1b455af
MD5 6ed0b5419b78a05afbfd0e5138f3e120
BLAKE2b-256 620df31b668062312652a6631700cac7ff36251b565c086eec73f4c477f5eaf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for acto_pytoolkit-0.4.0.tar.gz:

Publisher: release.yml on actobotics/pyToolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file acto_pytoolkit-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: acto_pytoolkit-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for acto_pytoolkit-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7650825b0ea1c99c204709083eb15fa537e476a2650d35b8407c0c096d466c9b
MD5 578998a94f22a301df9370c2c1410386
BLAKE2b-256 4b6d444944df782c12e6aa5e37c7db5eb2324655fcb085a48349a7efe36853d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for acto_pytoolkit-0.4.0-py3-none-any.whl:

Publisher: release.yml on actobotics/pyToolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page