Skip to main content

Calculates the critical path in a task network.

Project description


Build Status

Calculates the critical path through a network of tasks.

Assumes the given graph is acyclic (has no loops).

A task network is composed of nodes, but it's also organized within a parent node. This allows my node/task model to support recursive nesting of tasks. e.g. An overall "project" node containing multiple tasks can be treated as a single task in itself, and therefore included in more abstract task groupings.


pip install criticalpath


>>> from criticalpath import Node
>>> p = Node('project')
>>> a = p.add(Node('A', duration=3))
>>> b = p.add(Node('B', duration=3, lag=0))
>>> c = p.add(Node('C', duration=4, lag=0))
>>> d = p.add(Node('D', duration=6, lag=0))
>>> e = p.add(Node('E', duration=5, lag=0))
>>>, b).link(a, c).link(a, d).link(b, e).link(c, e).link(d, e)
>>> p.update_all()
>>> p.get_critical_path()
[A, D, E]
>>> p.duration


To run unittests across multiple Python versions, install:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python-dev python3-dev python3.3-minimal python3.3-dev python3.4-minimal python3.4-dev python3.5-minimal python3.5-dev python3.6 python3.6-dev

To run all tests:

export TESTNAME=; tox

To run tests for a specific environment (e.g. Python 2.7):

export TESTNAME=; tox -e py27

Project details

Download files

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

Files for criticalpath, version 0.1.4
Filename, size File type Python version Upload date Hashes
Filename, size criticalpath-0.1.4.tar.gz (10.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page