Skip to main content

Processpiper. An open source python library to generate business process diagram using code.

Project description

release Wheel Downloads Platforms license CodeFactor code size python version stars CI Twitter Follow

ProcessPiper (Business Process Diagram as Code)

ProcessPiper is an open source python library to generate business process diagram using python code or PiperFlow syntax.

InstallationUsage GuideChangelogs


Method 1: Generate business process diagram using English like PiperFlow syntax

This is a sample code to generate a business process diagram using PiperFlow syntax.

from processpiper.text2diagram import render

input_syntax = """
title: Sample Test Process
colourtheme: BLUEMOUNTAIN
    lane: End User
        (start) as start
        [Enter Keyword] as enter_keyword
        (end) as end
pool: System Search
    lane: Database System
        [Login] as login
        [Search Records] as search_records
        <Result Found?> as result_found
        [Display Result] as display_result
        [Logout] as logout
    lane: Log System
        [Log Error] as log_error

start->login: User \\nAuthenticate
login->enter_keyword: Authenticated
enter_keyword->search_records: Search Criteria
search_records->result_found: Result
result_found->display_result: Yes
display_result->logout->end
result_found->log_error: No
log_error->display_result

footer: Generated by ProcessPiper
"""

render(input_syntax, "my_process_map.png")

Method 2: Generate business process diagram using Python code

This is a sample code to generate a business process diagram using Python code. The code is self-explanatory. The diagram is generated using the default colour theme.

from processpiper import ProcessMap, EventType, ActivityType, GatewayType

with ProcessMap(
    "Sample Test Process", colour_theme="BLUEMOUNTAIN") as my_process_map:
    with my_process_map.add_lane("End User") as lane1:
        start = lane1.add_element("Start", EventType.START)
        enter_keyword = lane1.add_element("Enter Keyword", ActivityType.TASK)

    with my_process_map.add_pool("System Search") as pool1:
        with pool1.add_lane("Database System") as lane2:
            login = lane2.add_element("Login", ActivityType.TASK)
            search_records = lane2.add_element("Search Records", ActivityType.TASK)
            result_found = lane2.add_element("Result Found?", GatewayType.EXCLUSIVE)
            display_result = lane2.add_element("Display Result", ActivityType.TASK)
            logout = lane2.add_element("Logout", ActivityType.TASK)
            end = lane2.add_element("End", EventType.END)

        with pool1.add_lane("Log System") as lane3:
            log_error = lane3.add_element("Log Error", ActivityType.TASK)

    start.connect(login, "User \nAuthenticates").connect(
        enter_keyword, "Authenticated"
    ).connect(search_records, "Search Criteria")
    search_records.connect(result_found, "Result").connect(display_result, "Yes")
    display_result.connect(logout).connect(end)
    result_found.connect(log_error, "No").connect(display_result)

    my_process_map.set_footer("Generated by ProcessPiper")
    my_process_map.draw()
    my_process_map.save("my_process_map.png")

The generated diagram is as follows: Process Map

Features

  • Generate business process diagrams with Python code
  • Alternatively business process diagram can be generated by using PiperFlow
  • Business process diagrams contains
    • Diagram title
    • Pool(s)
    • Lane(s)
    • Elements:
      • Event: Start, End, Timer, Intermediate, Message, Signal, Conditional and Link
      • Activity: Task, Subprocess
      • Gateway: Inclusive, Exclusive, Parallel, Event
  • Support for different colour themes (See gallery) :
    • Default
    • GREYWOOF
    • BLUEMOUNTAIN
    • ORANGEPEEL
    • GREENTURTLE
    • SUNFLOWER
    • PURPLERAIN
    • RUBYRED
    • TEALWATERS
    • SEAFOAMS
  • Diagrams can be saved to PNG or SVG formats

Frontend Application

Two frontend applications have been developed to showcase ProcessPiper capability.

Support and Community

ProcessPiper is still in the early days of development, if you have any problem, I will try my best to resolve it.

  • 📄 Find a solution in our Wiki
  • ⚠️ Open an issue right here on GitHub

Any ideas or suggestions, please send it to me via GitHub Discussions.

How to Contribute

If you'd like to contribute, start by reading our Contribution Guide.

Lets build great software together.

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

processpiper-0.8.0.tar.gz (48.2 kB view details)

Uploaded Source

Built Distribution

processpiper-0.8.0-py3-none-any.whl (60.0 kB view details)

Uploaded Python 3

File details

Details for the file processpiper-0.8.0.tar.gz.

File metadata

  • Download URL: processpiper-0.8.0.tar.gz
  • Upload date:
  • Size: 48.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for processpiper-0.8.0.tar.gz
Algorithm Hash digest
SHA256 f6bc8ee267362655219b639e88ef98ac36c783554e59efb1d8cfa7674e2a4cc2
MD5 a02e1e440c83d28bf706c15b339dfa53
BLAKE2b-256 41a7fc205cf4d285f15cf871395026e0e56ba78066493a189d03f1e6e5728ced

See more details on using hashes here.

File details

Details for the file processpiper-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: processpiper-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 60.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for processpiper-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd6aab7bac86f25b10cbf8cf0ec33a0cd44c5bb1de9a1f10ba6ab201de4dae29
MD5 8b44cbbfe1234e390a0cdd66517192d8
BLAKE2b-256 2ef8bb18d8a7626405838f0f830a6269b372318db04fb4afeff5cbce0b6e2e97

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