Guard clause library for Python projects, to validate arguments on every python function/method.
Project description
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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4794c48765050f0bab51dcef267d8900cc4da57fc8385290a352467f2240033b |
|
MD5 | e6a9376cc9c960322b43e53b57ceff13 |
|
BLAKE2b-256 | 21a200a5178665d02c6c866a7c95c5622fd61cd9608e0e0520819e9bce0f0c4c |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45fbcd3c6b598fef5bd74d925e8bb4d52c18b84ceb3544882dc0dd4abc34e64c |
|
MD5 | 1bacff7b5d6eac79113f0fc090128ffb |
|
BLAKE2b-256 | 5491fc1adbdc3418fa147abadbd452a74854ce4c0df7157b079c6a5eaa8babd7 |