2025-08-15 18:14:21 +00:00
<!DOCTYPE html>
< html lang = "en" data-content_root = "../../" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
< title > collections.abc — Evennia latest documentation< / title >
< link rel = "stylesheet" type = "text/css" href = "../../_static/pygments.css?v=d75fae25" / >
< link rel = "stylesheet" type = "text/css" href = "../../_static/nature.css?v=279e0f84" / >
< link rel = "stylesheet" type = "text/css" href = "../../_static/custom.css?v=e4a91a55" / >
< script src = "../../_static/documentation_options.js?v=c6e86fd7" > < / script >
< script src = "../../_static/doctools.js?v=9bcbadda" > < / script >
< script src = "../../_static/sphinx_highlight.js?v=dc90522c" > < / script >
< link rel = "icon" href = "../../_static/favicon.ico" / >
< link rel = "index" title = "Index" href = "../../genindex.html" / >
< link rel = "search" title = "Search" href = "../../search.html" / >
< / head > < body >
< div class = "related" role = "navigation" aria-label = "Related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../../genindex.html" title = "General Index"
accesskey="I">index< / a > < / li >
< li class = "right" >
< a href = "../../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
< li class = "nav-item nav-item-0" > < a href = "../../index.html" > Evennia< / a > » < / li >
< li class = "nav-item nav-item-1" > < a href = "../index.html" > Module code< / a > » < / li >
< li class = "nav-item nav-item-2" > < a href = "../collections.html" accesskey = "U" > collections< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > collections.abc< / a > < / li >
< / ul >
< / div >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
< div class = "body" role = "main" >
< h1 > Source code for collections.abc< / h1 > < div class = "highlight" > < pre >
< span > < / span > < span class = "c1" > # Copyright 2007 Google, Inc. All Rights Reserved.< / span >
< span class = "c1" > # Licensed to PSF under a Contributor Agreement.< / span >
< span class = "sd" > " " " Abstract Base Classes (ABCs) for collections, according to PEP 3119.< / span >
< span class = "sd" > Unit tests are in test_collections.< / span >
< span class = "sd" > " " " < / span >
< span class = "c1" > ############ Maintenance notes #########################################< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # ABCs are different from other standard library modules in that they< / span >
< span class = "c1" > # specify compliance tests. In general, once an ABC has been published,< / span >
< span class = "c1" > # new methods (either abstract or concrete) cannot be added.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # Though classes that inherit from an ABC would automatically receive a< / span >
< span class = "c1" > # new mixin method, registered classes would become non-compliant and< / span >
< span class = "c1" > # violate the contract promised by ``isinstance(someobj, SomeABC)``.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # Though irritating, the correct procedure for adding new abstract or< / span >
< span class = "c1" > # mixin methods is to create a new ABC as a subclass of the previous< / span >
< span class = "c1" > # ABC. For example, union(), intersection(), and difference() cannot< / span >
< span class = "c1" > # be added to Set but could go into a new ABC that extends Set.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # Because they are so hard to change, new ABCs should have their APIs< / span >
< span class = "c1" > # carefully thought through prior to publication.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # Since ABCMeta only checks for the presence of methods, it is possible< / span >
< span class = "c1" > # to alter the signature of a method by adding optional arguments< / span >
< span class = "c1" > # or changing parameters names. This is still a bit dubious but at< / span >
< span class = "c1" > # least it won' t cause isinstance() to return an incorrect result.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > #< / span >
< span class = "c1" > #######################################################################< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > abc< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ,< / span > < span class = "n" > abstractmethod< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > sys< / span >
< span class = "n" > GenericAlias< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > list< / span > < span class = "p" > [< / span > < span class = "nb" > int< / span > < span class = "p" > ])< / span >
< span class = "n" > EllipsisType< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "o" > ...< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _f< / span > < span class = "p" > ():< / span > < span class = "k" > pass< / span >
< span class = "n" > FunctionType< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > _f< / span > < span class = "p" > )< / span >
< span class = "k" > del< / span > < span class = "n" > _f< / span >
< span class = "n" > __all__< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "s2" > " Awaitable" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Coroutine" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " AsyncIterable" < / span > < span class = "p" > ,< / span > < span class = "s2" > " AsyncIterator" < / span > < span class = "p" > ,< / span > < span class = "s2" > " AsyncGenerator" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Hashable" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Iterable" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Iterator" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Generator" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Reversible" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Sized" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Container" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Callable" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Collection" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Set" < / span > < span class = "p" > ,< / span > < span class = "s2" > " MutableSet" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Mapping" < / span > < span class = "p" > ,< / span > < span class = "s2" > " MutableMapping" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " MappingView" < / span > < span class = "p" > ,< / span > < span class = "s2" > " KeysView" < / span > < span class = "p" > ,< / span > < span class = "s2" > " ItemsView" < / span > < span class = "p" > ,< / span > < span class = "s2" > " ValuesView" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Sequence" < / span > < span class = "p" > ,< / span > < span class = "s2" > " MutableSequence" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " ByteString" < / span > < span class = "p" > ,< / span > < span class = "s2" > " Buffer" < / span > < span class = "p" > ,< / span >
< span class = "p" > ]< / span >
< span class = "c1" > # This module has been renamed from collections.abc to _collections_abc to< / span >
< span class = "c1" > # speed up interpreter startup. Some of the types such as MutableMapping are< / span >
< span class = "c1" > # required early but collections module imports a lot of other modules.< / span >
< span class = "c1" > # See issue #19218< / span >
< span class = "vm" > __name__< / span > < span class = "o" > =< / span > < span class = "s2" > " collections.abc" < / span >
< span class = "c1" > # Private list of types that we want to register with the various ABCs< / span >
< span class = "c1" > # so that they will pass tests like:< / span >
< span class = "c1" > # it = iter(somebytearray)< / span >
< span class = "c1" > # assert isinstance(it, Iterable)< / span >
< span class = "c1" > # Note: in other implementations, these types might not be distinct< / span >
< span class = "c1" > # and they may have their own implementation specific types that< / span >
< span class = "c1" > # are not included on this list.< / span >
< span class = "n" > bytes_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "sa" > b< / span > < span class = "s1" > ' ' < / span > < span class = "p" > ))< / span >
< span class = "n" > bytearray_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > bytearray< / span > < span class = "p" > ()))< / span >
< span class = "c1" > #callable_iterator = ???< / span >
< span class = "n" > dict_keyiterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > keys< / span > < span class = "p" > ()))< / span >
< span class = "n" > dict_valueiterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > values< / span > < span class = "p" > ()))< / span >
< span class = "n" > dict_itemiterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ()))< / span >
< span class = "n" > list_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > ([]))< / span >
< span class = "n" > list_reverseiterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > reversed< / span > < span class = "p" > ([])))< / span >
< span class = "n" > range_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > range< / span > < span class = "p" > (< / span > < span class = "mi" > 0< / span > < span class = "p" > )))< / span >
< span class = "n" > longrange_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > range< / span > < span class = "p" > (< / span > < span class = "mi" > 1< / span > < span class = "o" > < < < / span > < span class = "mi" > 1000< / span > < span class = "p" > )))< / span >
< span class = "n" > set_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > set< / span > < span class = "p" > ()))< / span >
< span class = "n" > str_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "s2" > " " < / span > < span class = "p" > ))< / span >
< span class = "n" > tuple_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (()))< / span >
< span class = "n" > zip_iterator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "nb" > zip< / span > < span class = "p" > ()))< / span >
< span class = "c1" > ## views ##< / span >
< span class = "n" > dict_keys< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > keys< / span > < span class = "p" > ())< / span >
< span class = "n" > dict_values< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > values< / span > < span class = "p" > ())< / span >
< span class = "n" > dict_items< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > ({}< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ())< / span >
< span class = "c1" > ## misc ##< / span >
< span class = "n" > mappingproxy< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "nb" > type< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _get_framelocalsproxy< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > sys< / span > < span class = "o" > .< / span > < span class = "n" > _getframe< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > f_locals< / span > < span class = "p" > )< / span >
< span class = "n" > framelocalsproxy< / span > < span class = "o" > =< / span > < span class = "n" > _get_framelocalsproxy< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > _get_framelocalsproxy< / span >
< span class = "n" > generator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > ((< / span > < span class = "k" > lambda< / span > < span class = "p" > :< / span > < span class = "p" > (< / span > < span class = "k" > yield< / span > < span class = "p" > ))())< / span >
< span class = "c1" > ## coroutine ##< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _coro< / span > < span class = "p" > ():< / span > < span class = "k" > pass< / span >
< span class = "n" > _coro< / span > < span class = "o" > =< / span > < span class = "n" > _coro< / span > < span class = "p" > ()< / span >
< span class = "n" > coroutine< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > _coro< / span > < span class = "p" > )< / span >
< span class = "n" > _coro< / span > < span class = "o" > .< / span > < span class = "n" > close< / span > < span class = "p" > ()< / span > < span class = "c1" > # Prevent ResourceWarning< / span >
< span class = "k" > del< / span > < span class = "n" > _coro< / span >
< span class = "c1" > ## asynchronous generator ##< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _ag< / span > < span class = "p" > ():< / span > < span class = "k" > yield< / span >
< span class = "n" > _ag< / span > < span class = "o" > =< / span > < span class = "n" > _ag< / span > < span class = "p" > ()< / span >
< span class = "n" > async_generator< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > _ag< / span > < span class = "p" > )< / span >
< span class = "k" > del< / span > < span class = "n" > _ag< / span >
< span class = "c1" > ### ONE-TRICK PONIES ###< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > methods< / span > < span class = "p" > ):< / span >
< span class = "n" > mro< / span > < span class = "o" > =< / span > < span class = "n" > C< / span > < span class = "o" > .< / span > < span class = "vm" > __mro__< / span >
< span class = "k" > for< / span > < span class = "n" > method< / span > < span class = "ow" > in< / span > < span class = "n" > methods< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > B< / span > < span class = "ow" > in< / span > < span class = "n" > mro< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > method< / span > < span class = "ow" > in< / span > < span class = "n" > B< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > B< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "p" > [< / span > < span class = "n" > method< / span > < span class = "p" > ]< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > break< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Hashable< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __hash__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "mi" > 0< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Hashable< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __hash__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Awaitable< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __await__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > yield< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Awaitable< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __await__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Coroutine< / span > < span class = "p" > (< / span > < span class = "n" > Awaitable< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > send< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Send a value into the coroutine.< / span >
< span class = "sd" > Return next yielded value or raise StopIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > StopIteration< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > throw< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > typ< / span > < span class = "p" > ,< / span > < span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > tb< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise an exception in the coroutine.< / span >
< span class = "sd" > Return next yielded value or raise StopIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > typ< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > typ< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > with_traceback< / span > < span class = "p" > (< / span > < span class = "n" > tb< / span > < span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > val< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > close< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise GeneratorExit inside coroutine.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > throw< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > ,< / span > < span class = "ne" > StopIteration< / span > < span class = "p" > ):< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > RuntimeError< / span > < span class = "p" > (< / span > < span class = "s2" > " coroutine ignored GeneratorExit" < / span > < span class = "p" > )< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Coroutine< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s1" > ' __await__' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' send' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' throw' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' close' < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > Coroutine< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > coroutine< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AsyncIterable< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __aiter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > AsyncIterator< / span > < span class = "p" > ()< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > AsyncIterable< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __aiter__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AsyncIterator< / span > < span class = "p" > (< / span > < span class = "n" > AsyncIterable< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __anext__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the next item or raise StopAsyncIteration when exhausted." " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > StopAsyncIteration< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __aiter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > AsyncIterator< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __anext__" < / span > < span class = "p" > ,< / span > < span class = "s2" > " __aiter__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AsyncGenerator< / span > < span class = "p" > (< / span > < span class = "n" > AsyncIterator< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __anext__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the next item from the asynchronous generator.< / span >
< span class = "sd" > When exhausted, raise StopAsyncIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "k" > await< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > asend< / span > < span class = "p" > (< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > asend< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Send a value into the asynchronous generator.< / span >
< span class = "sd" > Return next yielded value or raise StopAsyncIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > StopAsyncIteration< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > athrow< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > typ< / span > < span class = "p" > ,< / span > < span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > tb< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise an exception in the asynchronous generator.< / span >
< span class = "sd" > Return next yielded value or raise StopAsyncIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > typ< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > typ< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > with_traceback< / span > < span class = "p" > (< / span > < span class = "n" > tb< / span > < span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > val< / span >
< span class = "k" > async< / span > < span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > aclose< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise GeneratorExit inside coroutine.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > await< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > athrow< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > ,< / span > < span class = "ne" > StopAsyncIteration< / span > < span class = "p" > ):< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > RuntimeError< / span > < span class = "p" > (< / span > < span class = "s2" > " asynchronous generator ignored GeneratorExit" < / span > < span class = "p" > )< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > AsyncGenerator< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s1" > ' __aiter__' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' __anext__' < / span > < span class = "p" > ,< / span >
< span class = "s1" > ' asend' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' athrow' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' aclose' < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > AsyncGenerator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > async_generator< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Iterable< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > while< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "k" > yield< / span > < span class = "kc" > None< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Iterable< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __iter__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Iterator< / span > < span class = "p" > (< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __next__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' Return the next item from the iterator. When exhausted, raise StopIteration' < / span >
< span class = "k" > raise< / span > < span class = "ne" > StopIteration< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Iterator< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s1" > ' __iter__' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' __next__' < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > bytes_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > bytearray_iterator< / span > < span class = "p" > )< / span >
< span class = "c1" > #Iterator.register(callable_iterator)< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_keyiterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_valueiterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_itemiterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > list_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > list_reverseiterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > range_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > longrange_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > set_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > str_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > tuple_iterator< / span > < span class = "p" > )< / span >
< span class = "n" > Iterator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > zip_iterator< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Reversible< / span > < span class = "p" > (< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __reversed__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > while< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "k" > yield< / span > < span class = "kc" > None< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Reversible< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __reversed__" < / span > < span class = "p" > ,< / span > < span class = "s2" > " __iter__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Generator< / span > < span class = "p" > (< / span > < span class = "n" > Iterator< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __next__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the next item from the generator.< / span >
< span class = "sd" > When exhausted, raise StopIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > send< / span > < span class = "p" > (< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > send< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Send a value into the generator.< / span >
< span class = "sd" > Return next yielded value or raise StopIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > StopIteration< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > throw< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > typ< / span > < span class = "p" > ,< / span > < span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > tb< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise an exception in the generator.< / span >
< span class = "sd" > Return next yielded value or raise StopIteration.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > typ< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > typ< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > tb< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > with_traceback< / span > < span class = "p" > (< / span > < span class = "n" > tb< / span > < span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > val< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > close< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Raise GeneratorExit inside generator.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > throw< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > GeneratorExit< / span > < span class = "p" > ,< / span > < span class = "ne" > StopIteration< / span > < span class = "p" > ):< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > RuntimeError< / span > < span class = "p" > (< / span > < span class = "s2" > " generator ignored GeneratorExit" < / span > < span class = "p" > )< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Generator< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s1" > ' __iter__' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' __next__' < / span > < span class = "p" > ,< / span >
< span class = "s1" > ' send' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' throw' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' close' < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > Generator< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > generator< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Sized< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __len__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "mi" > 0< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Sized< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __len__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Container< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > x< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Container< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __contains__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Collection< / span > < span class = "p" > (< / span > < span class = "n" > Sized< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ,< / span > < span class = "n" > Container< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Collection< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __len__" < / span > < span class = "p" > ,< / span > < span class = "s2" > " __iter__" < / span > < span class = "p" > ,< / span > < span class = "s2" > " __contains__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Buffer< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __buffer__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > flags< / span > < span class = "p" > :< / span > < span class = "nb" > int< / span > < span class = "p" > ,< / span > < span class = "o" > /< / span > < span class = "p" > )< / span > < span class = "o" > -> < / span > < span class = "nb" > memoryview< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > NotImplementedError< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Buffer< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __buffer__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > _CallableGenericAlias< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Represent `Callable[argtypes, resulttype]`.< / span >
< span class = "sd" > This sets ``__args__`` to a tuple containing the flattened ``argtypes``< / span >
< span class = "sd" > followed by ``resulttype``.< / span >
< span class = "sd" > Example: ``Callable[[int, str], float]`` sets ``__args__`` to< / span >
< span class = "sd" > ``(int, str, float)``.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > origin< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "nb" > tuple< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 2< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > TypeError< / span > < span class = "p" > (< / span >
< span class = "s2" > " Callable must be used as Callable[[arg, ...], result]." < / span > < span class = "p" > )< / span >
< span class = "n" > t_args< / span > < span class = "p" > ,< / span > < span class = "n" > t_result< / span > < span class = "o" > =< / span > < span class = "n" > args< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > t_args< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "nb" > tuple< / span > < span class = "p" > ,< / span > < span class = "nb" > list< / span > < span class = "p" > )):< / span >
< span class = "n" > args< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > t_args< / span > < span class = "p" > ,< / span > < span class = "n" > t_result< / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "ow" > not< / span > < span class = "n" > _is_param_expr< / span > < span class = "p" > (< / span > < span class = "n" > t_args< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > TypeError< / span > < span class = "p" > (< / span > < span class = "sa" > f< / span > < span class = "s2" > " Expected a list of types, an ellipsis, " < / span >
< span class = "sa" > f< / span > < span class = "s2" > " ParamSpec, or Concatenate. Got < / span > < span class = "si" > {< / span > < span class = "n" > t_args< / span > < span class = "si" > }< / span > < span class = "s2" > " < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > origin< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __repr__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 2< / span > < span class = "ow" > and< / span > < span class = "n" > _is_param_expr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __repr__< / span > < span class = "p" > ()< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "sa" > f< / span > < span class = "s1" > ' collections.abc.Callable' < / span >
< span class = "sa" > f< / span > < span class = "s1" > ' [[< / span > < span class = "si" > {< / span > < span class = "s2" > " , " < / span > < span class = "o" > .< / span > < span class = "n" > join< / span > < span class = "p" > ([< / span > < span class = "n" > _type_repr< / span > < span class = "p" > (< / span > < span class = "n" > a< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "k" > for< / span > < span class = "w" > < / span > < span class = "n" > a< / span > < span class = "w" > < / span > < span class = "ow" > in< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span > < span class = "p" > [:< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]])< / span > < span class = "si" > }< / span > < span class = "s1" > ], ' < / span >
< span class = "sa" > f< / span > < span class = "s1" > ' < / span > < span class = "si" > {< / span > < span class = "n" > _type_repr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span > < span class = "p" > [< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ])< / span > < span class = "si" > }< / span > < span class = "s1" > ]' < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __reduce__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > args< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 2< / span > < span class = "ow" > and< / span > < span class = "n" > _is_param_expr< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ])):< / span >
< span class = "n" > args< / span > < span class = "o" > =< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > [:< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]),< / span > < span class = "n" > args< / span > < span class = "p" > [< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > _CallableGenericAlias< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "n" > Callable< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __getitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > item< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Called during TypeVar substitution, returns the custom subclass< / span >
< span class = "c1" > # rather than the default types.GenericAlias object. Most of the< / span >
< span class = "c1" > # code is copied from typing' s _GenericAlias and the builtin< / span >
< span class = "c1" > # types.GenericAlias.< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > item< / span > < span class = "p" > ,< / span > < span class = "nb" > tuple< / span > < span class = "p" > ):< / span >
< span class = "n" > item< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > item< / span > < span class = "p" > ,)< / span >
< span class = "n" > new_args< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __getitem__< / span > < span class = "p" > (< / span > < span class = "n" > item< / span > < span class = "p" > )< / span > < span class = "o" > .< / span > < span class = "n" > __args__< / span >
< span class = "c1" > # args[0] occurs due to things like Z[[int, str, bool]] from PEP 612< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > new_args< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ],< / span > < span class = "p" > (< / span > < span class = "nb" > tuple< / span > < span class = "p" > ,< / span > < span class = "nb" > list< / span > < span class = "p" > )):< / span >
< span class = "n" > t_result< / span > < span class = "o" > =< / span > < span class = "n" > new_args< / span > < span class = "p" > [< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]< / span >
< span class = "n" > t_args< / span > < span class = "o" > =< / span > < span class = "n" > new_args< / span > < span class = "p" > [:< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]< / span >
< span class = "n" > new_args< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > t_args< / span > < span class = "p" > ,< / span > < span class = "n" > t_result< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > _CallableGenericAlias< / span > < span class = "p" > (< / span > < span class = "n" > Callable< / span > < span class = "p" > ,< / span > < span class = "nb" > tuple< / span > < span class = "p" > (< / span > < span class = "n" > new_args< / span > < span class = "p" > ))< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _is_param_expr< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or< / span >
< span class = "sd" > ``_ConcatenateGenericAlias`` from typing.py< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > obj< / span > < span class = "ow" > is< / span > < span class = "bp" > Ellipsis< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ,< / span > < span class = "nb" > list< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "n" > names< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "s1" > ' ParamSpec' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' _ConcatenateGenericAlias' < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "o" > ==< / span > < span class = "s1" > ' typing' < / span > < span class = "ow" > and< / span > < span class = "nb" > any< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "o" > ==< / span > < span class = "n" > name< / span > < span class = "k" > for< / span > < span class = "n" > name< / span > < span class = "ow" > in< / span > < span class = "n" > names< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _type_repr< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the repr() of an object, special-casing types (internal helper).< / span >
< span class = "sd" > Copied from :mod:`typing` since collections.abc< / span >
< span class = "sd" > shouldn' t depend on that module.< / span >
< span class = "sd" > (Keep this roughly in sync with the typing version.)< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ,< / span > < span class = "nb" > type< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "o" > ==< / span > < span class = "s1" > ' builtins' < / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __qualname__< / span >
< span class = "k" > return< / span > < span class = "sa" > f< / span > < span class = "s1" > ' < / span > < span class = "si" > {< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "si" > }< / span > < span class = "s1" > .< / span > < span class = "si" > {< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __qualname__< / span > < span class = "si" > }< / span > < span class = "s1" > ' < / span >
< span class = "k" > if< / span > < span class = "n" > obj< / span > < span class = "ow" > is< / span > < span class = "bp" > Ellipsis< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "s1" > ' ...' < / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ,< / span > < span class = "n" > FunctionType< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span >
< span class = "k" > return< / span > < span class = "nb" > repr< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Callable< / span > < span class = "p" > (< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __call__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwds< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __subclasshook__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > C< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "ow" > is< / span > < span class = "n" > Callable< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _check_methods< / span > < span class = "p" > (< / span > < span class = "n" > C< / span > < span class = "p" > ,< / span > < span class = "s2" > " __call__" < / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > _CallableGenericAlias< / span > < span class = "p" > )< / span >
< span class = "c1" > ### SETS ###< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Set< / span > < span class = "p" > (< / span > < span class = "n" > Collection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " A set is a finite, iterable container.< / span >
< span class = "sd" > This class provides concrete generic implementations of all< / span >
< span class = "sd" > methods except for __contains__, __iter__ and __len__.< / span >
< span class = "sd" > To override the comparisons (presumably for speed, as the< / span >
< span class = "sd" > semantics are fixed), redefine __le__ and __ge__,< / span >
< span class = "sd" > then the other operations will automatically follow suit.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __le__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > if< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > for< / span > < span class = "n" > elem< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > elem< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __lt__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > < < / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "fm" > __le__< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __gt__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "fm" > __ge__< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __ge__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > if< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > < < / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > for< / span > < span class = "n" > elem< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > elem< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __eq__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "fm" > __le__< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' Construct an instance of the class from any iterable input.< / span >
< span class = "sd" > Must override this method if the class constructor signature< / span >
< span class = "sd" > does not accept an iterable for an input.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > return< / span > < span class = "bp" > cls< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __and__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "fm" > __rand__< / span > < span class = "o" > =< / span > < span class = "fm" > __and__< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > isdisjoint< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' Return True if two sets have a null intersection.' < / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __or__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > chain< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > e< / span > < span class = "k" > for< / span > < span class = "n" > s< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > e< / span > < span class = "ow" > in< / span > < span class = "n" > s< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > chain< / span > < span class = "p" > )< / span >
< span class = "fm" > __ror__< / span > < span class = "o" > =< / span > < span class = "fm" > __or__< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __sub__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > other< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __rsub__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > other< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __xor__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "n" > other< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > -< / span > < span class = "n" > other< / span > < span class = "p" > )< / span > < span class = "o" > |< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "o" > -< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "fm" > __rxor__< / span > < span class = "o" > =< / span > < span class = "fm" > __xor__< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _hash< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Compute the hash value of a set.< / span >
< span class = "sd" > Note that we don' t define __hash__: not all sets are hashable.< / span >
< span class = "sd" > But if you define a hashable set type, its __hash__ should< / span >
< span class = "sd" > call this function.< / span >
< span class = "sd" > This must be compatible __eq__.< / span >
< span class = "sd" > All sets ought to compare equal if they contain the same< / span >
< span class = "sd" > elements, regardless of how they are implemented, and< / span >
< span class = "sd" > regardless of the order of the elements; so there' s not much< / span >
< span class = "sd" > freedom for __eq__ or __hash__. We match the algorithm used< / span >
< span class = "sd" > by the built-in frozenset type.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > MAX< / span > < span class = "o" > =< / span > < span class = "n" > sys< / span > < span class = "o" > .< / span > < span class = "n" > maxsize< / span >
< span class = "n" > MASK< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "o" > *< / span > < span class = "n" > MAX< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span >
< span class = "n" > n< / span > < span class = "o" > =< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > =< / span > < span class = "mi" > 1927868237< / span > < span class = "o" > *< / span > < span class = "p" > (< / span > < span class = "n" > n< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > & =< / span > < span class = "n" > MASK< / span >
< span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "n" > hx< / span > < span class = "o" > =< / span > < span class = "nb" > hash< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > ^=< / span > < span class = "p" > (< / span > < span class = "n" > hx< / span > < span class = "o" > ^< / span > < span class = "p" > (< / span > < span class = "n" > hx< / span > < span class = "o" > < < < / span > < span class = "mi" > 16< / span > < span class = "p" > )< / span > < span class = "o" > ^< / span > < span class = "mi" > 89869747< / span > < span class = "p" > )< / span > < span class = "o" > *< / span > < span class = "mi" > 3644798167< / span >
< span class = "n" > h< / span > < span class = "o" > & =< / span > < span class = "n" > MASK< / span >
< span class = "n" > h< / span > < span class = "o" > ^=< / span > < span class = "p" > (< / span > < span class = "n" > h< / span > < span class = "o" > > > < / span > < span class = "mi" > 11< / span > < span class = "p" > )< / span > < span class = "o" > ^< / span > < span class = "p" > (< / span > < span class = "n" > h< / span > < span class = "o" > > > < / span > < span class = "mi" > 25< / span > < span class = "p" > )< / span >
< span class = "n" > h< / span > < span class = "o" > =< / span > < span class = "n" > h< / span > < span class = "o" > *< / span > < span class = "mi" > 69069< / span > < span class = "o" > +< / span > < span class = "mi" > 907133923< / span >
< span class = "n" > h< / span > < span class = "o" > & =< / span > < span class = "n" > MASK< / span >
< span class = "k" > if< / span > < span class = "n" > h< / span > < span class = "o" > > < / span > < span class = "n" > MAX< / span > < span class = "p" > :< / span >
< span class = "n" > h< / span > < span class = "o" > -=< / span > < span class = "n" > MASK< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span >
< span class = "k" > if< / span > < span class = "n" > h< / span > < span class = "o" > ==< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > :< / span >
< span class = "n" > h< / span > < span class = "o" > =< / span > < span class = "mi" > 590923713< / span >
< span class = "k" > return< / span > < span class = "n" > h< / span >
< span class = "n" > Set< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > frozenset< / span > < span class = "p" > )< / span >
< div class = "viewcode-block" id = "MutableSet" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet" > [docs]< / a >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > MutableSet< / span > < span class = "p" > (< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " A mutable set is a finite, iterable container.< / span >
< span class = "sd" > This class provides concrete generic implementations of all< / span >
< span class = "sd" > methods except for __contains__, __iter__, __len__,< / span >
< span class = "sd" > add(), and discard().< / span >
< span class = "sd" > To override the comparisons (presumably for speed, as the< / span >
< span class = "sd" > semantics are fixed), all you have to do is redefine __le__ and< / span >
< span class = "sd" > then the other operations will automatically follow suit.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< div class = "viewcode-block" id = "MutableSet.add" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet.add" > [docs]< / a >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > add< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Add an element." " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > NotImplementedError< / span > < / div >
< div class = "viewcode-block" id = "MutableSet.discard" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet.discard" > [docs]< / a >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > discard< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Remove an element. Do not raise an exception if absent." " " < / span >
< span class = "k" > raise< / span > < span class = "ne" > NotImplementedError< / span > < / div >
< div class = "viewcode-block" id = "MutableSet.remove" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet.remove" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > remove< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Remove an element. If not a member, raise a KeyError." " " < / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > discard< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span > < / div >
< div class = "viewcode-block" id = "MutableSet.pop" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet.pop" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the popped value. Raise KeyError if empty." " " < / span >
< span class = "n" > it< / span > < span class = "o" > =< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > next< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > StopIteration< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span > < span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "kc" > None< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > discard< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span > < / div >
< div class = "viewcode-block" id = "MutableSet.clear" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSet.clear" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > clear< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " This is slow (creates N new iterators!) but effective." " " < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > while< / span > < span class = "kc" > True< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > pop< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span > < / div >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __ior__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > it< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > add< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iand__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > -< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > discard< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __ixor__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > it< / span > < span class = "ow" > is< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > clear< / span > < span class = "p" > ()< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "n" > it< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > it< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > discard< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > add< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __isub__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > it< / span > < span class = "ow" > is< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > clear< / span > < span class = "p" > ()< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > it< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > discard< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < / div >
< span class = "n" > MutableSet< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > set< / span > < span class = "p" > )< / span >
< span class = "c1" > ### MAPPINGS ###< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Mapping< / span > < span class = "p" > (< / span > < span class = "n" > Collection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " A Mapping is a generic container for associating key/value< / span >
< span class = "sd" > pairs.< / span >
< span class = "sd" > This class provides concrete generic implementations of all< / span >
< span class = "sd" > methods except for __getitem__, __iter__, and __len__.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "c1" > # Tell ABCMeta.__new__ that this class should have TPFLAGS_MAPPING set.< / span >
< span class = "n" > __abc_tpflags__< / span > < span class = "o" > =< / span > < span class = "mi" > 1< / span > < span class = "o" > < < < / span > < span class = "mi" > 6< / span > < span class = "c1" > # Py_TPFLAGS_MAPPING< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __getitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > default< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ):< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > keys< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s2" > " D.keys() -> a set-like object providing a view on D' s keys" < / span >
< span class = "k" > return< / span > < span class = "n" > KeysView< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > items< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s2" > " D.items() -> a set-like object providing a view on D' s items" < / span >
< span class = "k" > return< / span > < span class = "n" > ItemsView< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > values< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s2" > " D.values() -> an object providing a view on D' s values" < / span >
< span class = "k" > return< / span > < span class = "n" > ValuesView< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __eq__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Mapping< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > return< / span > < span class = "nb" > dict< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ())< / span > < span class = "o" > ==< / span > < span class = "nb" > dict< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ())< / span >
< span class = "fm" > __reversed__< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > Mapping< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > mappingproxy< / span > < span class = "p" > )< / span >
< span class = "n" > Mapping< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > framelocalsproxy< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > MappingView< / span > < span class = "p" > (< / span > < span class = "n" > Sized< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "s1" > ' _mapping' < / span > < span class = "p" > ,< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > mapping< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "o" > =< / span > < span class = "n" > mapping< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __len__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __repr__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s1" > ' < / span > < span class = "si" > {0.__class__.__name__}< / span > < span class = "s1" > (< / span > < span class = "si" > {0._mapping!r}< / span > < span class = "s1" > )' < / span > < span class = "o" > .< / span > < span class = "n" > format< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "n" > __class_getitem__< / span > < span class = "o" > =< / span > < span class = "nb" > classmethod< / span > < span class = "p" > (< / span > < span class = "n" > GenericAlias< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > KeysView< / span > < span class = "p" > (< / span > < span class = "n" > MappingView< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > set< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > yield from< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span >
< span class = "n" > KeysView< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_keys< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > ItemsView< / span > < span class = "p" > (< / span > < span class = "n" > MappingView< / span > < span class = "p" > ,< / span > < span class = "n" > Set< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _from_iterable< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > it< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > set< / span > < span class = "p" > (< / span > < span class = "n" > it< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > item< / span > < span class = "p" > ):< / span >
< span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > item< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > v< / span > < span class = "ow" > is< / span > < span class = "n" > value< / span > < span class = "ow" > or< / span > < span class = "n" > v< / span > < span class = "o" > ==< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > :< / span >
< span class = "k" > yield< / span > < span class = "p" > (< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ])< / span >
< span class = "n" > ItemsView< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_items< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > ValuesView< / span > < span class = "p" > (< / span > < span class = "n" > MappingView< / span > < span class = "p" > ,< / span > < span class = "n" > Collection< / span > < span class = "p" > ):< / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "n" > v< / span > < span class = "ow" > is< / span > < span class = "n" > value< / span > < span class = "ow" > or< / span > < span class = "n" > v< / span > < span class = "o" > ==< / span > < span class = "n" > value< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > :< / span >
< span class = "k" > yield< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _mapping< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "n" > ValuesView< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "n" > dict_values< / span > < span class = "p" > )< / span >
< div class = "viewcode-block" id = "MutableMapping" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping" > [docs]< / a >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > MutableMapping< / span > < span class = "p" > (< / span > < span class = "n" > Mapping< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " A MutableMapping is a generic container for associating< / span >
< span class = "sd" > key/value pairs.< / span >
< span class = "sd" > This class provides concrete generic implementations of all< / span >
< span class = "sd" > methods except for __getitem__, __setitem__, __delitem__,< / span >
< span class = "sd" > __iter__, and __len__.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __setitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __delitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span >
< span class = "n" > __marker< / span > < span class = "o" > =< / span > < span class = "nb" > object< / span > < span class = "p" > ()< / span >
< div class = "viewcode-block" id = "MutableMapping.pop" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping.pop" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "n" > __marker< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' D.pop(k[,d]) -> v, remove specified key and return the corresponding value.< / span >
< span class = "sd" > If key is not found, d is returned if given, otherwise KeyError is raised.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > default< / span > < span class = "ow" > is< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > __marker< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span >
< span class = "k" > return< / span > < span class = "n" > default< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span > < / div >
< div class = "viewcode-block" id = "MutableMapping.popitem" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping.popitem" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > popitem< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' D.popitem() -> (k, v), remove and return some (key, value) pair< / span >
< span class = "sd" > as a 2-tuple; but raise KeyError if D is empty.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > key< / span > < span class = "o" > =< / span > < span class = "nb" > next< / span > < span class = "p" > (< / span > < span class = "nb" > iter< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ))< / span >
< span class = "k" > except< / span > < span class = "ne" > StopIteration< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > KeyError< / span > < span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "kc" > None< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > del< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < / div >
< div class = "viewcode-block" id = "MutableMapping.clear" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping.clear" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > clear< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' D.clear() -> None. Remove all items from D.' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > while< / span > < span class = "kc" > True< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > popitem< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span > < / div >
< div class = "viewcode-block" id = "MutableMapping.update" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping.update" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > update< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "o" > =< / span > < span class = "p" > (),< / span > < span class = "o" > /< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwds< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' D.update([E, ]**F) -> None. Update D from mapping/iterable E and F.< / span >
< span class = "sd" > If E present and has a .keys() method, does: for k in E.keys(): D[k] = E[k]< / span >
< span class = "sd" > If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v< / span >
< span class = "sd" > In either case, this is followed by: for k, v in F.items(): D[k] = v< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Mapping< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > other< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > elif< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "s2" > " keys" < / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > keys< / span > < span class = "p" > ():< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > other< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > other< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > value< / span >
< span class = "k" > for< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "n" > kwds< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ():< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > value< / span > < / div >
< div class = "viewcode-block" id = "MutableMapping.setdefault" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableMapping.setdefault" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > setdefault< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > key< / span > < span class = "p" > ,< / span > < span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > key< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > default< / span >
< span class = "k" > return< / span > < span class = "n" > default< / span > < / div >
< / div >
< span class = "n" > MutableMapping< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > dict< / span > < span class = "p" > )< / span >
< span class = "c1" > ### SEQUENCES ###< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Sequence< / span > < span class = "p" > (< / span > < span class = "n" > Reversible< / span > < span class = "p" > ,< / span > < span class = "n" > Collection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " All the operations on a read-only sequence.< / span >
< span class = "sd" > Concrete subclasses must override __new__ or __init__,< / span >
< span class = "sd" > __getitem__, and __len__.< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "c1" > # Tell ABCMeta.__new__ that this class should have TPFLAGS_SEQUENCE set.< / span >
< span class = "n" > __abc_tpflags__< / span > < span class = "o" > =< / span > < span class = "mi" > 1< / span > < span class = "o" > < < < / span > < span class = "mi" > 5< / span > < span class = "c1" > # Py_TPFLAGS_SEQUENCE< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __getitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > index< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > IndexError< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iter__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > i< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > while< / span > < span class = "kc" > True< / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span >
< span class = "k" > yield< / span > < span class = "n" > v< / span >
< span class = "n" > i< / span > < span class = "o" > +=< / span > < span class = "mi" > 1< / span >
< span class = "k" > except< / span > < span class = "ne" > IndexError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __contains__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > v< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > v< / span > < span class = "ow" > is< / span > < span class = "n" > value< / span > < span class = "ow" > or< / span > < span class = "n" > v< / span > < span class = "o" > ==< / span > < span class = "n" > value< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __reversed__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "ow" > in< / span > < span class = "nb" > reversed< / span > < span class = "p" > (< / span > < span class = "nb" > range< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ))):< / span >
< span class = "k" > yield< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > index< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "n" > stop< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' S.index(value, [start, [stop]]) -> integer -- return first index of value.< / span >
< span class = "sd" > Raises ValueError if the value is not present.< / span >
< span class = "sd" > Supporting start and stop arguments is optional, but< / span >
< span class = "sd" > recommended.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > if< / span > < span class = "n" > start< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > start< / span > < span class = "o" > < < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "n" > start< / span > < span class = "o" > =< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > +< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "mi" > 0< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > stop< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > stop< / span > < span class = "o" > < < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "n" > stop< / span > < span class = "o" > +=< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "n" > i< / span > < span class = "o" > =< / span > < span class = "n" > start< / span >
< span class = "k" > while< / span > < span class = "n" > stop< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "ow" > or< / span > < span class = "n" > i< / span > < span class = "o" > < < / span > < span class = "n" > stop< / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > IndexError< / span > < span class = "p" > :< / span >
< span class = "k" > break< / span >
< span class = "k" > if< / span > < span class = "n" > v< / span > < span class = "ow" > is< / span > < span class = "n" > value< / span > < span class = "ow" > or< / span > < span class = "n" > v< / span > < span class = "o" > ==< / span > < span class = "n" > value< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > i< / span >
< span class = "n" > i< / span > < span class = "o" > +=< / span > < span class = "mi" > 1< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.count(value) -> integer -- return number of occurrences of value' < / span >
< span class = "k" > return< / span > < span class = "nb" > sum< / span > < span class = "p" > (< / span > < span class = "mi" > 1< / span > < span class = "k" > for< / span > < span class = "n" > v< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "k" > if< / span > < span class = "n" > v< / span > < span class = "ow" > is< / span > < span class = "n" > value< / span > < span class = "ow" > or< / span > < span class = "n" > v< / span > < span class = "o" > ==< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "n" > Sequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > tuple< / span > < span class = "p" > )< / span >
< span class = "n" > Sequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > )< / span >
< span class = "n" > Sequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > range< / span > < span class = "p" > )< / span >
< span class = "n" > Sequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > memoryview< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > _DeprecateByteStringMeta< / span > < span class = "p" > (< / span > < span class = "n" > ABCMeta< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > bases< / span > < span class = "p" > ,< / span > < span class = "n" > namespace< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > name< / span > < span class = "o" > !=< / span > < span class = "s2" > " ByteString" < / span > < span class = "p" > :< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > warnings< / span >
< span class = "n" > warnings< / span > < span class = "o" > .< / span > < span class = "n" > _deprecated< / span > < span class = "p" > (< / span >
< span class = "s2" > " collections.abc.ByteString" < / span > < span class = "p" > ,< / span >
2026-01-12 16:26:53 +00:00
< span class = "n" > remove< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "mi" > 17< / span > < span class = "p" > ),< / span >
2025-08-15 18:14:21 +00:00
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > bases< / span > < span class = "p" > ,< / span > < span class = "n" > namespace< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __instancecheck__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > instance< / span > < span class = "p" > ):< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > warnings< / span >
< span class = "n" > warnings< / span > < span class = "o" > .< / span > < span class = "n" > _deprecated< / span > < span class = "p" > (< / span >
< span class = "s2" > " collections.abc.ByteString" < / span > < span class = "p" > ,< / span >
2026-01-12 16:26:53 +00:00
< span class = "n" > remove< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "mi" > 17< / span > < span class = "p" > ),< / span >
2025-08-15 18:14:21 +00:00
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __instancecheck__< / span > < span class = "p" > (< / span > < span class = "n" > instance< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > ByteString< / span > < span class = "p" > (< / span > < span class = "n" > Sequence< / span > < span class = "p" > ,< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > _DeprecateByteStringMeta< / span > < span class = "p" > ):< / span >
2026-01-12 16:26:53 +00:00
< span class = "w" > < / span > < span class = "sd" > " " " Deprecated ABC serving as a common supertype of ``bytes`` and ``bytearray``.< / span >
2025-08-15 18:14:21 +00:00
2026-01-12 16:26:53 +00:00
< span class = "sd" > This ABC is scheduled for removal in Python 3.17.< / span >
< span class = "sd" > Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj``< / span >
< span class = "sd" > implements the buffer protocol at runtime. For use in type annotations,< / span >
< span class = "sd" > either use ``Buffer`` or a union that explicitly specifies the types your< / span >
< span class = "sd" > code supports (e.g., ``bytes | bytearray | memoryview``).< / span >
2025-08-15 18:14:21 +00:00
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "n" > ByteString< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > bytes< / span > < span class = "p" > )< / span >
< span class = "n" > ByteString< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > bytearray< / span > < span class = "p" > )< / span >
< div class = "viewcode-block" id = "MutableSequence" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence" > [docs]< / a >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > MutableSequence< / span > < span class = "p" > (< / span > < span class = "n" > Sequence< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " All the operations on a read-write sequence.< / span >
< span class = "sd" > Concrete subclasses must provide __new__ or __init__,< / span >
< span class = "sd" > __getitem__, __setitem__, __delitem__, __len__, and insert().< / span >
< span class = "sd" > " " " < / span >
< span class = "vm" > __slots__< / span > < span class = "o" > =< / span > < span class = "p" > ()< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __setitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > index< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > IndexError< / span >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __delitem__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > index< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > IndexError< / span >
< div class = "viewcode-block" id = "MutableSequence.insert" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.insert" > [docs]< / a >
< span class = "nd" > @abstractmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > insert< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > index< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.insert(index, value) -- insert value before index' < / span >
< span class = "k" > raise< / span > < span class = "ne" > IndexError< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.append" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.append" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > append< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.append(value) -- append value to the end of the sequence' < / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > insert< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ),< / span > < span class = "n" > value< / span > < span class = "p" > )< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.clear" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.clear" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > clear< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.clear() -> None -- remove all items from S' < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > while< / span > < span class = "kc" > True< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > pop< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > IndexError< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.reverse" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.reverse" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > reverse< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.reverse() -- reverse *IN PLACE*' < / span >
< span class = "n" > n< / span > < span class = "o" > =< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "ow" > in< / span > < span class = "nb" > range< / span > < span class = "p" > (< / span > < span class = "n" > n< / span > < span class = "o" > //< / span > < span class = "mi" > 2< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ],< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > n< / span > < span class = "o" > -< / span > < span class = "n" > i< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > n< / span > < span class = "o" > -< / span > < span class = "n" > i< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ],< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.extend" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.extend" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > extend< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > values< / span > < span class = "p" > ):< / span >
< span class = "s1" > ' S.extend(iterable) -- extend sequence by appending elements from the iterable' < / span >
< span class = "k" > if< / span > < span class = "n" > values< / span > < span class = "ow" > is< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "n" > values< / span > < span class = "o" > =< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > values< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > v< / span > < span class = "ow" > in< / span > < span class = "n" > values< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > v< / span > < span class = "p" > )< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.pop" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.pop" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > index< / span > < span class = "o" > =-< / span > < span class = "mi" > 1< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' S.pop([index]) -> item -- remove and return item at index (default last).< / span >
< span class = "sd" > Raise IndexError if list is empty or index is out of range.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "n" > v< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > index< / span > < span class = "p" > ]< / span >
< span class = "k" > del< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "n" > index< / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > v< / span > < / div >
< div class = "viewcode-block" id = "MutableSequence.remove" >
< a class = "viewcode-back" href = "../../api/evennia.utils.dbserialize.html#evennia.utils.dbserialize.MutableSequence.remove" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > remove< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > ' ' ' S.remove(value) -- remove first occurrence of value.< / span >
< span class = "sd" > Raise ValueError if the value is not present.< / span >
< span class = "sd" > ' ' ' < / span >
< span class = "k" > del< / span > < span class = "bp" > self< / span > < span class = "p" > [< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > index< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )]< / span > < / div >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __iadd__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > values< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > extend< / span > < span class = "p" > (< / span > < span class = "n" > values< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < / div >
< span class = "n" > MutableSequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > list< / span > < span class = "p" > )< / span >
< span class = "n" > MutableSequence< / span > < span class = "o" > .< / span > < span class = "n" > register< / span > < span class = "p" > (< / span > < span class = "nb" > bytearray< / span > < span class = "p" > )< / span > < span class = "c1" > # Multiply inheriting, see ByteString< / span >
< / pre > < / div >
< div class = "clearer" > < / div >
< / div >
< / div >
< / div >
< div class = "sphinxsidebar" role = "navigation" aria-label = "Main" >
< div class = "sphinxsidebarwrapper" >
< p class = "logo" > < a href = "../../index.html" >
< img class = "logo" src = "../../_static/evennia_logo.png" alt = "Logo of Evennia" / >
< / a > < / p >
< search id = "searchbox" style = "display: none" role = "search" >
< h3 id = "searchlabel" > Quick search< / h3 >
< div class = "searchformwrapper" >
< form class = "search" action = "../../search.html" method = "get" >
< input type = "text" name = "q" aria-labelledby = "searchlabel" autocomplete = "off" autocorrect = "off" autocapitalize = "off" spellcheck = "false" / >
< input type = "submit" value = "Go" / >
< / form >
< / div >
< / search >
< script > document . getElementById ( 'searchbox' ) . style . display = "block" < / script > < h3 > Links< / h3 >
< ul >
< li > < a href = "https://www.evennia.com/docs/latest/index.html" > Documentation Top< / a > < / li >
< li > < a href = "https://www.evennia.com" > Evennia Home< / a > < / li >
< li > < a href = "https://github.com/evennia/evennia" > Github< / a > < / li >
< li > < a href = "http://games.evennia.com" > Game Index< / a > < / li >
< li >
< a href = "https://discord.gg/AJJpcRUhtF" > Discord< / a > -
< a href = "https://github.com/evennia/evennia/discussions" > Discussions< / a > -
< a href = "https://evennia.blogspot.com/" > Blog< / a >
< / li >
< / ul >
< h3 > Doc Versions< / h3 >
< ul >
< li >
< a href = "https://www.evennia.com/docs/latest/index.html" > latest (main branch)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/5.x/index.html" > v5.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/4.x/index.html" > v4.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/3.x/index.html" > v3.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/2.x/index.html" > v2.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/1.x/index.html" > v1.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/0.x/index.html" > v0.9.5 branch (outdated)< / a >
< / li >
< / ul >
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
< div class = "related" role = "navigation" aria-label = "Related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../../genindex.html" title = "General Index"
>index< / a > < / li >
< li class = "right" >
< a href = "../../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
< li class = "nav-item nav-item-0" > < a href = "../../index.html" > Evennia< / a > » < / li >
< li class = "nav-item nav-item-1" > < a href = "../index.html" > Module code< / a > » < / li >
< li class = "nav-item nav-item-2" > < a href = "../collections.html" > collections< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > collections.abc< / a > < / li >
< / ul >
< / div >
< div class = "footer" role = "contentinfo" >
© Copyright 2024, The Evennia developer community.
Created using < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > 8.2.3.
< / div >
< / body >
< / html >