buildframework/helium/sf/python/pythoncore/lib/docs.py
changeset 587 85df38eb4012
child 628 7c4a911dc066
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/sf/python/pythoncore/lib/docs.py	Tue Apr 27 08:33:08 2010 +0300
@@ -0,0 +1,60 @@
+#============================================================================ 
+#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 amara
+
+def find_python_dependencies(setpath, _, dbPrj):
+    """ Search python dependencies """
+    for root, _, 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_file:
+                    filePathAmara = 'file:///'+ filePath.replace('\\','/')
+                    curPrj=amara.parse(filePathAmara)
+                    for line in f_file:
+                        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)
+                                    if hasattr(importModule, '__file__'):
+                                        modulePath=importModule.__file__
+                                        if 'helium' in modulePath:
+                                            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 ImportError:
+                                    pass