pyfcstm.entry.plantuml
State Machine DSL to PlantUML CLI Integration.
This module integrates a PlantUML generator into a Click-based command-line interface. It provides a subcommand that reads state machine DSL code from a file, parses it into an internal model, and emits PlantUML text either to a file or to standard output.
The module is intended to be used as part of a larger CLI application that manages multiple subcommands. It does not expose any public API directly; instead, it contributes functionality through the helper function that registers the subcommand.
Note
The CLI entry point relies on pyfcstm.dsl.parse.parse_with_grammar_entry()
and pyfcstm.model.model.parse_dsl_node_to_state_machine() to build the
model and assumes the input file contains valid state machine DSL content.
Example:
>>> import click
>>> from pyfcstm.entry.plantuml import _add_plantuml_subcommand
>>> cli = click.Group()
>>> _add_plantuml_subcommand(cli)
<...Group...>
PLANTUML_OPTION_TYPES
- pyfcstm.entry.plantuml.PLANTUML_OPTION_TYPES: Dict[str, type | str] = {'abstract_action_marker': <class 'str'>, 'collapse_empty_states': <class 'bool'>, 'collapsed_state_marker': <class 'str'>, 'detail_level': <class 'str'>, 'event_legend_position': <class 'str'>, 'event_name_format': 'tuple[str, ...]', 'event_visualization_mode': <class 'str'>, 'max_action_lines': <class 'int'>, 'max_depth': <class 'int'>, 'show_abstract_actions': <class 'bool'>, 'show_aspect_actions': <class 'bool'>, 'show_concrete_actions': <class 'bool'>, 'show_during_actions': <class 'bool'>, 'show_enter_actions': <class 'bool'>, 'show_events': <class 'bool'>, 'show_exit_actions': <class 'bool'>, 'show_lifecycle_actions': <class 'bool'>, 'show_pseudo_state_style': <class 'bool'>, 'show_transition_effects': <class 'bool'>, 'show_transition_guards': <class 'bool'>, 'show_variable_definitions': <class 'bool'>, 'state_name_format': 'tuple[str, ...]', 'transition_effect_mode': <class 'str'>, 'use_skinparam': <class 'bool'>, 'use_stereotypes': <class 'bool'>, 'variable_display_mode': <class 'str'>, 'variable_legend_position': <class 'str'>}
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s
(key, value) pairs
- dict(iterable) -> new dictionary initialized as if via:
d = {} for k, v in iterable:
d[k] = v
- dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)