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