Skip to main content

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

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

  • Download URL: criticalpath-0.1.5.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

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.

Release history Release notifications | RSS feed

This release

0.1.5 This release

1 file

0.1.4

1 file

0.1.3

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page