Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
__init__.py42 linesDownload Raw Back to _enum_extensions
1import typing as t2 3from enum import EnumMeta4 5 6_extra_values: t.Dict[str, t.Dict[str, t.Any]] = {}7 8 9def register_value(10    cl_str: str,11    name: str,12    value: t.Any,13) -> None:14    _extra_values[cl_str] = _extra_values.get(cl_str, {})15    _extra_values[cl_str][name] = value16 17 18class ExtendableEnum(EnumMeta):19    def __new__(20        metacl,21        name: str,22        bases: t.Tuple[t.Type],23        classdict: t.Dict[str, t.Any],24    ) -> "ExtendableEnum":25        extra_vals = _extra_values.get(name)26 27        if extra_vals is not None:28            for extra_name, extra_val in list(extra_vals.items()):29                if extra_name in classdict:30                    raise AttributeError(31                        "Enumeration extensions cannot override existing "32                        "enumeration members")33                else:34                    classdict[extra_name] = extra_val35 36        return super(ExtendableEnum, metacl).__new__(37            metacl,38            name,39            bases,40            classdict,  # type: ignore[arg-type] # Uses private explicit type41        )42 
codekingpro/portable-devtools · Team Ai