Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Partial application of functions and method names, supporting placeholder values for positional arguments.

Project description

Partial application of functions and method names, supporting placeholder values for positional arguments.

Unlike functools.partial(), placeholder values are supported so that positional arguments for partial application do not need to be supplied solely from left to right. Keyword arguments are handled equivalently to functools.partial(). It is also possible to “partially apply” a method name, producing a function which looks up the method to call on the object supplied as its first argument.

Dependencies:

  • Python 2.7 or 3.4+.

Installation:

  • $ pip install partial-apply

Documentation:

  • Sphinx generated API documentation is available in the docs subdirectory of this repository and is also published on GitHub Pages.

Examples

An example of placeholder use:

from partial_apply import Empty, PartialFn, PartialMethod

isint = PartialFn(isinstance, Empty, int)

This makes a function isint() that takes one positional argument and returns True if it is an int and False otherwise. That is, calling isint(1) is equivalent to calling isinstance(1, int). The supplied positional arguments fill in Empty placeholder slots from left to right before reverting to functools.partial()-style appending.

An example of PartialMethod use:

count_true = PartialMethod('count', True)
count_true((False, True))  # returns 1
count_true([False, True])  # returns 1

This makes a function count_true() that counts the number of True values in a sequence. It looks up the sequence method count on the first argument and calls it with the single argument True. The calls shown are equivalent to (False, True).count(True) and [False, True].count(True). Since count_true() only stores the method name and not the method itself, it works on any type with a count() method.

Like PartialFn, PartialMethod supports placeholder positional arguments and functools.partial()-like keyword arguments.

Project details


Release history Release notifications

Download files

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

Files for partial-apply, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size partial_apply-1.0.0-py2-none-any.whl (5.2 kB) File type Wheel Python version py2 Upload date Hashes View hashes
Filename, size partial_apply-1.0.0-py3-none-any.whl (5.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size partial-apply-1.0.0.tar.gz (4.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page