https://github.com/farfetch/checkarg
Guard clause library for Python projects, to validate arguments on every python function/method.
https://github.com/farfetch/checkarg
farfetch guard-clauses hacktoberfest python
Last synced: 6 months ago
JSON representation
Guard clause library for Python projects, to validate arguments on every python function/method.
- Host: GitHub
- URL: https://github.com/farfetch/checkarg
- Owner: Farfetch
- License: mit
- Created: 2020-07-14T17:53:34.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-16T09:30:46.000Z (over 1 year ago)
- Last Synced: 2025-04-13T09:07:54.403Z (6 months ago)
- Topics: farfetch, guard-clauses, hacktoberfest, python
- Language: Python
- Homepage:
- Size: 256 KB
- Stars: 21
- Watchers: 6
- Forks: 4
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README

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:```bash
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:
```python
import checkarg.number as Numberdef 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:
```python
import checkarg.text as Textdef 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:
```python
import checkarg.none_type as NoneType
import checkarg.number as Number
import checkarg.text as Textfrom checkarg.exceptions import ArgumentNoneError, ArgumentError, ArgumentOutOfRangeError
def lookup_name(mapping, key: str, default: int):
try:
Number.is_greater(default, 0)
except ArgumentOutOfRangeError:
return Nonetry:
NoneType.is_not_none(mapping)
except ArgumentNoneError:
return default
try:
Text.is_not_empty(key)
except (ArgumentError, ArgumentNoneError) as e:
return defaultreturn mapping[key]
```## Contributing
Read the [Contributing guidelines](CONTRIBUTING.md)### Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our [Contributor Ownership Statement](https://github.com/Farfetch/.github/blob/master/COS.md)## Maintainers
List of [Maintainers](MAINTAINERS.md)## License
[MIT](LICENSE)