K i ddlZddlZddlmZddlmZddlmZddlm Z m Z ddl Z e jrddl m Z mZmZmZmZGdde Zy) N)Future)gen)IOLoop)Resolver is_valid_ip) GeneratorAnyListTupleDictc ~eZdZdZddZdedededdfdZded eddfd Ze j dd e d ed eddfdZ y) CaresResolveraName resolver based on the c-ares library. This is a non-blocking and non-threaded resolver. It may not produce the same results as the system resolver, but can be used for non-blocking resolution when threads cannot be used. ``pycares`` will not return a mix of ``AF_INET`` and ``AF_INET6`` when ``family`` is ``AF_UNSPEC``, so it is only recommended for use in ``AF_INET`` (i.e. IPv4). This is the default for ``tornado.simple_httpclient``, but other libraries may default to ``AF_UNSPEC``. .. versionchanged:: 5.0 The ``io_loop`` argument (deprecated since version 4.1) has been removed. .. deprecated:: 6.2 This class is deprecated and will be removed in Tornado 7.0. Use the default thread-based resolver instead. returnNctj|_tj|j |_i|_y)N) sock_state_cb)rcurrentio_looppycaresChannel_sock_state_cbchannelfds)selfs d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/tornado/platform/caresresolver.py initializezCaresResolver.initialize$s-~~' T5H5HI fdreadablewritablec|rtjnd|rtjndz}|s)|jj ||j |=y||j vr,|jj ||||j |<y|jj||j|||j |<y)Nr) rREADWRITErremove_handlerrupdate_handler add_handler_handle_events)rrrrstates rrzCaresResolver._sock_state_cb)s (aHFLLRST LL ' ' + 488^ LL ' 'E 2 DHHRL LL $ $R)<) Kt|r|g}npt |jj|| fd \}}|r1t d|dt j j|d||j}g}|D]}d|vrtj} n%d|vrtj} ntj} |tjk7r|| k7rt d|| fz|jtjt | ||ff|Sw)Nc*j||fSr*) set_result)resulterrorfuts rz'CaresResolver.resolve..HsCNNFE?4SrzC-Ares returned error z: z while resolving .:z%Requested socket family %d but got %d)rrr gethostbynameOSErrorrerrnostrerror addressessocketAF_INETAF_INET6 AF_UNSPECappendtypingcastint) rr/r0r1r?r5r6addrinfoaddressaddress_familyr7s @rresolvezCaresResolver.resolve>s t I(C LL & &fS #&IMFEgmm44U;TC((I QGg~!'!'!'!1!1)))f.F;v~>VV OOV[[n=O P QsDD)rN)r) __name__ __module__ __qualname____doc__rrGboolrr&r coroutinestrrKrrrrs( ! ! ! ! !33c3d3 ]]23",/ 5rr)rr@tornado.concurrentrtornadortornado.iolooprtornado.netutilrrrE TYPE_CHECKINGrr r r r rrSrrrYs7 %!1  88OHOr