ScrapeTargets: use translate instead of regex
PATCH 1/1 ScrapeTargets: use translate instead of regex
From some quick tests the string translate function is comparable in efficiency and certainly more legible than regex. We should note that if we ever move this functionality to an environment running python3, the translate function takes one dictionary argument, but functions in much the same way.
--- .../site-packages/autobuilder/buildsteps/ScrapeTargets.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py +4 -3
@@ -57,9 +57,10 @@ class ScrapeTargets(ShellCommand): targets = res.group() # Try and ensure we scrape the target regardless of which # assignment operator is used and surrounding whitespace - targets = re.sub('%s *\??\??:?.?\+?=\+?\.? *\"' % self.targetsvar, '', targets, 1) - targets = targets.replace('\\', '') - targets = targets.replace('\n', '') + targets = targets.replace(self.targetsvar, '') + targets = targets.translate(None, ':+?="') + targets = targets.replace("\\", "") + targets = targets.replace ("\n", "") self.setProperty("scraped_targets", targets, 'Targets "%s" scraped from %s' % (targets,
Signature · 1 line
2.13.2
Quoted 5 lines · Stephano Cetola
From some quick tests the string translate function is comparable in efficiency and certainly more legible than regex. We should note that if we ever move this functionality to an environment running python3, the translate function takes one dictionary argument, but functions in much the same way.
Oh, I didn't know about translate. Neat, thanks! Merged.
Joshua
Quoted 34 lines
Signed-off-by Stephano Cetola <[email protected]>---
.../site-packages/autobuilder/buildsteps/ScrapeTargets.py | 7 ++++---1 file changed, 4 insertions(+), 3 deletions(-)(quoted diff) +0
-0
packages/autobuilder/buildsteps/ScrapeTargets.pyb/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.pyindexceed0c709..0480f3de3100644
--- a/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/ScrapeTargets.py(quoted diff) +0
-0@@ -57,9 +57,10 @@ class ScrapeTargets(ShellCommand): targets = res.group() # Try and ensure we scrape the target regardless ofwhich
# assignment operator is used and surrounding whitespace - targets = re.sub('%s *\??\??:?.?\+?=\+?\.? *\"' % self.targetsvar, '', targets, 1) - targets = targets.replace('\\', '') - targets = targets.replace('\n', '') + targets = targets.replace(self.targetsvar, '') + targets = targets.translate(None, ':+?="') + targets = targets.replace("\\", "") + targets = targets.replace ("\n", "") self.setProperty("scraped_targets", targets, 'Targets "%s" scraped from %s' % (targets, -- 2.13.2