Declare Command: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| PedroLacerda (talk | contribs) No edit summary | PedroLacerda (talk | contribs)  No edit summary | ||
| Line 19: | Line 19: | ||
|      # Optional values aren't currently supported. |      # Optional values aren't currently supported. | ||
|      # Tuples are. |      # Tuples are. | ||
|      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", | ||
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