diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 7ba504f8..73e590ac 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -105,14 +105,14 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force): logging.debug("rsyncing " + path + " to " + ftp.getcwd()) # TODO this should move to `vagrant rsync` from >= v1.5 try: - subprocess.check_output(['rsync', '--recursive', '--perms', '--links', '--quiet', '--rsh=' + - 'ssh -o StrictHostKeyChecking=no' + - ' -o UserKnownHostsFile=/dev/null' + - ' -o LogLevel=FATAL' + - ' -o IdentitiesOnly=yes' + - ' -o PasswordAuthentication=no' + - ' -p ' + str(sshinfo['port']) + - ' -i ' + sshinfo['idfile'], + subprocess.check_output(['rsync', '--recursive', '--perms', '--links', '--quiet', '--rsh=' + + 'ssh -o StrictHostKeyChecking=no' + + ' -o UserKnownHostsFile=/dev/null' + + ' -o LogLevel=FATAL' + + ' -o IdentitiesOnly=yes' + + ' -o PasswordAuthentication=no' + + ' -p ' + str(sshinfo['port']) + + ' -i ' + sshinfo['idfile'], path, sshinfo['user'] + "@" + sshinfo['hostname'] + ":" + ftp.getcwd()], stderr=subprocess.STDOUT) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 51fef39b..ec22d4ab 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -352,8 +352,8 @@ def assert_config_keystore(config): nosigningkey = True logging.critical(_("'keypass' not found in config.py!")) if nosigningkey: - raise FDroidException("This command requires a signing key, " + - "you can create one using: fdroid update --create-key") + raise FDroidException("This command requires a signing key, " + + "you can create one using: fdroid update --create-key") def find_sdk_tools_cmd(cmd): @@ -560,7 +560,7 @@ def clean_description(description): paragraph = re.sub('\r', '', paragraph) paragraph = re.sub('\n', ' ', paragraph) paragraph = re.sub(' {2,}', ' ', paragraph) - paragraph = re.sub('^\s*(\w)', r'\1', paragraph) + paragraph = re.sub(r'^\s*(\w)', r'\1', paragraph) returnstring += paragraph + '\n\n' return returnstring.rstrip('\n') @@ -575,8 +575,8 @@ def publishednameinfo(filename): return result -apk_release_filename = re.compile('(?P[a-zA-Z0-9_\.]+)_(?P[0-9]+)\.apk') -apk_release_filename_with_sigfp = re.compile('(?P[a-zA-Z0-9_\.]+)_(?P[0-9]+)_(?P[0-9a-f]{7})\.apk') +apk_release_filename = re.compile(r'(?P[a-zA-Z0-9_\.]+)_(?P[0-9]+)\.apk') +apk_release_filename_with_sigfp = re.compile(r'(?P[a-zA-Z0-9_\.]+)_(?P[0-9]+)_(?P[0-9a-f]{7})\.apk') def apk_parse_release_filename(apkname): @@ -2148,8 +2148,8 @@ def FDroidPopenBytes(commands, cwd=None, envs=None, output=True, stderr_to_stdou stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=stderr_param) except OSError as e: - raise BuildException("OSError while trying to execute " + - ' '.join(commands) + ': ' + str(e)) + raise BuildException("OSError while trying to execute " + + ' '.join(commands) + ': ' + str(e)) # TODO are these AsynchronousFileReader threads always exiting? if not stderr_to_stdout and options.verbose: @@ -2479,7 +2479,7 @@ def metadata_find_signing_files(appid, vercode): sigs = glob.glob(os.path.join(sigdir, '*.DSA')) + \ glob.glob(os.path.join(sigdir, '*.EC')) + \ glob.glob(os.path.join(sigdir, '*.RSA')) - extre = re.compile('(\.DSA|\.EC|\.RSA)$') + extre = re.compile(r'(\.DSA|\.EC|\.RSA)$') for sig in sigs: sf = extre.sub('.SF', sig) if os.path.isfile(sf): @@ -3011,9 +3011,9 @@ def write_to_config(thisconfig, key, value=None, config_file=None): # regex for finding and replacing python string variable # definitions/initializations - pattern = re.compile('^[\s#]*' + key + '\s*=\s*"[^"]*"') + pattern = re.compile(r'^[\s#]*' + key + r'\s*=\s*"[^"]*"') repl = key + ' = "' + value + '"' - pattern2 = re.compile('^[\s#]*' + key + "\s*=\s*'[^']*'") + pattern2 = re.compile(r'^[\s#]*' + key + r"\s*=\s*'[^']*'") repl2 = key + " = '" + value + "'" # If we replaced this line once, we make sure won't be a diff --git a/fdroidserver/dscanner.py b/fdroidserver/dscanner.py index 1d937e1d..49362e5f 100644 --- a/fdroidserver/dscanner.py +++ b/fdroidserver/dscanner.py @@ -179,8 +179,8 @@ class DockerDriver(object): )['Id'] output = self.cli.exec_start(exec_id).decode('utf-8') - if ("Could not access the Package Manager" in output or - "device offline" in output): + if ("Could not access the Package Manager" in output + or "device offline" in output): logging.info("Device or package manager isn't up") if app_id.split('_')[0] in output: # TODO: this is a temporary fix diff --git a/fdroidserver/import.py b/fdroidserver/import.py index 77f4db95..6d729646 100644 --- a/fdroidserver/import.py +++ b/fdroidserver/import.py @@ -32,7 +32,7 @@ from . import metadata from .exception import FDroidException -SETTINGS_GRADLE = re.compile('''include\s+['"]:([^'"]*)['"]''') +SETTINGS_GRADLE = re.compile(r'''include\s+['"]:([^'"]*)['"]''') # Get the repo type and address from the given web page. The page is scanned @@ -146,18 +146,18 @@ def get_metadata_from_url(app, url): app.SourceCode = "" app.WebSite = "" if not projecttype: - raise FDroidException("Unable to determine the project type. " + - "The URL you supplied was not in one of the supported formats. " + - "Please consult the manual for a list of supported formats, " + - "and supply one of those.") + raise FDroidException("Unable to determine the project type. " + + "The URL you supplied was not in one of the supported formats. " + + "Please consult the manual for a list of supported formats, " + + "and supply one of those.") # Ensure we have a sensible-looking repo address at this point. If not, we # might have got a page format we weren't expecting. (Note that we # specifically don't want git@...) - if ((repotype != 'bzr' and (not repo.startswith('http://') and - not repo.startswith('https://') and - not repo.startswith('git://'))) or - ' ' in repo): + if ((repotype != 'bzr' and (not repo.startswith('http://') + and not repo.startswith('https://') + and not repo.startswith('git://'))) + or ' ' in repo): raise FDroidException("Repo address '{0}' does not seem to be valid".format(repo)) # Get a copy of the source so we can extract some info... diff --git a/fdroidserver/init.py b/fdroidserver/init.py index 8bbf20bd..1be28922 100644 --- a/fdroidserver/init.py +++ b/fdroidserver/init.py @@ -39,7 +39,7 @@ def disable_in_config(key, value): '''write a key/value to the local config.py, then comment it out''' with open('config.py', 'r', encoding='utf8') as f: data = f.read() - pattern = '\n[\s#]*' + key + '\s*=\s*"[^"]*"' + pattern = r'\n[\s#]*' + key + r'\s*=\s*"[^"]*"' repl = '\n#' + key + ' = "' + value + '"' data = re.sub(pattern, repl, data) with open('config.py', 'w', encoding='utf8') as f: @@ -106,7 +106,7 @@ def main(): except KeyboardInterrupt: print('') sys.exit(1) - if re.match('^\s*$', s) is not None: + if re.match(r'^\s*$', s) is not None: test_config['sdk_path'] = default_sdk_path else: test_config['sdk_path'] = s @@ -209,8 +209,8 @@ def main(): opensc_so = files[0] else: opensc_so = '/usr/lib/opensc-pkcs11.so' - logging.warn('No OpenSC PKCS#11 module found, ' + - 'install OpenSC then edit "opensc-fdroid.cfg"!') + logging.warn('No OpenSC PKCS#11 module found, ' + + 'install OpenSC then edit "opensc-fdroid.cfg"!') with open(os.path.join(examplesdir, 'opensc-fdroid.cfg'), 'r') as f: opensc_fdroid = f.read() opensc_fdroid = re.sub('^library.*', 'library = ' + opensc_so, opensc_fdroid, diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 380a3dd8..8c9aa6d7 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -811,7 +811,7 @@ def get_default_app_info(metadatapath=None): if os.path.exists('AndroidManifest.xml'): manifestroot = fdroidserver.common.parse_xml('AndroidManifest.xml') else: - pattern = re.compile(""".*manifest\.srcFile\s+'AndroidManifest\.xml'.*""") + pattern = re.compile(r""".*manifest\.srcFile\s+'AndroidManifest\.xml'.*""") for root, dirs, files in os.walk(os.getcwd()): if 'build.gradle' in files: p = os.path.join(root, 'build.gradle') @@ -1036,7 +1036,7 @@ def write_yaml(mf, app): raise FDroidException('ruamel.yaml not instlled, can not write metadata.') from e if not ruamel.yaml.__version__: raise FDroidException('ruamel.yaml.__version__ not accessible. Please make sure a ruamel.yaml >= 0.13 is installed..') - m = re.match('(?P[0-9]+)\.(?P[0-9]+)\.(?P[0-9]+)(-.+)?', + m = re.match(r'(?P[0-9]+)\.(?P[0-9]+)\.(?P[0-9]+)(-.+)?', ruamel.yaml.__version__) if not m: raise FDroidException('ruamel.yaml version malfored, please install an upstream version of ruamel.yaml') diff --git a/fdroidserver/publish.py b/fdroidserver/publish.py index c0dd55d3..fad7d00f 100644 --- a/fdroidserver/publish.py +++ b/fdroidserver/publish.py @@ -85,7 +85,7 @@ def read_fingerprints_from_keystore(): raise FDroidException('could not read keysotre {}'.format(config['keystore'])) realias = re.compile('Alias name: (?P.+)\n') - resha256 = re.compile('\s+SHA256: (?P[:0-9A-F]{95})\n') + resha256 = re.compile(r'\s+SHA256: (?P[:0-9A-F]{95})\n') fps = {} for block in p.output.split(('*' * 43) + '\n' + '*' * 43): s_alias = realias.search(block) diff --git a/fdroidserver/server.py b/fdroidserver/server.py index 6666830c..0d6ffb32 100644 --- a/fdroidserver/server.py +++ b/fdroidserver/server.py @@ -110,20 +110,20 @@ def update_awsbucket_s3cmd(repo_section): s3url = s3bucketurl + '/fdroid/' logging.debug('s3cmd sync new files in ' + repo_section + ' to ' + s3url) logging.debug(_('Running first pass with MD5 checking disabled')) - if subprocess.call(s3cmd_sync + - ['--no-check-md5', '--skip-existing', - '--exclude', indexxml, - '--exclude', indexjar, - '--exclude', indexv1jar, - repo_section, s3url]) != 0: + if subprocess.call(s3cmd_sync + + ['--no-check-md5', '--skip-existing', + '--exclude', indexxml, + '--exclude', indexjar, + '--exclude', indexv1jar, + repo_section, s3url]) != 0: raise FDroidException() logging.debug('s3cmd sync all files in ' + repo_section + ' to ' + s3url) - if subprocess.call(s3cmd_sync + - ['--no-check-md5', - '--exclude', indexxml, - '--exclude', indexjar, - '--exclude', indexv1jar, - repo_section, s3url]) != 0: + if subprocess.call(s3cmd_sync + + ['--no-check-md5', + '--exclude', indexxml, + '--exclude', indexjar, + '--exclude', indexv1jar, + repo_section, s3url]) != 0: raise FDroidException() logging.debug(_('s3cmd sync indexes {path} to {url} and delete') @@ -256,10 +256,11 @@ def update_serverwebroot(serverwebroot, repo_section): # the one rsync command that is allowed to run in ~/.ssh/authorized_keys. # (serverwebroot is guaranteed to have a trailing slash in common.py) logging.info('rsyncing ' + repo_section + ' to ' + serverwebroot) - if subprocess.call(rsyncargs + - ['--exclude', indexxml, '--exclude', indexjar, - '--exclude', indexv1jar, - repo_section, serverwebroot]) != 0: + if subprocess.call(rsyncargs + + ['--exclude', indexxml, + '--exclude', indexjar, + '--exclude', indexv1jar, + repo_section, serverwebroot]) != 0: raise FDroidException() if subprocess.call(rsyncargs + [repo_section, serverwebroot]) != 0: raise FDroidException() diff --git a/fdroidserver/signatures.py b/fdroidserver/signatures.py index e104b483..83f2763b 100644 --- a/fdroidserver/signatures.py +++ b/fdroidserver/signatures.py @@ -57,7 +57,7 @@ def extract(options): sys.exit(1) # iterate over supplied APKs downlaod and extract them… - httpre = re.compile('https?:\/\/') + httpre = re.compile(r'https?:\/\/') for apk in options.APK: try: if os.path.isfile(apk): diff --git a/fdroidserver/stats.py b/fdroidserver/stats.py index e87db35f..9d6cbfdc 100644 --- a/fdroidserver/stats.py +++ b/fdroidserver/stats.py @@ -113,8 +113,8 @@ def main(): destpath = os.path.join(logsdir, f) destsize = ftp.stat(f).st_size - if (not os.path.exists(destpath) or - os.path.getsize(destpath) != destsize): + if not os.path.exists(destpath) \ + or os.path.getsize(destpath) != destsize: logging.debug("...retrieving " + f) ftp.get(f, destpath) except Exception: @@ -135,9 +135,9 @@ def main(): logging.info('Processing logs...') appscount = Counter() appsvercount = Counter() - logexpr = '(?P[.:0-9a-fA-F]+) - - \[(?P