Skip to main content

Diagramming tools for the Thinking Processes from the Theory of Constraints

Project description

Thinking Processes

This Python package helps you to draw diagrams used in the Thinking Processes from the Theory of Constraints. For more information, see https://en.wikipedia.org/wiki/Thinking_processes_(theory_of_constraints)

Prerequisites

Python 3.11+

Installing

pip install thinking-processes

Current Reality Tree

In this example, we find root causes for undesired effects by drawing a Current Reality Tree:

from thinking_processes import CurrentRealityTree

crt = CurrentRealityTree()
        
engine_not_start = crt.add_node("Car's engine will not start")
engine_needs_fuel = crt.add_node('Engine needs fuel in order to run')
no_fuel_to_engine = crt.add_node('Fuel is not getting to the engine')
water_in_fuel_line = crt.add_node('There is water in the fuel line')
crt.add_causal_relation([engine_needs_fuel, no_fuel_to_engine], engine_not_start)
crt.add_causal_relation([water_in_fuel_line], no_fuel_to_engine)

air_conditioning_not_working = crt.add_node('Air conditioning is not working')
air_not_circulating = crt.add_node('Air is not able to circulate')
air_intake_full_of_water = crt.add_node('The air intake is full of water')
crt.add_causal_relation([air_not_circulating], air_conditioning_not_working)
crt.add_causal_relation([air_intake_full_of_water], air_not_circulating)

radio_distorted = crt.add_node('Radio sounds distorted')
speakers_obstructed = crt.add_node('The speakers are obstructed')
speakers_underwater = crt.add_node('The speakers are underwater')
crt.add_causal_relation([speakers_obstructed], radio_distorted)
crt.add_causal_relation([speakers_underwater], speakers_obstructed)

car_in_pool = crt.add_node('The car is in the swimming pool')
crt.add_causal_relation([car_in_pool], speakers_underwater)
crt.add_causal_relation([car_in_pool], air_intake_full_of_water)
crt.add_causal_relation([car_in_pool], water_in_fuel_line)

handbreak_faulty = crt.add_node('The handbreak is faulty')
handbreak_stops_car = crt.add_node('The handbreak stops the car from rolling into the swimming pool')
crt.add_causal_relation([handbreak_faulty, handbreak_stops_car], car_in_pool)

crt.plot(view=True, filepath='crt.png')

The resulting tree looks like this:

Current Reality Tree

Development

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Running the tests

All tests in the "tests" directory are based on the unittest package.

Deployment

make rm -R dist build thinking-processes.egg-info || python -m build && twine upload --skip-existing --verbose dist/*

You should also create a tag for the current version

git tag -a [version] -m "describe what has changed"
git push --tags

Versioning

We use SemVer for versioning.

Authors

If you have any questions, feel free to ask one of our authors:

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

thinking_processes-0.0.1.tar.gz (42.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thinking_processes-0.0.1-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file thinking_processes-0.0.1.tar.gz.

File metadata

  • Download URL: thinking_processes-0.0.1.tar.gz
  • Upload date:
  • Size: 42.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for thinking_processes-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3007c14fa1b9974bb49c401161b00d57172a19ea53746a58455154523ca867a3
MD5 d3f35acf3d82de04a78a58d7a10ad7b3
BLAKE2b-256 8dcd1a0b0fff836a7d91519fbf090984fdf2a3a394634b9a090b15b921a69164

See more details on using hashes here.

File details

Details for the file thinking_processes-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for thinking_processes-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 090ff0d397b6447bc3a1292d3976c5bcf38b4939f02cc83db08c7588b40c1486
MD5 5ef8707db83c2c8ea952238fc7c430fc
BLAKE2b-256 c5f30efdaa35bb758ac7a6ddc5b8254016dc78cddbd08fce646fa88020300d72

See more details on using hashes here.

Supported by

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