I’m dynamically creating python classes, and I know not all characters are valid in this context.
Is there a method somewhere in the class library that I can use to sanitize a random text string, so that I can use it as a class name? Either that or a list of the allowed characters would be a good help.
Addition regarding clashes with identifier names: Like @Ignacio pointed out in the answer below, any character that is valid as an identifier is a valid character in a class name. And you can even use a reserved word as a class name without any trouble. But there’s a catch. If you do use a reserved word, you won’t be able to make the class accessible like other (non-dynamically-created) classes (e.g., by doing globals()[my_class.__name__] = my_class). The reserved word will always take precedence in such case.
Python 3
Python Language Reference, §2.3, "Identifiers and keywords"
Python 2
Python Language Reference, §2.3, "Identifiers and keywords"