Source code for warg.mixins.ordinal_index_mixin

__author__ = "Christian Heider Lindbjerg"
__doc__ = ""

__all__ = [
    "OrdinalIndexingDictMixin",
]

import logging
from typing import Any, Union

_logger = logging.getLogger(__name__)


[docs] class OrdinalIndexingDictMixin: """ Mixin class for indexing a class instance __dict__ (SortedDict) with both integer (ordinal) indexing or key:str attributes (non-ordinal) access.""" def __getitem__(self, item: Union[int, Any]) -> Any: if isinstance(item, int): return list(self.__dict__.values())[item] else: return self.__dict__[item]
if __name__ == "__main__": def asd() -> None: """ :rtype: None """ class IDTM(OrdinalIndexingDictMixin): pass a = IDTM() a.a = 2 a.b = 3 assert a[0] == 2 assert a[1] == 3