Package: python3-frozenlist
Source: frozenlist
Version: 1.8.0-3
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Python Team <team+python@tracker.debian.org>
Installed-Size: 149
Depends: python3 (<< 3.15), python3 (>= 3.14~), python3:any, libc6 (>= 2.4)
Section: python
Priority: optional
Homepage: https://github.com/aio-libs/frozenlist
Description: list-like structure which implements collections.abc.MutableSequence
 `frozenlist.FrozenList` is a list-like structure which implements
 `collections.abc.MutableSequence`. The list is mutable until `FrozenList.freeze`
 is called, after which list modifications raise `RuntimeError`:
 .
  >>> from frozenlist import FrozenList
  >>> fl = FrozenList([17, 42])
  >>> fl.append('spam')
  >>> fl.append('Vikings')
  >>> fl
  <FrozenList(frozen=False, [17, 42, 'spam', 'Vikings'])>
  >>> fl.freeze()
  >>> fl
  <FrozenList(frozen=True, [17, 42, 'spam', 'Vikings'])>
  >>> fl.frozen
  True
  >>> fl.append("Monty")
  Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "frozenlist/_frozenlist.pyx", line 97, in frozenlist._frozenlist.FrozenList.append
     self._check_frozen()
   File "frozenlist/_frozenlist.pyx", line 19, in frozenlist._frozenlist.FrozenList._check_frozen
     raise RuntimeError("Cannot modify frozen list.")
   RuntimeError: Cannot modify frozen list.
 .
 FrozenList is also hashable, but only when frozen. Otherwise it also throws a RuntimeError:
 .
  >>> fl = FrozenList([17, 42, 'spam'])
  >>> hash(fl)
  Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "frozenlist/_frozenlist.pyx", line 111, in frozenlist._frozenlist.FrozenList.__hash__
     raise RuntimeError("Cannot hash unfrozen list.")
   RuntimeError: Cannot hash unfrozen list.
  >>> fl.freeze()
  >>> hash(fl)
  3713081631934410656
  >>> dictionary = {fl: 'Vikings'} # frozen fl can be a dict key
  >>> dictionary
  {<FrozenList(frozen=True, [1, 2])>: 'Vikings'}
