summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-04-01 20:00:33 +0000
committerGustavo J. A. M. Carneiro <gjc@src.gnome.org>2006-04-01 20:00:33 +0000
commitbdd7fe0d910a0bba8c44bda9c6ef699ffd4296e0 (patch)
treeddd8e284207bc832e2366ebfc8127fb9a61790fa
parent14e876743dbe8e6b97bd6a02293eaaf7b7f9b444 (diff)
downloadpygobject-bdd7fe0d910a0bba8c44bda9c6ef699ffd4296e0.tar.gz
pygobject-bdd7fe0d910a0bba8c44bda9c6ef699ffd4296e0.tar.xz
pygobject-bdd7fe0d910a0bba8c44bda9c6ef699ffd4296e0.zip
make pygtk.require faster and more robust
-rw-r--r--ChangeLog3
-rw-r--r--Makefile.am8
-rw-r--r--pygtk.py.in (renamed from pygtk.py)10
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index cd0dc74..56c5931 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2006-04-01 Gustavo J. A. M. Carneiro <gjc@gnome.org>
+ * pygtk.py.in (require): For version == '2.0', use a hardcoded
+ pygtk path, recorded during build.
+
* gobject/gobjectmodule.c (_pyg_strv_to_gvalue): Don't allow
arbitrary sequences, only tuple or list, since a string is a
sequence too.
diff --git a/Makefile.am b/Makefile.am
index f5ff9a3..732789f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,6 +11,7 @@ EXTRA_DIST = \
PKG-INFO \
PKG-INFO.in \
setup.py \
+ pygtk.py.in \
dsextras.py
INCLUDES = $(PYTHON_INCLUDES) $(GLIB_CFLAGS) -I$(top_srcdir)/gobject
@@ -24,8 +25,13 @@ pkgpyexecdir = $(pyexecdir)/gtk-2.0
pkgpyexec_PYTHON = dsextras.py
pkgpyexec_LTLIBRARIES =
+pygtk.py: pygtk.py.in
+ sed -e s!\@pyexecdir\@!@pyexecdir@! \
+ < $< > $@
+pygtk.py: Makefile
+
# python
-pyexec_PYTHON = pygtk.py
+nodist_pyexec_PYTHON = pygtk.py
pyexec_LTLIBRARIES =
noinst_PYTHON = ltihooks.py
diff --git a/pygtk.py b/pygtk.py.in
index 4ef6eec..c860c13 100644
--- a/pygtk.py
+++ b/pygtk.py.in
@@ -22,10 +22,13 @@
import fnmatch
import glob
import os
+import os.path
import sys
__all__ = ['require']
+_pygtk_2_0_dir = os.path.normpath('@pyexecdir@/gtk-2.0')
+
_pygtk_dir_pat = 'gtk-[0-9].[0-9]'
_pygtk_required_version = None
@@ -58,7 +61,14 @@ def _get_available_versions():
versions[filename[-3:]] = pathname
return versions
+def require20():
+ if _pygtk_2_0_dir not in sys.path:
+ sys.path.insert(0, _pygtk_2_0_dir)
+
def require(version):
+ if version == '2.0':
+ return require20()
+
global _pygtk_required_version
if _pygtk_required_version != None: