Skip to main content

Python utility decorator and context manager for swapping exceptions

Project description

swap-exceptions

PyPI PyPI - Python Version PyPI License Code Style: black

Python utility decorator and context manager for swapping exceptions.

Basic Usage

As a decorator:

from swap_exceptions import swap_exceptions

@swap_exceptions({KeyError: ValueError("Incorrect value")})
def get_value(key: str):
    d = {'a': 1, 'b': 2}
    return d[key]

get_value('c')  # ValueError: Incorrect value

Or as a context manager:

from swap_exceptions import swap_exceptions

def get_value(key: str):
    d = {'a': 1, 'b': 2}
    with swap_exceptions({KeyError: ValueError("Incorrect value")}):
        return d[key]

get_value('c')  # ValueError: Incorrect value

Advanced Usage

Mapping key can also be a tuple:

from swap_exceptions import swap_exceptions

@swap_exceptions({(KeyError, TypeError): ValueError("Incorrect value")})
def get_value(key: str):
    d = {'a': 1, 'b': 2, 'c': 'not a number'}
    return d[key] + 10

get_value('c')  # ValueError: Incorrect value

Mapping value can also be a factory that generates the exception:

from swap_exceptions import swap_exceptions

@swap_exceptions({KeyError: lambda e: ValueError(f"Incorrect value {e.args[0]}")})
def get_value(key: str):
    d = {'a': 1, 'b': 2}
    return d[key]

get_value('c')  # ValueError: Incorrect value c

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

swap-exceptions-1.0.2.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

swap_exceptions-1.0.2-py2.py3-none-any.whl (3.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file swap-exceptions-1.0.2.tar.gz.

File metadata

  • Download URL: swap-exceptions-1.0.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.3.0-1034-azure

File hashes

Hashes for swap-exceptions-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f0b805900ea6ab06c556122f5a6e6ceddcba8b3775d0c421f4c5b71f7623c1e1
MD5 8e37d68846cb004d8401cb062578d757
BLAKE2b-256 873b06b86077ec743473a6a2048a9fb68db29ee651631c4aaceaecf6fcb8cff4

See more details on using hashes here.

File details

Details for the file swap_exceptions-1.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: swap_exceptions-1.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.3.0-1034-azure

File hashes

Hashes for swap_exceptions-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 36e708836de4bb5e4c211a4cf502aa6c91f7d0e0e3b0f0fcdbcd08d11aba409b
MD5 c1d0bd080b3e28e5f6a92f212479cd0c
BLAKE2b-256 7d3255eb9e4df53bcf24c933a81a616f328c54258b816a389a80857d761cc3e1

See more details on using hashes here.

Supported by

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