# Copyright (c) 2018 gevent contributors. See LICENSE for details.import_socket__all__=['Resolver',]
[docs]classResolver(object):""" A resolver that directly uses the system's resolver functions. .. caution:: This resolver is *not* cooperative. This resolver has the lowest overhead of any resolver and typically approaches the speed of the unmodified :mod:`socket` functions. However, it is not cooperative, so if name resolution blocks, the entire thread and all its greenlets will be blocked. This can be useful during debugging, or it may be a good choice if your operating system provides a good caching resolver (such as macOS's Directory Services) that is usually very fast and functionally non-blocking. .. versionchanged:: 1.3a2 This was previously undocumented and existed in :mod:`gevent.socket`. """def__init__(self,hub=None):passdefclose(self):passformethodin('gethostbyname','gethostbyname_ex','getaddrinfo','gethostbyaddr','getnameinfo'):locals()[method]=staticmethod(getattr(_socket,method))