Skip to main content

Small utility package for my projects.

Project description

Pedros

PyPI Ruff License

A small package of reusable Python utilities for Python projects.

Features

  • Dependency Management: Smart detection of optional dependencies (rich, tqdm)
  • Logging: Simplified logging setup with optional Rich support
  • Progress Bars: Unified progress bar API with multiple backends
  • Decorators: Robust decorators for timing (@timed) and error handling (@safe)
  • Type Safe: Comprehensive type hints and PEP 561 compliance

Installation

pip install pedros

OR

uv add pedros

Quickstart

from pedros import setup_logging, get_logger, progbar, timed, safe

# Configure logging
setup_logging()
logger = get_logger()

# Use progress bar (auto-selects backend: rich > tqdm > basic)
for item in progbar(range(10), desc="Processing"):
    pass

# Time function execution
@timed
def process_data():
    return "result"


process_data()  # Logs: "process_data took 1.23 ms to execute."


# Safely handle errors
@safe(re_raise=False)
def risky_operation():
    raise ValueError("Something went wrong")


risky_operation()  # Logs the error but doesn't crash

License

This project is licensed under the MIT License.

Contributing

Contributions are welcome! Please open issues or pull requests on GitHub. Before submitting contributions via pull requests, make sure the pre-commit hooks are installed. Run them manually with:

uv run pre-commit run --all-files

Support

For questions or support, please open a GitHub issue.

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

pedros-0.12.3.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

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

pedros-0.12.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file pedros-0.12.3.tar.gz.

File metadata

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

File hashes

Hashes for pedros-0.12.3.tar.gz
Algorithm Hash digest
SHA256 bd5568de0a53f0c9b72d0914de7e04a269e3cbdd60725e093d87292c97e10436
MD5 ee37e9f8d1a45e992bc40a3dbdad32a3
BLAKE2b-256 1bdabed6b4b4e14d3b9a4e57bfe49ab41ba0280f1a9a127383e4f3186aa94637

See more details on using hashes here.

Provenance

The following attestation bundles were made for pedros-0.12.3.tar.gz:

Publisher: python-publish.yml on PierreLapolla/pedros

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

File details

Details for the file pedros-0.12.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for pedros-0.12.3-py3-none-any.whl
Algorithm Hash digest
SHA256 475ff9b0ad85ae619fc692727226c7e7e63ed5287752bccf61aed631c37f8935
MD5 7597c4649451d843190dd9e196760c35
BLAKE2b-256 eda82b7aa1b3be8c7d56f67a3b60b9d07e34c83cce832bf04e48d54f90bae5f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pedros-0.12.3-py3-none-any.whl:

Publisher: python-publish.yml on PierreLapolla/pedros

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