From d5bdc1574b7ac665900cb0769af31c38fa1621c0 Mon Sep 17 00:00:00 2001 From: Arfrever Frehtes Taifersar Arahesis Date: Sun, 13 May 2012 00:30:46 +0200 Subject: Check type of xml.etree.ElementTree.TreeBuilder before applying workaround for http://bugs.python.org/issue14007. --- pym/portage/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 6ca044518..745e06af7 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -44,10 +44,6 @@ except ImportError as e: sys.stderr.write(" "+str(e)+"\n\n"); raise -if sys.hexversion >= 0x3030000: - # Workaround for http://bugs.python.org/issue14007 - sys.modules["_elementtree"] = None - try: import portage.proxy.lazyimport @@ -339,6 +335,16 @@ _python_interpreter = os.path.realpath(sys.executable) _bin_path = PORTAGE_BIN_PATH _pym_path = PORTAGE_PYM_PATH +if sys.hexversion >= 0x3030000: + # Workaround for http://bugs.python.org/issue14007 + def _test_xml_etree_ElementTree_TreeBuilder_type(): + import subprocess + p = subprocess.Popen([_python_interpreter, "-c", + "import sys, xml.etree.ElementTree; sys.exit(not isinstance(xml.etree.ElementTree.TreeBuilder, type))"]) + if p.wait() != 0: + sys.modules["_elementtree"] = None + _test_xml_etree_ElementTree_TreeBuilder_type() + def _shell_quote(s): """ Quote a string in double-quotes and use backslashes to -- cgit v1.2.3-1-g7c22