'Creates a new CmdSet instance.
Args:
cmdsetobj (Session, Player, Object, optional): This is the database object
to which this particular instance of cmdset is related. It
is often a character but may also be a regular object, Player
or Session.
key (str, optional): The idenfier for this cmdset. This
helps if wanting to selectively remov cmdsets.'

def __init__(self, cmdsetobj=None, key=None):

    if key:
        self.key = key
    self.commands = []
    self.system_commands = []
    self.actual_mergetype = self.mergetype
    self.cmdsetobj = cmdsetobj
    self.merged_from = []
    self.at_cmdset_creation()
    self._contains_cache = WeakKeyDictionary()
