code: def query(self, *args):
          
  
          log("calling client.query")
          self._connect()
          try:
              self.sendConn.send(args)
  
              res = self.receive()
              while self.isUnilateralResponse(res):
                  res = self.receive()
  
              return res
          except EnvironmentError as ee:
              # When we can depend on Python 3, we can use PEP 3134
              # exception chaining here.
              raise WatchmanEnvironmentError(
                  "I/O error communicating with watchman daemon",
                  ee.errno,
                  ee.strerror,
                  args,
              )
          except WatchmanError as ex:
              ex.setCommand(args)
              raise
docs: Send a query to the watchman service and return the response
  
          This call will block until the response is returned.
          If any unilateral responses are sent by the service in between
          the request-response they will be buffered up in the client object
          and NOT returned via this method.