live # ˆl–ß=¿Jµ4Ÿº‚€ Ap¸ÓÊbÑ¿É ƒ LµÈÀÆš """ Commonly used hooks for on_setattr. """ from __future__ import absolute_import, division, print_function from . import _config from .exceptions import FrozenAttributeError def pipe(*setters): """ Run all *setters* and return the return value of the last one. .. versionadded:: 20.1.0 """ def wrapped_pipe(instance, attrib, new_value): rv = new_value for setter in setters: rv = setter(instance, attrib, rv) return rv return wrapped_pipe def frozen(_, __, ___): """ Prevent an attribute to be modified. .. versionadded:: 20.1.0 """ raise FrozenAttributeError() def validate(instance, attrib, new_value): """ Run *attrib*'s validator on *new_value* if it has one. .. versionadded:: 20.1.0 """ if _config._run_validators is False: return new_value v = attrib.validator if not v: return new_value v(instance, attrib, new_value) return new_value def convert(instance, attrib, new_value): """ Run *attrib*'s converter -- if it has one -- on *new_value* and return the result. .. versionadded:: 20.1.0 """ c = attrib.converter if c: return c(new_value) return new_value NO_OP = object() """ Sentinel for disabling class-wide *on_setattr* hooks for certain attributes. Does not work in `pipe` or within lists. .. versionadded:: 20.1.0 """ !ˆl–ß=¿JJj"Tâ‚ÆÙ¸ÓªbÑ¿Ê 0ÉÁÇ;ˆl–äY>”*e¶…6 Aq‘\e•1hßË „Ï_Êa–ß=¿JJj"Tâ‚ÆÙ¸ÓÊbÑ¿É?÷§ Ä:¼P7sÁãó~—dZddlZddlZddlZddlZddlZeed¦«redz ZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd l mZdd lmZd Zdedœd„Zdedœd„Zeed¦«rdedœd„Zdedœd„ZGd„de j¦«ZGd„dee j¦«ZGd„d¦«ZGd„d¦«ZdS))Ú StreamReaderÚ StreamWriterÚStreamReaderProtocolÚopen_connectionÚ start_serveréNÚAF_UNIX)Úopen_unix_connectionÚstart_unix_serveré)Ú coroutines)Úevents)Ú exceptions)Úformat_helpers)Ú protocols)Úlogger)Úsleepi)Úlimitc‹ó؇ K— tj¦«}t||¬¦«}t||¬¦«Š |jˆ fd„||fi|¤Žƒd{V—†\}}t |‰ ||¦«}||fS)N©rÚloop©rcó•—‰S©N©©Úprotocols€úz!open_connection..1sø€�€ó)r Úget_running_looprrÚcreate_connectionr) ÚhostÚportrÚkwdsrÚreaderÚ transportÚ_Úwriterrs @rrrs°øèè€ðõ" Ô "Ñ $Ô $€DÝ  ¨DÐ 1Ñ 1Ô 1€FÝ# F°Ð6Ñ6Ô6€HØ/˜Ô/ØÐÐИ$ ð.ð.Ø(,ð.ð.ð.ð.ð.ð.ð.ð.�L€Iˆqå ˜) X¨v°tÑ <Ô <€FØ �6ˆ>Ðrc‹ón‡‡‡K— tj¦«Šˆˆˆfd„}‰j|||fi|¤Žƒd{V—†S)NcóN•—t‰‰¬¦«}t|‰‰¬¦«}|S©Nrr©rr©r%rÚclient_connected_cbrrs €€€rÚfactoryzstart_server..factoryNs6ø€Ý E°Ð5Ñ5Ô5ˆÝ'¨Ð0CØ-1ð3ñ3ô3ˆàˆr)r r Ú create_server)r.r"r#rr$r/rs` ` @rrr6støøøèè€ðõ( Ô "Ñ $Ô $€Dðððððððð $�Ô# G¨T°4Ð@Ð@¸4Ð@Ð@Ð @Ð @Ð @Ð @Ð @Ð @Ð@rc‹óÖ‡K— tj¦«}t||¬¦«}t||¬¦«Š|jˆfd„|fi|¤Žƒd{V—†\}}t |‰||¦«}||fS)Nrrcó•—‰Srrrs€rrz&open_unix_connection..b