From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46856) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPIlg-0000un-3p for qemu-devel@nongnu.org; Tue, 01 May 2012 15:29:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SPIld-000589-1Z for qemu-devel@nongnu.org; Tue, 01 May 2012 15:29:47 -0400 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:32934) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPIlc-00057O-PP for qemu-devel@nongnu.org; Tue, 01 May 2012 15:29:44 -0400 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 1 May 2012 20:29:40 +0100 Received: from d06av11.portsmouth.uk.ibm.com (d06av11.portsmouth.uk.ibm.com [9.149.37.252]) by d06nrmr1307.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q41JTb4j2666742 for ; Tue, 1 May 2012 20:29:37 +0100 Received: from d06av11.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q41JTbBo014147 for ; Tue, 1 May 2012 13:29:37 -0600 From: Stefan Hajnoczi Date: Tue, 1 May 2012 20:28:37 +0100 Message-Id: <1335900518-6730-5-git-send-email-stefanha@linux.vnet.ibm.com> In-Reply-To: <1335900518-6730-1-git-send-email-stefanha@linux.vnet.ibm.com> References: <1335900518-6730-1-git-send-email-stefanha@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH 4/5] tracetool: avoid pkgutil.iter_modules() Python 2.7 function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org, Stefan Hajnoczi The pkgutil.iter_modules() function provides a way to enumerate child modules. Unfortunately it's missing in Python <2.7 so we must implement similar behavior ourselves. Signed-off-by: Stefan Hajnoczi Reviewed-by: LluĂ­s Vilanova --- scripts/tracetool/backend/__init__.py | 8 ++++++-- scripts/tracetool/format/__init__.py | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/backend/__init__.py index 34b7ed8..be43472 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -37,7 +37,7 @@ __maintainer__ = "Stefan Hajnoczi" __email__ = "stefanha@linux.vnet.ibm.com" -import pkgutil +import os import tracetool @@ -45,7 +45,11 @@ import tracetool def get_list(): """Get a list of (name, description) pairs.""" res = [("nop", "Tracing disabled.")] - for _, modname, _ in pkgutil.iter_modules(tracetool.backend.__path__): + modnames = [] + for filename in os.listdir(tracetool.backend.__path__[0]): + if filename.endswith('.py') and filename != '__init__.py': + modnames.append(filename.rsplit('.', 1)[0]) + for modname in modnames: module = tracetool.try_import("tracetool.backend." + modname) # just in case; should never fail unless non-module files are put there diff --git a/scripts/tracetool/format/__init__.py b/scripts/tracetool/format/__init__.py index 0e4baf0..3c2a0d8 100644 --- a/scripts/tracetool/format/__init__.py +++ b/scripts/tracetool/format/__init__.py @@ -41,7 +41,7 @@ __maintainer__ = "Stefan Hajnoczi" __email__ = "stefanha@linux.vnet.ibm.com" -import pkgutil +import os import tracetool @@ -49,7 +49,11 @@ import tracetool def get_list(): """Get a list of (name, description) pairs.""" res = [] - for _, modname, _ in pkgutil.iter_modules(tracetool.format.__path__): + modnames = [] + for filename in os.listdir(tracetool.format.__path__[0]): + if filename.endswith('.py') and filename != '__init__.py': + modnames.append(filename.rsplit('.', 1)[0]) + for modname in modnames: module = tracetool.try_import("tracetool.format." + modname) # just in case; should never fail unless non-module files are put there -- 1.7.10