def has_tag(obj, key, category): return obj.tags.get(key=key, category=category) is not None; def fmt_light(message): return "|r\u2600|y {} |r\u2600|n".format(message) def fmt_dark(message): return "|w\u2600|=h {} |w\u2600|n".format(message) def toggle_effect(obj, effect): if has_tag(obj, effect, "effect"): obj.tags.remove(effect, category="effect") else: obj.tags.add(effect, category="effect") def has_effect(obj, effect): return has_tag(obj, effect, "effect") def has_effect_in(obj, effects): return any(True for effect in effects if has_tag(obj, effect, "effect")) def indefinite_article(name): """Return the right english indefinite article for given name.""" the_vowels = ["a","e","i","o","u"] value = "" if name[0].lower() in the_vowels: value = "an" else: value = "a" return value