Declare Command: Difference between revisions
Jump to navigation
Jump to search
PedroLacerda (talk | contribs) |
PedroLacerda (talk | contribs) No edit summary |
||
Line 9: | Line 9: | ||
==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 | @cmd.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, | extended_calculation: bool = True, | ||
old_style: Any = "Support anything currently not supported", | old_style: Any = "Support anything currently not supported", |
Revision as of 09:16, 20 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