code: def decode(cls, command_str):
          
  
          name, _, arg = command_str.partition(" ")
  
          args = []
  
          if len(arg) > 0:
              if arg[0] != '{' or arg[-1] != '}':
                  raise DataError("Invalid command, argument is not contained in { and }", arg=arg, cmd=name)
  
              arg = arg[1:-1]
              args = arg.split(",")
  
          proc = []
  
          for arg in args:
              if arg.startswith("hex:"):
                  arg = unhexlify(arg[4:]).decode('utf-8')
  
              proc.append(arg)
  
          return Command(name, proc)
docs: Decode a string encoded command back into a Command object.
  
          Args:
              command_str (str): The encoded command string output from a
                  previous call to encode.
  
          Returns:
              Command: The decoded Command object.