Guava Like Preconditions in Python.
Project description
Guava like precondition enforcing for Python.
Has been tested against:
2.6
2.7
3.2
3.3
pypy
Decorate functions with preconditions so that your code documents itself and at the same time removes the boilerplate code that is typically required when checking parameters.
An Example:
def divideAby1or10( a, b ):
if not ( 1 <= b <= 10 ):
<raise some error>
else:
return a / b
Simply becomes the following:
from pyconditions.pre import Pre
pre = Pre()
@pre.between( "b", 1, 10 )
def divideAbyB( a, b )
return a / b
In the above example the precondition pre.between ensures that the b variable is between (1, 10) inclusive. If it is not then a PyCondition exception is thrown with the error message detailing what went wrong.
More Examples:
from pyconditions.pre import Pre
pre = Pre()
@pre.notNone( "a" )
@pre.between( "a", "a", "n" )
@pre.notNone( "b" )
@pre.between( "b", "n", "z" )
def concat( a, b ):
return a + b
The above ensures that the variables a and b are never None and that a is between ( ?a?, ?n? ) inclusively and b is between ( ?n?, ?z? ) inclusively.
from pyconditions.pre import Pre
pre = Pre()
BASES = [ 2, 3, 4 ]
@pre.custom( a, lambda x: x in BASES )
@pre.custom( b, lambda x: x % 2 == 0 )
def weirdMethod( a, b ):
return a ** b
Using the custom precondition you are able to pass in any function that receives a single parameter and perform whatever condition checking you need.
Project details
Release history Release notifications | RSS feed
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
Hashes for pyConditions-0.0.1.macosx-10.9-intel.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | c591362443817da83d3e1ae52cc21eadf0d4968c49d1547e56a8c17f39db7299 |
|
MD5 | 407be58cb16b183844e2994b388ffee1 |
|
BLAKE2b-256 | 847c4fa6f691d168694bfd92c462a29d56dcaf520ea615c926c64ff6feb5c1ae |