nmk.model.config ================ .. py:module:: nmk.model.config .. autoapi-nested-parse:: nmk configuration objects Attributes ---------- .. autoapisummary:: nmk.model.config.CONFIG_REF_PATTERN nmk.model.config.FINAL_ITEM_PATTERN Classes ------- .. autoapisummary:: nmk.model.config.NmkConfig nmk.model.config.NmkStaticConfig nmk.model.config.NmkMergedConfig nmk.model.config.NmkListConfig nmk.model.config.NmkDictConfig nmk.model.config.NmkResolvedConfig Module Contents --------------- .. py:data:: CONFIG_REF_PATTERN Pattern to locate config reference in string .. py:data:: FINAL_ITEM_PATTERN Pattern to recognize final config items .. py:class:: NmkConfig Bases: :py:obj:`abc.ABC` nmk configuration item base class .. py:attribute:: name :type: str Item name .. py:attribute:: model :type: object Model instance .. py:attribute:: path :type: pathlib.Path Defining project file path .. py:property:: is_final :type: bool Returns true if current item is a final one .. py:property:: value :type: Union[str, int, bool, list, dict] Returns current item value .. py:method:: resolve(cache: bool = True, resolved_from: set[str] = None) -> Union[str, int, bool, list, dict] Resolves item value :param cache: use cached value, if already resolved :param resolved_from: set of item names referencing this item :return: resolved item value .. py:property:: value_type :type: object :abstractmethod: Value type for this item; to be overridden by sub-classes :return: value type .. py:class:: NmkStaticConfig Bases: :py:obj:`NmkConfig` Static config item (defined in project file) .. py:attribute:: static_value :type: Union[str, int, bool, list, dict] Project defined value .. py:property:: value_type :type: object Value type for this static item :return: value type .. py:class:: NmkMergedConfig Bases: :py:obj:`NmkConfig` Merged config item base class .. py:attribute:: static_list :type: list[NmkStaticConfig] :value: [] List of merged static items .. py:method:: traverse_list(items: list, out_list: list, cache: bool, resolved_from: set[str], holder) Recursive list resolution :param items: list of items to be traversed :param out_list: resolved output list :param cache: use cache or not :param resolved_from: set of item names referencing this item .. py:method:: traverse_dict(items: dict, out_dict: dict, cache: bool, resolved_from: set[str], holder) Recursive dict resolution :param items: dict of items to be traversed :param out_dict: resolved output dict :param cache: use cache or not :param resolved_from: set of item names referencing this item .. py:class:: NmkListConfig Bases: :py:obj:`NmkMergedConfig` Merged list config item .. py:property:: value_type :type: object Value type for this item :return: list type .. py:class:: NmkDictConfig Bases: :py:obj:`NmkMergedConfig` Merged list config item .. py:property:: value_type :type: object Value type for this item :return: dict type .. py:class:: NmkResolvedConfig Bases: :py:obj:`NmkConfig` Resolved config item class .. py:attribute:: resolver :type: Callable Config resolver instance for this item .. py:attribute:: params :type: NmkDictConfig Resolver parameters .. py:method:: resolve(cache: bool = True, resolved_from: set[str] = None) -> Union[str, int, bool, list, dict] Resolves item value (with disabled cache if resolver is volatile) :param cache: use cached value, if already resolved :param resolved_from: set of item names referencing this item :return: resolved item value .. py:property:: value_type :type: object Value type for this item :return: value type