diff options
author | Ian Ward <ian@excess.org> | 2014-03-08 16:39:31 -0500 |
---|---|---|
committer | Ian Ward <ian@excess.org> | 2014-03-08 16:39:31 -0500 |
commit | 57a9953dd0b41d672b0158195b8167001ea568fa (patch) | |
tree | 4c305208bb42b67834cc70657a9819cdd2884810 /urwid/__init__.py | |
parent | f259740c64c4149416a8bd15997e8151a30b37bd (diff) | |
download | urwid-faster-import.tar.gz |
better fix for dependency on modules imported at top levelfaster-import
Diffstat (limited to 'urwid/__init__.py')
-rw-r--r-- | urwid/__init__.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/urwid/__init__.py b/urwid/__init__.py index f3a00cc..20ee5da 100644 --- a/urwid/__init__.py +++ b/urwid/__init__.py @@ -105,6 +105,7 @@ class _UrwidModule(object): 'vterm': ( 'TermModes', 'TermCharset', 'TermScroller', 'TermCanvas', 'Terminal'), + 'raw_display': (), } _reverse_names = dict((name, mod) for mod, names in _names.iteritems() @@ -122,17 +123,13 @@ class _UrwidModule(object): it easier for things like pyinstaller to tell what modules get imported. """ - if name == 'raw_display': - # special case: - # urwid.raw_display.Screen should work after import urwid - import urwid.raw_display - self.raw_display = urwid.raw_display - return urwid.raw_display - found = self._reverse_names.get(name) if not found: - raise AttributeError("urwid has no attribute '%s'" % name) - elif found == 'widget': + if name in self._names: + found = name + else: + raise AttributeError("urwid has no attribute '%s'" % name) + if found == 'widget': import urwid.widget elif found == 'decoration': import urwid.decoration @@ -166,6 +163,8 @@ class _UrwidModule(object): import urwid.treetols elif found == 'vterm': import urwid.vterm + elif found == 'raw_display': + import urwid.raw_display else: assert 0, 'missing import line for %s' % found @@ -173,6 +172,7 @@ class _UrwidModule(object): module = getattr(urwid, found) for n in self._names[found]: setattr(self, n, getattr(module, n)) + setattr(self, found, module) return getattr(self, name) |