nmk.model.config

nmk configuration objects

Attributes

CONFIG_REF_PATTERN

Pattern to locate config reference in string

FINAL_ITEM_PATTERN

Pattern to recognize final config items

ConfigTypes

Used config item types

Classes

NmkConfig

nmk configuration item base class

NmkStaticConfig

Static config item (defined in project file)

NmkMergedConfig

Merged config item base class

NmkListConfig

Merged list config item

NmkDictConfig

Merged list config item

NmkResolvedConfig

Resolved config item class

Module Contents

nmk.model.config.CONFIG_REF_PATTERN

Pattern to locate config reference in string

nmk.model.config.FINAL_ITEM_PATTERN

Pattern to recognize final config items

nmk.model.config.ConfigTypes

Used config item types

class nmk.model.config.NmkConfig

Bases: abc.ABC

nmk configuration item base class

name: str

Item name

model: object

Model instance

path: pathlib.Path

Defining project file path

property is_final: bool

Returns true if current item is a final one

property value: ConfigTypes

Returns current item value

resolve(cache: bool = True, resolved_from: set[str] | None = None) ConfigTypes

Resolves item value

Parameters:
  • cache – use cached value, if already resolved

  • resolved_from – set of item names referencing this item

Returns:

resolved item value

property value_type: type[Any]
Abstractmethod:

Value type for this item; to be overridden by sub-classes

Returns:

value type

class nmk.model.config.NmkStaticConfig

Bases: NmkConfig

Static config item (defined in project file)

static_value: str | int | bool | list[Any] | dict[str, Any]

Project defined value

volatile: bool = False

Disable cache for this item

property value_type: type[Any]

Value type for this static item

Returns:

value type

class nmk.model.config.NmkMergedConfig

Bases: NmkConfig

Merged config item base class

static_list: list[NmkStaticConfig]

List of merged static items

traverse_list(items: list, out_list: list, cache: bool, resolved_from: set[str], holder)

Recursive list resolution

Parameters:
  • items – list of items to be traversed

  • out_list – resolved output list

  • cache – use cache or not

  • resolved_from – set of item names referencing this item

traverse_dict(items: dict, out_dict: dict, cache: bool, resolved_from: set[str], holder)

Recursive dict resolution

Parameters:
  • items – dict of items to be traversed

  • out_dict – resolved output dict

  • cache – use cache or not

  • resolved_from – set of item names referencing this item

class nmk.model.config.NmkListConfig

Bases: NmkMergedConfig

Merged list config item

property value_type: type[Any]

Value type for this item

Returns:

list type

class nmk.model.config.NmkDictConfig

Bases: NmkMergedConfig

Merged list config item

property value_type: type[Any]

Value type for this item

Returns:

dict type

class nmk.model.config.NmkResolvedConfig

Bases: NmkConfig

Resolved config item class

resolver: collections.abc.Callable

Config resolver instance for this item

params: NmkDictConfig

Resolver parameters

resolve(cache: bool = True, resolved_from: set[str] = None) str | int | bool | list | dict

Resolves item value (with disabled cache if resolver is volatile)

Parameters:
  • cache – use cached value, if already resolved

  • resolved_from – set of item names referencing this item

Returns:

resolved item value

property value_type: type[Any]

Value type for this item

Returns:

value type