Skip to main content

Calculates the critical path in a task network.

Project description

CriticalPath

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.

Installation

pip install criticalpath

Usage

>>> 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))
>>> p.link(a, b).link(a, c).link(a, d).link(b, e).link(c, e).link(d, e)
project
>>> p.update_all()
>>> p.get_critical_path()
[A, D, E]
>>> p.duration
14

Development

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.

Source Distribution

criticalpath-0.1.5.tar.gz (10.8 kB view details)

Uploaded Source

File details

Details for the file criticalpath-0.1.5.tar.gz.

File metadata

File hashes

Hashes for criticalpath-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b140415d3b3d355af8cb3875ab89b1e155a98afe86c374bcdf045fa19d36fa0d
MD5 6e407555a6c19c5babb945106f591bd8
BLAKE2b-256 f0b34a0151bffc3315f414c483dce6313b8473a2d0221a359a4d80d48fa78cba

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