docs: def unpack(self, to_unpack):
          """
          Unpack is a recursive function that will unpack anything that inherits
          from abstract base class Container provided it is not also inheriting from Python basestring.
  
          Raise Exception if resulting object is neither a container or a string
  
          Code working in both Python 2 and Python 3
          """
  
          # Python 3 lacks basestring type, work around below
          try:
              isinstance(to_unpack, basestring)
          except NameError:
              basestring = str
  
          # Base Case
          if isinstance(to_unpack, basestring):
              self.input_queue.put(to_unpack)
              return
  
          for possible_key in to_unpack:
              if isinstance(possible_key, basestring):
                  self.input_queue.put(possible_key)
  
              elif sys.version_info >= (3, 0):
                  if isinstance(possible_key, collections.abc.Container) and not isinstance(possible_key, basestring):
                      self.unpack(possible_key)
                  else:
                      raise Exception("A type that is neither a string or a container was passed to unpack. "
                                      "Aborting!")
  
              else:
                  if isinstance(possible_key, collections.Container) and not isinstance(possible_key, basestring):
                      self.unpack(possible_key)
                  else:
                      raise Exception("A type that is neither a string or a container was passed to unpack. "
                                      "Aborting!")