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 (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.