From 8e45d300208d4eadd104c2791bc93f7d4505d71c Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 2 Nov 2016 15:50:34 +0100 Subject: [PATCH] reuse os.stat() result when checking for non-APK files This should make things a bit more efficient when running on lots of files, unless python was already caching the result... --- fdroidserver/update.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fdroidserver/update.py b/fdroidserver/update.py index befad784..30390f82 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -517,15 +517,16 @@ def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False): cachechanged = False repo_files = [] for name in os.listdir(repodir): - filename = os.path.join(repodir, name) - file_extension = common.get_file_extension(name) if name in ['index.jar', 'index.xml', 'index.html', 'categories.txt', ]: continue + file_extension = common.get_file_extension(name) if file_extension == 'apk' or file_extension == 'obb': continue + filename = os.path.join(repodir, name) if not os.path.isfile(filename): continue - if os.stat(filename).st_size == 0: + stat = os.stat(filename) + if stat.st_size == 0: logging.error(filename + ' is zero size!') sys.exit(1) @@ -552,13 +553,13 @@ def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False): srcfilename = name + ".src.tar.gz" if os.path.exists(os.path.join(repodir, srcfilename)): repo_file['srcname'] = srcfilename - repo_file['size'] = os.path.getsize(filename) + repo_file['size'] = stat.st_size apkcache[name] = repo_file cachechanged = True if use_date_from_file: - timestamp = os.stat(filename).st_ctime + timestamp = stat.st_ctime default_date_param = datetime.fromtimestamp(timestamp).utctimetuple() else: default_date_param = None -- 2.30.2