Ferramentas/AjustaFundos/actions/data/dict_to_obj.py

19 lines
657 B
Python

from types import SimpleNamespace
from collections.abc import Mapping
class DictToObj:
def __new__(cls, x):
# dict (ou Mapping): vira SimpleNamespace com conversão recursiva
if isinstance(x, Mapping):
return SimpleNamespace(**{k: cls(v) for k, v in x.items()})
# listas: converte cada item
if isinstance(x, list):
return [cls(i) for i in x]
# (opcional) outras coleções comuns
if isinstance(x, tuple):
return tuple(cls(i) for i in x)
if isinstance(x, set):
return {cls(i) for i in x}
# primitivos: retornam como estão
return x