X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b0cafb9172d567c99b2ede1606e750bf69abc704..777dffec694eae7231e4133e5dc6bbca78045f29:/wxPython/src/_core_ex.py diff --git a/wxPython/src/_core_ex.py b/wxPython/src/_core_ex.py index 855ba7e768..3856de4f6f 100644 --- a/wxPython/src/_core_ex.py +++ b/wxPython/src/_core_ex.py @@ -32,6 +32,35 @@ if RELEASE_VERSION != _core_.RELEASE_VERSION: #---------------------------------------------------------------------------- +# Set wxPython's default string<-->unicode conversion encoding from +# the locale, but only if Python's default hasn't been changed. (We +# assume that if the user has customized it already then that is the +# encoding we need to use as well.) +# +# The encoding selected here is used when string or unicode objects +# need to be converted in order to pass them to wxWidgets. Please be +# aware that the default encoding within the same locale may be +# slightly different on different platforms. For example, please see +# http://www.alanwood.net/demos/charsetdiffs.html for differences +# between the common latin/roman encodings. + +default = _sys.getdefaultencoding() +if default == 'ascii': + import locale + import codecs + try: + default = locale.getdefaultlocale()[1] + codecs.lookup(default) + except (ValueError, LookupError, TypeError): + default = _sys.getdefaultencoding() + del locale + del codecs +if default: + wx.SetDefaultPyEncoding(default) +del default + +#---------------------------------------------------------------------------- + class PyDeadObjectError(AttributeError): pass @@ -119,7 +148,7 @@ def CallAfter(callable, *args, **kw): class FutureCall: """ - A convenience class for wx.Timer, that calls the given callable + A convenience class for `wx.Timer`, that calls the given callable object once after the given amount of milliseconds, passing any positional or keyword args. The return value of the callable is availbale after it has been run with the `GetResult` method. @@ -227,7 +256,7 @@ class FutureCall: class __DocFilter: """ A filter for epydoc that only allows non-Ptr classes and - fucntions, in order to reduce the clutter in the API docs. + functions, in order to reduce the clutter in the API docs. """ def __init__(self, globals): self._globals = globals @@ -235,10 +264,22 @@ class __DocFilter: def __call__(self, name): import types obj = self._globals.get(name, None) + + # only document classes and function if type(obj) not in [type, types.ClassType, types.FunctionType, types.BuiltinFunctionType]: return False - if name.startswith('_') or name.endswith('Ptr') or name.startswith('EVT'): + + # skip other things that are private or will be documented as part of somethign else + if name.startswith('_') or name.startswith('EVT') or name.endswith('_swigregister') or name.endswith('Ptr') : return False + + # skip functions that are duplicates of static functions in a class + if name.find('_') != -1: + cls = self._globals.get(name.split('_')[0], None) + methname = name.split('_')[1] + if hasattr(cls, methname) and type(getattr(cls, methname)) is types.FunctionType: + return False + return True #---------------------------------------------------------------------------- @@ -251,10 +292,5 @@ from _windows import * from _controls import * from _misc import * - -# Fixup the stock objects since they can't be used yet. (They will be -# restored in wx.PyApp.OnInit.) -_core_._wxPyFixStockObjects() - #---------------------------------------------------------------------------- #----------------------------------------------------------------------------