buildframework/helium/tools/common/python/lib/docs.py
changeset 179 d8ac696cc51f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/tools/common/python/lib/docs.py	Wed Dec 23 19:29:07 2009 +0200
@@ -0,0 +1,61 @@
+#============================================================================ 
+#Name        : docs.py 
+#Part of     : Helium 
+
+#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#All rights reserved.
+#This component and the accompanying materials are made available
+#under the terms of the License "Eclipse Public License v1.0"
+#which accompanies this distribution, and is available
+#at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+#Initial Contributors:
+#Nokia Corporation - initial contribution.
+#
+#Contributors:
+#
+#Description:
+#===============================================================================
+
+""" Modules related to documentation """
+
+from __future__ import with_statement
+import re
+import os
+import string
+import amara
+import ant
+
+def find_python_dependencies(setpath, dbPath, dbPrj):
+    """ Search python dependencies """
+    for root, dirs, files in os.walk(setpath, topdown=False):
+        for fname in files:
+            filePattern = re.compile('.ant.xml$')
+            fileMatch = filePattern.search(fname)
+            modulelist = []
+            if (fileMatch):
+                filePath = os.path.abspath(os.path.join(root, fname))
+                with open(filePath) as f:
+                    filePathAmara = 'file:///'+ filePath.replace('\\','/')
+                    curPrj=amara.parse(filePathAmara)
+                    for line in f:
+                        linePattern = re.compile('^import')
+                        lineMatch = linePattern.search(line)
+                        if ((lineMatch) and (line.find('.')==-1)):
+                            newLine = line.replace('import','')
+                            newLine = newLine.replace(',','')
+                            moduleArray = newLine.split()
+                            for curModule in moduleArray:
+                                try:
+                                    importModule = __import__(curModule)
+                                    modulePath=importModule.__file__
+                                    if (modulePath.find('\\helium\\tools')!= -1):
+                                        for projectList in dbPrj.antDatabase.project:
+                                            if (projectList.name==curPrj.project.name):
+                                                if not (curModule in modulelist):
+                                                    print " Python module : " +curModule
+                                                    moduleElement = projectList.pythonDependency.xml_create_element(u'module', content=u''+curModule)
+                                                    projectList.pythonDependency.xml_append(moduleElement)
+                                                modulelist = modulelist + [curModule]
+                                except Exception, e:
+                                    error ="yes"