Skip to main content

Create PlantUML sequence charts programmatically from Python

Project description

plantuml-sequence

Create PlantUML sequence charts programmatically from Python

The basic example of the PlantUML Documentation can be implemented with the following Python script:

from plantuml_sequence import Diagram

with open("my-diagram.puml", "w") as file, Diagram(file) as sequence:
    (
        sequence.message("Alice", "Bob", "Authentication Request")
        .message("Bob", "Alice", "Authentication Response", arrow_style="-->")
        .blank_line()
        .message("Alice", "Bob", "Another authentication Request")
        .message("Alice", "Bob", "Another authentication Response", arrow_style="<--")
    )

Its output inside my-diagram.puml is:

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml

This file be compiled to an image using the plantuml command-line or a online server. See the PlantUML documentation for more details.


Read the documentation on ReadTheDocs!


Installation and supported Python versions

pip install plantuml-sequence

Python 3.10+ is supported

Supported PlantUML features

Not all of the features of message sequence charts are supported yet. See the list of implemented features below.

General

  • Use teoz renderer

Participants

  • Declaring participants
  • Multiline participants
  • Create participant with message
  • Lifeline activation / deactivation
  • Lifeline auto-activate
  • Participants encompass (Box around participants)
  • Remove foot boxes

Messages

  • Messages
  • Basic autonumber message numbering
  • Advanced auto numbering
    • autonumber formats
    • autonumber sequence increments
  • Hide unlinked participants
  • Mainframe

Notes

  • Different note shapes (note, hnote, rnote)
  • Notes on messages
  • Notes over / left / right of lifelines
  • Notes across all participants
  • Multiple notes at the same level

Flow

  • Basic message grouping
  • alt / else groups
  • Divider
  • Reference
  • Delay
  • Space

Styling

  • Colored groups
  • Arrow style change
    • Standard arrow styles
    • Short arrows
  • Slanted arrows
  • Styling changes using the skinparam command

Preprocessing

Currently no preprocessing features are planned to be supported

  • Variable definition
  • Boolean expression
  • Conditions
  • While loops
  • Procedures & functions blocks
  • Include directive
  • Memory dump
  • Assertions

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

plantuml_sequence-0.3.0.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distribution

plantuml_sequence-0.3.0-py3-none-any.whl (9.6 kB view hashes)

Uploaded Python 3

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