1fded56b37
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
"""wx package
|
|
|
|
Provides a way to drop the wx prefix from wxPython objects by
|
|
dynamically loading and renaming objects from the real wxPython
|
|
package. This is the first phase of a transition to a new style of
|
|
using wxPython. For example:
|
|
|
|
import wx
|
|
class MyFrame(wx.Frame):
|
|
...
|
|
|
|
instead of:
|
|
|
|
from wxPython.wx import *
|
|
class MyFrame(wxFrame):
|
|
...
|
|
|
|
or:
|
|
|
|
from wxPython import wx
|
|
class MyFrame(wx.wxFrame):
|
|
...
|
|
|
|
|
|
Internally, this package contains only one function, called _rename,
|
|
and one dictionary, called _newnames. These are used by wx itself and
|
|
by its sub-modules whenever they are imported. The _rename function
|
|
changes the names in the real wxPython module being imported according
|
|
to the rules that have been decided, e.g. most wx prefixes are
|
|
removed, and the new names are made visible in the wx package or
|
|
sub-packages.
|
|
|
|
The _newnames dictionary holds the set of new names (from wx and ALL
|
|
sub-modules), keyed by the original name. This serves two purposes,
|
|
duplicate old names in different modules are eliminated, the survivor
|
|
being the name in wx itself; and the dictionary is accessible to
|
|
external scripts whose purpose is to change occurrences of the
|
|
corresponding names in application programs that use wx.
|
|
|
|
"""
|
|
|
|
__cvsid__ = "$Id$"
|
|
__revision__ = "$Revision$"[11:-2]
|
|
|
|
from wxPython import wx
|
|
|
|
_newnames = {}
|
|
|
|
def _rename(d_new, d_old, modulename=None):
|
|
" copy the names from d_old to d_new according to the rules"
|
|
global _newnames
|
|
import types
|
|
prefix = 'wx.'
|
|
if modulename:
|
|
prefix += modulename + '.'
|
|
for old, obj in d_old.items():
|
|
if type(obj) is types.ModuleType or old.startswith('_'):
|
|
# Skip modules and private names.
|
|
continue
|
|
if old.startswith('wx') and not old.startswith('wxEVT_'):
|
|
# remove all wx prefixes except wxEVT_
|
|
new = old[2:]
|
|
else:
|
|
# add everything else unchanged
|
|
new = old
|
|
if not _newnames.has_key(old):
|
|
d_new[new] = obj
|
|
_newnames[old] = prefix + new # add fully qualified new name to lookup using old name as key
|
|
|
|
# rename the wx namespace itself
|
|
_rename(globals(), wx.__dict__)
|
|
del wx
|
|
|