from Base.Metadata import export, constmethod from Base.Persistence import Persistence from typing import Any, Final, Union, List, Optional @export( DisableNotify=True, ) class PropertyContainer(Persistence): """ App.PropertyContainer class. """ PropertiesList: Final[list] = [] """A list of all property names.""" def getPropertyByName(self, name: str, checkOwner: int = 0) -> Any: """ getPropertyByName(name, checkOwner=0) -> object or Tuple Returns the value of a named property. Note that the returned property may not always belong to this container (e.g. from a linked object). name : str Name of the property. checkOwner : int 0: just return the property. 1: raise exception if not found or the property does not belong to this container. 2: return a tuple (owner, propertyValue). """ ... def getPropertyTouchList(self, name: str) -> tuple: """ getPropertyTouchList(name) -> tuple Returns a list of index of touched values for list type properties. name : str Property name. """ ... def getTypeOfProperty(self, name: str) -> list: """ getTypeOfProperty(name) -> list Returns the type of a named property. This can be a list conformed by elements in (Hidden, NoRecompute, NoPersist, Output, ReadOnly, Transient). name : str Property name. """ ... def getTypeIdOfProperty(self, name: str) -> str: """ getTypeIdOfProperty(name) -> str Returns the C++ class name of a named property. name : str Property name. """ ... def setEditorMode(self, name: str, type: Union[int, List[str]]) -> None: """ setEditorMode(name, type) -> None Set the behaviour of the property in the property editor. name : str Property name. type : int, sequence of str Property type. 0: default behaviour. 1: item is ready-only. 2: item is hidden. 3: item is hidden and read-only. If sequence, the available items are 'ReadOnly' and 'Hidden'. """ ... def getEditorMode(self, name: str) -> list: """ getEditorMode(name) -> list Get the behaviour of the property in the property editor. It returns a list of strings with the current mode. If the list is empty there are no special restrictions. If the list contains 'ReadOnly' then the item appears in the property editor but is disabled. If the list contains 'Hidden' then the item even doesn't appear in the property editor. name : str Property name. """ ... def getGroupOfProperty(self, name: str) -> str: """ getGroupOfProperty(name) -> str Returns the name of the group which the property belongs to in this class. The properties are sorted in different named groups for convenience. name : str Property name. """ ... def setGroupOfProperty(self, name: str, group: str) -> None: """ setGroupOfProperty(name, group) -> None Set the name of the group of a dynamic property. name : str Property name. group : str Group name. """ ... def setPropertyStatus( self, name: str, val: Union[int, str, List[Union[str, int]]] ) -> None: """ setPropertyStatus(name, val) -> None Set property status. name : str Property name. val : int, str, sequence of str or int Call getPropertyStatus() to get a list of supported text value. If the text start with '-' or the integer value is negative, then the status is cleared. """ ... def getPropertyStatus(self, name: str = "") -> list: """ getPropertyStatus(name='') -> list Get property status. name : str Property name. If empty, returns a list of supported text names of the status. """ ... def getDocumentationOfProperty(self, name: str) -> str: """ getDocumentationOfProperty(name) -> str Returns the documentation string of the property of this class. name : str Property name. """ ... def setDocumentationOfProperty(self, name: str, docstring: str) -> None: """ setDocumentationOfProperty(name, docstring) -> None Set the documentation string of a dynamic property of this class. name : str Property name. docstring : str Documentation string. """ ... def getEnumerationsOfProperty(self, name: str) -> Optional[list]: """ getEnumerationsOfProperty(name) -> list or None Return all enumeration strings of the property of this class or None if not a PropertyEnumeration. name : str Property name. """ ... @constmethod def dumpPropertyContent(self, Property: str, *, Compression: int = 3) -> bytearray: """ dumpPropertyContent(Property, Compression=3) -> bytearray Dumps the content of the property, both the XML representation and the additional data files required, into a byte representation. Property : str Property Name. Compression : int Set the data compression level in the range [0, 9]. Set to 0 for no compression. """ ... def restorePropertyContent(self, name: str, obj: object) -> None: """ restorePropertyContent(name, obj) -> None Restore the content of the object from a byte representation as stored by `dumpPropertyContent`. It could be restored from any Python object implementing the buffer protocol. name : str Property name. obj : buffer Object with buffer protocol support. """ ... @constmethod def renameProperty(self, oldName: str, newName: str) -> None: """ renameProperty(oldName, newName) -> None Rename a property. oldName : str Old property name. newName : str New property name. """ ...