Skip to main content

Monitor your Python scripts with one decorator — retries, timing, and smart error explanations.

Project description

py-eeive

Monitor your Python scripts with one decorator — automatic retries, timing, and smart error explanations.

No external dependencies. Works with sync and async functions.

Install

pip install py-eeive

Usage

from py_eeive import monitor

@monitor(retries=3, retry_delay=5, log=True, language="english")
def main():
    # your script here
    ...

main()

Parameters

Parameter Default Description
retries 1 How many times to retry on failure
retry_delay 5 Seconds to wait between retries
log True Save error log to logs/ folder as JSON
language "english" Output language: "english" or "russian"
custom_errors None Your own error explanations (dict)
exponential_backoff False Double the delay on each retry
retry_on (Exception,) Only retry on these specific exceptions

Example output — success

[py-eeive] Starting: main
──────────────────────────────────────────────────
[py-eeive] ✅ Finished in 2.4 sec

Example output — failure

[py-eeive] Starting: main
──────────────────────────────────────────────────
[py-eeive] ❌ Attempt 1/3 — Line 12 — ZeroDivisionError: division by zero
[py-eeive] 🔄 Retrying in 5 sec...
[py-eeive] ❌ Attempt 2/3 — Line 12 — ZeroDivisionError: division by zero
[py-eeive] 🔄 Retrying in 5 sec...
[py-eeive] ❌ Attempt 3/3 — Line 12 — ZeroDivisionError: division by zero

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💥 Script failed permanently
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Error:   ZeroDivisionError: division by zero
  Line:    12 in file main.py
  Cause:   You are dividing a number by zero.
  Fix:     Check that the denominator is not 0 before dividing.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ⏱  15.3 sec
  📄 Log saved: logs/main_2026-04-24_12-00-00.json
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Custom error explanations

MY_ERRORS = {
    "MyCustomError": {
        "cause": "Something specific to my app went wrong.",
        "fix": "Check the config file."
    }
}

@monitor(retries=2, custom_errors=MY_ERRORS)
def main():
    ...

Async support

Works with async functions out of the box:

@monitor(retries=3, retry_delay=2)
async def fetch_data():
    ...

Retry only on specific exceptions

@monitor(retries=5, retry_on=(ConnectionError, TimeoutError))
def main():
    ...

License

MIT

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

py_eeive-0.0.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

py_eeive-0.0.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file py_eeive-0.0.2.tar.gz.

File metadata

  • Download URL: py_eeive-0.0.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for py_eeive-0.0.2.tar.gz
Algorithm Hash digest
SHA256 26c39e63478fa2bd452f3b5fc7d30d4f2ea9703ce89f4ef2f1f270b94870db1c
MD5 992ef0eb8af0243022fd793803e3816e
BLAKE2b-256 7e2788c667a5060f37e0f338bead57c06f03318fa915549159e40aa71f2e9dda

See more details on using hashes here.

File details

Details for the file py_eeive-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: py_eeive-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for py_eeive-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 90d7c392dfe455855e7c8d30a80669049dd37c0c69968fdf779fcfe87fea287c
MD5 79af94edc422e255a97bba9dfa3abe69
BLAKE2b-256 a3dfc2bbd2035e778aba8cbd2264537e0cb97e29c0c7a73633979dfb9aea3d8d

See more details on using hashes here.

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