diff options
author | Johan Dahlin <johan@src.gnome.org> | 2006-07-23 15:02:18 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2006-07-23 15:02:18 +0000 |
commit | 89d569d07deebc33e9e7a3ca4251056af38d5cbd (patch) | |
tree | 33d2243283b6841d36ba2b2b17784e624e2c259d | |
parent | 30510d904960bef4c9382aac264b052739b4b237 (diff) | |
download | pygtk-89d569d07deebc33e9e7a3ca4251056af38d5cbd.tar.gz |
Revert dynamic namespaces, it is not possible to solve it without breaking
* Makefile.am:
* gtk/Makefile.am:
* gtk/__init__.py:
* gtk/_gtk.py:
* gtk/_lazyutils.py:
* gtk/deprecation.py:
* gtk/gtk.override:
* gtk/gtkmodule.c: (init_gtk):
* gtk/libglademodule.c: (initglade):
Revert dynamic namespaces, it is not possible
to solve it without breaking the ABI.
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | Makefile.am | 32 | ||||
-rw-r--r-- | gtk/Makefile.am | 51 | ||||
-rw-r--r-- | gtk/__init__.py | 30 | ||||
-rw-r--r-- | gtk/_gtk.py | 30 | ||||
-rw-r--r-- | gtk/_lazyutils.py | 15 | ||||
-rw-r--r-- | gtk/deprecation.py | 2 | ||||
-rw-r--r-- | gtk/gtk.override | 2 | ||||
-rw-r--r-- | gtk/gtkmodule.c | 5 | ||||
-rw-r--r-- | gtk/libglademodule.c | 4 |
10 files changed, 86 insertions, 100 deletions
@@ -1,3 +1,18 @@ +2006-07-23 Johan Dahlin <johan@gnome.org> + + * Makefile.am: + * gtk/Makefile.am: + * gtk/__init__.py: + * gtk/_gtk.py: + * gtk/_lazyutils.py: + * gtk/deprecation.py: + * gtk/gtk.override: + * gtk/gtkmodule.c: (init_gtk): + * gtk/libglademodule.c: (initglade): + + Revert dynamic namespaces, it is not possible + to solve it without breaking the ABI. + 2006-07-23 Gustavo J. A. M. Carneiro <gjc@gnome.org> * gtk/_gtk.py: Add _PyGtk_API alias from _gtkimpl, for diff --git a/Makefile.am b/Makefile.am index d47cb106..7b99c1af 100644 --- a/Makefile.am +++ b/Makefile.am @@ -105,38 +105,6 @@ pkgpyexec_LTLIBRARIES += pangocairo.la defs_DATA += $(PANGOCAIRO_DEFS) endif -# libglade module -# XXX: Move libglade to -LIBGLADE_DEFS = gtk/libglade.defs -CLEANFILES += gtk/libglade.c -EXTRA_DIST += $(LIBGLADE_DEFS) gtk/libglade.override -libglade.c: $(LIBGLADE_DEFS) gtk/libglade.override -_glade_la_CFLAGS = $(LIBGLADE_CFLAGS) -_glade_la_LIBADD = $(LIBGLADE_LIBS) -_glade_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_glade -_glade_la_SOURCES = gtk/libglademodule.c -nodist__glade_la_SOURCES = gtk/libglade.c -if BUILD_LIBGLADE -pkgpyexec_LTLIBRARIES += _glade.la -defs_DATA += $(LIBGLADE_DEFS) -endif - -# gtkunixprint module -GTKUNIXPRINT_DEFS = gtk/gtkunixprint.defs -CLEANFILES += gtk/gtkunixprint.c -EXTRA_DIST += $(GTKUNIXPRINT_DEFS) gtk/gtkunixprint.override -gtkunixprint.c: $(GTKUNIXPRINT_DEFS) gtk/gtkunixprint.override -gtkunixprint_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTKUNIXPRINT_CFLAGS) -gtkunixprint_la_LIBADD = $(GTKUNIXPRINT_LIBS) -gtkunixprint_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initgtkunixprint -gtkunixprint_la_SOURCES = gtk/gtkunixprintmodule.c -nodist_gtkunixprint_la_SOURCES = gtk/gtkunixprint.c -if BUILD_GTKUNIXPRINT -pkgpyexec_LTLIBRARIES += gtkunixprint.la -defs_DATA += $(GTKUNIXPRINT_DEFS) -endif - - # code generator .defs.c: (cd $(srcdir)\ diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 6031d75b..cd913483 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -25,8 +25,6 @@ pygtkexec_LTLIBRARIES = pygtkdir = $(pkgpythondir)/gtk pygtk_PYTHON = \ __init__.py \ - _gtk.py \ - _lazyutils.py \ compat.py \ deprecation.py \ keysyms.py @@ -99,26 +97,22 @@ EXTRA_DIST += \ gdk.defs: $(GDK_DEFS) $(CREATEDEFS) $@ $(GDK_DEFS) -gdk.defs: Makefile gtk.defs: $(GTK_DEFS) $(CREATEDEFS) $@ $(GTK_DEFS) -gtk.defs: Makefile gdk-types.defs: $(GDK_TYPES_DEFS) $(CREATEDEFS) $@ $(GDK_TYPES_DEFS) -gdk-types.defs: Makefile gtk-types.defs: $(GTK_TYPES_DEFS) $(CREATEDEFS) $@ $(GTK_TYPES_DEFS) -gtk-types.defs: Makefile gdk.c: gdk-types.defs gdk.defs $(GDK_OVERRIDES) gtk.c: gdk-types.defs gtk-types.defs gtk.defs gdk-types.defs $(GTK_OVERRIDES) -_gtkimpl_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTK_CFLAGS) -_gtkimpl_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtkimpl -_gtkimpl_la_LIBADD = $(GTK_LIBS) -_gtkimpl_la_SOURCES = \ +_gtk_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTK_CFLAGS) +_gtk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtk +_gtk_la_LIBADD = $(GTK_LIBS) +_gtk_la_SOURCES = \ gtk-types.c \ gtkmodule.c \ gtkobject-support.c \ @@ -128,14 +122,45 @@ _gtkimpl_la_SOURCES = \ pygtkcellrenderer.c \ pygtktreemodel.h \ pygtktreemodel.c -nodist__gtkimpl_la_SOURCES = gtk.c gdk.c +nodist__gtk_la_SOURCES = gtk.c gdk.c if BUILD_GTK -pygtkexec_LTLIBRARIES += _gtkimpl.la +pygtkexec_LTLIBRARIES += _gtk.la defs_DATA += $(GDK_DEFS) $(GDK_TYPES_DEFS) $(GTK_DEFS) $(GTK_TYPES_DEFS) \ gdk.defs gtk.defs gdk-types.defs gtk-types.defs endif + +# libglade module +LIBGLADE_DEFS = libglade.defs +CLEANFILES += libglade.c +EXTRA_DIST += $(LIBGLADE_DEFS) libglade.override +libglade.c: $(LIBGLADE_DEFS) libglade.override +glade_la_CFLAGS = $(LIBGLADE_CFLAGS) +glade_la_LIBADD = $(LIBGLADE_LIBS) +glade_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initglade +glade_la_SOURCES = libglademodule.c +nodist_glade_la_SOURCES = libglade.c +if BUILD_LIBGLADE +pygtkexec_LTLIBRARIES += glade.la +defs_DATA += $(LIBGLADE_DEFS) +endif + +# gtkunixprint module +GTKUNIXPRINT_DEFS = gtkunixprint.defs +CLEANFILES += gtkunixprint.c +EXTRA_DIST += $(GTKUNIXPRINT_DEFS) gtkunixprint.override +gtkunixprint.c: $(GTKUNIXPRINT_DEFS) gtkunixprint.override +gtkunixprint_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTKUNIXPRINT_CFLAGS) +gtkunixprint_la_LIBADD = $(GTKUNIXPRINT_LIBS) +gtkunixprint_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initgtkunixprint +gtkunixprint_la_SOURCES = gtkunixprintmodule.c +nodist_gtkunixprint_la_SOURCES = gtkunixprint.c +if BUILD_GTKUNIXPRINT +pkgpyexec_LTLIBRARIES = gtkunixprint.la +defs_DATA += $(GTKUNIXPRINT_DEFS) +endif + if PLATFORM_WIN32 -_gtkimpl_la_CFLAGS += -DPLATFORM_WIN32 +_gtk_la_CFLAGS += -DPLATFORM_WIN32 endif diff --git a/gtk/__init__.py b/gtk/__init__.py index 9b50006c..608646aa 100644 --- a/gtk/__init__.py +++ b/gtk/__init__.py @@ -42,7 +42,7 @@ if ver < (2, 11, 1): raise ImportError( "PyGTK requires PyGObject 2.11.1 or higher, but %s was found" % (ver,)) -from gtk import _gtkimpl +from gtk import _gtk import gdk if ltihooks: @@ -55,12 +55,11 @@ from gtk.deprecation import _Deprecated, _DeprecatedConstant def _init(): import sys - init_check = _gtkimpl._get_symbol(globals(), 'init_check') try: sys_path = sys.path[:] try: - init_check() + _gtk.init_check() except RuntimeError, e: print >> sys.stderr, "WARNING: %s" % e finally: @@ -70,15 +69,14 @@ def _init(): sys.path = sys_path # install the default log handlers - add_log_handlers = _gtkimpl._get_symbol(globals(), 'add_log_handlers') - add_log_handlers() + _gtk.add_log_handlers() keysyms = LazyModule('keysyms', locals()) _init() # CAPI -_PyGtk_API = _gtkimpl._PyGtk_API +_PyGtk_API = _gtk._PyGtk_API gdk.INPUT_READ = _gobject.IO_IN | _gobject.IO_HUP | _gobject.IO_ERR gdk.INPUT_WRITE = _gobject.IO_OUT | _gobject.IO_HUP @@ -123,14 +121,14 @@ del _Deprecated, _DeprecatedConstant, _gobject, _init, _lazyutils # Do this as late as possible, so programs like pyflakes can check # everything above -from gtk._gtkimpl import * - -# For testing, so you can just turn of dynamicnamespace in gtk.override -if hasattr(_gtkimpl, '_get_symbol_names'): - import gtk - ns = LazyNamespace(_gtkimpl, locals()) - ns.add_submodule('glade', '_glade') - ns.add_submodule('_gtk', 'gtk._gtk') - sys.modules['gtk'] = ns - sys.modules['gtk.glade'] = LazyModule('_glade', {}) +from gtk._gtk import * + +# # For testing, so you can just turn of dynamicnamespace in gtk.override +# if hasattr(_gtk, '_get_symbol_names'): +# import gtk +# ns = LazyNamespace(_gtk, locals()) +# ns.add_submodule('glade', '_glade') +# ns.add_submodule('_gtk', 'gtk._gtk') +# sys.modules['gtk'] = ns +# sys.modules['gtk.glade'] = LazyModule('_glade', {}) diff --git a/gtk/_gtk.py b/gtk/_gtk.py deleted file mode 100644 index 6d71cd55..00000000 --- a/gtk/_gtk.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- Mode: Python; py-indent-offset: 4 -*- -# pygtk - Python bindings for the GTK+ widget set. -# Copyright (C) 2006 Johan Dahlin -# -# gtk/_gtk.py: backwards compatibility code. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA - -from gtk import _gtkimpl -import gtk - -l = locals() -for symbol in _gtkimpl._get_symbol_names(): - l[symbol] = _gtkimpl._get_symbol(gtk.__dict__, symbol) -del l - -_PyGtk_API = _gtkimpl._PyGtk_API diff --git a/gtk/_lazyutils.py b/gtk/_lazyutils.py index cf40199c..2bc3aa60 100644 --- a/gtk/_lazyutils.py +++ b/gtk/_lazyutils.py @@ -33,7 +33,18 @@ class LazyModule(object): sys.modules[self._modname] = module return getattr(module, attr) -_marker = object() +class _NotLoadedMarker: + pass +_marker = _NotLoadedMarker() + +class LazyDict(dict): + def __init__(self, module): + self._module = module + dict.__init__(self) + + def __getitem__(self, name): + print name + return getattr(self._module, name) class LazyNamespace(ModuleType): def __init__(self, module, locals): @@ -47,7 +58,7 @@ class LazyNamespace(ModuleType): for symbol in module._get_symbol_names(): lazy_symbols[symbol] = ns[symbol] = _marker - ns.update(__dict__=ns, + ns.update(__dict__=LazyDict(self), __bases__=(ModuleType,), add_submodule=self.add_submodule) diff --git a/gtk/deprecation.py b/gtk/deprecation.py index ed6ef54a..38918268 100644 --- a/gtk/deprecation.py +++ b/gtk/deprecation.py @@ -23,7 +23,7 @@ import os import sys import warnings -from gtk._gtkimpl import DeprecationWarning +from gtk._gtk import DeprecationWarning def _is_pydoc(): if sys.argv: diff --git a/gtk/gtk.override b/gtk/gtk.override index c400d079..93cced21 100644 --- a/gtk/gtk.override +++ b/gtk/gtk.override @@ -119,8 +119,6 @@ include %% modulename gtk %% -options dynamicnamespace -%% import gobject.GObject as PyGObject_Type import atk.Object as PyAtkObject_Type import pango.Context as PyPangoContext_Type diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index 4a3a3acb..921a0b81 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -206,7 +206,7 @@ init_pycairo(void) } DL_EXPORT(void) -init_gtkimpl(void) +init_gtk(void) { PyObject *m, *d, *tuple, *o; @@ -225,7 +225,7 @@ init_gtkimpl(void) pygobject_register_sinkfunc(GTK_TYPE_INVISIBLE, sink_gtkinvisible); pygobject_register_sinkfunc(GTK_TYPE_OBJECT, sink_gtkobject); - m = Py_InitModule("gtk._gtkimpl", pygtk_functions); + m = Py_InitModule("gtk._gtk", pygtk_functions); d = PyModule_GetDict(m); /* gtk+ version */ @@ -242,6 +242,7 @@ init_gtkimpl(void) _pygtk_register_boxed_types(d); pygtk_register_classes(d); + pygtk_add_constants(m, "GTK_"); pygtk_add_extra_constants(m); pygtk_add_stock_items(d); diff --git a/gtk/libglademodule.c b/gtk/libglademodule.c index 07711142..0fc20c7a 100644 --- a/gtk/libglademodule.c +++ b/gtk/libglademodule.c @@ -32,11 +32,11 @@ void pylibglade_register_classes(PyObject *d); extern PyMethodDef pylibglade_functions[]; DL_EXPORT(void) -init_glade(void) +initglade(void) { PyObject *m, *d; - m = Py_InitModule("_glade", pylibglade_functions); + m = Py_InitModule("gtk.glade", pylibglade_functions); d = PyModule_GetDict(m); init_pygobject(); |