Currently (version 9.2.0) all types and some functions like DFA.random_word indicate that the automata only work with strings for the transitions and as state identifiers.
Nonetheless, by (mis-)using this library to work with automata (NFA and DFA) for arbitrary frozen python objects and not encountering any conceptual errors (except for adjusting one line in DFA.random_word) it seems that this library is robust enough to be used with arbitrary frozen nodes and transitions for the automata.
Ideally this is explicitly reflected in the types and in the documentation.
In particular, there are likely some functions which require small adjustments DFA.random_word to work correctly with arbitrary python objects.
P.S. Great library, has been a pleasure to work with ^^