Properties#

This class defines a property (similar to Python built-in properties), i.e., a pair of getter and setter. In addition, it holds (for auto- documentation) a default value, a description, and the name of the involved types. A property has a value of type PropertyField, which is one of bool, int, float, string, Vector2 or a collection (a vector in C++, a list in Python) thereof. Properties are used to configure sub-classes of HasProperties when using bindings like YAML or Python. Properties values are accessed using the methods exposed by HasProperties.

Constructs a navground property from a Python property.

Parameters:
  • property (property) – The Python property

  • default (navground.core.PropertyField) – The default value, also used to set the type of the property.

  • description (str) – Optional description

  • schema (typing.Callable[[dict[str, typing.Any]], None]) – Optional schema modifier

  • deprecated_names (list[str]) – A list of deprecated names for this property

Type:

Union[bool, int, float, str, Vector2, list[bool], list[int], list[float], list[str], list[Vector2]]

The property default value, i.e., the value of the property when the object is initialized.

Type:

list[str]

Alternative deprecated names for the property

Type:

str

A textual description of the property, used for auto documentation.

Type:

str

The name of the property-owner type.

Type:

bool

Whether the property is readonly

Type:

str

The name of the property value type, used for auto documentation.

This class defines set and get methods to access named Property “properties”.

Gets the value of the specified property.

Parameters:

name – The name of the property

Raise:

std::runtime_error A runtime error if no property is found.

Returns:

The value of the property

Set the value of a named property. Fails silently if no property can be found or if the value has a non-compatible type.

Parameters:
  • name – The name of the property

  • value – The desired value for the property