code: def unpack_data(self, usnap=.2):  # 2/10th second sleep between empty requests
          
          for new_data in self.socket:
              if new_data:
                  self.data_stream.unpack(new_data)
              else:
                  sleep(usnap)
docs: Iterates over socket response and unpacks values of object attributes.
          Sleeping here has the greatest response to cpu cycles short of blocking sockets