Calculates the critical path in a task network.
Project description
CriticalPath
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
File details
Details for the file criticalpath-0.1.5.tar.gz
.
File metadata
- Download URL: criticalpath-0.1.5.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b140415d3b3d355af8cb3875ab89b1e155a98afe86c374bcdf045fa19d36fa0d |
|
MD5 | 6e407555a6c19c5babb945106f591bd8 |
|
BLAKE2b-256 | f0b34a0151bffc3315f414c483dce6313b8473a2d0221a359a4d80d48fa78cba |