Completer objects have the following method:
If called for text that doesn't include a period character ("."), it will complete from names currently defined in __main__, __builtin__ and keywords (as defined by the keyword module).
If called for a dotted name, it will try to evaluate anything without obvious side-effects (i.e., functions will not be evaluated, but it can generate calls to __getattr__()) upto the last part, and find matches for the rest via the dir() function.
See About this document... for information on suggesting changes.