diff --git a/rhodecode/apps/__init__.py b/rhodecode/apps/__init__.py --- a/rhodecode/apps/__init__.py +++ b/rhodecode/apps/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/_base/__init__.py b/rhodecode/apps/_base/__init__.py --- a/rhodecode/apps/_base/__init__.py +++ b/rhodecode/apps/_base/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -56,8 +54,8 @@ URL_NAME_REQUIREMENTS = { # file path eats up everything at the end 'f_path': r'.*', # reference types - 'source_ref_type': '(branch|book|tag|rev|\%\(source_ref_type\)s)', - 'target_ref_type': '(branch|book|tag|rev|\%\(target_ref_type\)s)', + 'source_ref_type': r'(branch|book|tag|rev|\%\(source_ref_type\)s)', + 'target_ref_type': r'(branch|book|tag|rev|\%\(target_ref_type\)s)', } @@ -94,7 +92,7 @@ def _format_ref_id(name, raw_id): def _format_ref_id_svn(name, raw_id): """Special way of formatting a reference for Subversion including path""" - return '%s@%s' % (name, raw_id) + return '{}@{}'.format(name, raw_id) class TemplateArgs(StrictAttributeDict): @@ -231,7 +229,7 @@ class BaseAppView(object): class RepoAppView(BaseAppView): def __init__(self, context, request): - super(RepoAppView, self).__init__(context, request) + super().__init__(context, request) self.db_repo = request.db_repo self.db_repo_name = self.db_repo.repo_name self.db_repo_pull_requests = ScmModel().get_pull_requests(self.db_repo) @@ -261,7 +259,7 @@ class RepoAppView(BaseAppView): def _get_local_tmpl_context(self, include_app_defaults=True): _ = self.request.translate - c = super(RepoAppView, self)._get_local_tmpl_context( + c = super()._get_local_tmpl_context( include_app_defaults=include_app_defaults) # register common vars for this type of view @@ -353,7 +351,7 @@ class RepoAppView(BaseAppView): return None, None landing_commit_id = landing_commit.raw_id - cache_namespace_uid = 'repo.{}'.format(db_repo.repo_id) + cache_namespace_uid = f'repo.{db_repo.repo_id}' region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid, use_async_runner=True) start = time.time() @@ -477,13 +475,13 @@ class PathFilter(object): class RepoGroupAppView(BaseAppView): def __init__(self, context, request): - super(RepoGroupAppView, self).__init__(context, request) + super().__init__(context, request) self.db_repo_group = request.db_repo_group self.db_repo_group_name = self.db_repo_group.group_name def _get_local_tmpl_context(self, include_app_defaults=True): _ = self.request.translate - c = super(RepoGroupAppView, self)._get_local_tmpl_context( + c = super()._get_local_tmpl_context( include_app_defaults=include_app_defaults) c.repo_group = self.db_repo_group return c @@ -502,14 +500,14 @@ class RepoGroupAppView(BaseAppView): class UserGroupAppView(BaseAppView): def __init__(self, context, request): - super(UserGroupAppView, self).__init__(context, request) + super().__init__(context, request) self.db_user_group = request.db_user_group self.db_user_group_name = self.db_user_group.users_group_name class UserAppView(BaseAppView): def __init__(self, context, request): - super(UserAppView, self).__init__(context, request) + super().__init__(context, request) self.db_user = request.db_user self.db_user_id = self.db_user.user_id diff --git a/rhodecode/apps/_base/interfaces.py b/rhodecode/apps/_base/interfaces.py --- a/rhodecode/apps/_base/interfaces.py +++ b/rhodecode/apps/_base/interfaces.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/_base/subscribers.py b/rhodecode/apps/_base/subscribers.py --- a/rhodecode/apps/_base/subscribers.py +++ b/rhodecode/apps/_base/subscribers.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/__init__.py b/rhodecode/apps/admin/views/__init__.py --- a/rhodecode/apps/admin/views/__init__.py +++ b/rhodecode/apps/admin/views/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/artifacts.py b/rhodecode/apps/admin/views/artifacts.py --- a/rhodecode/apps/admin/views/artifacts.py +++ b/rhodecode/apps/admin/views/artifacts.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/audit_logs.py b/rhodecode/apps/admin/views/audit_logs.py --- a/rhodecode/apps/admin/views/audit_logs.py +++ b/rhodecode/apps/admin/views/audit_logs.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/defaults.py b/rhodecode/apps/admin/views/defaults.py --- a/rhodecode/apps/admin/views/defaults.py +++ b/rhodecode/apps/admin/views/defaults.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/exception_tracker.py b/rhodecode/apps/admin/views/exception_tracker.py --- a/rhodecode/apps/admin/views/exception_tracker.py +++ b/rhodecode/apps/admin/views/exception_tracker.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2018-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -80,7 +78,7 @@ class ExceptionsTrackerView(BaseAppView) exc_metadata = exc_tracking.exc_unserialize(f.read()) exc.update(exc_metadata) except Exception: - log.exception('Failed to read exc data from:{}'.format(full_path)) + log.exception(f'Failed to read exc data from:{full_path}') pass # convert our timestamp to a date obj, for nicer representation exc['exc_utc_date'] = time_to_utcdatetime(exc['exc_timestamp']) diff --git a/rhodecode/apps/admin/views/main_views.py b/rhodecode/apps/admin/views/main_views.py --- a/rhodecode/apps/admin/views/main_views.py +++ b/rhodecode/apps/admin/views/main_views.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/open_source_licenses.py b/rhodecode/apps/admin/views/open_source_licenses.py --- a/rhodecode/apps/admin/views/open_source_licenses.py +++ b/rhodecode/apps/admin/views/open_source_licenses.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/permissions.py b/rhodecode/apps/admin/views/permissions.py --- a/rhodecode/apps/admin/views/permissions.py +++ b/rhodecode/apps/admin/views/permissions.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -410,7 +408,7 @@ class AdminPermissionsView(BaseAppView, base_q = UserSshKeys.query().join(UserSshKeys.user) if search_q: - like_expression = u'%{}%'.format(safe_str(search_q)) + like_expression = f'%{safe_str(search_q)}%' base_q = base_q.filter(or_( User.username.ilike(like_expression), UserSshKeys.ssh_key_fingerprint.ilike(like_expression), diff --git a/rhodecode/apps/admin/views/process_management.py b/rhodecode/apps/admin/views/process_management.py --- a/rhodecode/apps/admin/views/process_management.py +++ b/rhodecode/apps/admin/views/process_management.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -132,14 +130,14 @@ class AdminProcessManagementView(BaseApp try: p.terminate() except psutil.AccessDenied as e: - log.warning('Access denied: {}'.format(e)) + log.warning(f'Access denied: {e}') gone, alive = psutil.wait_procs(procs, timeout=10, callback=on_terminate) for p in alive: try: p.kill() except psutil.AccessDenied as e: - log.warning('Access denied: {}'.format(e)) + log.warning(f'Access denied: {e}') return {'result': result} diff --git a/rhodecode/apps/admin/views/repo_groups.py b/rhodecode/apps/admin/views/repo_groups.py --- a/rhodecode/apps/admin/views/repo_groups.py +++ b/rhodecode/apps/admin/views/repo_groups.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -182,7 +180,7 @@ class AdminRepoGroupsView(BaseAppView, D base_q = base_q.group_by(RepoGroup, OwnerUser) if search_q: - like_expression = u'%{}%'.format(safe_str(search_q)) + like_expression = f'%{safe_str(search_q)}%' base_q = base_q.filter(or_( RepoGroup.group_name.ilike(like_expression), )) diff --git a/rhodecode/apps/admin/views/repositories.py b/rhodecode/apps/admin/views/repositories.py --- a/rhodecode/apps/admin/views/repositories.py +++ b/rhodecode/apps/admin/views/repositories.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -117,7 +115,7 @@ class AdminReposView(BaseAppView, DataGr .join(OwnerUser, Repository.user_id == OwnerUser.user_id) if search_q: - like_expression = u'%{}%'.format(safe_str(search_q)) + like_expression = f'%{safe_str(search_q)}%' base_q = base_q.filter(or_( Repository.repo_name.ilike(like_expression), )) diff --git a/rhodecode/apps/admin/views/sessions.py b/rhodecode/apps/admin/views/sessions.py --- a/rhodecode/apps/admin/views/sessions.py +++ b/rhodecode/apps/admin/views/sessions.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/admin/views/settings.py b/rhodecode/apps/admin/views/settings.py --- a/rhodecode/apps/admin/views/settings.py +++ b/rhodecode/apps/admin/views/settings.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -464,7 +463,7 @@ class AdminSettingsView(BaseAppView): except formencode.Invalid as errors: log.exception('Failed to add new pattern') error = errors - h.flash(_('Invalid issue tracker pattern: {}'.format(error)), + h.flash(_(f'Invalid issue tracker pattern: {error}'), category='error') raise HTTPFound(h.route_path('admin_settings_issuetracker')) diff --git a/rhodecode/apps/admin/views/svn_config.py b/rhodecode/apps/admin/views/svn_config.py --- a/rhodecode/apps/admin/views/svn_config.py +++ b/rhodecode/apps/admin/views/svn_config.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/my_account/views/__init__.py b/rhodecode/apps/my_account/views/__init__.py --- a/rhodecode/apps/my_account/views/__init__.py +++ b/rhodecode/apps/my_account/views/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/my_account/views/my_account.py b/rhodecode/apps/my_account/views/my_account.py --- a/rhodecode/apps/my_account/views/my_account.py +++ b/rhodecode/apps/my_account/views/my_account.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -399,7 +397,7 @@ class MyAccountView(BaseAppView, DataGri channelstream_request(channelstream_config, [payload], '/message') except ChannelstreamException as e: log.exception('Failed to send channelstream data') - return {"response": 'ERROR: {}'.format(e.__class__.__name__)} + return {"response": f'ERROR: {e.__class__.__name__}'} return {"response": 'Channelstream data sent. ' 'You should see a new live message now.'} diff --git a/rhodecode/apps/my_account/views/my_account_notifications.py b/rhodecode/apps/my_account/views/my_account_notifications.py --- a/rhodecode/apps/my_account/views/my_account_notifications.py +++ b/rhodecode/apps/my_account/views/my_account_notifications.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/my_account/views/my_account_ssh_keys.py b/rhodecode/apps/my_account/views/my_account_ssh_keys.py --- a/rhodecode/apps/my_account/views/my_account_ssh_keys.py +++ b/rhodecode/apps/my_account/views/my_account_ssh_keys.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ops/__init__.py b/rhodecode/apps/ops/__init__.py --- a/rhodecode/apps/ops/__init__.py +++ b/rhodecode/apps/ops/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ops/views.py b/rhodecode/apps/ops/views.py --- a/rhodecode/apps/ops/views.py +++ b/rhodecode/apps/ops/views.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/__init__.py b/rhodecode/apps/repo_group/__init__.py --- a/rhodecode/apps/repo_group/__init__.py +++ b/rhodecode/apps/repo_group/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/tests/__init__.py b/rhodecode/apps/repo_group/tests/__init__.py --- a/rhodecode/apps/repo_group/tests/__init__.py +++ b/rhodecode/apps/repo_group/tests/__init__.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/tests/test_repo_groups_advanced.py b/rhodecode/apps/repo_group/tests/test_repo_groups_advanced.py --- a/rhodecode/apps/repo_group/tests/test_repo_groups_advanced.py +++ b/rhodecode/apps/repo_group/tests/test_repo_groups_advanced.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/tests/test_repo_groups_permissions.py b/rhodecode/apps/repo_group/tests/test_repo_groups_permissions.py --- a/rhodecode/apps/repo_group/tests/test_repo_groups_permissions.py +++ b/rhodecode/apps/repo_group/tests/test_repo_groups_permissions.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/views/__init__.py b/rhodecode/apps/repo_group/views/__init__.py --- a/rhodecode/apps/repo_group/views/__init__.py +++ b/rhodecode/apps/repo_group/views/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/views/repo_group_advanced.py b/rhodecode/apps/repo_group/views/repo_group_advanced.py --- a/rhodecode/apps/repo_group/views/repo_group_advanced.py +++ b/rhodecode/apps/repo_group/views/repo_group_advanced.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/views/repo_group_permissions.py b/rhodecode/apps/repo_group/views/repo_group_permissions.py --- a/rhodecode/apps/repo_group/views/repo_group_permissions.py +++ b/rhodecode/apps/repo_group/views/repo_group_permissions.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repo_group/views/repo_group_settings.py b/rhodecode/apps/repo_group/views/repo_group_settings.py --- a/rhodecode/apps/repo_group/views/repo_group_settings.py +++ b/rhodecode/apps/repo_group/views/repo_group_settings.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/__init__.py b/rhodecode/apps/repository/__init__.py --- a/rhodecode/apps/repository/__init__.py +++ b/rhodecode/apps/repository/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/tests/__init__.py b/rhodecode/apps/repository/tests/__init__.py --- a/rhodecode/apps/repository/tests/__init__.py +++ b/rhodecode/apps/repository/tests/__init__.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/utils.py b/rhodecode/apps/repository/utils.py --- a/rhodecode/apps/repository/utils.py +++ b/rhodecode/apps/repository/utils.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/__init__.py b/rhodecode/apps/repository/views/__init__.py --- a/rhodecode/apps/repository/views/__init__.py +++ b/rhodecode/apps/repository/views/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_artifacts.py b/rhodecode/apps/repository/views/repo_artifacts.py --- a/rhodecode/apps/repository/views/repo_artifacts.py +++ b/rhodecode/apps/repository/views/repo_artifacts.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_audit_logs.py b/rhodecode/apps/repository/views/repo_audit_logs.py --- a/rhodecode/apps/repository/views/repo_audit_logs.py +++ b/rhodecode/apps/repository/views/repo_audit_logs.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2017-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_automation.py b/rhodecode/apps/repository/views/repo_automation.py --- a/rhodecode/apps/repository/views/repo_automation.py +++ b/rhodecode/apps/repository/views/repo_automation.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_bookmarks.py b/rhodecode/apps/repository/views/repo_bookmarks.py --- a/rhodecode/apps/repository/views/repo_bookmarks.py +++ b/rhodecode/apps/repository/views/repo_bookmarks.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_branch_permissions.py b/rhodecode/apps/repository/views/repo_branch_permissions.py --- a/rhodecode/apps/repository/views/repo_branch_permissions.py +++ b/rhodecode/apps/repository/views/repo_branch_permissions.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_branches.py b/rhodecode/apps/repository/views/repo_branches.py --- a/rhodecode/apps/repository/views/repo_branches.py +++ b/rhodecode/apps/repository/views/repo_branches.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_caches.py b/rhodecode/apps/repository/views/repo_caches.py --- a/rhodecode/apps/repository/views/repo_caches.py +++ b/rhodecode/apps/repository/views/repo_caches.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -52,7 +50,7 @@ class RepoCachesView(RepoAppView): c.cached_diff_size = system_info.get_storage_size(cached_diffs_dir) c.shadow_repos = c.rhodecode_db_repo.shadow_repos() - cache_namespace_uid = 'repo.{}'.format(self.db_repo.repo_id) + cache_namespace_uid = f'repo.{self.db_repo.repo_id}' c.region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) c.backend = c.region.backend c.repo_keys = sorted(c.region.backend.list_keys(prefix=cache_namespace_uid)) diff --git a/rhodecode/apps/repository/views/repo_changelog.py b/rhodecode/apps/repository/views/repo_changelog.py --- a/rhodecode/apps/repository/views/repo_changelog.py +++ b/rhodecode/apps/repository/views/repo_changelog.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -111,7 +110,7 @@ class RepoChangelogView(RepoAppView): def _check_if_valid_branch(self, branch_name, repo_name, f_path): if branch_name not in self.rhodecode_vcs_repo.branches_all: - h.flash(u'Branch {} is not found.'.format(h.escape(safe_str(branch_name))), + h.flash(f'Branch {h.escape(safe_str(branch_name))} is not found.', category='warning') redirect_url = h.route_path( 'repo_commits_file', repo_name=repo_name, @@ -300,7 +299,7 @@ class RepoChangelogView(RepoAppView): c.selected_name = branch_name or book_name if branch_name and branch_name not in self.rhodecode_vcs_repo.branches_all: return wrap_for_error( - safe_str('Branch: {} is not valid'.format(branch_name))) + safe_str(f'Branch: {branch_name} is not valid')) pre_load = self.get_commit_preload_attrs() diff --git a/rhodecode/apps/repository/views/repo_checks.py b/rhodecode/apps/repository/views/repo_checks.py --- a/rhodecode/apps/repository/views/repo_checks.py +++ b/rhodecode/apps/repository/views/repo_checks.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_commits.py b/rhodecode/apps/repository/views/repo_commits.py --- a/rhodecode/apps/repository/views/repo_commits.py +++ b/rhodecode/apps/repository/views/repo_commits.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -383,7 +382,7 @@ class RepoCommitsView(RepoAppView): resolves_comment_id = entry['resolves_comment_id'] f_path = entry['f_path'] line_no = entry['line'] - target_elem_id = 'file-{}'.format(h.safeid(h.safe_str(f_path))) + target_elem_id = f'file-{h.safeid(h.safe_str(f_path))}' if status: text = text or (_('Status change %(transition_icon)s %(status)s') @@ -579,7 +578,7 @@ class RepoCommitsView(RepoAppView): self.request.response.status = 400 return {'store_fid': None, 'access_path': None, - 'error': '{} data field is missing'.format(upload_key)} + 'error': f'{upload_key} data field is missing'} if not hasattr(file_obj, 'filename'): self.request.response.status = 400 @@ -628,7 +627,7 @@ class RepoCommitsView(RepoAppView): file_uid=store_uid, filename=metadata["filename"], file_hash=metadata["sha256"], file_size=metadata["size"], file_display_name=file_display_name, - file_description=u'comment attachment `{}`'.format(safe_str(filename)), + file_description=f'comment attachment `{safe_str(filename)}`', hidden=True, check_acl=True, user_id=self._rhodecode_user.user_id, scope_repo_id=self.db_repo.repo_id ) @@ -640,7 +639,7 @@ class RepoCommitsView(RepoAppView): self.request.response.status = 400 return {'store_fid': None, 'access_path': None, - 'error': 'File {} failed to store in DB.'.format(filename)} + 'error': f'File {filename} failed to store in DB.'} Session().commit() diff --git a/rhodecode/apps/repository/views/repo_compare.py b/rhodecode/apps/repository/views/repo_compare.py --- a/rhodecode/apps/repository/views/repo_compare.py +++ b/rhodecode/apps/repository/views/repo_compare.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2012-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_feed.py b/rhodecode/apps/repository/views/repo_feed.py --- a/rhodecode/apps/repository/views/repo_feed.py +++ b/rhodecode/apps/repository/views/repo_feed.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2017-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -99,7 +97,7 @@ class RepoFeedView(RepoAppView): has_hidden_changes=has_hidden_changes ) - def _set_timezone(self, date, tzinfo=datetime.timezone.utc): + def _set_timezone(self, date, tzinfo=datetime.UTC): if not getattr(date, "tzinfo", None): date.replace(tzinfo=tzinfo) return date @@ -131,7 +129,7 @@ class RepoFeedView(RepoAppView): self.load_default_context() force_recache = self.get_recache_flag() - cache_namespace_uid = 'repo_feed.{}'.format(self.db_repo.repo_id) + cache_namespace_uid = f'repo_feed.{self.db_repo.repo_id}' condition = not (self.path_filter.is_enabled or force_recache) region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) @@ -178,7 +176,7 @@ class RepoFeedView(RepoAppView): self.load_default_context() force_recache = self.get_recache_flag() - cache_namespace_uid = 'repo_feed.{}'.format(self.db_repo.repo_id) + cache_namespace_uid = f'repo_feed.{self.db_repo.repo_id}' condition = not (self.path_filter.is_enabled or force_recache) region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) diff --git a/rhodecode/apps/repository/views/repo_files.py b/rhodecode/apps/repository/views/repo_files.py --- a/rhodecode/apps/repository/views/repo_files.py +++ b/rhodecode/apps/repository/views/repo_files.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -312,7 +310,7 @@ class RepoFilesView(RepoAppView): 'with caching: %s[TTL: %ss]' % ( repo_id, commit_id, f_path, cache_on, cache_seconds or 0)) - cache_namespace_uid = 'repo.{}'.format(repo_id) + cache_namespace_uid = f'repo.{repo_id}' region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) @region.conditional_cache_on_arguments(namespace=cache_namespace_uid, condition=cache_on) @@ -387,7 +385,7 @@ class RepoFilesView(RepoAppView): # we used a ref, or a shorter version, lets redirect client ot use explicit hash if commit_id != commit.raw_id: - fname='{}{}'.format(commit.raw_id, ext) + fname=f'{commit.raw_id}{ext}' raise HTTPFound(self.request.current_route_path(fname=fname)) try: @@ -772,7 +770,7 @@ class RepoFilesView(RepoAppView): prev_url = h.route_path( 'repo_files:annotated', repo_name=self.db_repo_name, commit_id=prev_commit_id, f_path=f_path, - _anchor='L{}'.format(line_anchor)) + _anchor=f'L{line_anchor}') raise HTTPFound(prev_url) @@ -792,7 +790,7 @@ class RepoFilesView(RepoAppView): try: dir_node = commit.get_node(f_path) except RepositoryError as e: - return Response('error: {}'.format(h.escape(safe_str(e)))) + return Response(f'error: {h.escape(safe_str(e))}') if dir_node.is_file(): return Response('') @@ -921,7 +919,7 @@ class RepoFilesView(RepoAppView): 'with caching: %s[TTL: %ss]' % ( repo_id, commit_id, f_path, cache_on, cache_seconds or 0)) - cache_namespace_uid = 'repo.{}'.format(repo_id) + cache_namespace_uid = f'repo.{repo_id}' region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) @region.conditional_cache_on_arguments(namespace=cache_namespace_uid, condition=cache_on) @@ -998,7 +996,7 @@ class RepoFilesView(RepoAppView): commits_group = ([], _("Changesets")) for commit in commits: branch = ' (%s)' % commit.branch if commit.branch else '' - n_desc = 'r%s:%s%s' % (commit.idx, commit.short_id, branch) + n_desc = 'r{}:{}{}'.format(commit.idx, commit.short_id, branch) commits_group[0].append((commit.raw_id, n_desc, 'sha')) history.append(commits_group) @@ -1086,7 +1084,7 @@ class RepoFilesView(RepoAppView): c.file_last_commit = file_node.last_commit if self.request.GET.get('annotate') == '1': # use _hist from annotation if annotation mode is on - commit_ids = set(x[1] for x in file_node.annotate) + commit_ids = {x[1] for x in file_node.annotate} _hist = ( self.rhodecode_vcs_repo.get_commit(commit_id) for commit_id in commit_ids) diff --git a/rhodecode/apps/repository/views/repo_forks.py b/rhodecode/apps/repository/views/repo_forks.py --- a/rhodecode/apps/repository/views/repo_forks.py +++ b/rhodecode/apps/repository/views/repo_forks.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -102,7 +100,7 @@ class RepoForksView(RepoAppView, DataGri .filter(Repository.repo_id.in_(allowed_ids))\ if search_q: - like_expression = u'%{}%'.format(safe_str(search_q)) + like_expression = f'%{safe_str(search_q)}%' base_q = base_q.filter(or_( Repository.repo_name.ilike(like_expression), Repository.description.ilike(like_expression), @@ -174,7 +172,7 @@ class RepoForksView(RepoAppView, DataGri defaults = RepoModel()._get_defaults(self.db_repo_name) # alter the description to indicate a fork defaults['description'] = ( - 'fork of repository: %s \n%s' % ( + 'fork of repository: {} \n{}'.format( defaults['repo_name'], defaults['description'])) # add suffix to fork defaults['repo_name'] = '%s-fork' % defaults['repo_name'] @@ -235,7 +233,7 @@ class RepoForksView(RepoAppView, DataGri return Response(html) except Exception: log.exception( - u'Exception while trying to fork the repository %s', self.db_repo_name) + 'Exception while trying to fork the repository %s', self.db_repo_name) msg = _('An error occurred during repository forking %s') % (self.db_repo_name, ) h.flash(msg, category='error') raise HTTPFound(h.route_path('home')) diff --git a/rhodecode/apps/repository/views/repo_maintainance.py b/rhodecode/apps/repository/views/repo_maintainance.py --- a/rhodecode/apps/repository/views/repo_maintainance.py +++ b/rhodecode/apps/repository/views/repo_maintainance.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_permissions.py b/rhodecode/apps/repository/views/repo_permissions.py --- a/rhodecode/apps/repository/views/repo_permissions.py +++ b/rhodecode/apps/repository/views/repo_permissions.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_pull_requests.py b/rhodecode/apps/repository/views/repo_pull_requests.py --- a/rhodecode/apps/repository/views/repo_pull_requests.py +++ b/rhodecode/apps/repository/views/repo_pull_requests.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -932,7 +930,7 @@ class RepoPullRequestsView(RepoAppView, .filter(Repository.fork_id == self.db_repo.parent.repo_id) if filter_query: - ilike_expression = u'%{}%'.format(safe_str(filter_query)) + ilike_expression = f'%{safe_str(filter_query)}%' parents_query = parents_query.filter( Repository.repo_name.ilike(ilike_expression)) parents = parents_query.limit(20).all() @@ -952,7 +950,7 @@ class RepoPullRequestsView(RepoAppView, .filter(~Repository.repo_id.in_([x.repo_id for x in parent_target_repos])) if filter_query: - ilike_expression = u'%{}%'.format(safe_str(filter_query)) + ilike_expression = f'%{safe_str(filter_query)}%' query = query.filter(Repository.repo_name.ilike(ilike_expression)) limit = max(20 - len(parent_target_repos), 5) # not less then 5 @@ -1274,7 +1272,7 @@ class RepoPullRequestsView(RepoAppView, if pull_request.is_closed(): log.debug('update: forbidden because pull request is closed') - msg = _(u'Cannot update closed pull requests.') + msg = _('Cannot update closed pull requests.') h.flash(msg, category='error') return {'response': True, 'redirect_url': redirect_url} @@ -1306,8 +1304,8 @@ class RepoPullRequestsView(RepoAppView, if is_state_changing: log.debug('commits update: forbidden because pull request is in state %s', pull_request.pull_request_state) - msg = _(u'Cannot update pull requests commits in state other than `{}`. ' - u'Current state is: `{}`').format( + msg = _('Cannot update pull requests commits in state other than `{}`. ' + 'Current state is: `{}`').format( PullRequest.STATE_CREATED, pull_request.pull_request_state) h.flash(msg, category='error') return {'response': True, @@ -1343,13 +1341,13 @@ class RepoPullRequestsView(RepoAppView, self.request.POST.get('description_renderer'), self._rhodecode_user) except ValueError: - msg = _(u'Cannot update closed pull requests.') + msg = _('Cannot update closed pull requests.') h.flash(msg, category='error') return else: Session().commit() - msg = _(u'Pull request title & description updated.') + msg = _('Pull request title & description updated.') h.flash(msg, category='success') return @@ -1376,9 +1374,9 @@ class RepoPullRequestsView(RepoAppView, else: changed = 'nothing' - msg = _(u'Pull request updated to "{source_commit_id}" with ' - u'{count_added} added, {count_removed} removed commits. ' - u'Source of changes: {change_source}.') + msg = _('Pull request updated to "{source_commit_id}" with ' + '{count_added} added, {count_removed} removed commits. ' + 'Source of changes: {change_source}.') msg = msg.format( source_commit_id=pull_request.source_ref_parts.commit_id, count_added=len(resp.changes.added), @@ -1406,7 +1404,7 @@ class RepoPullRequestsView(RepoAppView, try: reviewers = validate_default_reviewers(review_members, reviewer_rules) except ValueError as e: - log.error('Reviewers Validation: {}'.format(e)) + log.error(f'Reviewers Validation: {e}') h.flash(e, category='error') return @@ -1432,7 +1430,7 @@ class RepoPullRequestsView(RepoAppView, try: observers = validate_observers(review_members, reviewer_rules) except ValueError as e: - log.error('Observers Validation: {}'.format(e)) + log.error(f'Observers Validation: {e}') h.flash(e, category='error') return @@ -1464,8 +1462,8 @@ class RepoPullRequestsView(RepoAppView, if pull_request.is_state_changing(): log.debug('show: forbidden because pull request is in state %s', pull_request.pull_request_state) - msg = _(u'Cannot merge pull requests in state other than `{}`. ' - u'Current state is: `{}`').format(PullRequest.STATE_CREATED, + msg = _('Cannot merge pull requests in state other than `{}`. ' + 'Current state is: `{}`').format(PullRequest.STATE_CREATED, pull_request.pull_request_state) h.flash(msg, category='error') raise HTTPFound( @@ -1566,7 +1564,7 @@ class RepoPullRequestsView(RepoAppView, close_pull_request = entry['close_pull_request'] f_path = entry['f_path'] line_no = entry['line'] - target_elem_id = 'file-{}'.format(h.safeid(h.safe_str(f_path))) + target_elem_id = f'file-{h.safeid(h.safe_str(f_path))}' # the logic here should work like following, if we submit close # pr comment, use `close_pull_request_with_comment` function diff --git a/rhodecode/apps/repository/views/repo_review_rules.py b/rhodecode/apps/repository/views/repo_review_rules.py --- a/rhodecode/apps/repository/views/repo_review_rules.py +++ b/rhodecode/apps/repository/views/repo_review_rules.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_settings.py b/rhodecode/apps/repository/views/repo_settings.py --- a/rhodecode/apps/repository/views/repo_settings.py +++ b/rhodecode/apps/repository/views/repo_settings.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -231,7 +229,7 @@ class RepoSettingsView(RepoAppView): c.stats_percentage = 0 else: c.stats_percentage = '%.2f' % ( - (float((last_rev)) / c.repo_last_rev) * 100) + (float(last_rev) / c.repo_last_rev) * 100) return self._get_template_context(c) @LoginRequired() diff --git a/rhodecode/apps/repository/views/repo_settings_advanced.py b/rhodecode/apps/repository/views/repo_settings_advanced.py --- a/rhodecode/apps/repository/views/repo_settings_advanced.py +++ b/rhodecode/apps/repository/views/repo_settings_advanced.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_settings_fields.py b/rhodecode/apps/repository/views/repo_settings_fields.py --- a/rhodecode/apps/repository/views/repo_settings_fields.py +++ b/rhodecode/apps/repository/views/repo_settings_fields.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2017-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_settings_issue_trackers.py b/rhodecode/apps/repository/views/repo_settings_issue_trackers.py --- a/rhodecode/apps/repository/views/repo_settings_issue_trackers.py +++ b/rhodecode/apps/repository/views/repo_settings_issue_trackers.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2017-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -110,7 +108,7 @@ class RepoSettingsIssueTrackersView(Repo except formencode.Invalid as errors: log.exception('Failed to add new pattern') error = errors - h.flash(_('Invalid issue tracker pattern: {}'.format(error)), + h.flash(_(f'Invalid issue tracker pattern: {error}'), category='error') raise HTTPFound( h.route_path('edit_repo_issuetracker', diff --git a/rhodecode/apps/repository/views/repo_settings_remote.py b/rhodecode/apps/repository/views/repo_settings_remote.py --- a/rhodecode/apps/repository/views/repo_settings_remote.py +++ b/rhodecode/apps/repository/views/repo_settings_remote.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2017-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/repository/views/repo_summary.py b/rhodecode/apps/repository/views/repo_summary.py --- a/rhodecode/apps/repository/views/repo_summary.py +++ b/rhodecode/apps/repository/views/repo_summary.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -161,7 +159,7 @@ class RepoSummaryView(RepoAppView): 'with caching: %s[TTL: %ss]' % ( repo_id, landing_commit, cache_on, cache_seconds or 0)) - cache_namespace_uid = 'repo.{}'.format(repo_id) + cache_namespace_uid = f'repo.{repo_id}' region = rc_cache.get_or_create_region('cache_repo', cache_namespace_uid) @region.conditional_cache_on_arguments(namespace=cache_namespace_uid, diff --git a/rhodecode/apps/repository/views/repo_tags.py b/rhodecode/apps/repository/views/repo_tags.py --- a/rhodecode/apps/repository/views/repo_tags.py +++ b/rhodecode/apps/repository/views/repo_tags.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/search/__init__.py b/rhodecode/apps/search/__init__.py --- a/rhodecode/apps/search/__init__.py +++ b/rhodecode/apps/search/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/search/tests/test_search.py b/rhodecode/apps/search/tests/test_search.py --- a/rhodecode/apps/search/tests/test_search.py +++ b/rhodecode/apps/search/tests/test_search.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -195,7 +194,7 @@ class TestSearchController(TestControlle _, kwargs = search_mock.call_args assert isinstance(kwargs['filter'], query.Or) expected_repositories = [ - 'vcs_test_{}'.format(b) for b in enabled_backends] + f'vcs_test_{b}' for b in enabled_backends] queried_repositories = [ name for type_, name in kwargs['filter'].all_terms()] for repository in expected_repositories: diff --git a/rhodecode/apps/search/views.py b/rhodecode/apps/search/views.py --- a/rhodecode/apps/search/views.py +++ b/rhodecode/apps/search/views.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2011-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -97,7 +95,7 @@ def perform_search(request, tmpl_context search_tags = searcher.extract_search_tags(search_query) if not search_result['error']: - execution_time = '%s results (%.4f seconds)' % ( + execution_time = '{} results ({:.4f} seconds)'.format( search_result['count'], search_result['runtime']) elif not errors: @@ -122,7 +120,7 @@ def perform_search(request, tmpl_context c.sort_tag = None c.sort_tag_dir = direction if sort_definition: - c.sort = '{}:{}'.format(direction, sort_field) + c.sort = f'{direction}:{sort_field}' c.sort_tag = sort_field diff --git a/rhodecode/apps/ssh_support/__init__.py b/rhodecode/apps/ssh_support/__init__.py --- a/rhodecode/apps/ssh_support/__init__.py +++ b/rhodecode/apps/ssh_support/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/config_keys.py b/rhodecode/apps/ssh_support/config_keys.py --- a/rhodecode/apps/ssh_support/config_keys.py +++ b/rhodecode/apps/ssh_support/config_keys.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/lib/__init__.py b/rhodecode/apps/ssh_support/lib/__init__.py --- a/rhodecode/apps/ssh_support/lib/__init__.py +++ b/rhodecode/apps/ssh_support/lib/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/lib/backends/base.py b/rhodecode/apps/ssh_support/lib/backends/base.py --- a/rhodecode/apps/ssh_support/lib/backends/base.py +++ b/rhodecode/apps/ssh_support/lib/backends/base.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -107,7 +105,7 @@ class VcsServer(object): 'make_lock': None, 'locked_by': [None, None], 'server_url': None, - 'user_agent': '{}/ssh-user-agent'.format(self.repo_user_agent), + 'user_agent': f'{self.repo_user_agent}/ssh-user-agent', 'hooks': ['push', 'pull'], 'hooks_module': 'rhodecode.lib.hooks_daemon', 'is_shadow_repo': False, diff --git a/rhodecode/apps/ssh_support/lib/backends/git.py b/rhodecode/apps/ssh_support/lib/backends/git.py --- a/rhodecode/apps/ssh_support/lib/backends/git.py +++ b/rhodecode/apps/ssh_support/lib/backends/git.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -63,7 +61,7 @@ class GitServer(VcsServer): def __init__(self, store, ini_path, repo_name, repo_mode, user, user_permissions, config, env): - super(GitServer, self).\ + super().\ __init__(user, user_permissions, config, env) self.store = store diff --git a/rhodecode/apps/ssh_support/lib/backends/hg.py b/rhodecode/apps/ssh_support/lib/backends/hg.py --- a/rhodecode/apps/ssh_support/lib/backends/hg.py +++ b/rhodecode/apps/ssh_support/lib/backends/hg.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -101,7 +99,7 @@ class MercurialServer(VcsServer): cli_flags = ['phases', 'largefiles', 'extensions', 'experimental', 'hooks'] def __init__(self, store, ini_path, repo_name, user, user_permissions, config, env): - super(MercurialServer, self).__init__(user, user_permissions, config, env) + super().__init__(user, user_permissions, config, env) self.store = store self.ini_path = ini_path @@ -142,7 +140,7 @@ class MercurialServer(VcsServer): flags = [] for _sec, key_val in ui_sections.items(): flags.append(' ') - flags.append('[{}]'.format(_sec)) + flags.append(f'[{_sec}]') for key, val in key_val: - flags.append('{}= {}'.format(key, val)) + flags.append(f'{key}= {val}') return flags diff --git a/rhodecode/apps/ssh_support/lib/backends/svn.py b/rhodecode/apps/ssh_support/lib/backends/svn.py --- a/rhodecode/apps/ssh_support/lib/backends/svn.py +++ b/rhodecode/apps/ssh_support/lib/backends/svn.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -126,7 +124,7 @@ class SubversionTunnelWrapper(object): def _svn_string(self, str_): if not str_: return '' - return '{length}:{string} '.format(length=len(str_), string=str_) + return f'{len(str_)}:{str_} ' def _read_first_client_response(self): buffer_ = "" @@ -226,7 +224,7 @@ class SubversionServer(VcsServer): def __init__(self, store, ini_path, repo_name, user, user_permissions, config, env): - super(SubversionServer, self)\ + super()\ .__init__(user, user_permissions, config, env) self.store = store self.ini_path = ini_path diff --git a/rhodecode/apps/ssh_support/lib/ssh_wrapper.py b/rhodecode/apps/ssh_support/lib/ssh_wrapper.py --- a/rhodecode/apps/ssh_support/lib/ssh_wrapper.py +++ b/rhodecode/apps/ssh_support/lib/ssh_wrapper.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/subscribers.py b/rhodecode/apps/ssh_support/subscribers.py --- a/rhodecode/apps/ssh_support/subscribers.py +++ b/rhodecode/apps/ssh_support/subscribers.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/__init__.py b/rhodecode/apps/ssh_support/tests/__init__.py --- a/rhodecode/apps/ssh_support/tests/__init__.py +++ b/rhodecode/apps/ssh_support/tests/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/conftest.py b/rhodecode/apps/ssh_support/tests/conftest.py --- a/rhodecode/apps/ssh_support/tests/conftest.py +++ b/rhodecode/apps/ssh_support/tests/conftest.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/test_server_git.py b/rhodecode/apps/ssh_support/tests/test_server_git.py --- a/rhodecode/apps/ssh_support/tests/test_server_git.py +++ b/rhodecode/apps/ssh_support/tests/test_server_git.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/test_server_hg.py b/rhodecode/apps/ssh_support/tests/test_server_hg.py --- a/rhodecode/apps/ssh_support/tests/test_server_hg.py +++ b/rhodecode/apps/ssh_support/tests/test_server_hg.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/test_server_svn.py b/rhodecode/apps/ssh_support/tests/test_server_svn.py --- a/rhodecode/apps/ssh_support/tests/test_server_svn.py +++ b/rhodecode/apps/ssh_support/tests/test_server_svn.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/test_ssh_authorized_keys_gen.py b/rhodecode/apps/ssh_support/tests/test_ssh_authorized_keys_gen.py --- a/rhodecode/apps/ssh_support/tests/test_ssh_authorized_keys_gen.py +++ b/rhodecode/apps/ssh_support/tests/test_ssh_authorized_keys_gen.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/tests/test_ssh_wrapper.py b/rhodecode/apps/ssh_support/tests/test_ssh_wrapper.py --- a/rhodecode/apps/ssh_support/tests/test_ssh_wrapper.py +++ b/rhodecode/apps/ssh_support/tests/test_ssh_wrapper.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/ssh_support/utils.py b/rhodecode/apps/ssh_support/utils.py --- a/rhodecode/apps/ssh_support/utils.py +++ b/rhodecode/apps/ssh_support/utils.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/svn_support/__init__.py b/rhodecode/apps/svn_support/__init__.py --- a/rhodecode/apps/svn_support/__init__.py +++ b/rhodecode/apps/svn_support/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/svn_support/config_keys.py b/rhodecode/apps/svn_support/config_keys.py --- a/rhodecode/apps/svn_support/config_keys.py +++ b/rhodecode/apps/svn_support/config_keys.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/svn_support/subscribers.py b/rhodecode/apps/svn_support/subscribers.py --- a/rhodecode/apps/svn_support/subscribers.py +++ b/rhodecode/apps/svn_support/subscribers.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/svn_support/tests/test_mod_dav_svn_config.py b/rhodecode/apps/svn_support/tests/test_mod_dav_svn_config.py --- a/rhodecode/apps/svn_support/tests/test_mod_dav_svn_config.py +++ b/rhodecode/apps/svn_support/tests/test_mod_dav_svn_config.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify @@ -31,9 +29,9 @@ class TestModDavSvnConfig(object): @classmethod def setup_class(cls): - cls.location_root = u'/location/root/çµäö' - cls.parent_path_root = u'/parent/path/çµäö' - cls.realm = u'Dummy Realm (äöüçµ)' + cls.location_root = '/location/root/çµäö' + cls.parent_path_root = '/parent/path/çµäö' + cls.realm = 'Dummy Realm (äöüçµ)' @classmethod def get_repo_group_mocks(cls, count=1): @@ -47,12 +45,12 @@ class TestModDavSvnConfig(object): return repo_groups def assert_root_location_directive(self, config): - pattern = u''.format( + pattern = ''.format( location=self.location_root) assert len(re.findall(pattern, config)) == 1 def assert_group_location_directive(self, config, group_path): - pattern = u''.format( + pattern = ''.format( location=self.location_root, group_path=group_path) assert len(re.findall(pattern, config)) == 1 @@ -78,7 +76,7 @@ class TestModDavSvnConfig(object): def test_render_mod_dav_svn_config_with_alternative_template(self, tmpdir): repo_groups = self.get_repo_group_mocks(count=10) test_file_path = os.path.join(str(tmpdir), 'example.mako') - with open(test_file_path, 'wt') as f: + with open(test_file_path, 'w') as f: f.write('TEST_EXAMPLE\n') generated_config = utils._render_mod_dav_svn_config( diff --git a/rhodecode/apps/svn_support/utils.py b/rhodecode/apps/svn_support/utils.py --- a/rhodecode/apps/svn_support/utils.py +++ b/rhodecode/apps/svn_support/utils.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group/__init__.py b/rhodecode/apps/user_group/__init__.py --- a/rhodecode/apps/user_group/__init__.py +++ b/rhodecode/apps/user_group/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group/tests/test_user_groups_permissions.py b/rhodecode/apps/user_group/tests/test_user_groups_permissions.py --- a/rhodecode/apps/user_group/tests/test_user_groups_permissions.py +++ b/rhodecode/apps/user_group/tests/test_user_groups_permissions.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group/views/__init__.py b/rhodecode/apps/user_group/views/__init__.py --- a/rhodecode/apps/user_group/views/__init__.py +++ b/rhodecode/apps/user_group/views/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group_profile/__init__.py b/rhodecode/apps/user_group_profile/__init__.py --- a/rhodecode/apps/user_group_profile/__init__.py +++ b/rhodecode/apps/user_group_profile/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group_profile/tests/__init__.py b/rhodecode/apps/user_group_profile/tests/__init__.py --- a/rhodecode/apps/user_group_profile/tests/__init__.py +++ b/rhodecode/apps/user_group_profile/tests/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group_profile/tests/test_user_group.py b/rhodecode/apps/user_group_profile/tests/test_user_group.py --- a/rhodecode/apps/user_group_profile/tests/test_user_group.py +++ b/rhodecode/apps/user_group_profile/tests/test_user_group.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_group_profile/views.py b/rhodecode/apps/user_group_profile/views.py --- a/rhodecode/apps/user_group_profile/views.py +++ b/rhodecode/apps/user_group_profile/views.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_profile/__init__.py b/rhodecode/apps/user_profile/__init__.py --- a/rhodecode/apps/user_profile/__init__.py +++ b/rhodecode/apps/user_profile/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_profile/tests/__init__.py b/rhodecode/apps/user_profile/tests/__init__.py --- a/rhodecode/apps/user_profile/tests/__init__.py +++ b/rhodecode/apps/user_profile/tests/__init__.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_profile/tests/test_users.py b/rhodecode/apps/user_profile/tests/test_users.py --- a/rhodecode/apps/user_profile/tests/test_users.py +++ b/rhodecode/apps/user_profile/tests/test_users.py @@ -1,4 +1,3 @@ - # Copyright (C) 2010-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify diff --git a/rhodecode/apps/user_profile/views.py b/rhodecode/apps/user_profile/views.py --- a/rhodecode/apps/user_profile/views.py +++ b/rhodecode/apps/user_profile/views.py @@ -1,5 +1,3 @@ - - # Copyright (C) 2016-2023 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify