Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
__init__.py87 linesDownload Raw Back to frozenlist
1import os2import types3from collections.abc import MutableSequence4from functools import total_ordering5 6__version__ = "1.8.0"7 8__all__ = ("FrozenList", "PyFrozenList")  # type: Tuple[str, ...]9 10 11NO_EXTENSIONS = bool(os.environ.get("FROZENLIST_NO_EXTENSIONS"))  # type: bool12 13 14@total_ordering15class FrozenList(MutableSequence):16    __slots__ = ("_frozen", "_items")17    __class_getitem__ = classmethod(types.GenericAlias)18 19    def __init__(self, items=None):20        self._frozen = False21        if items is not None:22            items = list(items)23        else:24            items = []25        self._items = items26 27    @property28    def frozen(self):29        return self._frozen30 31    def freeze(self):32        self._frozen = True33 34    def __getitem__(self, index):35        return self._items[index]36 37    def __setitem__(self, index, value):38        if self._frozen:39            raise RuntimeError("Cannot modify frozen list.")40        self._items[index] = value41 42    def __delitem__(self, index):43        if self._frozen:44            raise RuntimeError("Cannot modify frozen list.")45        del self._items[index]46 47    def __len__(self):48        return self._items.__len__()49 50    def __iter__(self):51        return self._items.__iter__()52 53    def __reversed__(self):54        return self._items.__reversed__()55 56    def __eq__(self, other):57        return list(self) == other58 59    def __le__(self, other):60        return list(self) <= other61 62    def insert(self, pos, item):63        if self._frozen:64            raise RuntimeError("Cannot modify frozen list.")65        self._items.insert(pos, item)66 67    def __repr__(self):68        return f"<FrozenList(frozen={self._frozen}, {self._items!r})>"69 70    def __hash__(self):71        if self._frozen:72            return hash(tuple(self))73        else:74            raise RuntimeError("Cannot hash unfrozen list.")75 76 77PyFrozenList = FrozenList78 79 80if not NO_EXTENSIONS:81    try:82        from ._frozenlist import FrozenList as CFrozenList  # type: ignore83    except ImportError:  # pragma: no cover84        pass85    else:86        FrozenList = CFrozenList  # type: ignore87 
codekingpro/portable-devtools · Team Ai