From: Vasek Sraier Date: Sat, 19 Nov 2022 10:53:18 +0000 (+0100) Subject: manager: utils: renaming: added basic docs X-Git-Tag: v6.0.0a1~14^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35941cdc5a744de2f9fd8f9dc68b5630bada24ee;p=thirdparty%2Fknot-resolver.git manager: utils: renaming: added basic docs --- diff --git a/manager/knot_resolver_manager/utils/modeling/renaming.py b/manager/knot_resolver_manager/utils/modeling/renaming.py index 057756770..ec992c113 100644 --- a/manager/knot_resolver_manager/utils/modeling/renaming.py +++ b/manager/knot_resolver_manager/utils/modeling/renaming.py @@ -1,3 +1,20 @@ +""" +This module implements a standard dict and list alternatives, which can dynamically rename its keys replacing `-` with `_`. +They persist in nested data structes, meaning that if you try to obtain a dict from Renamed variant, you will actually +get RenamedDict back instead. + +Usage: + +d = dict() +l = list() + +rd = renamed(d) +rl = renamed(l) + +assert isinstance(rd, Renamed) == True +assert l = rl.original() +""" + from abc import ABC, abstractmethod from typing import Any, Dict, List, TypeVar @@ -68,3 +85,6 @@ def renamed(obj: Any) -> Any: return RenamedList(obj) else: return obj + + +__all__ = ["renamed", "Renamed"]