Skip to main content

A library for executing running calculations

Project description


Instances of the RunnincCalc classes in this library can be fed one input value at a time. This allows running several calculations in a single pass over an iterator. This isn’t possible with the built-in variants of most calculations, such as max() and heapq.nlargest().

RunningCalc instances can be fed values directly, for example:

mean_rc, stddev_rc = RunningMean(), RunningStdDev()
for x in values:
mean, stddev = mean_rc.value, stddev_rc.value

Additionally, the apply_in_parallel() function is supplied, which makes performing several calculations in parallel easy (and fast!). For example:

mean, stddev = apply_in_parallel([RunningMean(), RunningStdDev()], values)
five_smallest, five_largest = apply_in_parallel([RunningNSmallest(5), RunningNLargest(5)], values)


In addition to the basic feed() method, some RunningCalc classes also implement an optimized feedMultiple() method, which accepts a sequence of values to be processed. This allows values to be processed in chunks, allowing for faster processing in many cases.

The apply_in_parallel() function automatically splits the given iterable of input values into chunks (chunk size can be controlled via the chunk_size keyword argument). Therefore using apply_in_parallel() is both fast and easy.

Writing Your Own RunningCalc Class

  1. sub-class RunningCalc
  2. implement the __init__() and feed() methods
  3. make the calculation output value accessible via the value attribute
  4. optionally implement an optimized feedMultiple() method Note: the RunningCalc base class includes a default naive implementation of feedMultiple()

Project details

Release history Release notifications

This version
History Node


History Node


History Node


History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date (6.6 kB) Copy SHA256 hash SHA256 Source None Feb 17, 2013

Supported by

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