chiark / gitweb /
Pre-compile more regexes
authorDaniel Martí <mvdan@mvdan.cc>
Wed, 2 Dec 2015 19:38:55 +0000 (20:38 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Wed, 2 Dec 2015 19:40:30 +0000 (20:40 +0100)
fdroidserver/common.py
fdroidserver/metadata.py

index 5e04f362a039ee7c159d8a65af18901653969106..92e501775a531d3e85fbbd84d6a78046673df9b2 100644 (file)
@@ -380,7 +380,7 @@ def has_extension(filename, ext):
     return ext == f_ext
 
 
-apk_regex = None
+apk_regex = re.compile(r"^(.+)_([0-9]+)\.apk$")
 
 
 def clean_description(description):
@@ -397,10 +397,7 @@ def clean_description(description):
 
 
 def apknameinfo(filename):
-    global apk_regex
     filename = os.path.basename(filename)
-    if apk_regex is None:
-        apk_regex = re.compile(r"^(.+)_([0-9]+)\.apk$")
     m = apk_regex.match(filename)
     try:
         result = (m.group(1), m.group(2))
index d1aab68a263cd64b0958eac76a34cbf8426fad34..fcd77a8993bdb94902df47f2e037d626de9d569d 100644 (file)
@@ -783,6 +783,9 @@ def sorted_builds(builds):
     return sorted(builds, key=lambda build: int(build.vercode))
 
 
+esc_newlines = re.compile('\\\\( |\\n)')
+
+
 def post_metadata_parse(app):
 
     for f in app_fields:
@@ -797,8 +800,6 @@ def post_metadata_parse(app):
             text = v.rstrip().lstrip()
             app.set_field(f, text.split('\n'))
 
-    esc_newlines = re.compile('\\\\( |\\n)')
-
     for build in app.builds:
         for k in build_flags:
             v = build.get_flag(k)
@@ -970,6 +971,9 @@ def parse_yaml_metadata(metadatapath):
     return app
 
 
+build_line_sep = re.compile(r"(?<!\\),")
+
+
 def parse_txt_metadata(metadatapath):
 
     linedesc = None
@@ -1008,8 +1012,7 @@ def parse_txt_metadata(metadatapath):
 
     def parse_buildline(lines):
         v = "".join(lines)
-        parts = [p.replace("\\,", ",")
-                 for p in re.split(r"(?<!\\),", v)]
+        parts = [p.replace("\\,", ",") for p in re.split(build_line_sep, v)]
         if len(parts) < 3:
             raise MetaDataException("Invalid build format: " + v + " in " + metafile.name)
         build = Build()