From badc7cc4d544c5301d65463b4cdb13bb1c7fcbe9 Mon Sep 17 00:00:00 2001 From: Manish Date: Mon, 27 Apr 2020 13:58:17 +1000 Subject: [PATCH] Improved code readability and logic. Mainly: wrapped single call statements in self-explanatory function names, replaced os.chdir calls with absolute path operations as these could down the line potentially cause major bugs, also replace CallFuncInDir calls and instead use absolute paths there as well as its easier to understand --- generator/main.py | 70 +++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/generator/main.py b/generator/main.py index 0c1e3b7..67b74fa 100644 --- a/generator/main.py +++ b/generator/main.py @@ -21,10 +21,7 @@ from GeneralFunctions.InputOutput import ( WriteTextFiles, WriteBinaryToFile ) -from GeneralFunctions.OS import ( - CallFuncInDir, - CreateDir - ) +from GeneralFunctions.OS import CreateDir """ FIXME: paths hard coded unix style & most likely will not work on winodws. @@ -42,18 +39,16 @@ class extractData: return infoFiles def copyBundle(self, bundleSrc, activityName): - CallFuncInDir( - self.websiteDir, - shutil.copy2, - self.bundlesDir+bundleSrc, - "bundles/"+activityName+".xo" + shutil.copy2( + bundleSrc, + self.websiteDir+"bundles/"+activityName+".xo" ) def createDirectories(self): - assert(CreateDir("app")) - assert(CreateDir("icons")) - assert(CreateDir("bundles")) - assert(CreateDir("js")) + assert(CreateDir(self.websiteDir+"app")) + assert(CreateDir(self.websiteDir+"icons")) + assert(CreateDir(self.websiteDir+"bundles")) + assert(CreateDir(self.websiteDir+"js")) def extractActivityInfo(self, infoFilePath, zipFile): infoList = [] @@ -85,16 +80,11 @@ class extractData: if iconAbsolutePath in bundle.namelist(): icon = bundle.read(iconAbsolutePath) iconPath = ( - "icons/" + + self.websiteDir+"icons/" + activityName + ".svg" ) - CallFuncInDir( - self.websiteDir, - WriteBinaryToFile, - iconPath, - icon - ) + WriteBinaryToFile(iconPath, icon) else: # Conitnue without icon since non-fatal error self.iconErroredBundles.append(bundlePath) @@ -105,6 +95,12 @@ class extractData: self.copyBundle(bundlePath, activityName) bundle.close() + def findBundles(self): + self.activityBundles = glob.glob( + self.bundlesDir+"**/*.xo", + recursive=True + ) + def generateAppsHtmlPages(self): iconsDir = "../icons/" bundlesDir = "../bundles/" @@ -130,7 +126,10 @@ class extractData: '">

Download

\n\n' ) - WriteTextFiles("./app/" + appInfo["name"] + ".html", html) + WriteTextFiles( + self.websiteDir+"./app/" + appInfo["name"] + ".html", + html + ) """ Only those which are specified in map will be added to index. If an entry or value does not exist in infoJSON than emprty entry will @@ -155,7 +154,6 @@ class extractData: ) i2IMap = infoToIndexMap - self.indexDictList = [] for obj in json.loads(self.infoJson): indexDict = {} @@ -228,10 +226,9 @@ class extractData: self.erroredBundles = [] self.iconErroredBundles = [] - CallFuncInDir(self.websiteDir, self.createDirectories) + self.createDirectories() - os.chdir(bundlesDir) - self.activityBundles = glob.glob("**/*.xo", recursive=True) + self.findBundles() self.purgeBundlesNotZipFile() @@ -241,8 +238,6 @@ class extractData: self.generateIndex() - os.chdir(websiteDir) - self.generateAppsHtmlPages() self.writeFiles() @@ -262,15 +257,24 @@ class extractData: """ Files which are not continously written during the process Eg. Html, icon and bundles are written while processing each bundle """ - WriteTextFiles("info.json", self.infoJson) - WriteTextFiles("./js/index.js", self.indexJs) + WriteTextFiles(self.websiteDir+"info.json", self.infoJson) + WriteTextFiles(self.websiteDir+"js/index.js", self.indexJs) WriteTextFiles( - "bundlesNotExactlyOneInfoFile.txt", + self.websiteDir+"bundlesNotExactlyOneInfoFile.txt", self.bundlesNotExactlyOneInfoFile ) - WriteTextFiles("bundlesNotZipFiles.txt", self.bundlesNotZipFiles) - WriteTextFiles("erroredBundles.txt", self.erroredBundles) - WriteTextFiles("iconErroredBundles.txt", self.iconErroredBundles) + WriteTextFiles( + self.websiteDir+"bundlesNotZipFiles.txt", + self.bundlesNotZipFiles + ) + WriteTextFiles( + self.websiteDir+"erroredBundles.txt", + self.erroredBundles + ) + WriteTextFiles( + self.websiteDir+"iconErroredBundles.txt", + self.iconErroredBundles + ) def processArguments():