Skip to main content

Guard clause library for Python projects, to validate arguments on every python function/method.

Project description

CheckArg

Guard clause library for Python projects, to validate arguments on every python function/method.

Installation

You can install the latest version of this software from the Python package index (PyPI) as follows:

pip install --upgrade checkarg

Usage

Using CheckArg to validate numbers

In the following example we want to guarantee the first argument is a negative number and the second argument has a positive value or zero:

import checkarg.number as Number

def doSomethingValid(negative_number: int, positive_number: int):
    Number.is_lower(negative_number, 0)
    Number.is_greater_or_equals(positive_number, 0)

    return negative_number, positive_number

Using CheckArg to validate text

The following example requires the string of the first argument has some content, if it is None or empty or whith whitespaces, it will rise an exception. The second argument only requires to not be None or an empty message:

import checkarg.text as Text

def doSomethingValid(title: str, body: str):
    Text.is_not_whitespace(title)
    Text.is_not_empty(body)

    return title, body

Controlling the flow with the exceptions

Whenever the CheckArg detects something wrong it will raise different exceptions by the context. This is an example controling the flow execution:

import checkarg.none_type as NoneType
import checkarg.number as Number
import checkarg.text as Text

from checkarg.exceptions import ArgumentNoneError, ArgumentError, ArgumentOutOfRangeError


def lookup_name(mapping, key: str, default: int):
    try:
        Number.is_greater(default, 0)
    except ArgumentOutOfRangeError:
        return None

    try:
        NoneType.is_not_none(mapping)
    except ArgumentNoneError:
        return default
    
    try:
        Text.is_not_empty(key)
    except (ArgumentError, ArgumentNoneError) as e:
        return default

    return mapping[key]

Contributing

Read the Contributing guidelines

Disclaimer

By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement

Maintainers

List of Maintainers

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

checkarg-0.2.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

checkarg-0.2.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file checkarg-0.2.0.tar.gz.

File metadata

  • Download URL: checkarg-0.2.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for checkarg-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4794c48765050f0bab51dcef267d8900cc4da57fc8385290a352467f2240033b
MD5 e6a9376cc9c960322b43e53b57ceff13
BLAKE2b-256 21a200a5178665d02c6c866a7c95c5622fd61cd9608e0e0520819e9bce0f0c4c

See more details on using hashes here.

File details

Details for the file checkarg-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: checkarg-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for checkarg-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45fbcd3c6b598fef5bd74d925e8bb4d52c18b84ceb3544882dc0dd4abc34e64c
MD5 1bacff7b5d6eac79113f0fc090128ffb
BLAKE2b-256 5491fc1adbdc3418fa147abadbd452a74854ce4c0df7157b079c6a5eaa8babd7

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