Declare Command

From PyMOLWiki
Revision as of 08:09, 21 June 2025 by PedroLacerda (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The problem

Current PyMOL approach to new plugin commands is outdated.

The proposal

Introduce a new system based on modern Python with type checking and implicit type coercion.

What works right now?

There's some support on PyMOL open-source, but not on Incentive. However it isn't working for all possible cases.


@cmd.declare_command
def new_command(
    my_var: int | float,
    dirname: Path = '.',
    # Optional values aren't currently supported.
    # Tuples are.
    nullable_point: Optional[Tuple[int, int, int]] = None,
    extended_calculation: bool = True,
    old_style: Any = "Support anything currently not supported",
):
    """
    A cool docstring.
    """
    pass