Skip to main content

Commenting sucks so let your code do it for you with Guava like preconditions that also actually do something.

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 Between

@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 Between, NotNone

@NotNone( "a" )
@Between( "a", "a", "n" )
@NotNone( "b" )
@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 Custom

BASES = [ 2, 3, 4 ]

@Custom( a, lambda x: x in BASES )
@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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyConditions-0.1.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

pyConditions-0.1.2.macosx-10.9-intel.exe (68.2 kB view details)

Uploaded Source

File details

Details for the file pyConditions-0.1.2.tar.gz.

File metadata

File hashes

Hashes for pyConditions-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3a85a5c443a0c4ee69b4c8e8470853b782683713ac392904dd578f159ab0a1b8
MD5 7af402de0cb9ea797df0afd4204f4fd9
BLAKE2b-256 59ec77933e6045ce80261e4cc1eb56454d79d66e2cbf892dba070f7f811e3407

See more details on using hashes here.

File details

Details for the file pyConditions-0.1.2.macosx-10.9-intel.exe.

File metadata

File hashes

Hashes for pyConditions-0.1.2.macosx-10.9-intel.exe
Algorithm Hash digest
SHA256 54faee32d66773b84761e9a70b0830570c9233f7ace3feb4e10e634bbce34c20
MD5 05b58ecb46b76214dda41d7208c5eeec
BLAKE2b-256 803418e56a6c39015a9571cc56f4fbbd538bcfb03598ae1dc8b147c5849bc89c

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