228 lines
6.4 KiB
Python
228 lines
6.4 KiB
Python
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.
|
|
"""
|
|
...
|