docs: def compose(cls, sub_commands, macros=None, cluster_label=None, notify=False, name=None, tags=None):
          """
          Args:
              `sub_commands`: list of sub-command dicts
  
          Returns:
              Dictionary that can be used in create method
  
          Example Usage:
              cmd1 = HiveCommand.parse(['--query', "show tables"])
              cmd2 = PigCommand.parse(['--script_location', "s3://paid-qubole/PigAPIDemo/scripts/script1-hadoop-s3-small.pig"])
              composite = CompositeCommand.compose([cmd1, cmd2])
              cmd = CompositeCommand.run(**composite)
          """
          if macros is not None:
              macros = json.loads(macros)
          return {
                  "sub_commands": sub_commands,
                  "command_type": "CompositeCommand",
                  "macros": macros,
                  "label": cluster_label,
                  "tags": tags,
                  "can_notify": notify,
                  "name": name
                 }