Skip to main content

Create PlantUML sequence diagrams programmatically from Python

Project description

plantuml-sequence

Create PlantUML sequence diagrams 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.5.1.tar.gz (68.1 kB view details)

Uploaded Source

Built Distribution

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

plantuml_sequence-0.5.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file plantuml_sequence-0.5.1.tar.gz.

File metadata

  • Download URL: plantuml_sequence-0.5.1.tar.gz
  • Upload date:
  • Size: 68.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.22

File hashes

Hashes for plantuml_sequence-0.5.1.tar.gz
Algorithm Hash digest
SHA256 0146d2bb64bbc66c05798b25720ce179378165c59b1499e85c0584924415de3f
MD5 5f882f5ef766ad773ef7ef242ed5892c
BLAKE2b-256 736b66d90615046453742e57d798eee363828bd7116475f56f812c0abe67ba31

See more details on using hashes here.

File details

Details for the file plantuml_sequence-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for plantuml_sequence-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3bb6d9539c05734fd41f080db775bfa1fcb08872584f5e42a08bc10de5a7484
MD5 ce9f7d0c1d66883fba73ac503e67eb01
BLAKE2b-256 266fa7bac9731a80dabdb3928e9fb0fc2ebd795239803b0f061b3fa5f6316cb3

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