@classmethod
def validate(cls, keystr):
    """ raises cls.Bad if keys has errors """
    if '#{' in keystr:
        keys = cls.from_template(keystr)
        for k in keys:
            cls.validate_one(cls.extract(k))
    else:
        cls.validate_one(keystr)
