code: def configure(self, *, hwm: int=None, rcvtimeo: int=None, sndtimeo: int=None, linger: int=None) -> 'Socket':
          
          if hwm is not None:
              self.set_hwm(hwm)
          if rcvtimeo is not None:
              self.setsockopt(zmq.RCVTIMEO, rcvtimeo)
          if sndtimeo is not None:
              self.setsockopt(zmq.SNDTIMEO, sndtimeo)
          if linger is not None:
              self.setsockopt(zmq.LINGER, linger)
          return self
docs: Allows to configure some common socket options and configurations, while allowing method chaining