From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPFCX-0003Qf-HP for qemu-devel@nongnu.org; Tue, 01 May 2012 11:41:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SPFCV-00048i-LF for qemu-devel@nongnu.org; Tue, 01 May 2012 11:41:17 -0400 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:50392) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SPFCV-00047Q-Df for qemu-devel@nongnu.org; Tue, 01 May 2012 11:41:15 -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 16:41:11 +0100 Received: from d06av10.portsmouth.uk.ibm.com (d06av10.portsmouth.uk.ibm.com [9.149.37.251]) by d06nrmr1806.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q41Ff9vj2351318 for ; Tue, 1 May 2012 16:41:09 +0100 Received: from d06av10.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av10.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q41FajjB006093 for ; Tue, 1 May 2012 11:36:45 -0400 From: Stefan Hajnoczi Date: Tue, 1 May 2012 16:40:58 +0100 Message-Id: <1335886859-1028-5-git-send-email-stefanha@linux.vnet.ibm.com> In-Reply-To: <1335886859-1028-1-git-send-email-stefanha@linux.vnet.ibm.com> References: <1335886859-1028-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 v3 4/5] tracetool: avoid pkgutil.iter_modules() Python 2.7 function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Anthony Liguori , Stefan Hajnoczi , Erik Rull , Andreas Faerber , =?UTF-8?q?Llu=C3=ADs=20Vilanova?= 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