diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-04-23 12:53:24 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2006-04-23 12:53:24 +0000 |
commit | c9fe8615db8d42e4da9bc83525f6167291cbb217 (patch) | |
tree | 3d45d093af02157b99bc7bd15dbb0e10d65af5f3 /pygtk.py | |
parent | 921069b6c3f48329a7a96528249c8b42e03b5468 (diff) | |
download | pygobject-c9fe8615db8d42e4da9bc83525f6167291cbb217.tar.gz pygobject-c9fe8615db8d42e4da9bc83525f6167291cbb217.tar.xz pygobject-c9fe8615db8d42e4da9bc83525f6167291cbb217.zip |
dos2unix pygtk.py
Diffstat (limited to 'pygtk.py')
-rw-r--r-- | pygtk.py | 190 |
1 files changed, 95 insertions, 95 deletions
@@ -1,95 +1,95 @@ -# -*- Mode: Python; py-indent-offset: 4 -*-
-# pygtk - Python bindings for the GTK+ widget set.
-# Copyright (C) 1998-2002 James Henstridge
-#
-# pygtk.py: pygtk version selection code.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-import fnmatch
-import glob
-import os
-import os.path
-import sys
-
-__all__ = ['require']
-
-_our_dir = os.path.dirname(os.path.abspath(os.path.normpath(__file__)))
-_pygtk_2_0_dir = os.path.normpath('%s/gtk-2.0' % _our_dir)
-
-_pygtk_dir_pat = 'gtk-[0-9].[0-9]'
-
-_pygtk_required_version = None
-
-def _get_available_versions():
- versions = {}
- for dir in sys.path:
- if not dir:
- dir = os.getcwd()
-
- if not os.path.isdir(dir):
- continue
-
- # if the dir is a pygtk dir, skip it
- if fnmatch.fnmatchcase(os.path.basename(dir), _pygtk_dir_pat):
- continue
-
- for filename in glob.glob(os.path.join(dir, _pygtk_dir_pat)):
- pathname = os.path.join(dir, filename)
-
- # skip non directories
- if not os.path.isdir(pathname):
- continue
-
- # skip empty directories
- if not os.listdir(pathname):
- continue
-
- if not versions.has_key(filename[-3:]):
- 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:
- assert _pygtk_required_version == version, \
- "a different version of gtk was already required"
- return
-
- assert not sys.modules.has_key('gtk'), \
- "pygtk.require() must be called before importing gtk"
-
- versions = _get_available_versions()
- assert versions.has_key(version), \
- "required version '%s' not found on system" % version
-
- # remove any pygtk dirs first ...
- for dir in sys.path:
- if fnmatch.fnmatchcase(os.path.basename(dir), _pygtk_dir_pat):
- sys.path.remove(dir)
-
- # prepend the pygtk path ...
- sys.path.insert(0, versions[version])
-
- _pygtk_required_version = version
+# -*- Mode: Python; py-indent-offset: 4 -*- +# pygtk - Python bindings for the GTK+ widget set. +# Copyright (C) 1998-2002 James Henstridge +# +# pygtk.py: pygtk version selection code. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA + +import fnmatch +import glob +import os +import os.path +import sys + +__all__ = ['require'] + +_our_dir = os.path.dirname(os.path.abspath(os.path.normpath(__file__))) +_pygtk_2_0_dir = os.path.normpath('%s/gtk-2.0' % _our_dir) + +_pygtk_dir_pat = 'gtk-[0-9].[0-9]' + +_pygtk_required_version = None + +def _get_available_versions(): + versions = {} + for dir in sys.path: + if not dir: + dir = os.getcwd() + + if not os.path.isdir(dir): + continue + + # if the dir is a pygtk dir, skip it + if fnmatch.fnmatchcase(os.path.basename(dir), _pygtk_dir_pat): + continue + + for filename in glob.glob(os.path.join(dir, _pygtk_dir_pat)): + pathname = os.path.join(dir, filename) + + # skip non directories + if not os.path.isdir(pathname): + continue + + # skip empty directories + if not os.listdir(pathname): + continue + + if not versions.has_key(filename[-3:]): + 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: + assert _pygtk_required_version == version, \ + "a different version of gtk was already required" + return + + assert not sys.modules.has_key('gtk'), \ + "pygtk.require() must be called before importing gtk" + + versions = _get_available_versions() + assert versions.has_key(version), \ + "required version '%s' not found on system" % version + + # remove any pygtk dirs first ... + for dir in sys.path: + if fnmatch.fnmatchcase(os.path.basename(dir), _pygtk_dir_pat): + sys.path.remove(dir) + + # prepend the pygtk path ... + sys.path.insert(0, versions[version]) + + _pygtk_required_version = version |