Declare Command: Difference between revisions
Jump to navigation
Jump to search
PedroLacerda (talk | contribs) No edit summary |
PedroLacerda (talk | contribs) No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==The problem== | ==The problem== | ||
Current PyMOL approach to new plugin commands is outdated. | |||
==The proposal | ==The proposal== | ||
Introduce a new system based on modern Python with type checking and implicit | Introduce a new system based on modern Python with type checking and implicit type coercion. | ||
==What works right now?== | ==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. | |||
<source lang="python"> | |||
@cmd.declare_command | |||
@declare_command | |||
def new_command( | def new_command( | ||
my_var: int | float, | |||
dirname: Path = '.', | dirname: Path = '.', | ||
# Optional values aren't currently supported. | |||
# Tuples are. | |||
nullable_point: Optional[Tuple[int, int, int]] = None, | nullable_point: Optional[Tuple[int, int, int]] = None, | ||
extended_calculation: bool = True, | |||
old_style: Any = "Support anything currently not supported", | |||
) | ): | ||
""" | """ | ||
A cool docstring. | A cool docstring. | ||
""" | """ | ||
pass | pass | ||
</source> | |||
Latest revision as of 08:09, 21 June 2025
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