code: def _getaddrinfo(self, host: str, family: int=socket.AF_UNSPEC) \
              -> List[tuple]:
          '''Query DNS using system resolver.
  
          Coroutine.
          '''
          event_loop = asyncio.get_event_loop()
          query = event_loop.getaddrinfo(host, 0, family=family,
                                         proto=socket.IPPROTO_TCP)
  
          if self._timeout:
              query = asyncio.wait_for(query, self._timeout)
  
          try:
              results = yield from query
          except socket.error as error:
              if error.errno in (
                      socket.EAI_FAIL,
                      socket.EAI_NODATA,
                      socket.EAI_NONAME):
                  raise DNSNotFound(
                      'DNS resolution failed: {error}'.format(error=error)
                  ) from error
              else:
                  raise NetworkError(
                      'DNS resolution error: {error}'.format(error=error)
                  ) from error
          except asyncio.TimeoutError as error:
              raise NetworkError('DNS resolve timed out.') from error
          else:
              return resultf _getaddrinfo(self, host: str, family: int=socket.AF_UNSPEC) \
              -> List[tuple]:
          '''Query DNS using system resolver.
  
          Coroutine.
          '''
          event_loop = asyncio.get_event_loop()
          query = event_loop.getaddrinfo(host, 0, family=family,
                                         proto=socket.IPPROTO_TCP)
  
          if self._timeout:
              query = asyncio.wait_for(query, self._timeout)
  
          try:
              results = yield from query
          except socket.error as error:
              if error.errno in (
                      socket.EAI_FAIL,
                      socket.EAI_NODATA,
                      socket.EAI_NONAME):
                  raise DNSNotFound(
                      'DNS resolution failed: {error}'.format(error=error)
                  ) from error
              else:
                  raise NetworkError(
                      'DNS resolution error: {error}'.format(error=error)
                  ) from error
          except asyncio.TimeoutError as error:
              raise NetworkError('DNS resolve timed out.') from error
          else:
              return results
docs: Query DNS using system resolver.
  
          Coroutine.