changeset 7811:0a277465fddf

scripts: initial run of import cleanup using isort
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 07 Aug 2019 00:25:02 +0200
parents 5698307382de
children fe4086096758
files conftest.py docs/conf.py kallithea/__init__.py kallithea/alembic/versions/a020f7044fd6_rename_hooks.py kallithea/alembic/versions/ad357ccd9521_drop_locking.py kallithea/alembic/versions/b74907136bc1_create_table_for_ssh_keys.py kallithea/bin/base.py kallithea/bin/kallithea_api.py kallithea/bin/kallithea_backup.py kallithea/bin/kallithea_cli.py kallithea/bin/kallithea_cli_base.py kallithea/bin/kallithea_cli_celery.py kallithea/bin/kallithea_cli_config.py kallithea/bin/kallithea_cli_db.py kallithea/bin/kallithea_cli_extensions.py kallithea/bin/kallithea_cli_front_end.py kallithea/bin/kallithea_cli_iis.py kallithea/bin/kallithea_cli_index.py kallithea/bin/kallithea_cli_ishell.py kallithea/bin/kallithea_cli_repo.py kallithea/bin/kallithea_cli_ssh.py kallithea/bin/kallithea_gist.py kallithea/bin/ldap_sync.py kallithea/config/app_cfg.py kallithea/config/environment.py kallithea/config/middleware.py kallithea/config/post_receive_tmpl.py kallithea/config/pre_receive_tmpl.py kallithea/config/routing.py kallithea/controllers/admin/admin.py kallithea/controllers/admin/auth_settings.py kallithea/controllers/admin/defaults.py kallithea/controllers/admin/gists.py kallithea/controllers/admin/my_account.py kallithea/controllers/admin/permissions.py kallithea/controllers/admin/repo_groups.py kallithea/controllers/admin/repos.py kallithea/controllers/admin/settings.py kallithea/controllers/admin/user_groups.py kallithea/controllers/admin/users.py kallithea/controllers/api/__init__.py kallithea/controllers/api/api.py kallithea/controllers/changelog.py kallithea/controllers/changeset.py kallithea/controllers/compare.py kallithea/controllers/error.py kallithea/controllers/feed.py kallithea/controllers/files.py kallithea/controllers/followers.py kallithea/controllers/forks.py kallithea/controllers/home.py kallithea/controllers/journal.py kallithea/controllers/login.py kallithea/controllers/pullrequests.py kallithea/controllers/root.py kallithea/controllers/search.py kallithea/controllers/summary.py kallithea/lib/annotate.py kallithea/lib/auth.py kallithea/lib/auth_modules/__init__.py kallithea/lib/auth_modules/auth_container.py kallithea/lib/auth_modules/auth_crowd.py kallithea/lib/auth_modules/auth_internal.py kallithea/lib/auth_modules/auth_ldap.py kallithea/lib/auth_modules/auth_pam.py kallithea/lib/base.py kallithea/lib/caching_query.py kallithea/lib/celerylib/__init__.py kallithea/lib/celerylib/tasks.py kallithea/lib/celerypylons/__init__.py kallithea/lib/colored_formatter.py kallithea/lib/compat.py kallithea/lib/db_manage.py kallithea/lib/diffs.py kallithea/lib/ext_json.py kallithea/lib/helpers.py kallithea/lib/hooks.py kallithea/lib/indexers/__init__.py kallithea/lib/indexers/daemon.py kallithea/lib/inifile.py kallithea/lib/locale.py kallithea/lib/markup_renderer.py kallithea/lib/middleware/permanent_repo_url.py kallithea/lib/middleware/pygrack.py kallithea/lib/middleware/sessionmiddleware.py kallithea/lib/middleware/simplegit.py kallithea/lib/middleware/simplehg.py kallithea/lib/middleware/wrapper.py kallithea/lib/page.py kallithea/lib/pidlock.py kallithea/lib/rcmail/message.py kallithea/lib/rcmail/response.py kallithea/lib/rcmail/smtp_mailer.py kallithea/lib/recaptcha.py kallithea/lib/ssh.py kallithea/lib/timerproxy.py kallithea/lib/utils.py kallithea/lib/utils2.py kallithea/lib/vcs/__init__.py kallithea/lib/vcs/backends/__init__.py kallithea/lib/vcs/backends/base.py kallithea/lib/vcs/backends/git/__init__.py kallithea/lib/vcs/backends/git/changeset.py kallithea/lib/vcs/backends/git/inmemory.py kallithea/lib/vcs/backends/git/repository.py kallithea/lib/vcs/backends/git/ssh.py kallithea/lib/vcs/backends/git/workdir.py kallithea/lib/vcs/backends/hg/__init__.py kallithea/lib/vcs/backends/hg/changeset.py kallithea/lib/vcs/backends/hg/inmemory.py kallithea/lib/vcs/backends/hg/repository.py kallithea/lib/vcs/backends/hg/ssh.py kallithea/lib/vcs/backends/hg/workdir.py kallithea/lib/vcs/backends/ssh.py kallithea/lib/vcs/conf/settings.py kallithea/lib/vcs/nodes.py kallithea/lib/vcs/subprocessio.py kallithea/lib/vcs/utils/__init__.py kallithea/lib/vcs/utils/annotate.py kallithea/lib/vcs/utils/helpers.py kallithea/lib/vcs/utils/hgcompat.py kallithea/lib/vcs/utils/paths.py kallithea/lib/vcs/utils/progressbar.py kallithea/model/api_key.py kallithea/model/base.py kallithea/model/changeset_status.py kallithea/model/comment.py kallithea/model/db.py kallithea/model/forms.py kallithea/model/gist.py kallithea/model/meta.py kallithea/model/notification.py kallithea/model/permission.py kallithea/model/pull_request.py kallithea/model/repo.py kallithea/model/repo_group.py kallithea/model/repo_permission.py kallithea/model/scm.py kallithea/model/ssh_key.py kallithea/model/user.py kallithea/model/user_group.py kallithea/model/validators.py kallithea/tests/__init__.py kallithea/tests/api/api_base.py kallithea/tests/api/test_api_git.py kallithea/tests/api/test_api_hg.py kallithea/tests/base.py kallithea/tests/conftest.py kallithea/tests/fixture.py kallithea/tests/functional/test_admin.py kallithea/tests/functional/test_admin_auth_settings.py kallithea/tests/functional/test_admin_defaults.py kallithea/tests/functional/test_admin_gists.py kallithea/tests/functional/test_admin_permissions.py kallithea/tests/functional/test_admin_repos.py kallithea/tests/functional/test_admin_settings.py kallithea/tests/functional/test_admin_user_groups.py kallithea/tests/functional/test_admin_users.py kallithea/tests/functional/test_changeset.py kallithea/tests/functional/test_changeset_pullrequests_comments.py kallithea/tests/functional/test_compare.py kallithea/tests/functional/test_compare_local.py kallithea/tests/functional/test_feed.py kallithea/tests/functional/test_files.py kallithea/tests/functional/test_forks.py kallithea/tests/functional/test_home.py kallithea/tests/functional/test_journal.py kallithea/tests/functional/test_login.py kallithea/tests/functional/test_my_account.py kallithea/tests/functional/test_pullrequests.py kallithea/tests/functional/test_search.py kallithea/tests/functional/test_search_indexing.py kallithea/tests/functional/test_summary.py kallithea/tests/models/common.py kallithea/tests/models/test_changeset_status.py kallithea/tests/models/test_comments.py kallithea/tests/models/test_diff_parsers.py kallithea/tests/models/test_notifications.py kallithea/tests/models/test_permissions.py kallithea/tests/models/test_repo_groups.py kallithea/tests/models/test_repos.py kallithea/tests/models/test_settings.py kallithea/tests/models/test_user_group_permissions_on_repo_groups.py kallithea/tests/models/test_user_groups.py kallithea/tests/models/test_user_permissions_on_repo_groups.py kallithea/tests/models/test_user_ssh_keys.py kallithea/tests/models/test_users.py kallithea/tests/other/test_auth_ldap.py kallithea/tests/other/test_libs.py kallithea/tests/other/test_mail.py kallithea/tests/other/test_validators.py kallithea/tests/other/test_vcs_operations.py kallithea/tests/performance/test_vcs.py kallithea/tests/scripts/manual_test_concurrency.py kallithea/tests/scripts/manual_test_crawler.py kallithea/tests/vcs/__init__.py kallithea/tests/vcs/base.py kallithea/tests/vcs/conf.py kallithea/tests/vcs/test_archives.py kallithea/tests/vcs/test_branches.py kallithea/tests/vcs/test_changesets.py kallithea/tests/vcs/test_getitem.py kallithea/tests/vcs/test_getslice.py kallithea/tests/vcs/test_git.py kallithea/tests/vcs/test_hg.py kallithea/tests/vcs/test_inmemchangesets.py kallithea/tests/vcs/test_nodes.py kallithea/tests/vcs/test_repository.py kallithea/tests/vcs/test_tags.py kallithea/tests/vcs/test_utils.py kallithea/tests/vcs/test_vcs.py kallithea/tests/vcs/test_workdirs.py kallithea/tests/vcs/utils.py scripts/docs-headings.py scripts/generate-ini.py scripts/logformat.py scripts/shortlog.py scripts/update-copyrights.py setup.py
diffstat 219 files changed, 1071 insertions(+), 1072 deletions(-) [+]
line wrap: on
line diff
--- a/conftest.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/conftest.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,9 @@
+import os
+import sys
+
 import mock
-import os
 import pytest
-import sys
+
 
 here = os.path.dirname(__file__)
 
--- a/docs/conf.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/docs/conf.py	Wed Aug 07 00:25:02 2019 +0200
@@ -11,8 +11,11 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
+import os
 import sys
-import os
+
+from kallithea import __version__
+
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -53,7 +56,6 @@
 # The short X.Y version.
 root = os.path.dirname(os.path.dirname(__file__))
 sys.path.append(root)
-from kallithea import __version__
 version = __version__
 # The full version, including alpha/beta/rc tags.
 release = __version__
--- a/kallithea/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,8 +27,9 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import platform
 import sys
-import platform
+
 
 VERSION = (0, 4, 99)
 BACKENDS = {
--- a/kallithea/alembic/versions/a020f7044fd6_rename_hooks.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/alembic/versions/a020f7044fd6_rename_hooks.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,8 +27,10 @@
 depends_on = None
 
 from alembic import op
+from sqlalchemy import MetaData, Table
+
 from kallithea.model.db import Ui
-from sqlalchemy import Table, MetaData
+
 
 meta = MetaData()
 
--- a/kallithea/alembic/versions/ad357ccd9521_drop_locking.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/alembic/versions/ad357ccd9521_drop_locking.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,10 +26,12 @@
 branch_labels = None
 depends_on = None
 
+import sqlalchemy as sa
 from alembic import op
-import sqlalchemy as sa
+from sqlalchemy import MetaData, Table
+
 from kallithea.model.db import Ui
-from sqlalchemy import Table, MetaData
+
 
 meta = MetaData()
 
--- a/kallithea/alembic/versions/b74907136bc1_create_table_for_ssh_keys.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/alembic/versions/b74907136bc1_create_table_for_ssh_keys.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,8 +26,8 @@
 branch_labels = None
 depends_on = None
 
+import sqlalchemy as sa
 from alembic import op
-import sqlalchemy as sa
 
 from kallithea.model import db
 
--- a/kallithea/bin/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,13 +26,14 @@
 """
 
 import os
-import sys
+import pprint
 import random
+import sys
 import urllib2
-import pprint
 
 from kallithea.lib.compat import json
 
+
 CONFIG_NAME = '.config/kallithea'
 FORMAT_PRETTY = 'pretty'
 FORMAT_JSON = 'json'
--- a/kallithea/bin/kallithea_api.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_api.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,10 +25,10 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import argparse
 import sys
-import argparse
 
-from kallithea.bin.base import json, api_call, RcConf, FORMAT_JSON, FORMAT_PRETTY
+from kallithea.bin.base import FORMAT_JSON, FORMAT_PRETTY, RcConf, api_call, json
 
 
 def argparser(argv):
--- a/kallithea/bin/kallithea_backup.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_backup.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,14 +26,15 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import datetime
+import logging
 import os
+import subprocess
 import sys
-import logging
 import tarfile
-import datetime
-import subprocess
 import tempfile
 
+
 logging.basicConfig(level=logging.DEBUG,
                     format="%(asctime)s %(levelname)-5.5s %(message)s")
 
--- a/kallithea/bin/kallithea_cli.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,9 +12,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# 'cli' is the main entry point for 'kallithea-cli', specified in setup.py as entry_points console_scripts
-from kallithea.bin.kallithea_cli_base import cli
-
 # import commands (they will add themselves to the 'cli' object)
 import kallithea.bin.kallithea_cli_celery
 import kallithea.bin.kallithea_cli_config
@@ -26,3 +23,5 @@
 import kallithea.bin.kallithea_cli_ishell
 import kallithea.bin.kallithea_cli_repo
 import kallithea.bin.kallithea_cli_ssh
+# 'cli' is the main entry point for 'kallithea-cli', specified in setup.py as entry_points console_scripts
+from kallithea.bin.kallithea_cli_base import cli
--- a/kallithea/bin/kallithea_cli_base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,16 +12,17 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import click
 import cStringIO
 import functools
+import logging.config
 import os
 import re
 import sys
 
+import click
+import paste.deploy
+
 import kallithea
-import logging.config
-import paste.deploy
 
 
 # kallithea_cli is usually invoked through the 'kallithea-cli' wrapper script
--- a/kallithea/bin/kallithea_cli_celery.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_celery.py	Wed Aug 07 00:25:02 2019 +0200
@@ -13,9 +13,10 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import click
+
+import kallithea
 import kallithea.bin.kallithea_cli_base as cli_base
 
-import kallithea
 
 @cli_base.register_command(config_file_initialize_app=True)
 @click.argument('celery_args', nargs=-1)
--- a/kallithea/bin/kallithea_cli_config.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_config.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,19 +12,19 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
 import os
 import sys
 import uuid
 from collections import defaultdict
 
+import click
 import mako.exceptions
 
+import kallithea.bin.kallithea_cli_base as cli_base
 import kallithea.lib.locale
 from kallithea.lib import inifile
 
+
 def show_defaults(ctx, param, value):
     # Following construct is taken from the Click documentation:
     # https://click.palletsprojects.com/en/7.x/options/#callbacks-and-eager-options
--- a/kallithea/bin/kallithea_cli_db.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_db.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,12 +12,13 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 import click
-import kallithea.bin.kallithea_cli_base as cli_base
 
 import kallithea
+import kallithea.bin.kallithea_cli_base as cli_base
 from kallithea.lib.db_manage import DbManage
 from kallithea.model.meta import Session
 
+
 @cli_base.register_command(config_file=True)
 @click.option('--user', help='Username of administrator account.')
 @click.option('--password', help='Password for administrator account.')
--- a/kallithea/bin/kallithea_cli_extensions.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_extensions.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,15 +19,16 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
+import os
+
 import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
-import os
 import pkg_resources
 
 import kallithea
+import kallithea.bin.kallithea_cli_base as cli_base
 from kallithea.lib.utils2 import ask_ok
 
+
 @cli_base.register_command(config_file=True)
 def extensions_create():
     """Write template file for extending Kallithea in Python.
--- a/kallithea/bin/kallithea_cli_front_end.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_front_end.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,15 +12,16 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
+import json
 import os
 import shutil
 import subprocess
-import json
+
+import click
 
 import kallithea
+import kallithea.bin.kallithea_cli_base as cli_base
+
 
 @cli_base.register_command()
 @click.option('--install-deps/--no-install-deps', default=True,
--- a/kallithea/bin/kallithea_cli_iis.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_iis.py	Wed Aug 07 00:25:02 2019 +0200
@@ -11,12 +11,14 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+import os
+import sys
+
 import click
+
 import kallithea
 import kallithea.bin.kallithea_cli_base as cli_base
 
-import os
-import sys
 
 dispath_py_template = '''\
 # Created by Kallithea 'kallithea-cli iis-install'
--- a/kallithea/bin/kallithea_cli_index.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_index.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,18 +19,19 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
 import os
 import sys
 
+import click
+
 import kallithea
+import kallithea.bin.kallithea_cli_base as cli_base
 from kallithea.lib.indexers.daemon import WhooshIndexingDaemon
-from kallithea.lib.pidlock import LockHeld, DaemonLock
+from kallithea.lib.pidlock import DaemonLock, LockHeld
 from kallithea.lib.utils import load_rcextensions
 from kallithea.model.repo import RepoModel
 
+
 @cli_base.register_command(config_file_initialize_app=True)
 @click.option('--repo-location', help='Base path of repositories to index. Default: all')
 @click.option('--index-only', help='Comma-separated list of repositories to build index on. Default: all')
--- a/kallithea/bin/kallithea_cli_ishell.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_ishell.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,14 +19,14 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
 import sys
 
-# make following imports directly available inside the ishell
+import click
+
+import kallithea.bin.kallithea_cli_base as cli_base
 from kallithea.model.db import *
 
+
 @cli_base.register_command(config_file_initialize_app=True)
 def ishell():
     """Interactive shell for Kallithea."""
--- a/kallithea/bin/kallithea_cli_repo.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_repo.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,20 +19,21 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
 import datetime
 import os
 import re
 import shutil
 
-from kallithea.lib.utils import repo2db_mapper, REMOVED_REPO_PAT
-from kallithea.lib.utils2 import safe_unicode, safe_str, ask_ok
+import click
+
+import kallithea.bin.kallithea_cli_base as cli_base
+from kallithea.lib.utils import REMOVED_REPO_PAT, repo2db_mapper
+from kallithea.lib.utils2 import ask_ok, safe_str, safe_unicode
 from kallithea.model.db import Repository, Ui
 from kallithea.model.meta import Session
 from kallithea.model.scm import ScmModel
 
+
 @cli_base.register_command(config_file_initialize_app=True)
 @click.option('--remove-missing', is_flag=True,
         help='Remove missing repositories from the Kallithea database.')
--- a/kallithea/bin/kallithea_cli_ssh.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_cli_ssh.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,21 +12,22 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import click
-import kallithea.bin.kallithea_cli_base as cli_base
-
+import logging
 import os
+import re
+import shlex
 import sys
-import re
-import logging
-import shlex
+
+import click
 
 import kallithea
+import kallithea.bin.kallithea_cli_base as cli_base
 from kallithea.lib.utils2 import str2bool
 from kallithea.lib.vcs.backends.git.ssh import GitSshHandler
 from kallithea.lib.vcs.backends.hg.ssh import MercurialSshHandler
 from kallithea.model.ssh_key import SshKeyModel
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/bin/kallithea_gist.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/kallithea_gist.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,13 +25,13 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
-import os
-import sys
-import stat
 import argparse
 import fileinput
+import os
+import stat
+import sys
 
-from kallithea.bin.base import json, api_call, RcConf, FORMAT_JSON, FORMAT_PRETTY
+from kallithea.bin.base import FORMAT_JSON, FORMAT_PRETTY, RcConf, api_call, json
 
 
 def argparser(argv):
--- a/kallithea/bin/ldap_sync.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/bin/ldap_sync.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,13 +25,14 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
-import ldap
 import urllib2
 import uuid
+from ConfigParser import ConfigParser
+
+import ldap
 
 from kallithea.lib.compat import json
 
-from ConfigParser import ConfigParser
 
 config = ConfigParser()
 config.read('ldap_sync.conf')
--- a/kallithea/config/app_cfg.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/app_cfg.py	Wed Aug 07 00:25:02 2019 +0200
@@ -17,32 +17,33 @@
 This file complements the .ini file.
 """
 
+import logging
+import os
 import platform
-import os, sys, logging
+import sys
 
+import alembic.config
+import formencode
+import mercurial
 import tg
+from alembic.migration import MigrationContext
+from alembic.script.base import ScriptDirectory
+from sqlalchemy import create_engine
 from tg import hooks
 from tg.configuration import AppConfig
 from tg.support.converters import asbool
-import alembic.config
-from alembic.script.base import ScriptDirectory
-from alembic.migration import MigrationContext
-from sqlalchemy import create_engine
-import mercurial
 
 import kallithea.lib.locale
+import kallithea.model.base
+from kallithea.lib.auth import set_available_permissions
+from kallithea.lib.middleware.https_fixup import HttpsFixup
 from kallithea.lib.middleware.permanent_repo_url import PermanentRepoUrl
-from kallithea.lib.middleware.https_fixup import HttpsFixup
 from kallithea.lib.middleware.simplegit import SimpleGit
 from kallithea.lib.middleware.simplehg import SimpleHg
-from kallithea.lib.auth import set_available_permissions
-from kallithea.lib.utils import load_rcextensions, make_ui, set_app_settings, set_vcs_config, \
-    set_indexer_config, check_git_version, repo2db_mapper
+from kallithea.lib.utils import check_git_version, load_rcextensions, make_ui, repo2db_mapper, set_app_settings, set_indexer_config, set_vcs_config
 from kallithea.lib.utils2 import str2bool
-import kallithea.model.base
 from kallithea.model.scm import ScmModel
 
-import formencode
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/config/environment.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/environment.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,6 +15,7 @@
 
 from kallithea.config.app_cfg import base_config
 
+
 __all__ = ['load_environment']
 
 # Use base_config to setup the environment loader function
--- a/kallithea/config/middleware.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/middleware.py	Wed Aug 07 00:25:02 2019 +0200
@@ -14,9 +14,11 @@
 """WSGI middleware initialization for the Kallithea application."""
 
 import logging.config
+
 from kallithea.config.app_cfg import base_config
 from kallithea.config.environment import load_environment
 
+
 __all__ = ['make_app']
 
 # Use base_config to setup the necessary PasteDeploy application factory.
--- a/kallithea/config/post_receive_tmpl.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/post_receive_tmpl.py	Wed Aug 07 00:25:02 2019 +0200
@@ -11,6 +11,9 @@
 import os
 import sys
 
+import kallithea.lib.hooks
+
+
 # Set output mode on windows to binary for stderr.
 # This prevents python (or the windows console) from replacing \n with \r\n.
 # Git doesn't display remote output lines that contain \r,
@@ -22,7 +25,6 @@
 
 KALLITHEA_HOOK_VER = '_TMPL_'
 os.environ['KALLITHEA_HOOK_VER'] = KALLITHEA_HOOK_VER
-import kallithea.lib.hooks
 
 
 def main():
--- a/kallithea/config/pre_receive_tmpl.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/pre_receive_tmpl.py	Wed Aug 07 00:25:02 2019 +0200
@@ -11,6 +11,9 @@
 import os
 import sys
 
+import kallithea.lib.hooks
+
+
 # Set output mode on windows to binary for stderr.
 # This prevents python (or the windows console) from replacing \n with \r\n.
 # Git doesn't display remote output lines that contain \r,
@@ -22,7 +25,6 @@
 
 KALLITHEA_HOOK_VER = '_TMPL_'
 os.environ['KALLITHEA_HOOK_VER'] = KALLITHEA_HOOK_VER
-import kallithea.lib.hooks
 
 
 def main():
--- a/kallithea/config/routing.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/config/routing.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,8 +19,9 @@
 refer to the routes manual at http://routes.groovie.org/docs/
 """
 
+from routes import Mapper
 from tg import request
-from routes import Mapper
+
 
 # prefix for non repository related links needs to be prefixed with `/`
 ADMIN_PREFIX = '/_admin'
--- a/kallithea/controllers/admin/admin.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/admin.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,20 +28,21 @@
 
 import logging
 
-from tg import request, tmpl_context as c
 from sqlalchemy.orm import joinedload
+from sqlalchemy.sql.expression import and_, func, or_
+from tg import request
+from tg import tmpl_context as c
+from whoosh import query
+from whoosh.qparser.dateparse import DateParserPlugin
 from whoosh.qparser.default import QueryParser
-from whoosh.qparser.dateparse import DateParserPlugin
-from whoosh import query
-from sqlalchemy.sql.expression import or_, and_, func
 
 from kallithea.config.routing import url
-from kallithea.model.db import UserLog
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator
+from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
-from kallithea.lib.utils2 import safe_int, remove_prefix, remove_suffix
 from kallithea.lib.indexers import JOURNAL_SCHEMA
 from kallithea.lib.page import Page
+from kallithea.lib.utils2 import remove_prefix, remove_suffix, safe_int
+from kallithea.model.db import UserLog
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/controllers/admin/auth_settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/auth_settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -24,23 +24,25 @@
 """
 
 import logging
-import formencode.htmlfill
 import traceback
 
-from tg import request, tmpl_context as c
+import formencode.htmlfill
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 from kallithea.config.routing import url
+from kallithea.lib import auth_modules
 from kallithea.lib import helpers as h
-from kallithea.lib.compat import formatted_json
+from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator
-from kallithea.lib import auth_modules
+from kallithea.lib.compat import formatted_json
+from kallithea.model.db import Setting
 from kallithea.model.forms import AuthSettingsForm
-from kallithea.model.db import Setting
 from kallithea.model.meta import Session
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/admin/defaults.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/defaults.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,20 +27,22 @@
 
 import logging
 import traceback
+
 import formencode
 from formencode import htmlfill
-
-from tg import request, tmpl_context as c
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator
+from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
+from kallithea.model.db import Setting
 from kallithea.model.forms import DefaultsForm
 from kallithea.model.meta import Session
-from kallithea.model.db import Setting
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/gists.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/gists.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,27 +25,29 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import time
-import logging
 import traceback
+
 import formencode.htmlfill
-
-from tg import request, response, tmpl_context as c
+from sqlalchemy.sql.expression import or_
+from tg import request, response
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound, HTTPNotFound, HTTPForbidden
+from webob.exc import HTTPForbidden, HTTPFound, HTTPNotFound
 
 from kallithea.config.routing import url
+from kallithea.lib import helpers as h
+from kallithea.lib.auth import LoginRequired
+from kallithea.lib.base import BaseController, jsonify, render
+from kallithea.lib.page import Page
+from kallithea.lib.utils2 import safe_int, safe_unicode, time_to_datetime
+from kallithea.lib.vcs.exceptions import NodeNotChangedError, VCSError
+from kallithea.model.db import Gist, User
 from kallithea.model.forms import GistForm
 from kallithea.model.gist import GistModel
 from kallithea.model.meta import Session
-from kallithea.model.db import Gist, User
-from kallithea.lib import helpers as h
-from kallithea.lib.base import BaseController, render, jsonify
-from kallithea.lib.auth import LoginRequired
-from kallithea.lib.utils2 import safe_int, safe_unicode, time_to_datetime
-from kallithea.lib.page import Page
-from sqlalchemy.sql.expression import or_
-from kallithea.lib.vcs.exceptions import VCSError, NodeNotChangedError
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/my_account.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/my_account.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,27 +27,29 @@
 
 import logging
 import traceback
+
 import formencode
-
+from formencode import htmlfill
 from sqlalchemy import func
-from formencode import htmlfill
-from tg import request, tmpl_context as c
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 from kallithea.config.routing import url
+from kallithea.lib import auth_modules
 from kallithea.lib import helpers as h
-from kallithea.lib import auth_modules
-from kallithea.lib.auth import LoginRequired, AuthUser
-from kallithea.lib.base import BaseController, render, IfSshEnabled
+from kallithea.lib.auth import AuthUser, LoginRequired
+from kallithea.lib.base import BaseController, IfSshEnabled, render
 from kallithea.lib.utils2 import generate_api_key, safe_int
-from kallithea.model.db import Repository, UserEmailMap, User, UserFollowing
-from kallithea.model.forms import UserForm, PasswordChangeForm
-from kallithea.model.user import UserModel
+from kallithea.model.api_key import ApiKeyModel
+from kallithea.model.db import Repository, User, UserEmailMap, UserFollowing
+from kallithea.model.forms import PasswordChangeForm, UserForm
+from kallithea.model.meta import Session
 from kallithea.model.repo import RepoModel
-from kallithea.model.api_key import ApiKeyModel
 from kallithea.model.ssh_key import SshKeyModel, SshKeyModelException
-from kallithea.model.meta import Session
+from kallithea.model.user import UserModel
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/permissions.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/permissions.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,21 +28,23 @@
 
 import logging
 import traceback
+
 import formencode
 from formencode import htmlfill
-
-from tg import request, tmpl_context as c
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator, AuthUser
+from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
+from kallithea.model.db import User, UserIpMap
 from kallithea.model.forms import DefaultPermissionsForm
+from kallithea.model.meta import Session
 from kallithea.model.permission import PermissionModel
-from kallithea.model.db import User, UserIpMap
-from kallithea.model.meta import Session
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/repo_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/repo_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,32 +25,31 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import itertools
 import logging
 import traceback
+
 import formencode
-import itertools
-
 from formencode import htmlfill
-
-from tg import request, tmpl_context as c, app_globals
-from tg.i18n import ugettext as _, ungettext
-from webob.exc import HTTPFound, HTTPForbidden, HTTPNotFound, HTTPInternalServerError
+from sqlalchemy.sql.expression import func
+from tg import app_globals, request
+from tg import tmpl_context as c
+from tg.i18n import ugettext as _
+from tg.i18n import ungettext
+from webob.exc import HTTPForbidden, HTTPFound, HTTPInternalServerError, HTTPNotFound
 
 import kallithea
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, \
-    HasRepoGroupPermissionLevelDecorator, HasRepoGroupPermissionLevel, \
-    HasPermissionAny
+from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel, HasRepoGroupPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
+from kallithea.lib.utils2 import safe_int
 from kallithea.model.db import RepoGroup, Repository
-from kallithea.model.scm import RepoGroupList, AvailableRepoGroupChoices
-from kallithea.model.repo_group import RepoGroupModel
 from kallithea.model.forms import RepoGroupForm, RepoGroupPermsForm
 from kallithea.model.meta import Session
 from kallithea.model.repo import RepoModel
-from kallithea.lib.utils2 import safe_int
-from sqlalchemy.sql.expression import func
+from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.scm import AvailableRepoGroupChoices, RepoGroupList
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/controllers/admin/repos.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/repos.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,28 +27,29 @@
 
 import logging
 import traceback
+
 import formencode
 from formencode import htmlfill
-from tg import request, tmpl_context as c
+from sqlalchemy.sql.expression import func
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from sqlalchemy.sql.expression import func
-from webob.exc import HTTPFound, HTTPInternalServerError, HTTPForbidden, HTTPNotFound
+from webob.exc import HTTPForbidden, HTTPFound, HTTPInternalServerError, HTTPNotFound
 
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, \
-    HasRepoPermissionLevelDecorator, NotAnonymous, HasPermissionAny
-from kallithea.lib.base import BaseRepoController, render, jsonify
+from kallithea.lib.auth import HasPermissionAny, HasRepoPermissionLevelDecorator, LoginRequired, NotAnonymous
+from kallithea.lib.base import BaseRepoController, jsonify, render
+from kallithea.lib.exceptions import AttachedForksError
 from kallithea.lib.utils import action_logger
+from kallithea.lib.utils2 import safe_int
 from kallithea.lib.vcs import RepositoryError
+from kallithea.model.db import RepoGroup, Repository, RepositoryField, Setting, User, UserFollowing
+from kallithea.model.forms import RepoFieldForm, RepoForm, RepoPermsForm
 from kallithea.model.meta import Session
-from kallithea.model.db import User, Repository, UserFollowing, RepoGroup, \
-    Setting, RepositoryField
-from kallithea.model.forms import RepoForm, RepoFieldForm, RepoPermsForm
-from kallithea.model.scm import ScmModel, AvailableRepoGroupChoices, RepoList
 from kallithea.model.repo import RepoModel
-from kallithea.lib.exceptions import AttachedForksError
-from kallithea.lib.utils2 import safe_int
+from kallithea.model.scm import AvailableRepoGroupChoices, RepoList, ScmModel
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,28 +27,30 @@
 
 import logging
 import traceback
+
 import formencode
-
 from formencode import htmlfill
-from tg import request, tmpl_context as c, config
+from tg import config, request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator
+from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
 from kallithea.lib.celerylib import tasks
 from kallithea.lib.exceptions import HgsubversionImportError
 from kallithea.lib.utils import repo2db_mapper, set_app_settings
+from kallithea.lib.utils2 import safe_unicode, str2bool
 from kallithea.lib.vcs import VCSError
-from kallithea.model.db import Ui, Repository, Setting
-from kallithea.model.forms import ApplicationSettingsForm, \
-    ApplicationUiSettingsForm, ApplicationVisualisationForm
+from kallithea.model.db import Repository, Setting, Ui
+from kallithea.model.forms import ApplicationSettingsForm, ApplicationUiSettingsForm, ApplicationVisualisationForm
+from kallithea.model.meta import Session
+from kallithea.model.notification import EmailNotificationModel
 from kallithea.model.scm import ScmModel
-from kallithea.model.notification import EmailNotificationModel
-from kallithea.model.meta import Session
-from kallithea.lib.utils2 import str2bool, safe_unicode
+
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/admin/user_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/user_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,35 +27,31 @@
 
 import logging
 import traceback
+
 import formencode
-
 from formencode import htmlfill
-from tg import request, tmpl_context as c, config, app_globals
-from tg.i18n import ugettext as _
-from webob.exc import HTTPFound
-
 from sqlalchemy.orm import joinedload
 from sqlalchemy.sql.expression import func
-from webob.exc import HTTPInternalServerError
+from tg import app_globals, config, request
+from tg import tmpl_context as c
+from tg.i18n import ugettext as _
+from webob.exc import HTTPFound, HTTPInternalServerError
 
 import kallithea
 from kallithea.config.routing import url
 from kallithea.lib import helpers as h
-from kallithea.lib.exceptions import UserGroupsAssignedException, \
-    RepoGroupAssignmentError
-from kallithea.lib.utils2 import safe_unicode, safe_int
-from kallithea.lib.auth import LoginRequired, \
-    HasUserGroupPermissionLevelDecorator, HasPermissionAnyDecorator
+from kallithea.lib.auth import HasPermissionAnyDecorator, HasUserGroupPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
+from kallithea.lib.exceptions import RepoGroupAssignmentError, UserGroupsAssignedException
+from kallithea.lib.utils import action_logger
+from kallithea.lib.utils2 import safe_int, safe_unicode
+from kallithea.model.db import User, UserGroup, UserGroupRepoGroupToPerm, UserGroupRepoToPerm, UserGroupToPerm
+from kallithea.model.forms import CustomDefaultPermissionsForm, UserGroupForm, UserGroupPermsForm
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
 from kallithea.model.scm import UserGroupList
 from kallithea.model.user_group import UserGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.db import User, UserGroup, UserGroupToPerm, \
-    UserGroupRepoToPerm, UserGroupRepoGroupToPerm
-from kallithea.model.forms import UserGroupForm, UserGroupPermsForm, \
-    CustomDefaultPermissionsForm
-from kallithea.model.meta import Session
-from kallithea.lib.utils import action_logger
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/admin/users.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/admin/users.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,31 +27,31 @@
 
 import logging
 import traceback
+
 import formencode
-
 from formencode import htmlfill
-from tg import request, tmpl_context as c, config, app_globals
+from sqlalchemy.sql.expression import func
+from tg import app_globals, config, request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from sqlalchemy.sql.expression import func
 from webob.exc import HTTPFound, HTTPNotFound
 
 import kallithea
 from kallithea.config.routing import url
-from kallithea.lib.exceptions import DefaultUserException, \
-    UserOwnsReposException, UserCreationError
+from kallithea.lib import auth_modules
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasPermissionAnyDecorator, \
-    AuthUser
-from kallithea.lib import auth_modules
-from kallithea.lib.base import BaseController, render, IfSshEnabled
+from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator, LoginRequired
+from kallithea.lib.base import BaseController, IfSshEnabled, render
+from kallithea.lib.exceptions import DefaultUserException, UserCreationError, UserOwnsReposException
+from kallithea.lib.utils import action_logger
+from kallithea.lib.utils2 import datetime_to_time, generate_api_key, safe_int
 from kallithea.model.api_key import ApiKeyModel
+from kallithea.model.db import User, UserEmailMap, UserIpMap, UserToPerm
+from kallithea.model.forms import CustomDefaultPermissionsForm, UserForm
+from kallithea.model.meta import Session
 from kallithea.model.ssh_key import SshKeyModel, SshKeyModelException
-from kallithea.model.db import User, UserEmailMap, UserIpMap, UserToPerm
-from kallithea.model.forms import UserForm, CustomDefaultPermissionsForm
 from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
-from kallithea.lib.utils import action_logger
-from kallithea.lib.utils2 import datetime_to_time, safe_int, generate_api_key
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/api/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/api/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,22 +26,23 @@
 """
 
 import inspect
+import itertools
 import logging
-import types
-import traceback
 import time
-import itertools
+import traceback
+import types
 
-from tg import Response, response, request, TGController
-
+from tg import Response, TGController, request, response
 from webob.exc import HTTPError, HTTPException, WSGIHTTPException
 
-from kallithea.model.db import User
-from kallithea.model import meta
+from kallithea.lib.auth import AuthUser
+from kallithea.lib.base import _get_access_path
+from kallithea.lib.base import _get_ip_addr as _get_ip
 from kallithea.lib.compat import json
-from kallithea.lib.auth import AuthUser
-from kallithea.lib.base import _get_ip_addr as _get_ip, _get_access_path
-from kallithea.lib.utils2 import safe_unicode, safe_str
+from kallithea.lib.utils2 import safe_str, safe_unicode
+from kallithea.model import meta
+from kallithea.model.db import User
+
 
 log = logging.getLogger('JSONRPC')
 
--- a/kallithea/controllers/api/api.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/api/api.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,42 +25,35 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import time
 import traceback
-import logging
+from datetime import datetime
 
-from datetime import datetime
 from sqlalchemy import or_
-
 from tg import request
 
 from kallithea.controllers.api import JSONRPCController, JSONRPCError
 from kallithea.lib.auth import (
-    PasswordGenerator, AuthUser, HasPermissionAnyDecorator,
-    HasPermissionAnyDecorator, HasPermissionAny, HasRepoPermissionLevel,
-    HasRepoGroupPermissionLevel, HasUserGroupPermissionLevel)
-from kallithea.lib.utils import map_groups, repo2db_mapper
-from kallithea.lib.utils2 import (
-    str2bool, time_to_datetime, safe_int, Optional, OAttr)
+    AuthUser, HasPermissionAny, HasPermissionAnyDecorator, HasRepoGroupPermissionLevel, HasRepoPermissionLevel, HasUserGroupPermissionLevel, PasswordGenerator)
+from kallithea.lib.compat import json
+from kallithea.lib.exceptions import DefaultUserException, UserGroupsAssignedException
+from kallithea.lib.utils import action_logger, map_groups, repo2db_mapper
+from kallithea.lib.utils2 import OAttr, Optional, safe_int, str2bool, time_to_datetime
+from kallithea.lib.vcs.backends.base import EmptyChangeset
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, EmptyRepositoryError
+from kallithea.model.changeset_status import ChangesetStatusModel
+from kallithea.model.comment import ChangesetCommentsModel
+from kallithea.model.db import ChangesetStatus, Gist, Permission, PullRequest, RepoGroup, Repository, Setting, User, UserGroup, UserIpMap
+from kallithea.model.gist import GistModel
 from kallithea.model.meta import Session
+from kallithea.model.pull_request import PullRequestModel
+from kallithea.model.repo import RepoModel
 from kallithea.model.repo_group import RepoGroupModel
 from kallithea.model.scm import ScmModel, UserGroupList
-from kallithea.model.repo import RepoModel
 from kallithea.model.user import UserModel
 from kallithea.model.user_group import UserGroupModel
-from kallithea.model.gist import GistModel
-from kallithea.model.changeset_status import ChangesetStatusModel
-from kallithea.model.comment import ChangesetCommentsModel
-from kallithea.model.pull_request import PullRequestModel
-from kallithea.model.db import (
-    Repository, Setting, UserIpMap, Permission, User, Gist,
-    RepoGroup, UserGroup, PullRequest, ChangesetStatus)
-from kallithea.lib.compat import json
-from kallithea.lib.exceptions import (
-    DefaultUserException, UserGroupsAssignedException)
-from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, EmptyRepositoryError
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.lib.utils import action_logger
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/changelog.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/changelog.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,19 +28,19 @@
 import logging
 import traceback
 
-from tg import request, session, tmpl_context as c
+from tg import request, session
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound, HTTPNotFound, HTTPBadRequest
+from webob.exc import HTTPBadRequest, HTTPFound, HTTPNotFound
 
 import kallithea.lib.helpers as h
 from kallithea.config.routing import url
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseRepoController, render
 from kallithea.lib.graphmod import graph_data
 from kallithea.lib.page import RepoPage
-from kallithea.lib.vcs.exceptions import RepositoryError, ChangesetDoesNotExistError, \
-    ChangesetError, NodeDoesNotExistError, EmptyRepositoryError
 from kallithea.lib.utils2 import safe_int, safe_str
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, ChangesetError, EmptyRepositoryError, NodeDoesNotExistError, RepositoryError
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/controllers/changeset.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/changeset.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,29 +27,29 @@
 
 import logging
 import traceback
-from collections import defaultdict, OrderedDict
+from collections import OrderedDict, defaultdict
 
-from tg import tmpl_context as c, request, response
+from tg import request, response
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound, HTTPForbidden, HTTPBadRequest, HTTPNotFound
-
-from kallithea.lib.vcs.exceptions import RepositoryError, \
-    ChangesetDoesNotExistError, EmptyRepositoryError
+from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPNotFound
 
 import kallithea.lib.helpers as h
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib.base import BaseRepoController, render, jsonify
+from kallithea.lib import diffs
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
+from kallithea.lib.base import BaseRepoController, jsonify, render
+from kallithea.lib.graphmod import graph_data
 from kallithea.lib.utils import action_logger
-from kallithea.lib import diffs
+from kallithea.lib.utils2 import safe_unicode
+from kallithea.lib.vcs.backends.base import EmptyChangeset
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, EmptyRepositoryError, RepositoryError
+from kallithea.model.changeset_status import ChangesetStatusModel
+from kallithea.model.comment import ChangesetCommentsModel
 from kallithea.model.db import ChangesetComment, ChangesetStatus
-from kallithea.model.comment import ChangesetCommentsModel
-from kallithea.model.changeset_status import ChangesetStatusModel
 from kallithea.model.meta import Session
 from kallithea.model.pull_request import PullRequestModel
 from kallithea.model.repo import RepoModel
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.lib.utils2 import safe_unicode
-from kallithea.lib.graphmod import graph_data
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/compare.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/compare.py	Wed Aug 07 00:25:02 2019 +0200
@@ -30,20 +30,22 @@
 import logging
 import re
 
-from tg import request, tmpl_context as c
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound, HTTPBadRequest, HTTPNotFound
+from webob.exc import HTTPBadRequest, HTTPFound, HTTPNotFound
 
 from kallithea.config.routing import url
-from kallithea.lib.utils2 import safe_str, safe_int
-from kallithea.lib.vcs.utils.hgcompat import unionrepo
+from kallithea.controllers.changeset import _context_url, _ignorews_url
+from kallithea.lib import diffs
 from kallithea.lib import helpers as h
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseRepoController, render
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib import diffs
+from kallithea.lib.graphmod import graph_data
+from kallithea.lib.utils2 import safe_int, safe_str
+from kallithea.lib.vcs.utils.hgcompat import unionrepo
 from kallithea.model.db import Repository
-from kallithea.controllers.changeset import _ignorews_url, _context_url
-from kallithea.lib.graphmod import graph_data
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/error.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/error.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,15 +25,17 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
-import os
 import cgi
 import logging
+import os
 
-from tg import tmpl_context as c, request, config, expose
+from tg import config, expose, request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 
 from kallithea.lib.base import BaseController, render
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/feed.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/feed.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,19 +28,20 @@
 
 import logging
 
-from tg import response, tmpl_context as c
+from beaker.cache import cache_region, region_invalidate
+from tg import response
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-
-from beaker.cache import cache_region, region_invalidate
 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
 
 from kallithea import CONFIG
 from kallithea.lib import helpers as h
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseRepoController
 from kallithea.lib.diffs import DiffProcessor
+from kallithea.lib.utils2 import safe_int, safe_unicode, str2bool
 from kallithea.model.db import CacheInvalidation
-from kallithea.lib.utils2 import safe_int, str2bool, safe_unicode
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/files.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/files.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,43 +25,36 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import os
 import posixpath
-import logging
+import shutil
+import tempfile
 import traceback
-import tempfile
-import shutil
 from collections import OrderedDict
 
-from tg import request, response, tmpl_context as c
+from tg import request, response
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound
+from webob.exc import HTTPFound, HTTPNotFound
 
 from kallithea.config.routing import url
-from kallithea.lib.utils import action_logger
+from kallithea.controllers.changeset import _context_url, _ignorews_url, anchor_url, get_ignore_ws, get_line_ctx
 from kallithea.lib import diffs
 from kallithea.lib import helpers as h
-
-from kallithea.lib.utils2 import convert_line_endings, detect_mode, safe_str, \
-    str2bool, safe_int
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib.base import BaseRepoController, render, jsonify
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
+from kallithea.lib.base import BaseRepoController, jsonify, render
+from kallithea.lib.exceptions import NonRelativePathError
+from kallithea.lib.utils import action_logger
+from kallithea.lib.utils2 import convert_line_endings, detect_mode, safe_int, safe_str, str2bool
 from kallithea.lib.vcs.backends.base import EmptyChangeset
 from kallithea.lib.vcs.conf import settings
-from kallithea.lib.vcs.exceptions import RepositoryError, \
-    ChangesetDoesNotExistError, EmptyRepositoryError, \
-    ImproperArchiveTypeError, VCSError, NodeAlreadyExistsError, \
-    NodeDoesNotExistError, ChangesetError, NodeError
+from kallithea.lib.vcs.exceptions import (
+    ChangesetDoesNotExistError, ChangesetError, EmptyRepositoryError, ImproperArchiveTypeError, NodeAlreadyExistsError, NodeDoesNotExistError, NodeError, RepositoryError, VCSError)
 from kallithea.lib.vcs.nodes import FileNode
-
+from kallithea.model.db import Repository
 from kallithea.model.repo import RepoModel
 from kallithea.model.scm import ScmModel
-from kallithea.model.db import Repository
-
-from kallithea.controllers.changeset import anchor_url, _ignorews_url, \
-    _context_url, get_line_ctx, get_ignore_ws
-from webob.exc import HTTPNotFound
-from kallithea.lib.exceptions import NonRelativePathError
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/controllers/followers.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/followers.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,14 +27,16 @@
 
 import logging
 
-from tg import tmpl_context as c, request
+from tg import request
+from tg import tmpl_context as c
 
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseRepoController, render
 from kallithea.lib.page import Page
 from kallithea.lib.utils2 import safe_int
 from kallithea.model.db import UserFollowing
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/forks.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/forks.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,26 +26,26 @@
 """
 
 import logging
+import traceback
+
 import formencode
-import traceback
 from formencode import htmlfill
-
-from tg import tmpl_context as c, request
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPFound
 
 import kallithea.lib.helpers as h
-
 from kallithea.config.routing import url
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator, \
-    HasRepoPermissionLevel, HasPermissionAnyDecorator, HasPermissionAny
+from kallithea.lib.auth import HasPermissionAny, HasPermissionAnyDecorator, HasRepoPermissionLevel, HasRepoPermissionLevelDecorator, LoginRequired
 from kallithea.lib.base import BaseRepoController, render
 from kallithea.lib.page import Page
 from kallithea.lib.utils2 import safe_int
-from kallithea.model.db import Repository, UserFollowing, User, Ui
+from kallithea.model.db import Repository, Ui, User, UserFollowing
+from kallithea.model.forms import RepoForkForm
 from kallithea.model.repo import RepoModel
-from kallithea.model.forms import RepoForkForm
-from kallithea.model.scm import ScmModel, AvailableRepoGroupChoices
+from kallithea.model.scm import AvailableRepoGroupChoices, ScmModel
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/home.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/home.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,20 +28,22 @@
 
 import logging
 
-from tg import tmpl_context as c, request
+from sqlalchemy import and_, or_
+from sqlalchemy.sql.expression import func
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPBadRequest
-from sqlalchemy.sql.expression import func
-from sqlalchemy import or_, and_
 
+from kallithea.lib import helpers as h
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
+from kallithea.lib.base import BaseController, jsonify, render
 from kallithea.lib.utils import conditional_cache
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib.base import BaseController, render, jsonify
-from kallithea.lib import helpers as h
-from kallithea.model.db import Repository, RepoGroup, User, UserGroup
+from kallithea.model.db import RepoGroup, Repository, User, UserGroup
 from kallithea.model.repo import RepoModel
 from kallithea.model.scm import UserGroupList
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/journal.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/journal.py	Wed Aug 07 00:25:02 2019 +0200
@@ -33,23 +33,23 @@
 from sqlalchemy import or_
 from sqlalchemy.orm import joinedload
 from sqlalchemy.sql.expression import func
-
+from tg import request, response
+from tg import tmpl_context as c
+from tg.i18n import ugettext as _
 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
-
 from webob.exc import HTTPBadRequest
-from tg import request, tmpl_context as c, response
-from tg.i18n import ugettext as _
 
+import kallithea.lib.helpers as h
 from kallithea.config.routing import url
 from kallithea.controllers.admin.admin import _journal_filter
-from kallithea.model.db import UserLog, UserFollowing, Repository, User
-from kallithea.model.meta import Session
-from kallithea.model.repo import RepoModel
-import kallithea.lib.helpers as h
 from kallithea.lib.auth import LoginRequired
 from kallithea.lib.base import BaseController, render
 from kallithea.lib.page import Page
-from kallithea.lib.utils2 import safe_int, AttributeDict
+from kallithea.lib.utils2 import AttributeDict, safe_int
+from kallithea.model.db import Repository, User, UserFollowing, UserLog
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/login.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/login.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,12 +28,13 @@
 
 import logging
 import re
+
 import formencode
-
 from formencode import htmlfill
+from tg import request, session
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from tg import request, session, tmpl_context as c
-from webob.exc import HTTPFound, HTTPBadRequest
+from webob.exc import HTTPBadRequest, HTTPFound
 
 import kallithea.lib.helpers as h
 from kallithea.config.routing import url
@@ -41,11 +42,10 @@
 from kallithea.lib.base import BaseController, log_in_user, render
 from kallithea.lib.exceptions import UserCreationError
 from kallithea.lib.utils2 import safe_str
-from kallithea.model.db import User, Setting
-from kallithea.model.forms import \
-    LoginForm, RegisterForm, PasswordResetRequestForm, PasswordResetConfirmationForm
+from kallithea.model.db import Setting, User
+from kallithea.model.forms import LoginForm, PasswordResetConfirmationForm, PasswordResetRequestForm, RegisterForm
+from kallithea.model.meta import Session
 from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/controllers/pullrequests.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/pullrequests.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,35 +27,35 @@
 
 import logging
 import traceback
+
 import formencode
-
-from tg import request, tmpl_context as c
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webob.exc import HTTPFound, HTTPNotFound, HTTPForbidden, HTTPBadRequest
+from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPNotFound
 
 from kallithea.config.routing import url
-from kallithea.lib import helpers as h
+from kallithea.controllers.changeset import _context_url, _ignorews_url, create_cs_pr_comment, delete_cs_pr_comment
+from kallithea.controllers.compare import CompareController
 from kallithea.lib import diffs
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib.base import BaseRepoController, render, jsonify
+from kallithea.lib import helpers as h
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
+from kallithea.lib.base import BaseRepoController, jsonify, render
+from kallithea.lib.graphmod import graph_data
 from kallithea.lib.page import Page
 from kallithea.lib.utils import action_logger
-from kallithea.lib.vcs.exceptions import EmptyRepositoryError, ChangesetDoesNotExistError
+from kallithea.lib.utils2 import safe_int
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, EmptyRepositoryError
 from kallithea.lib.vcs.utils import safe_str
 from kallithea.lib.vcs.utils.hgcompat import unionrepo
-from kallithea.model.db import PullRequest, ChangesetStatus, \
-    PullRequestReviewer, Repository, User
-from kallithea.model.pull_request import CreatePullRequestAction, CreatePullRequestIterationAction, PullRequestModel
-from kallithea.model.meta import Session
-from kallithea.model.repo import RepoModel
+from kallithea.model.changeset_status import ChangesetStatusModel
 from kallithea.model.comment import ChangesetCommentsModel
-from kallithea.model.changeset_status import ChangesetStatusModel
+from kallithea.model.db import ChangesetStatus, PullRequest, PullRequestReviewer, Repository, User
 from kallithea.model.forms import PullRequestForm, PullRequestPostForm
-from kallithea.lib.utils2 import safe_int
-from kallithea.controllers.changeset import _ignorews_url, _context_url, \
-    create_cs_pr_comment, delete_cs_pr_comment
-from kallithea.controllers.compare import CompareController
-from kallithea.lib.graphmod import graph_data
+from kallithea.model.meta import Session
+from kallithea.model.pull_request import CreatePullRequestAction, CreatePullRequestIterationAction, PullRequestModel
+from kallithea.model.repo import RepoModel
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/controllers/root.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/root.py	Wed Aug 07 00:25:02 2019 +0200
@@ -11,11 +11,12 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+from tg import config
 from tgext.routes import RoutedController
+
 from kallithea.config.routing import make_map
+from kallithea.controllers.error import ErrorController
 from kallithea.lib.base import BaseController
-from kallithea.controllers.error import ErrorController
-from tg import config
 
 
 # This is the main Kallithea entry point; TurboGears will forward all requests
--- a/kallithea/controllers/search.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/search.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,22 +28,23 @@
 import logging
 import traceback
 import urllib
+
+from tg import config, request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from tg import request, config, tmpl_context as c
-
-from whoosh.index import open_dir, exists_in, EmptyIndexError
+from webhelpers2.html.tools import update_params
+from whoosh.index import EmptyIndexError, exists_in, open_dir
 from whoosh.qparser import QueryParser, QueryParserError
 from whoosh.query import Phrase, Prefix
-from webhelpers2.html.tools import update_params
 
 from kallithea.lib.auth import LoginRequired
 from kallithea.lib.base import BaseRepoController, render
-from kallithea.lib.indexers import CHGSETS_SCHEMA, SCHEMA, CHGSET_IDX_NAME, \
-    IDX_NAME, WhooshResultWrapper
+from kallithea.lib.indexers import CHGSET_IDX_NAME, CHGSETS_SCHEMA, IDX_NAME, SCHEMA, WhooshResultWrapper
 from kallithea.lib.page import Page
-from kallithea.lib.utils2 import safe_str, safe_int
+from kallithea.lib.utils2 import safe_int, safe_str
 from kallithea.model.repo import RepoModel
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/controllers/summary.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/controllers/summary.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,32 +25,32 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
-import traceback
 import calendar
-import logging
 import itertools
+import logging
+import traceback
+from datetime import date, timedelta
 from time import mktime
-from datetime import timedelta, date
 
-from tg import tmpl_context as c, request
+from beaker.cache import cache_region, region_invalidate
+from tg import request
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 from webob.exc import HTTPBadRequest
 
-from beaker.cache import cache_region, region_invalidate
-
-from kallithea.lib.vcs.exceptions import ChangesetError, EmptyRepositoryError, \
-    NodeDoesNotExistError
-from kallithea.config.conf import ALL_READMES, ALL_EXTS, LANGUAGES_EXTENSIONS_MAP
-from kallithea.model.db import Statistics, CacheInvalidation, User
-from kallithea.lib.utils2 import safe_int, safe_str
-from kallithea.lib.auth import LoginRequired, HasRepoPermissionLevelDecorator
-from kallithea.lib.base import BaseRepoController, render, jsonify
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.lib.markup_renderer import MarkupRenderer
+from kallithea.config.conf import ALL_EXTS, ALL_READMES, LANGUAGES_EXTENSIONS_MAP
+from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
+from kallithea.lib.base import BaseRepoController, jsonify, render
 from kallithea.lib.celerylib.tasks import get_commits_stats
 from kallithea.lib.compat import json
+from kallithea.lib.markup_renderer import MarkupRenderer
+from kallithea.lib.page import RepoPage
+from kallithea.lib.utils2 import safe_int, safe_str
+from kallithea.lib.vcs.backends.base import EmptyChangeset
+from kallithea.lib.vcs.exceptions import ChangesetError, EmptyRepositoryError, NodeDoesNotExistError
 from kallithea.lib.vcs.nodes import FileNode
-from kallithea.lib.page import RepoPage
+from kallithea.model.db import CacheInvalidation, Statistics, User
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/annotate.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/annotate.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,10 +27,11 @@
 
 import StringIO
 
+from pygments import highlight
+from pygments.formatters import HtmlFormatter
+
 from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.nodes import FileNode
-from pygments.formatters import HtmlFormatter
-from pygments import highlight
 
 
 def annotate_highlight(filenode, annotate_from_changeset_func=None,
--- a/kallithea/lib/auth.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth.py	Wed Aug 07 00:25:02 2019 +0200
@@ -24,36 +24,31 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
-import os
-import logging
-import traceback
+import collections
 import hashlib
 import itertools
-import collections
-
-from decorator import decorator
+import logging
+import os
+import traceback
 
 import ipaddr
+from decorator import decorator
+from sqlalchemy.orm import joinedload
+from sqlalchemy.orm.exc import ObjectDeletedError
 from tg import request, session
 from tg.i18n import ugettext as _
-from sqlalchemy.orm.exc import ObjectDeletedError
-from sqlalchemy.orm import joinedload
-from webob.exc import HTTPFound, HTTPBadRequest, HTTPForbidden, HTTPMethodNotAllowed
+from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPMethodNotAllowed
 
-from kallithea import __platform__, is_windows, is_unix
+from kallithea import __platform__, is_unix, is_windows
 from kallithea.config.routing import url
+from kallithea.lib.caching_query import FromCache
+from kallithea.lib.utils import conditional_cache, get_repo_group_slug, get_repo_slug, get_user_group_slug
+from kallithea.lib.utils2 import aslist, safe_str, safe_unicode
 from kallithea.lib.vcs.utils.lazy import LazyProperty
+from kallithea.model.db import (
+    Permission, RepoGroup, Repository, User, UserApiKeys, UserGroup, UserGroupMember, UserGroupRepoGroupToPerm, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm, UserIpMap, UserToPerm)
 from kallithea.model.meta import Session
 from kallithea.model.user import UserModel
-from kallithea.model.db import User, Repository, Permission, \
-    UserToPerm, UserGroupRepoToPerm, UserGroupToPerm, UserGroupMember, \
-    RepoGroup, UserGroupRepoGroupToPerm, UserIpMap, UserGroupUserGroupToPerm, \
-    UserGroup, UserApiKeys
-
-from kallithea.lib.utils2 import safe_str, safe_unicode, aslist
-from kallithea.lib.utils import get_repo_slug, get_repo_group_slug, \
-    get_user_group_slug, conditional_cache
-from kallithea.lib.caching_query import FromCache
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/auth_modules/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,18 +15,19 @@
 Authentication modules
 """
 
+import importlib
 import logging
 import traceback
-import importlib
 
+from kallithea.lib.auth import AuthUser, PasswordGenerator
+from kallithea.lib.compat import formatted_json, hybrid_property
 from kallithea.lib.utils2 import str2bool
-from kallithea.lib.compat import formatted_json, hybrid_property
-from kallithea.lib.auth import PasswordGenerator, AuthUser
-from kallithea.model.user import UserModel
 from kallithea.model.db import Setting, User
 from kallithea.model.meta import Session
+from kallithea.model.user import UserModel
 from kallithea.model.user_group import UserGroupModel
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/auth_modules/auth_container.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/auth_container.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,10 +26,12 @@
 """
 
 import logging
+
 from kallithea.lib import auth_modules
-from kallithea.lib.utils2 import str2bool, safe_unicode, safe_str
 from kallithea.lib.compat import hybrid_property
-from kallithea.model.db import User, Setting
+from kallithea.lib.utils2 import safe_str, safe_unicode, str2bool
+from kallithea.model.db import Setting, User
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/auth_modules/auth_crowd.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/auth_crowd.py	Wed Aug 07 00:25:02 2019 +0200
@@ -29,10 +29,12 @@
 import base64
 import logging
 import urllib2
+
 from kallithea.lib import auth_modules
-from kallithea.lib.compat import json, formatted_json, hybrid_property
+from kallithea.lib.compat import formatted_json, hybrid_property, json
 from kallithea.model.db import User
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/auth_modules/auth_internal.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/auth_internal.py	Wed Aug 07 00:25:02 2019 +0200
@@ -32,6 +32,7 @@
 from kallithea.lib.compat import formatted_json, hybrid_property
 from kallithea.model.db import User
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/auth_modules/auth_ldap.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/auth_ldap.py	Wed Aug 07 00:25:02 2019 +0200
@@ -31,12 +31,11 @@
 
 from kallithea.lib import auth_modules
 from kallithea.lib.compat import hybrid_property
-from kallithea.lib.utils2 import safe_unicode, safe_str
-from kallithea.lib.exceptions import (
-    LdapConnectionError, LdapUsernameError, LdapPasswordError, LdapImportError
-)
+from kallithea.lib.exceptions import LdapConnectionError, LdapImportError, LdapPasswordError, LdapUsernameError
+from kallithea.lib.utils2 import safe_str, safe_unicode
 from kallithea.model.db import User
 
+
 log = logging.getLogger(__name__)
 
 try:
--- a/kallithea/lib/auth_modules/auth_pam.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/auth_modules/auth_pam.py	Wed Aug 07 00:25:02 2019 +0200
@@ -23,9 +23,18 @@
 :author: Alexey Larikov
 """
 
+import grp
 import logging
+import pwd
+import re
+import socket
+import threading
 import time
 
+from kallithea.lib import auth_modules
+from kallithea.lib.compat import formatted_json, hybrid_property
+
+
 try:
     from pam import authenticate as pam_authenticate
 except ImportError:
@@ -33,14 +42,7 @@
     from pam import pam
     pam_authenticate = pam().authenticate
 
-import pwd
-import grp
-import re
-import socket
-import threading
 
-from kallithea.lib import auth_modules
-from kallithea.lib.compat import formatted_json, hybrid_property
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -29,36 +29,33 @@
 """
 
 import datetime
-import decorator
 import logging
 import time
 import traceback
 import warnings
 
-import webob.exc
+import decorator
+import paste.auth.basic
 import paste.httpexceptions
-import paste.auth.basic
 import paste.httpheaders
-
-from tg import config, tmpl_context as c, request, response, session, render_template
-from tg import TGController
+import webob.exc
+from tg import TGController, config, render_template, request, response, session
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
 
-from kallithea import __version__, BACKENDS
-
+from kallithea import BACKENDS, __version__
 from kallithea.config.routing import url
-from kallithea.lib.utils2 import str2bool, safe_unicode, AttributeDict, \
-    safe_str, safe_int, set_hook_environment
 from kallithea.lib import auth_modules
 from kallithea.lib.auth import AuthUser, HasPermissionAnyMiddleware
 from kallithea.lib.compat import json
+from kallithea.lib.exceptions import UserCreationError
 from kallithea.lib.utils import get_repo_slug, is_valid_repo
-from kallithea.lib.exceptions import UserCreationError
-from kallithea.lib.vcs.exceptions import RepositoryError, EmptyRepositoryError, ChangesetDoesNotExistError
+from kallithea.lib.utils2 import AttributeDict, safe_int, safe_str, safe_unicode, set_hook_environment, str2bool
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, EmptyRepositoryError, RepositoryError
 from kallithea.model import meta
+from kallithea.model.db import PullRequest, Repository, Setting, User
+from kallithea.model.scm import ScmModel
 
-from kallithea.model.db import PullRequest, Repository, User, Setting
-from kallithea.model.scm import ScmModel
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/caching_query.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/caching_query.py	Wed Aug 07 00:25:02 2019 +0200
@@ -18,10 +18,10 @@
 """
 import beaker
 from beaker.exceptions import BeakerException
-
 from sqlalchemy.orm.interfaces import MapperOption
 from sqlalchemy.orm.query import Query
 from sqlalchemy.sql import visitors
+
 from kallithea.lib.utils2 import safe_str
 
 
--- a/kallithea/lib/celerylib/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/celerylib/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,19 +26,18 @@
 """
 
 
+import logging
 import os
-import logging
+from hashlib import md5
 
+from decorator import decorator
 from tg import config
 
-from hashlib import md5
-from decorator import decorator
-
-from kallithea import CELERY_ON, CELERY_EAGER
+from kallithea import CELERY_EAGER, CELERY_ON
+from kallithea.lib.pidlock import DaemonLock, LockHeld
 from kallithea.lib.utils2 import safe_str
-from kallithea.lib.pidlock import DaemonLock, LockHeld
+from kallithea.model import meta
 from kallithea.model.base import init_model
-from kallithea.model import meta
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/celerylib/tasks.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/celerylib/tasks.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,28 +26,26 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import os
-import traceback
-import logging
 import rfc822
-
+import traceback
 from collections import OrderedDict
+from operator import itemgetter
 from time import mktime
-from operator import itemgetter
 
 from tg import config
 
 from kallithea import CELERY_ON
 from kallithea.lib import celerylib
+from kallithea.lib.compat import json
 from kallithea.lib.helpers import person
+from kallithea.lib.hooks import log_create_repository
 from kallithea.lib.rcmail.smtp_mailer import SmtpMailer
 from kallithea.lib.utils import action_logger
 from kallithea.lib.utils2 import str2bool
 from kallithea.lib.vcs.utils import author_email
-from kallithea.lib.compat import json
-from kallithea.lib.hooks import log_create_repository
-
-from kallithea.model.db import Statistics, RepoGroup, Repository, User
+from kallithea.model.db import RepoGroup, Repository, Statistics, User
 
 
 __all__ = ['whoosh_index', 'get_commits_stats', 'send_email']
--- a/kallithea/lib/celerypylons/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/celerypylons/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -17,8 +17,11 @@
 import os
 import warnings
 
+import celery
+import celery.result as result
 import tg
-import celery
+from celery.bin import worker
+from celery.task import task
 
 
 def celery_config(config):
@@ -56,7 +59,3 @@
 # Create celery app from the TurboGears configuration file
 app = celery.Celery()
 app.config_from_object(celery_config(tg.config))
-
-import celery.result as result
-from celery.task import task
-from celery.bin import worker
--- a/kallithea/lib/colored_formatter.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/colored_formatter.py	Wed Aug 07 00:25:02 2019 +0200
@@ -14,6 +14,7 @@
 
 import logging
 
+
 BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)
 
 # Sequences
--- a/kallithea/lib/compat.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/compat.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,29 +27,31 @@
 """
 
 
-import sys
+import functools
 import os
-import functools
+import sys
+
+#==============================================================================
+# Hybrid property/method
+#==============================================================================
+from sqlalchemy.ext.hybrid import hybrid_property
+#==============================================================================
+# OrderedSet
+#==============================================================================
+from sqlalchemy.util import OrderedSet
 
 #==============================================================================
 # json
 #==============================================================================
 from kallithea.lib.ext_json import json
 
+
 # alias for formatted json
 formatted_json = functools.partial(json.dumps, indent=4, sort_keys=True)
 
 
-#==============================================================================
-# OrderedSet
-#==============================================================================
-from sqlalchemy.util import OrderedSet
 
 
-#==============================================================================
-# Hybrid property/method
-#==============================================================================
-from sqlalchemy.ext.hybrid import hybrid_property
 
 
 #==============================================================================
--- a/kallithea/lib/db_manage.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/db_manage.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,29 +26,26 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import os
 import sys
 import time
 import uuid
-import logging
-import sqlalchemy
 from os.path import dirname
 
+import alembic.command
 import alembic.config
-import alembic.command
+import sqlalchemy
+from sqlalchemy.engine import create_engine
 
-from kallithea.model.user import UserModel
 from kallithea.model.base import init_model
-from kallithea.model.db import User, Permission, Ui, \
-    Setting, UserToPerm, RepoGroup, \
-    UserRepoGroupToPerm, CacheInvalidation, Repository
-
-from sqlalchemy.engine import create_engine
+from kallithea.model.db import CacheInvalidation, Permission, RepoGroup, Repository, Setting, Ui, User, UserRepoGroupToPerm, UserToPerm
+#from kallithea.model import meta
+from kallithea.model.meta import Base, Session
+from kallithea.model.permission import PermissionModel
+from kallithea.model.repo import RepoModel
 from kallithea.model.repo_group import RepoGroupModel
-#from kallithea.model import meta
-from kallithea.model.meta import Session, Base
-from kallithea.model.repo import RepoModel
-from kallithea.model.permission import PermissionModel
+from kallithea.model.user import UserModel
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/diffs.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/diffs.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,17 +25,18 @@
 :copyright: (c) 2013 RhodeCode GmbH, and others.
 :license: GPLv3, see LICENSE.md for more details.
 """
-import re
 import difflib
 import logging
+import re
 
 from tg.i18n import ugettext as _
 
 from kallithea.lib import helpers as h
+from kallithea.lib.utils2 import safe_unicode
+from kallithea.lib.vcs.backends.base import EmptyChangeset
 from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.nodes import FileNode, SubModuleNode
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.lib.utils2 import safe_unicode
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/ext_json.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/ext_json.py	Wed Aug 07 00:25:02 2019 +0200
@@ -5,9 +5,10 @@
 """
 
 import datetime
+import decimal
 import functools
-import decimal
-import json # is re-exported after monkey patching
+import json  # is re-exported after monkey patching
+
 
 __all__ = ['json']
 
--- a/kallithea/lib/helpers.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/helpers.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,35 +19,45 @@
 """
 import hashlib
 import json
-import StringIO
 import logging
+import random
 import re
-import urlparse
+import StringIO
 import textwrap
-import random
+import urlparse
 
 from beaker.cache import cache_region
+from pygments import highlight as code_highlight
 from pygments.formatters.html import HtmlFormatter
-from pygments import highlight as code_highlight
 from tg.i18n import ugettext as _
-
-from webhelpers2.html import literal, HTML, escape
-from webhelpers2.html.tags import checkbox, end_form, hidden, link_to, \
-    select as webhelpers2_select, Option, Options, \
-    submit, text, password, textarea, radio, form as insecure_form
+from webhelpers2.html import HTML, escape, literal
+from webhelpers2.html.tags import NotGiven, Option, Options, _input, _make_safe_id_component, checkbox, end_form
+from webhelpers2.html.tags import form as insecure_form
+from webhelpers2.html.tags import hidden, link_to, password, radio
+from webhelpers2.html.tags import select as webhelpers2_select
+from webhelpers2.html.tags import submit, text, textarea
 from webhelpers2.number import format_byte_size
+from webhelpers2.text import chop_at, truncate, wrap_paragraphs
 from webhelpers.pylonslib import Flash as _Flash
-from webhelpers2.text import chop_at, truncate, wrap_paragraphs
-from webhelpers2.html.tags import _input, NotGiven, _make_safe_id_component
 
 from kallithea.config.routing import url
 from kallithea.lib.annotate import annotate_highlight
+#==============================================================================
+# PERMS
+#==============================================================================
+from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel, HasRepoPermissionLevel
+from kallithea.lib.markup_renderer import url_re
 from kallithea.lib.pygmentsutils import get_custom_lexer
-from kallithea.lib.utils2 import str2bool, safe_unicode, safe_str, \
-    time_to_datetime, AttributeDict, safe_int, MENTIONS_REGEX
-from kallithea.lib.markup_renderer import url_re
+from kallithea.lib.utils2 import MENTIONS_REGEX, AttributeDict
+from kallithea.lib.utils2 import age as _age
+from kallithea.lib.utils2 import credentials_filter, safe_int, safe_str, safe_unicode, str2bool, time_to_datetime
+from kallithea.lib.vcs.backends.base import BaseChangeset, EmptyChangeset
 from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError
-from kallithea.lib.vcs.backends.base import BaseChangeset, EmptyChangeset
+#==============================================================================
+# SCM FILTERS available via h.
+#==============================================================================
+from kallithea.lib.vcs.utils import author_email, author_name
+
 
 log = logging.getLogger(__name__)
 
@@ -454,11 +464,6 @@
 
 flash = Flash()
 
-#==============================================================================
-# SCM FILTERS available via h.
-#==============================================================================
-from kallithea.lib.vcs.utils import author_name, author_email
-from kallithea.lib.utils2 import credentials_filter, age as _age
 
 age = lambda x, y=False: _age(x, y)
 capitalize = lambda x: x.capitalize()
@@ -843,11 +848,6 @@
 
 
 
-#==============================================================================
-# PERMS
-#==============================================================================
-from kallithea.lib.auth import HasPermissionAny, \
-    HasRepoPermissionLevel, HasRepoGroupPermissionLevel
 
 
 #==============================================================================
--- a/kallithea/lib/hooks.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/hooks.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,18 +25,17 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import binascii
 import os
 import time
-import binascii
 
-from kallithea.lib.vcs.utils.hgcompat import nullrev, revrange
 from kallithea.lib import helpers as h
-from kallithea.lib.utils import action_logger
+from kallithea.lib.exceptions import UserCreationError
+from kallithea.lib.utils import action_logger, make_ui, setup_cache_regions
+from kallithea.lib.utils2 import get_hook_environment, safe_str, safe_unicode
 from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.lib.exceptions import UserCreationError
-from kallithea.lib.utils import make_ui, setup_cache_regions
-from kallithea.lib.utils2 import safe_str, safe_unicode, get_hook_environment
-from kallithea.model.db import Repository, User, Ui
+from kallithea.lib.vcs.utils.hgcompat import nullrev, revrange
+from kallithea.model.db import Repository, Ui, User
 
 
 def _get_scm_size(alias, root_path):
--- a/kallithea/lib/indexers/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/indexers/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,19 +25,23 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import os
 import sys
-import logging
 from os.path import dirname
 
+from whoosh.analysis import IDTokenizer, LowercaseFilter, RegexTokenizer
+from whoosh.fields import BOOLEAN, DATETIME, ID, NUMERIC, STORED, TEXT, FieldType, Schema
+from whoosh.formats import Characters
+from whoosh.highlight import ContextFragmenter, HtmlFormatter
+from whoosh.highlight import highlight as whoosh_highlight
+
+from kallithea.lib.utils2 import LazyProperty
+
+
 # Add location of top level folder to sys.path
 sys.path.append(dirname(dirname(dirname(os.path.realpath(__file__)))))
 
-from whoosh.analysis import RegexTokenizer, LowercaseFilter, IDTokenizer
-from whoosh.fields import TEXT, ID, STORED, NUMERIC, BOOLEAN, Schema, FieldType, DATETIME
-from whoosh.formats import Characters
-from whoosh.highlight import highlight as whoosh_highlight, HtmlFormatter, ContextFragmenter
-from kallithea.lib.utils2 import LazyProperty
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/indexers/daemon.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/indexers/daemon.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,33 +26,32 @@
 """
 
 
+import logging
 import os
 import sys
-import logging
 import traceback
-
+from os.path import dirname
 from shutil import rmtree
 from time import mktime
 
-from os.path import dirname
+from whoosh.index import create_in, exists_in, open_dir
+from whoosh.qparser import QueryParser
+from whoosh.query import *
+
+from kallithea.config.conf import INDEX_EXTENSIONS, INDEX_FILENAMES
+from kallithea.lib.indexers import CHGSET_IDX_NAME, CHGSETS_SCHEMA, IDX_NAME, SCHEMA
+from kallithea.lib.utils2 import safe_str, safe_unicode
+from kallithea.lib.vcs.exceptions import ChangesetError, NodeDoesNotExistError, RepositoryError
+from kallithea.model.db import Repository
+from kallithea.model.scm import ScmModel
+
 
 # Add location of top level folder to sys.path
 project_path = dirname(dirname(dirname(dirname(os.path.realpath(__file__)))))
 sys.path.append(project_path)
 
-from kallithea.config.conf import INDEX_EXTENSIONS, INDEX_FILENAMES
-from kallithea.model.scm import ScmModel
-from kallithea.model.db import Repository
-from kallithea.lib.utils2 import safe_unicode, safe_str
-from kallithea.lib.indexers import SCHEMA, IDX_NAME, CHGSETS_SCHEMA, \
-    CHGSET_IDX_NAME
 
-from kallithea.lib.vcs.exceptions import ChangesetError, RepositoryError, \
-    NodeDoesNotExistError
 
-from whoosh.index import create_in, open_dir, exists_in
-from whoosh.query import *
-from whoosh.qparser import QueryParser
 
 log = logging.getLogger('whoosh_indexer')
 
--- a/kallithea/lib/inifile.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/inifile.py	Wed Aug 07 00:25:02 2019 +0200
@@ -21,8 +21,8 @@
 """
 
 import logging
+import os
 import re
-import os
 
 import mako.template
 
--- a/kallithea/lib/locale.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/locale.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,6 +15,7 @@
 import os
 import sys
 
+
 log = logging.getLogger(__name__)
 
 def current_locale_is_valid():
--- a/kallithea/lib/markup_renderer.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/markup_renderer.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,14 +26,15 @@
 """
 
 
+import logging
 import re
-import logging
 import traceback
 
+import bleach
 import markdown as markdown_mod
-import bleach
 
-from kallithea.lib.utils2 import safe_unicode, MENTIONS_REGEX
+from kallithea.lib.utils2 import MENTIONS_REGEX, safe_unicode
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/middleware/permanent_repo_url.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/permanent_repo_url.py	Wed Aug 07 00:25:02 2019 +0200
@@ -20,7 +20,7 @@
 """
 
 
-from kallithea.lib.utils import safe_str, fix_repo_id_name
+from kallithea.lib.utils import fix_repo_id_name, safe_str
 
 
 class PermanentRepoUrl(object):
--- a/kallithea/lib/middleware/pygrack.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/pygrack.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,16 +25,17 @@
 This file was forked by the Kallithea project in July 2014.
 """
 
+import logging
 import os
 import socket
-import logging
 import traceback
 
 from webob import Request, Response, exc
 
 import kallithea
+from kallithea.lib.utils2 import safe_unicode
 from kallithea.lib.vcs import subprocessio
-from kallithea.lib.utils2 import safe_unicode
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/middleware/sessionmiddleware.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/sessionmiddleware.py	Wed Aug 07 00:25:02 2019 +0200
@@ -23,8 +23,8 @@
 Original Beaker SessionMiddleware class written by Ben Bangert
 """
 
+from beaker.middleware import SessionMiddleware
 from beaker.session import SessionObject
-from beaker.middleware import SessionMiddleware
 
 
 class SecureSessionMiddleware(SessionMiddleware):
--- a/kallithea/lib/middleware/simplegit.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/simplegit.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,15 +28,16 @@
 """
 
 
+import logging
 import re
-import logging
 
-from kallithea.model.db import Ui, Repository
-from kallithea.lib.utils2 import safe_unicode
 from kallithea.lib.base import BaseVCSController
-from kallithea.lib.utils import make_ui
 from kallithea.lib.hooks import log_pull_action
 from kallithea.lib.middleware.pygrack import make_wsgi_app
+from kallithea.lib.utils import make_ui
+from kallithea.lib.utils2 import safe_unicode
+from kallithea.model.db import Repository, Ui
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/middleware/simplehg.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/simplehg.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,15 +28,16 @@
 """
 
 
+import logging
 import os
-import logging
 import urllib
 
-from kallithea.lib.utils2 import safe_str, safe_unicode
 from kallithea.lib.base import BaseVCSController
 from kallithea.lib.utils import make_ui
+from kallithea.lib.utils2 import safe_str, safe_unicode
 from kallithea.lib.vcs.utils.hgcompat import hgweb_mod
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/middleware/wrapper.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/middleware/wrapper.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,9 +25,10 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import time
-import logging
-from kallithea.lib.base import _get_ip_addr, _get_access_path
+
+from kallithea.lib.base import _get_access_path, _get_ip_addr
 from kallithea.lib.utils2 import safe_unicode
 
 
--- a/kallithea/lib/page.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/page.py	Wed Aug 07 00:25:02 2019 +0200
@@ -17,9 +17,12 @@
 import logging
 import math
 import re
+
+from webhelpers2.html import HTML, literal
+from webhelpers.paginate import Page as _Page
+
 from kallithea.config.routing import url
-from webhelpers2.html import literal, HTML
-from webhelpers.paginate import Page as _Page
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/pidlock.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/pidlock.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,9 +12,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import errno
 import os
-import errno
-
 from multiprocessing.util import Finalize
 
 from kallithea.lib.compat import kill
--- a/kallithea/lib/rcmail/message.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/rcmail/message.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,6 @@
+from kallithea.lib.rcmail.exceptions import BadHeaders, InvalidMessage
 from kallithea.lib.rcmail.response import MailResponse
 
-from kallithea.lib.rcmail.exceptions import BadHeaders
-from kallithea.lib.rcmail.exceptions import InvalidMessage
-
 
 class Attachment(object):
     """
--- a/kallithea/lib/rcmail/response.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/rcmail/response.py	Wed Aug 07 00:25:02 2019 +0200
@@ -33,13 +33,14 @@
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
+import mimetypes
 import os
-import mimetypes
 import string
 from email import encoders
 from email.charset import Charset
+from email.mime.base import MIMEBase
 from email.utils import parseaddr
-from email.mime.base import MIMEBase
+
 
 ADDRESS_HEADERS_WHITELIST = ['From', 'To', 'Delivered-To', 'Cc']
 DEFAULT_ENCODING = "utf-8"
--- a/kallithea/lib/rcmail/smtp_mailer.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/rcmail/smtp_mailer.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,11 +25,11 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
-import time
 import logging
 import smtplib
+import time
+from email.utils import formatdate
 from ssl import SSLError
-from email.utils import formatdate
 
 from kallithea.lib.rcmail.message import Message
 from kallithea.lib.rcmail.utils import DNS_NAME
--- a/kallithea/lib/recaptcha.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/recaptcha.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
+import json
 import urllib
 import urllib2
-import json
 
 
 class RecaptchaResponse(object):
--- a/kallithea/lib/ssh.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/ssh.py	Wed Aug 07 00:25:02 2019 +0200
@@ -21,12 +21,13 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import binascii
 import logging
-import binascii
 import re
 
 from tg.i18n import ugettext as _
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/timerproxy.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/timerproxy.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,10 +12,12 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import logging
 import time
-import logging
+
 from sqlalchemy.interfaces import ConnectionProxy
 
+
 log = logging.getLogger('timerproxy')
 
 BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)
--- a/kallithea/lib/utils.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/utils.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,28 +25,27 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import datetime
+import logging
 import os
 import re
-import logging
-import datetime
 import traceback
+
 import beaker
-
+from beaker.cache import _cache_decorate
 from tg import request, response
 from tg.i18n import ugettext as _
-from beaker.cache import _cache_decorate
-
-from kallithea.lib.vcs.utils.hgcompat import ui, config
-from kallithea.lib.vcs.utils.helpers import get_scm
-from kallithea.lib.vcs.exceptions import VCSError
 
 from kallithea.lib.exceptions import HgsubversionImportError
+from kallithea.lib.utils2 import get_current_authuser, safe_str, safe_unicode
+from kallithea.lib.vcs.exceptions import VCSError
+from kallithea.lib.vcs.utils.fakemod import create_module
+from kallithea.lib.vcs.utils.helpers import get_scm
+from kallithea.lib.vcs.utils.hgcompat import config, ui
 from kallithea.model import meta
-from kallithea.model.db import Repository, User, Ui, \
-    UserLog, RepoGroup, Setting, UserGroup
+from kallithea.model.db import RepoGroup, Repository, Setting, Ui, User, UserGroup, UserLog
 from kallithea.model.repo_group import RepoGroupModel
-from kallithea.lib.utils2 import safe_str, safe_unicode, get_current_authuser
-from kallithea.lib.vcs.utils.fakemod import create_module
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/lib/utils2.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/utils2.py	Wed Aug 07 00:25:02 2019 +0200
@@ -28,23 +28,24 @@
 """
 
 
+import binascii
+import datetime
 import os
+import pwd
 import re
 import sys
 import time
+import urllib
 import uuid
-import datetime
-import urllib
-import binascii
-import pwd
 
+import urlobject
 import webob
-import urlobject
+from tg.i18n import ugettext as _
+from tg.i18n import ungettext
 from webhelpers2.text import collapse, remove_formatting, strip_tags
 
-from tg.i18n import ugettext as _, ungettext
+from kallithea.lib.compat import json
 from kallithea.lib.vcs.utils.lazy import LazyProperty
-from kallithea.lib.compat import json
 
 
 def str2bool(_str):
--- a/kallithea/lib/vcs/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -20,8 +20,9 @@
 ]
 
 import sys
-from kallithea.lib.vcs.backends import get_repo, get_backend
-from kallithea.lib.vcs.exceptions import VCSError, RepositoryError, ChangesetError
+
+from kallithea.lib.vcs.backends import get_backend, get_repo
+from kallithea.lib.vcs.exceptions import ChangesetError, RepositoryError, VCSError
 
 
 def get_version():
--- a/kallithea/lib/vcs/backends/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -10,11 +10,12 @@
 """
 import os
 from pprint import pformat
+
 from kallithea.lib.vcs.conf import settings
 from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.utils.helpers import get_scm
+from kallithea.lib.vcs.utils.imports import import_class
 from kallithea.lib.vcs.utils.paths import abspath
-from kallithea.lib.vcs.utils.imports import import_class
 
 
 def get_repo(path=None, alias=None, create=False):
--- a/kallithea/lib/vcs/backends/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,16 +12,12 @@
 import datetime
 import itertools
 
-from kallithea.lib.vcs.utils import author_name, author_email, safe_unicode
-from kallithea.lib.vcs.utils.lazy import LazyProperty
+from kallithea.lib.vcs.conf import settings
+from kallithea.lib.vcs.exceptions import (
+    ChangesetError, EmptyRepositoryError, NodeAlreadyAddedError, NodeAlreadyChangedError, NodeAlreadyExistsError, NodeAlreadyRemovedError, NodeDoesNotExistError, NodeNotChangedError, RepositoryError)
+from kallithea.lib.vcs.utils import author_email, author_name, safe_unicode
 from kallithea.lib.vcs.utils.helpers import get_dict_for_attrs
-from kallithea.lib.vcs.conf import settings
-
-from kallithea.lib.vcs.exceptions import (
-    ChangesetError, EmptyRepositoryError, NodeAlreadyAddedError,
-    NodeAlreadyChangedError, NodeAlreadyExistsError, NodeAlreadyRemovedError,
-    NodeDoesNotExistError, NodeNotChangedError, RepositoryError
-)
+from kallithea.lib.vcs.utils.lazy import LazyProperty
 
 
 class BaseRepository(object):
--- a/kallithea/lib/vcs/backends/git/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,6 +1,6 @@
-from .repository import GitRepository
 from .changeset import GitChangeset
 from .inmemory import GitInMemoryChangeset
+from .repository import GitRepository
 from .workdir import GitWorkdir
 
 
--- a/kallithea/lib/vcs/backends/git/changeset.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/changeset.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,23 +1,17 @@
 import re
+from io import BytesIO
 from itertools import chain
+from subprocess import PIPE, Popen
+
 from dulwich import objects
 from dulwich.config import ConfigFile
-from subprocess import Popen, PIPE
-from io import BytesIO
 
-from kallithea.lib.vcs.conf import settings
 from kallithea.lib.vcs.backends.base import BaseChangeset, EmptyChangeset
-from kallithea.lib.vcs.exceptions import (
-    RepositoryError, ChangesetError, NodeDoesNotExistError, VCSError,
-    ChangesetDoesNotExistError, ImproperArchiveTypeError
-)
+from kallithea.lib.vcs.conf import settings
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, ChangesetError, ImproperArchiveTypeError, NodeDoesNotExistError, RepositoryError, VCSError
 from kallithea.lib.vcs.nodes import (
-    FileNode, DirNode, NodeKind, RootNode, SubModuleNode,
-    ChangedFileNodesGenerator, AddedFileNodesGenerator, RemovedFileNodesGenerator
-)
-from kallithea.lib.vcs.utils import (
-    safe_unicode, safe_str, safe_int, date_fromtimestamp
-)
+    AddedFileNodesGenerator, ChangedFileNodesGenerator, DirNode, FileNode, NodeKind, RemovedFileNodesGenerator, RootNode, SubModuleNode)
+from kallithea.lib.vcs.utils import date_fromtimestamp, safe_int, safe_str, safe_unicode
 from kallithea.lib.vcs.utils.lazy import LazyProperty
 
 
--- a/kallithea/lib/vcs/backends/git/inmemory.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/inmemory.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,10 @@
-import time
 import datetime
 import posixpath
 import stat
+import time
+
 from dulwich import objects
+
 from kallithea.lib.vcs.backends.base import BaseInMemoryChangeset
 from kallithea.lib.vcs.exceptions import RepositoryError
 from kallithea.lib.vcs.utils import safe_str
--- a/kallithea/lib/vcs/backends/git/repository.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/repository.py	Wed Aug 07 00:25:02 2019 +0200
@@ -9,40 +9,35 @@
     :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
 """
 
+import errno
+import logging
 import os
+import posixpath
 import re
 import time
-import errno
 import urllib
 import urllib2
-import logging
-import posixpath
 from collections import OrderedDict
 
+from dulwich.config import ConfigFile
 from dulwich.objects import Tag
-from dulwich.repo import Repo, NotGitRepository
-from dulwich.config import ConfigFile
+from dulwich.repo import NotGitRepository, Repo
 
 from kallithea.lib.vcs import subprocessio
 from kallithea.lib.vcs.backends.base import BaseRepository, CollectionGenerator
 from kallithea.lib.vcs.conf import settings
-
 from kallithea.lib.vcs.exceptions import (
-    BranchDoesNotExistError, ChangesetDoesNotExistError, EmptyRepositoryError,
-    RepositoryError, TagAlreadyExistError, TagDoesNotExistError
-)
-from kallithea.lib.vcs.utils import safe_str, safe_unicode, makedate, date_fromtimestamp
+    BranchDoesNotExistError, ChangesetDoesNotExistError, EmptyRepositoryError, RepositoryError, TagAlreadyExistError, TagDoesNotExistError)
+from kallithea.lib.vcs.utils import date_fromtimestamp, makedate, safe_str, safe_unicode
+from kallithea.lib.vcs.utils.hgcompat import hg_url, httpbasicauthhandler, httpdigestauthhandler
 from kallithea.lib.vcs.utils.lazy import LazyProperty
 from kallithea.lib.vcs.utils.paths import abspath, get_user_home
 
-from kallithea.lib.vcs.utils.hgcompat import (
-    hg_url, httpbasicauthhandler, httpdigestauthhandler
-)
-
 from .changeset import GitChangeset
 from .inmemory import GitInMemoryChangeset
 from .workdir import GitWorkdir
 
+
 SHA_PATTERN = re.compile(r'^([0-9a-fA-F]{12}|[0-9a-fA-F]{40})$')
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/vcs/backends/git/ssh.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/ssh.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,12 +12,12 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import logging
 import os
-import logging
 
 from kallithea.lib.hooks import log_pull_action
 from kallithea.lib.utils import make_ui
-from kallithea.lib.utils2 import safe_unicode, safe_str
+from kallithea.lib.utils2 import safe_str, safe_unicode
 from kallithea.lib.vcs.backends.ssh import BaseSshHandler
 
 
--- a/kallithea/lib/vcs/backends/git/workdir.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/git/workdir.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 import re
+
 from kallithea.lib.vcs.backends.base import BaseWorkdir
-from kallithea.lib.vcs.exceptions import RepositoryError
-from kallithea.lib.vcs.exceptions import BranchDoesNotExistError
+from kallithea.lib.vcs.exceptions import BranchDoesNotExistError, RepositoryError
 
 
 class GitWorkdir(BaseWorkdir):
--- a/kallithea/lib/vcs/backends/hg/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -9,9 +9,9 @@
     :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
 """
 
-from .repository import MercurialRepository
 from .changeset import MercurialChangeset
 from .inmemory import MercurialInMemoryChangeset
+from .repository import MercurialRepository
 from .workdir import MercurialWorkdir
 
 
--- a/kallithea/lib/vcs/backends/hg/changeset.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/changeset.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,22 +1,17 @@
 import os
 import posixpath
 
-from kallithea.lib.vcs.conf import settings
+from mercurial import obsolete
+
 from kallithea.lib.vcs.backends.base import BaseChangeset
-from kallithea.lib.vcs.exceptions import (
-    ChangesetDoesNotExistError, ChangesetError, ImproperArchiveTypeError,
-    NodeDoesNotExistError, VCSError
-)
+from kallithea.lib.vcs.conf import settings
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError, ChangesetError, ImproperArchiveTypeError, NodeDoesNotExistError, VCSError
 from kallithea.lib.vcs.nodes import (
-    AddedFileNodesGenerator, ChangedFileNodesGenerator, DirNode, FileNode,
-    NodeKind, RemovedFileNodesGenerator, RootNode, SubModuleNode
-)
-from kallithea.lib.vcs.utils import safe_str, safe_unicode, date_fromtimestamp
+    AddedFileNodesGenerator, ChangedFileNodesGenerator, DirNode, FileNode, NodeKind, RemovedFileNodesGenerator, RootNode, SubModuleNode)
+from kallithea.lib.vcs.utils import date_fromtimestamp, safe_str, safe_unicode
+from kallithea.lib.vcs.utils.hgcompat import archival, hex, obsutil
 from kallithea.lib.vcs.utils.lazy import LazyProperty
 from kallithea.lib.vcs.utils.paths import get_dirs_for_path
-from kallithea.lib.vcs.utils.hgcompat import archival, hex, obsutil
-
-from mercurial import obsolete
 
 
 class MercurialChangeset(BaseChangeset):
--- a/kallithea/lib/vcs/backends/hg/inmemory.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/inmemory.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,8 +3,7 @@
 
 from kallithea.lib.vcs.backends.base import BaseInMemoryChangeset
 from kallithea.lib.vcs.exceptions import RepositoryError
-
-from kallithea.lib.vcs.utils.hgcompat import memfilectx, memctx, hex, tolocal
+from kallithea.lib.vcs.utils.hgcompat import hex, memctx, memfilectx, tolocal
 
 
 class MercurialInMemoryChangeset(BaseInMemoryChangeset):
--- a/kallithea/lib/vcs/backends/hg/repository.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/repository.py	Wed Aug 07 00:25:02 2019 +0200
@@ -9,34 +9,28 @@
     :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
 """
 
+import datetime
+import logging
 import os
 import time
 import urllib
 import urllib2
-import logging
-import datetime
 from collections import OrderedDict
 
 from kallithea.lib.vcs.backends.base import BaseRepository, CollectionGenerator
 from kallithea.lib.vcs.exceptions import (
-    BranchDoesNotExistError, ChangesetDoesNotExistError, EmptyRepositoryError,
-    RepositoryError, VCSError, TagAlreadyExistError, TagDoesNotExistError
-)
-from kallithea.lib.vcs.utils import (
-    author_email, author_name, date_fromtimestamp, makedate, safe_unicode, safe_str,
-)
+    BranchDoesNotExistError, ChangesetDoesNotExistError, EmptyRepositoryError, RepositoryError, TagAlreadyExistError, TagDoesNotExistError, VCSError)
+from kallithea.lib.vcs.utils import author_email, author_name, date_fromtimestamp, makedate, safe_str, safe_unicode
+from kallithea.lib.vcs.utils.hgcompat import (
+    Abort, RepoError, RepoLookupError, clone, diffopts, get_contact, hex, hg_url, httpbasicauthhandler, httpdigestauthhandler, httppeer, localrepo, match, match_exact, nullid, patch, peer, scmutil, sshpeer, tag, ui)
 from kallithea.lib.vcs.utils.lazy import LazyProperty
 from kallithea.lib.vcs.utils.paths import abspath
-from kallithea.lib.vcs.utils.hgcompat import (
-    ui, nullid, match, match_exact, patch, diffopts, clone, get_contact,
-    localrepo, RepoLookupError, Abort, RepoError, hex, scmutil, hg_url,
-    httpbasicauthhandler, httpdigestauthhandler, peer, httppeer, sshpeer, tag
-)
 
 from .changeset import MercurialChangeset
 from .inmemory import MercurialInMemoryChangeset
 from .workdir import MercurialWorkdir
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/lib/vcs/backends/hg/ssh.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/ssh.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,14 +15,17 @@
 import logging
 
 from mercurial import hg
+
+from kallithea.lib.utils import make_ui
+from kallithea.lib.utils2 import safe_str, safe_unicode
+from kallithea.lib.vcs.backends.ssh import BaseSshHandler
+
+
 try:
     from mercurial.wireprotoserver import sshserver
 except ImportError:
     from mercurial.sshserver import sshserver # moved in Mercurial 4.6 (1bf5263fe5cc)
 
-from kallithea.lib.utils import make_ui
-from kallithea.lib.utils2 import safe_unicode, safe_str
-from kallithea.lib.vcs.backends.ssh import BaseSshHandler
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/vcs/backends/hg/workdir.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/hg/workdir.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,6 +1,5 @@
 from kallithea.lib.vcs.backends.base import BaseWorkdir
 from kallithea.lib.vcs.exceptions import BranchDoesNotExistError
-
 from kallithea.lib.vcs.utils.hgcompat import hg_merge
 
 
--- a/kallithea/lib/vcs/backends/ssh.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/backends/ssh.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,14 +19,14 @@
 SSH backend for all available SCMs
 """
 
-import sys
 import datetime
 import logging
+import sys
 
+from kallithea.lib.auth import AuthUser, HasPermissionAnyMiddleware
+from kallithea.lib.utils2 import safe_str, set_hook_environment
 from kallithea.model.db import Repository, User, UserSshKeys
 from kallithea.model.meta import Session
-from kallithea.lib.auth import HasPermissionAnyMiddleware, AuthUser
-from kallithea.lib.utils2 import safe_str, set_hook_environment
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/lib/vcs/conf/settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/conf/settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,10 @@
 import os
 import tempfile
+
 from kallithea.lib.vcs.utils import aslist
 from kallithea.lib.vcs.utils.paths import get_user_home
 
+
 abspath = lambda * p: os.path.abspath(os.path.join(*p))
 
 VCSRC_PATH = os.environ.get('VCSRC_PATH')
--- a/kallithea/lib/vcs/nodes.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/nodes.py	Wed Aug 07 00:25:02 2019 +0200
@@ -9,14 +9,14 @@
     :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
 """
 
-import stat
+import mimetypes
 import posixpath
-import mimetypes
+import stat
 
 from kallithea.lib.vcs.backends.base import EmptyChangeset
 from kallithea.lib.vcs.exceptions import NodeError, RemovedFileNodeError
+from kallithea.lib.vcs.utils import safe_str, safe_unicode
 from kallithea.lib.vcs.utils.lazy import LazyProperty
-from kallithea.lib.vcs.utils import safe_unicode, safe_str
 
 
 class NodeKind:
--- a/kallithea/lib/vcs/subprocessio.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/subprocessio.py	Wed Aug 07 00:25:02 2019 +0200
@@ -22,9 +22,9 @@
 along with git_http_backend.py Project.
 If not, see <http://www.gnu.org/licenses/>.
 """
+import collections
 import os
 import subprocess
-import collections
 import threading
 
 
--- a/kallithea/lib/vcs/utils/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,9 +3,9 @@
 output. It also includes some internal helpers.
 """
 
-import time
 import datetime
 import re
+import time
 
 
 def makedate():
--- a/kallithea/lib/vcs/utils/annotate.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/annotate.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 import StringIO
 
+from pygments import highlight
 from pygments.formatters import HtmlFormatter
-from pygments import highlight
 
 from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.nodes import FileNode
--- a/kallithea/lib/vcs/utils/helpers.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/helpers.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,16 +3,16 @@
 """
 from __future__ import division
 
+import datetime
+import os
 import re
-import os
 import time
-import datetime
-from subprocess import Popen, PIPE
+from subprocess import PIPE, Popen
 
-from kallithea.lib.vcs.exceptions import VCSError
-from kallithea.lib.vcs.exceptions import RepositoryError
+from kallithea.lib.vcs.exceptions import RepositoryError, VCSError
 from kallithea.lib.vcs.utils.paths import abspath
 
+
 ALIASES = ['hg', 'git']
 
 
--- a/kallithea/lib/vcs/utils/hgcompat.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/hgcompat.py	Wed Aug 07 00:25:02 2019 +0200
@@ -2,35 +2,33 @@
 Mercurial libs compatibility
 """
 
+# Mercurial 5.0 550a172a603b renamed memfilectx argument `copied` to `copysource`
+import inspect
+
 import mercurial
-from mercurial import demandimport
+from mercurial import archival, config, demandimport, discovery, httppeer, localrepo
+from mercurial import merge as hg_merge
+from mercurial import obsutil, patch, scmutil, sshpeer, ui, unionrepo
+from mercurial.commands import clone, nullid, pull
+from mercurial.context import memctx, memfilectx
+from mercurial.discovery import findcommonoutgoing
+from mercurial.encoding import tolocal
+from mercurial.error import Abort, RepoError, RepoLookupError
+from mercurial.hg import peer
+from mercurial.hgweb import hgweb_mod
+from mercurial.hgweb.common import get_contact
+from mercurial.match import exact as match_exact
+from mercurial.match import match
+from mercurial.mdiff import diffopts
+from mercurial.node import hex, nullrev
+from mercurial.scmutil import revrange
+from mercurial.tags import tag
+from mercurial.url import httpbasicauthhandler, httpdigestauthhandler
+from mercurial.util import url as hg_url
+
+
 # patch demandimport, due to bug in mercurial when it always triggers demandimport.enable()
 demandimport.enable = lambda *args, **kwargs: 1
-from mercurial import archival, merge as hg_merge, patch, ui
-from mercurial import discovery
-from mercurial import localrepo
-from mercurial import unionrepo
-from mercurial import scmutil
-from mercurial import config
-from mercurial.tags import tag
-from mercurial import httppeer
-from mercurial import sshpeer
-from mercurial import obsutil
-from mercurial.commands import clone, nullid, pull
-from mercurial.context import memctx, memfilectx
-from mercurial.error import RepoError, RepoLookupError, Abort
-from mercurial.hgweb import hgweb_mod
-from mercurial.hgweb.common import get_contact
-from mercurial.match import match, exact as match_exact
-from mercurial.mdiff import diffopts
-from mercurial.node import hex
-from mercurial.encoding import tolocal
-from mercurial.discovery import findcommonoutgoing
-from mercurial.hg import peer
-from mercurial.util import url as hg_url
-from mercurial.scmutil import revrange
-from mercurial.node import nullrev
-from mercurial.url import httpbasicauthhandler, httpdigestauthhandler
 
 
 # workaround for 3.3 94ac64bcf6fe and not calling largefiles reposetup correctly
@@ -38,8 +36,6 @@
 # 3.5 7699d3212994 added the invariant that repo.lfstatus must exist before hitting overridearchive
 localrepo.localrepository.lfstatus = False
 
-# Mercurial 5.0 550a172a603b renamed memfilectx argument `copied` to `copysource`
-import inspect
 if inspect.getargspec(memfilectx.__init__).args[7] != 'copysource':
     assert inspect.getargspec(memfilectx.__init__).args[7] == 'copied', inspect.getargspec(memfilectx.__init__).args
     __org_memfilectx_ = memfilectx
--- a/kallithea/lib/vcs/utils/paths.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/paths.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,6 @@
 import os
 
+
 abspath = lambda * p: os.path.abspath(os.path.join(*p))
 
 
--- a/kallithea/lib/vcs/utils/progressbar.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/lib/vcs/utils/progressbar.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 # encoding: UTF-8
-import sys
 import datetime
 import string
+import sys
 
 from kallithea.lib.vcs.utils.filesize import filesizeformat
 
--- a/kallithea/model/api_key.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/api_key.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,13 +25,14 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import time
-import logging
 
 from kallithea.lib.utils2 import generate_api_key
 from kallithea.model.db import User, UserApiKeys
 from kallithea.model.meta import Session
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/model/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,8 +27,10 @@
 
 
 import logging
+
+from kallithea.lib.utils2 import obfuscate_url_pw
 from kallithea.model import meta
-from kallithea.lib.utils2 import obfuscate_url_pw
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/changeset_status.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/changeset_status.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,9 +26,11 @@
 """
 
 import logging
+
 from sqlalchemy.orm import joinedload
 
-from kallithea.model.db import ChangesetStatus, PullRequest, Repository, User, Session
+from kallithea.model.db import ChangesetStatus, PullRequest, Repository, Session, User
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/comment.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/comment.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,16 +26,16 @@
 """
 
 import logging
-
-from tg.i18n import ugettext as _
 from collections import defaultdict
 
-from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode
+from tg.i18n import ugettext as _
+
 from kallithea.lib import helpers as h
-from kallithea.model.db import ChangesetComment, User, \
-    PullRequest, Repository
+from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode
+from kallithea.model.db import ChangesetComment, PullRequest, Repository, User
+from kallithea.model.meta import Session
 from kallithea.model.notification import NotificationModel
-from kallithea.model.meta import Session
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/db.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/db.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,40 +25,37 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import collections
+import datetime
+import functools
+import hashlib
+import logging
 import os
 import time
-import logging
-import datetime
 import traceback
-import hashlib
-import collections
-import functools
-
+
+import ipaddr
 import sqlalchemy
+from beaker.cache import cache_region, region_invalidate
 from sqlalchemy import *
 from sqlalchemy.ext.hybrid import hybrid_property
-from sqlalchemy.orm import relationship, joinedload, class_mapper, validates
-from beaker.cache import cache_region, region_invalidate
+from sqlalchemy.orm import class_mapper, joinedload, relationship, validates
+from tg.i18n import lazy_ugettext as _
 from webob.exc import HTTPNotFound
-import ipaddr
-
-from tg.i18n import lazy_ugettext as _
 
 import kallithea
+from kallithea.lib.caching_query import FromCache
+from kallithea.lib.compat import json
 from kallithea.lib.exceptions import DefaultUserException
+from kallithea.lib.utils2 import (
+    Optional, aslist, get_changeset_safe, get_clone_url, remove_prefix, safe_int, safe_str, safe_unicode, str2bool, time_to_datetime, urlreadable)
 from kallithea.lib.vcs import get_backend
+from kallithea.lib.vcs.backends.base import EmptyChangeset
 from kallithea.lib.vcs.utils.helpers import get_scm
 from kallithea.lib.vcs.utils.lazy import LazyProperty
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-
-from kallithea.lib.utils2 import str2bool, safe_str, get_changeset_safe, \
-    safe_unicode, remove_prefix, time_to_datetime, aslist, Optional, safe_int, \
-    get_clone_url, urlreadable
-from kallithea.lib.compat import json
-from kallithea.lib.caching_query import FromCache
-
 from kallithea.model.meta import Base, Session
 
+
 URL_SEP = '/'
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/forms.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/forms.py	Wed Aug 07 00:25:02 2019 +0200
@@ -37,12 +37,12 @@
 
 import formencode
 from formencode import All
-
 from tg.i18n import ugettext as _
 
 from kallithea import BACKENDS
 from kallithea.model import validators as v
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/model/gist.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/gist.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,20 +25,20 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import logging
 import os
 import random
+import shutil
 import time
-import logging
 import traceback
-import shutil
 
-from kallithea.lib.utils2 import safe_unicode, safe_int, \
-    time_to_datetime, AttributeDict
 from kallithea.lib.compat import json
+from kallithea.lib.utils2 import AttributeDict, safe_int, safe_unicode, time_to_datetime
 from kallithea.model.db import Gist, Session, User
 from kallithea.model.repo import RepoModel
 from kallithea.model.scm import ScmModel
 
+
 log = logging.getLogger(__name__)
 
 GIST_STORE_LOC = '.rc_gist_store'
--- a/kallithea/model/meta.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/meta.py	Wed Aug 07 00:25:02 2019 +0200
@@ -14,9 +14,9 @@
 """
 SQLAlchemy Metadata and Session object
 """
+from beaker import cache
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.orm import scoped_session, sessionmaker
-from beaker import cache
 
 from kallithea.lib import caching_query
 
--- a/kallithea/model/notification.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/notification.py	Wed Aug 07 00:25:02 2019 +0200
@@ -30,9 +30,10 @@
 import logging
 import traceback
 
-from tg import tmpl_context as c, app_globals
+from sqlalchemy.orm import joinedload, subqueryload
+from tg import app_globals
+from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from sqlalchemy.orm import joinedload, subqueryload
 
 import kallithea
 from kallithea.lib import helpers as h
@@ -40,6 +41,7 @@
 from kallithea.model.db import User
 from kallithea.model.meta import Session
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/model/permission.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/permission.py	Wed Aug 07 00:25:02 2019 +0200
@@ -31,9 +31,9 @@
 
 from sqlalchemy.exc import DatabaseError
 
-from kallithea.model.db import Permission, Session, User, \
-    UserToPerm, UserRepoToPerm, UserRepoGroupToPerm, UserUserGroupToPerm
 from kallithea.lib.utils2 import str2bool
+from kallithea.model.db import Permission, Session, User, UserRepoGroupToPerm, UserRepoToPerm, UserToPerm, UserUserGroupToPerm
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/pull_request.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/pull_request.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,21 +25,19 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import datetime
 import logging
-import datetime
 import re
 
+from sqlalchemy.orm import joinedload
 from tg import request
 from tg.i18n import ugettext as _
 
-from sqlalchemy.orm import joinedload
-
+from kallithea.lib import helpers as h
+from kallithea.lib.utils2 import extract_mentioned_users, safe_str, safe_unicode
+from kallithea.model.db import ChangesetStatus, PullRequest, PullRequestReviewer, User
 from kallithea.model.meta import Session
-from kallithea.lib import helpers as h
-from kallithea.model.db import PullRequest, PullRequestReviewer, \
-    ChangesetStatus, User
 from kallithea.model.notification import NotificationModel
-from kallithea.lib.utils2 import extract_mentioned_users, safe_str, safe_unicode
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/model/repo.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/repo.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,30 +26,28 @@
 
 """
 
+import logging
 import os
 import shutil
-import logging
 import traceback
 from datetime import datetime
+
 from sqlalchemy.orm import subqueryload
 
 import kallithea.lib.utils2
-from kallithea.lib.utils import make_ui, is_valid_repo_uri
-from kallithea.lib.vcs.backends import get_backend
-from kallithea.lib.utils2 import LazyProperty, safe_str, safe_unicode, \
-    remove_prefix, obfuscate_url_pw, get_current_authuser
-from kallithea.lib.caching_query import FromCache
-from kallithea.lib.hooks import log_delete_repository
-
-from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \
-    UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, Session, \
-    Statistics, UserGroup, Ui, RepoGroup, RepositoryField
-
 from kallithea.lib import helpers as h
 from kallithea.lib.auth import HasRepoPermissionLevel, HasUserGroupPermissionLevel
+from kallithea.lib.caching_query import FromCache
 from kallithea.lib.exceptions import AttachedForksError
+from kallithea.lib.hooks import log_delete_repository
+from kallithea.lib.utils import is_valid_repo_uri, make_ui
+from kallithea.lib.utils2 import LazyProperty, get_current_authuser, obfuscate_url_pw, remove_prefix, safe_str, safe_unicode
+from kallithea.lib.vcs.backends import get_backend
+from kallithea.model.db import (
+    Permission, RepoGroup, Repository, RepositoryField, Session, Statistics, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserGroupRepoToPerm, UserRepoGroupToPerm, UserRepoToPerm)
 from kallithea.model.scm import UserGroupList
 
+
 log = logging.getLogger(__name__)
 
 
--- a/kallithea/model/repo_group.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/repo_group.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,17 +26,16 @@
 """
 
 
+import datetime
+import logging
 import os
-import logging
+import shutil
 import traceback
-import shutil
-import datetime
 
 import kallithea.lib.utils2
 from kallithea.lib.utils2 import LazyProperty
+from kallithea.model.db import Permission, RepoGroup, Repository, Session, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserRepoGroupToPerm
 
-from kallithea.model.db import RepoGroup, Session, Ui, UserRepoGroupToPerm, \
-    User, Permission, UserGroupRepoGroupToPerm, UserGroup, Repository
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/repo_permission.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/repo_permission.py	Wed Aug 07 00:25:02 2019 +0200
@@ -24,8 +24,9 @@
 """
 
 import logging
-from kallithea.model.db import User, UserRepoToPerm, UserGroupRepoToPerm, \
-    Permission, Repository, Session
+
+from kallithea.model.db import Permission, Repository, Session, User, UserGroupRepoToPerm, UserRepoToPerm
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/scm.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/scm.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,37 +25,34 @@
 :license: GPLv3, see LICENSE.md for more details.
 """
 
+import cStringIO
+import logging
 import os
-import sys
 import posixpath
 import re
+import sys
 import time
 import traceback
-import logging
-import cStringIO
+
 import pkg_resources
-
 from sqlalchemy import func
 from tg.i18n import ugettext as _
 
 import kallithea
-from kallithea.lib.vcs import get_backend
-from kallithea.lib.vcs.exceptions import RepositoryError
-from kallithea.lib.vcs.utils.lazy import LazyProperty
-from kallithea.lib.vcs.nodes import FileNode
-from kallithea.lib.vcs.backends.base import EmptyChangeset
-
 from kallithea import BACKENDS
 from kallithea.lib import helpers as h
+from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel, HasRepoPermissionLevel, HasUserGroupPermissionLevel
+from kallithea.lib.exceptions import IMCCommitError, NonRelativePathError
+from kallithea.lib.hooks import process_pushed_raw_ids
+from kallithea.lib.utils import action_logger, get_filesystem_repos, make_ui
 from kallithea.lib.utils2 import safe_str, safe_unicode, set_hook_environment
-from kallithea.lib.auth import HasRepoPermissionLevel, HasRepoGroupPermissionLevel, \
-    HasUserGroupPermissionLevel, HasPermissionAny, HasPermissionAny
-from kallithea.lib.utils import get_filesystem_repos, make_ui, \
-    action_logger
-from kallithea.model.db import Repository, Session, Ui, CacheInvalidation, \
-    UserFollowing, UserLog, User, RepoGroup, PullRequest
-from kallithea.lib.hooks import process_pushed_raw_ids
-from kallithea.lib.exceptions import NonRelativePathError, IMCCommitError
+from kallithea.lib.vcs import get_backend
+from kallithea.lib.vcs.backends.base import EmptyChangeset
+from kallithea.lib.vcs.exceptions import RepositoryError
+from kallithea.lib.vcs.nodes import FileNode
+from kallithea.lib.vcs.utils.lazy import LazyProperty
+from kallithea.model.db import CacheInvalidation, PullRequest, RepoGroup, Repository, Session, Ui, User, UserFollowing, UserLog
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/ssh_key.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/ssh_key.py	Wed Aug 07 00:25:02 2019 +0200
@@ -19,19 +19,20 @@
 
 """
 
+import errno
 import logging
 import os
 import stat
 import tempfile
-import errno
 
 from tg import config
 from tg.i18n import ugettext as _
 
+from kallithea.lib import ssh
 from kallithea.lib.utils2 import safe_str, str2bool
-from kallithea.model.db import UserSshKeys, User
+from kallithea.model.db import User, UserSshKeys
 from kallithea.model.meta import Session
-from kallithea.lib import ssh
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/user.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/user.py	Wed Aug 07 00:25:02 2019 +0200
@@ -32,17 +32,14 @@
 import time
 import traceback
 
+from sqlalchemy.exc import DatabaseError
 from tg import config
 from tg.i18n import ugettext as _
 
-from sqlalchemy.exc import DatabaseError
-
-from kallithea.lib.utils2 import safe_str, generate_api_key, get_current_authuser
 from kallithea.lib.caching_query import FromCache
-from kallithea.model.db import Permission, User, UserToPerm, \
-    UserEmailMap, UserIpMap
-from kallithea.lib.exceptions import DefaultUserException, \
-    UserOwnsReposException
+from kallithea.lib.exceptions import DefaultUserException, UserOwnsReposException
+from kallithea.lib.utils2 import generate_api_key, get_current_authuser, safe_str
+from kallithea.model.db import Permission, User, UserEmailMap, UserIpMap, UserToPerm
 from kallithea.model.meta import Session
 
 
--- a/kallithea/model/user_group.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/user_group.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,11 +27,10 @@
 import logging
 import traceback
 
-from kallithea.model.db import Session, UserGroupMember, UserGroup, \
-    UserGroupRepoToPerm, Permission, UserGroupToPerm, User, UserUserGroupToPerm, \
-    UserGroupUserGroupToPerm
-from kallithea.lib.exceptions import UserGroupsAssignedException, \
-    RepoGroupAssignmentError
+from kallithea.lib.exceptions import RepoGroupAssignmentError, UserGroupsAssignedException
+from kallithea.model.db import (
+    Permission, Session, User, UserGroup, UserGroupMember, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm, UserUserGroupToPerm)
+
 
 log = logging.getLogger(__name__)
 
--- a/kallithea/model/validators.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/model/validators.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,28 +15,26 @@
 Set of generic validators
 """
 
+import logging
 import os
 import re
-import formencode
-import logging
 from collections import defaultdict
 
-from tg.i18n import ugettext as _
+import formencode
+import ipaddr
+import sqlalchemy
+from formencode.validators import CIDR, Bool, Email, FancyValidator, Int, IPAddress, NotEmpty, Number, OneOf, Regex, Set, String, StringBoolean, UnicodeString
 from sqlalchemy import func
-import sqlalchemy
-import ipaddr
+from tg.i18n import ugettext as _
 
-from formencode.validators import (
-    UnicodeString, OneOf, Int, Number, Regex, Email, Bool, StringBoolean, Set,
-    NotEmpty, IPAddress, CIDR, String, FancyValidator
-)
+from kallithea.config.routing import ADMIN_PREFIX
+from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel
 from kallithea.lib.compat import OrderedSet
+from kallithea.lib.exceptions import LdapImportError
 from kallithea.lib.utils import is_valid_repo_uri
-from kallithea.lib.utils2 import str2bool, aslist, repo_name_slug
-from kallithea.model.db import RepoGroup, Repository, UserGroup, User
-from kallithea.lib.exceptions import LdapImportError
-from kallithea.config.routing import ADMIN_PREFIX
-from kallithea.lib.auth import HasRepoGroupPermissionLevel, HasPermissionAny
+from kallithea.lib.utils2 import aslist, repo_name_slug, str2bool
+from kallithea.model.db import RepoGroup, Repository, User, UserGroup
+
 
 # silence warnings and pylint
 UnicodeString, OneOf, Int, Number, Regex, Email, Bool, StringBoolean, Set, \
--- a/kallithea/tests/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -20,6 +20,7 @@
 
 import pytest
 
+
 if getattr(pytest, 'register_assert_rewrite', None):
     # make sure that all asserts under kallithea/tests benefit from advanced
     # assert reporting with pytest-3.0.0+, including api/api_base.py,
--- a/kallithea/tests/api/api_base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/api/api_base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -18,25 +18,25 @@
 
 import os
 import random
-import mock
 import re
 
+import mock
 import pytest
 
+from kallithea.lib.auth import AuthUser
+from kallithea.lib.compat import json
+from kallithea.lib.utils2 import time_to_datetime
+from kallithea.model.changeset_status import ChangesetStatusModel
+from kallithea.model.db import ChangesetStatus, PullRequest, RepoGroup, Repository, Setting, Ui, User
+from kallithea.model.gist import GistModel
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.scm import ScmModel
+from kallithea.model.user import UserModel
+from kallithea.model.user_group import UserGroupModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.lib.compat import json
-from kallithea.lib.auth import AuthUser
-from kallithea.model.user import UserModel
-from kallithea.model.user_group import UserGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.meta import Session
-from kallithea.model.scm import ScmModel
-from kallithea.model.gist import GistModel
-from kallithea.model.changeset_status import ChangesetStatusModel
-from kallithea.model.db import Repository, User, Setting, Ui, PullRequest, ChangesetStatus, RepoGroup
-from kallithea.lib.utils2 import time_to_datetime
 
 
 API_URL = '/_admin/api'
--- a/kallithea/tests/api/test_api_git.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/api/test_api_git.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,8 +12,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from kallithea.tests.base import TestController, GIT_REPO, GIT_TEST_REVISION
 from kallithea.tests.api.api_base import _BaseTestApi
+from kallithea.tests.base import GIT_REPO, GIT_TEST_REVISION, TestController
 
 
 class TestGitApi(_BaseTestApi, TestController):
--- a/kallithea/tests/api/test_api_hg.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/api/test_api_hg.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,8 +12,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from kallithea.tests.base import TestController, HG_REPO, HG_TEST_REVISION
 from kallithea.tests.api.api_base import _BaseTestApi
+from kallithea.tests.base import HG_REPO, HG_TEST_REVISION, TestController
 
 
 class TestHgApi(_BaseTestApi, TestController):
--- a/kallithea/tests/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -15,18 +15,18 @@
 import datetime
 import logging
 import os
-import pytest
 import re
 import tempfile
 import time
 
+import pytest
 from tg import config
 from webtest import TestApp
 
 from kallithea import model
+from kallithea.lib.utils2 import safe_str
 from kallithea.model.db import User
 from kallithea.model.meta import Session
-from kallithea.lib.utils2 import safe_str
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/tests/conftest.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/conftest.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,28 +1,26 @@
+import logging
 import os
 import re
 import sys
-import logging
-import pkg_resources
 import time
 
 import formencode
-from paste.deploy import loadwsgi
-from routes.util import URLGenerator
+import pkg_resources
 import pytest
+from paste.deploy import loadwsgi
 from pytest_localserver.http import WSGIServer
+from routes.util import URLGenerator
+from tg.util.webtest import test_context
 
+import kallithea.tests.base  # FIXME: needed for setting testapp instance!!!
 from kallithea.controllers.root import RootController
 from kallithea.lib import inifile
 from kallithea.lib.utils import repo2db_mapper
-from kallithea.model.user import UserModel
+from kallithea.model.db import Setting, User, UserIpMap
 from kallithea.model.meta import Session
-from kallithea.model.db import Setting, User, UserIpMap
 from kallithea.model.scm import ScmModel
-from kallithea.tests.base import invalidate_all_caches, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH, \
-    TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS
-import kallithea.tests.base # FIXME: needed for setting testapp instance!!!
-
-from tg.util.webtest import test_context
+from kallithea.model.user import UserModel
+from kallithea.tests.base import TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH, invalidate_all_caches
 
 
 def pytest_configure():
--- a/kallithea/tests/fixture.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/fixture.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,23 +26,23 @@
 from tg import request
 from tg.util.webtest import test_context
 
-from kallithea.model.db import Repository, User, RepoGroup, UserGroup, Gist, ChangesetStatus
-from kallithea.model.meta import Session
-from kallithea.model.repo import RepoModel
-from kallithea.model.user import UserModel
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.user_group import UserGroupModel
-from kallithea.model.gist import GistModel
-from kallithea.model.scm import ScmModel
-from kallithea.model.comment import ChangesetCommentsModel
-from kallithea.model.changeset_status import ChangesetStatusModel
-from kallithea.model.pull_request import CreatePullRequestAction#, CreatePullRequestIterationAction, PullRequestModel
 from kallithea.lib import helpers
 from kallithea.lib.auth import AuthUser
 from kallithea.lib.db_manage import DbManage
 from kallithea.lib.vcs.backends.base import EmptyChangeset
-from kallithea.tests.base import invalidate_all_caches, GIT_REPO, HG_REPO, \
-    TESTS_TMP_PATH, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, TEST_USER_ADMIN_EMAIL, IP_ADDR
+from kallithea.model.changeset_status import ChangesetStatusModel
+from kallithea.model.comment import ChangesetCommentsModel
+from kallithea.model.db import ChangesetStatus, Gist, RepoGroup, Repository, User, UserGroup
+from kallithea.model.gist import GistModel
+from kallithea.model.meta import Session
+from kallithea.model.pull_request import CreatePullRequestAction  # , CreatePullRequestIterationAction, PullRequestModel
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.scm import ScmModel
+from kallithea.model.user import UserModel
+from kallithea.model.user_group import UserGroupModel
+from kallithea.tests.base import (
+    GIT_REPO, HG_REPO, IP_ADDR, TEST_USER_ADMIN_EMAIL, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH, invalidate_all_caches)
 
 
 log = logging.getLogger(__name__)
--- a/kallithea/tests/functional/test_admin.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,11 +1,13 @@
-import os
 import csv
 import datetime
-from kallithea.tests.base import *
+import os
+from os.path import dirname
+
+from kallithea.lib.utils2 import safe_unicode
 from kallithea.model.db import UserLog
 from kallithea.model.meta import Session
-from kallithea.lib.utils2 import safe_unicode
-from os.path import dirname
+from kallithea.tests.base import *
+
 
 FIXTURES = os.path.join(dirname(dirname(os.path.abspath(__file__))), 'fixtures')
 
--- a/kallithea/tests/functional/test_admin_auth_settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_auth_settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,5 @@
+from kallithea.model.db import Setting
 from kallithea.tests.base import *
-from kallithea.model.db import Setting
 
 
 class TestAuthSettingsController(TestController):
--- a/kallithea/tests/functional/test_admin_defaults.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_defaults.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,5 @@
+from kallithea.model.db import Setting
 from kallithea.tests.base import *
-from kallithea.model.db import Setting
 
 
 class TestDefaultsController(TestController):
--- a/kallithea/tests/functional/test_admin_gists.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_gists.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
-from kallithea.tests.base import *
+from kallithea.model.db import Gist, User
 from kallithea.model.gist import GistModel
 from kallithea.model.meta import Session
-from kallithea.model.db import User, Gist
+from kallithea.tests.base import *
 
 
 def _create_gist(f_name, content='some gist', lifetime=-1,
--- a/kallithea/tests/functional/test_admin_permissions.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_permissions.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,12 +1,12 @@
 import time
 
+from tg.util.webtest import test_context
+
 from kallithea.model.db import User, UserIpMap
+from kallithea.model.meta import Session
 from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
 from kallithea.tests.base import *
 
-from tg.util.webtest import test_context
-
 
 class TestAdminPermissionsController(TestController):
 
--- a/kallithea/tests/functional/test_admin_repos.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_repos.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,23 +1,23 @@
 # -*- coding: utf-8 -*-
 
 import os
-import mock
 import urllib
 
+import mock
 import pytest
 from sqlalchemy import func
 
 from kallithea.lib import vcs
 from kallithea.lib.utils2 import safe_str, safe_unicode
-from kallithea.model.db import Repository, RepoGroup, UserRepoToPerm, User, \
-    Permission, Ui
+from kallithea.model.db import Permission, RepoGroup, Repository, Ui, User, UserRepoToPerm
+from kallithea.model.meta import Base, Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
 from kallithea.model.user import UserModel
 from kallithea.tests.base import *
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.meta import Session, Base
 from kallithea.tests.fixture import Fixture, error_function
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/functional/test_admin_settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -4,6 +4,7 @@
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/functional/test_admin_user_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_user_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,8 @@
 # -*- coding: utf-8 -*-
+from kallithea.model.db import Permission, UserGroup, UserGroupToPerm
+from kallithea.model.meta import Session
 from kallithea.tests.base import *
-from kallithea.model.db import UserGroup, UserGroupToPerm, Permission
-from kallithea.model.meta import Session
+
 
 TEST_USER_GROUP = u'admins_test'
 
--- a/kallithea/tests/functional/test_admin_users.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_admin_users.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,21 +12,21 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import pytest
 from sqlalchemy.orm.exc import NoResultFound, ObjectDeletedError
+from tg.util.webtest import test_context
+from webob.exc import HTTPNotFound
 
-import pytest
+from kallithea.controllers.admin.users import UsersController
+from kallithea.lib import helpers as h
+from kallithea.lib.auth import check_password
+from kallithea.model import validators
+from kallithea.model.db import Permission, RepoGroup, User, UserApiKeys, UserIpMap, UserSshKeys
+from kallithea.model.meta import Session
+from kallithea.model.user import UserModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.controllers.admin.users import UsersController
-from kallithea.model.db import User, Permission, UserIpMap, UserApiKeys, RepoGroup, UserSshKeys
-from kallithea.lib.auth import check_password
-from kallithea.model.user import UserModel
-from kallithea.model import validators
-from kallithea.lib import helpers as h
-from kallithea.model.meta import Session
-from webob.exc import HTTPNotFound
 
-from tg.util.webtest import test_context
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_changeset.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_changeset.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,6 @@
 from kallithea.tests.base import *
 
+
 class TestChangesetController(TestController):
 
     def test_index(self):
--- a/kallithea/tests/functional/test_changeset_pullrequests_comments.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_changeset_pullrequests_comments.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,9 +1,9 @@
 import re
 
-from kallithea.tests.base import *
 from kallithea.model.changeset_status import ChangesetStatusModel
 from kallithea.model.db import ChangesetComment, PullRequest
 from kallithea.model.meta import Session
+from kallithea.tests.base import *
 
 
 class TestChangeSetCommentsController(TestController):
--- a/kallithea/tests/functional/test_compare.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_compare.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,9 +1,10 @@
 # -*- coding: utf-8 -*-
-from kallithea.tests.base import *
+from kallithea.model.meta import Session
 from kallithea.model.repo import RepoModel
-from kallithea.model.meta import Session
+from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/functional/test_compare_local.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_compare_local.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 from kallithea.tests.base import *
 
+
 class TestCompareController(TestController):
 
     def test_compare_tag_hg(self):
--- a/kallithea/tests/functional/test_feed.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_feed.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,6 @@
 from kallithea.tests.base import *
 
+
 class TestFeedController(TestController):
 
     def test_rss(self):
--- a/kallithea/tests/functional/test_files.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_files.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,12 +1,14 @@
 # -*- coding: utf-8 -*-
+import mimetypes
 import os
 import posixpath
-import mimetypes
-from kallithea.tests.base import *
+
 from kallithea.model.db import Repository
 from kallithea.model.meta import Session
+from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 ARCHIVE_SPECS = {
--- a/kallithea/tests/functional/test_forks.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_forks.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,16 +1,16 @@
 # -*- coding: utf-8 -*-
 
+import unittest
 import urllib
-import unittest
 
+from kallithea.lib.utils2 import safe_str, safe_unicode
+from kallithea.model.db import Repository, User
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.user import UserModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
-from kallithea.lib.utils2 import safe_str, safe_unicode
-from kallithea.model.db import Repository, User
-from kallithea.model.repo import RepoModel
-from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_home.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_home.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,12 +1,12 @@
 # -*- coding: utf-8 -*-
 import json
 
+from kallithea.model.db import Repository
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.meta import Session
-from kallithea.model.db import Repository
-from kallithea.model.repo import RepoModel
-from kallithea.model.repo_group import RepoGroupModel
 
 
 fixture = Fixture()
--- a/kallithea/tests/functional/test_journal.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_journal.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,6 @@
+import datetime
+
 from kallithea.tests.base import *
-import datetime
 
 
 class TestJournalController(TestController):
--- a/kallithea/tests/functional/test_login.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_login.py	Wed Aug 07 00:25:02 2019 +0200
@@ -4,19 +4,19 @@
 import urlparse
 
 import mock
+from tg.util.webtest import test_context
 
-from kallithea.tests.base import *
-from kallithea.tests.fixture import Fixture
+from kallithea.lib import helpers as h
+from kallithea.lib.auth import check_password
 from kallithea.lib.utils2 import generate_api_key
-from kallithea.lib.auth import check_password
-from kallithea.lib import helpers as h
+from kallithea.model import validators
 from kallithea.model.api_key import ApiKeyModel
-from kallithea.model import validators
 from kallithea.model.db import User
 from kallithea.model.meta import Session
 from kallithea.model.user import UserModel
+from kallithea.tests.base import *
+from kallithea.tests.fixture import Fixture
 
-from tg.util.webtest import test_context
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_my_account.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_my_account.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,13 +1,14 @@
 # -*- coding: utf-8 -*-
 
-from kallithea.model.db import User, UserFollowing, Repository, UserApiKeys, UserSshKeys
+from tg.util.webtest import test_context
+
+from kallithea.lib import helpers as h
+from kallithea.model.db import Repository, User, UserApiKeys, UserFollowing, UserSshKeys
+from kallithea.model.meta import Session
+from kallithea.model.user import UserModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.lib import helpers as h
-from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
 
-from tg.util.webtest import test_context
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_pullrequests.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_pullrequests.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,14 +1,14 @@
 import re
+
 import pytest
-
 from tg.util.webtest import test_context
 
+from kallithea.controllers.pullrequests import PullrequestsController
+from kallithea.model.db import PullRequest, User
+from kallithea.model.meta import Session
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.db import PullRequest, User
-from kallithea.model.meta import Session
 
-from kallithea.controllers.pullrequests import PullrequestsController
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_search.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_search.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,7 @@
+import os
+
 import mock
-import os
+
 from kallithea.tests.base import *
 
 
--- a/kallithea/tests/functional/test_search_indexing.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_search_indexing.py	Wed Aug 07 00:25:02 2019 +0200
@@ -6,7 +6,8 @@
 from kallithea.model.repo import RepoModel
 from kallithea.model.repo_group import RepoGroupModel
 from kallithea.tests.base import *
-from kallithea.tests.fixture import create_test_index, Fixture
+from kallithea.tests.fixture import Fixture, create_test_index
+
 
 fixture = Fixture()
 
--- a/kallithea/tests/functional/test_summary.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/functional/test_summary.py	Wed Aug 07 00:25:02 2019 +0200
@@ -12,14 +12,15 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import pytest
+
+from kallithea.model.db import Repository
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.scm import ScmModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.db import Repository
-from kallithea.model.repo import RepoModel
-from kallithea.model.meta import Session
-from kallithea.model.scm import ScmModel
 
-import pytest
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/common.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/common.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,14 +1,12 @@
+from kallithea.lib.auth import AuthUser
+from kallithea.model.db import RepoGroup, Repository, User
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.user import UserModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.db import RepoGroup, Repository, User
-from kallithea.model.user import UserModel
-
-from kallithea.lib.auth import AuthUser
-from kallithea.model.meta import Session
-
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/test_changeset_status.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_changeset_status.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,6 +1,6 @@
-from kallithea.tests.base import *
 from kallithea.model.changeset_status import ChangesetStatusModel
 from kallithea.model.db import ChangesetStatus as CS
+from kallithea.tests.base import *
 
 
 class CSM(object): # ChangesetStatusMock
--- a/kallithea/tests/models/test_comments.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_comments.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,9 +1,10 @@
-from kallithea.tests.base import *
+import pytest
+from tg.util.webtest import test_context
+
 from kallithea.model.comment import ChangesetCommentsModel
 from kallithea.model.db import Repository
+from kallithea.tests.base import *
 
-import pytest
-from tg.util.webtest import test_context
 
 class TestComments(TestController):
 
--- a/kallithea/tests/models/test_diff_parsers.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_diff_parsers.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,8 @@
+from kallithea.lib.diffs import BIN_FILENODE, CHMOD_FILENODE, COPIED_FILENODE, DEL_FILENODE, MOD_FILENODE, NEW_FILENODE, RENAMED_FILENODE, DiffProcessor
 from kallithea.tests.base import *
-from kallithea.lib.diffs import DiffProcessor, NEW_FILENODE, DEL_FILENODE, \
-    MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE, BIN_FILENODE, COPIED_FILENODE
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/models/test_notifications.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_notifications.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,18 +3,16 @@
 
 import mock
 import routes.util
-
-from kallithea.tests.base import *
-from kallithea.lib import helpers as h
-from kallithea.model.db import User
-from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
-from kallithea.model.notification import NotificationModel, EmailNotificationModel
+from tg.util.webtest import test_context
 
 import kallithea.lib.celerylib
 import kallithea.lib.celerylib.tasks
-
-from tg.util.webtest import test_context
+from kallithea.lib import helpers as h
+from kallithea.model.db import User
+from kallithea.model.meta import Session
+from kallithea.model.notification import EmailNotificationModel, NotificationModel
+from kallithea.model.user import UserModel
+from kallithea.tests.base import *
 
 
 class TestNotifications(TestController):
--- a/kallithea/tests/models/test_permissions.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_permissions.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,15 +1,13 @@
+from kallithea.lib.auth import AuthUser
+from kallithea.model.db import Permission, RepoGroup, User, UserGroupRepoGroupToPerm, UserToPerm
+from kallithea.model.meta import Session
+from kallithea.model.permission import PermissionModel
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.user import UserModel
+from kallithea.model.user_group import UserGroupModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.db import RepoGroup, User, UserGroupRepoGroupToPerm, \
-    Permission, UserToPerm
-from kallithea.model.user import UserModel
-
-from kallithea.model.meta import Session
-from kallithea.model.user_group import UserGroupModel
-from kallithea.lib.auth import AuthUser
-from kallithea.model.permission import PermissionModel
 
 
 fixture = Fixture()
--- a/kallithea/tests/models/test_repo_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_repo_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,15 +1,15 @@
 import os
+
 import pytest
 from sqlalchemy.exc import IntegrityError
 
+from kallithea.model.db import RepoGroup
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.repo_group import RepoGroupModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
-from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.repo import RepoModel
-from kallithea.model.db import RepoGroup
-from kallithea.model.meta import Session
-
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/test_repos.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_repos.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,11 +1,12 @@
 import pytest
-from kallithea.tests.base import *
 
+from kallithea.lib.exceptions import AttachedForksError
+from kallithea.model.db import Repository
 from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.repo import RepoModel
-from kallithea.model.db import Repository
-from kallithea.lib.exceptions import AttachedForksError
+
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/test_settings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_settings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,5 +1,5 @@
+from kallithea.model.db import Setting
 from kallithea.model.meta import Session
-from kallithea.model.db import Setting
 
 
 name = 'spam-setting-name'
--- a/kallithea/tests/models/test_user_group_permissions_on_repo_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_user_group_permissions_on_repo_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,13 +1,12 @@
 import functools
 
+from kallithea.model.db import RepoGroup
+from kallithea.model.meta import Session
 from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.db import RepoGroup
-
-from kallithea.model.meta import Session
-from kallithea.tests.models.common import _create_project_tree, check_tree_perms, \
-    _get_perms, _check_expected_count, expected_count, _destroy_project_tree
 from kallithea.model.user_group import UserGroupModel
 from kallithea.tests.fixture import Fixture
+from kallithea.tests.models.common import _check_expected_count, _create_project_tree, _destroy_project_tree, _get_perms, check_tree_perms, expected_count
+
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/test_user_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_user_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,11 +1,9 @@
 from kallithea.model.db import User, UserGroup
-
+from kallithea.model.meta import Session
+from kallithea.model.user_group import UserGroupModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
-from kallithea.model.user_group import UserGroupModel
-from kallithea.model.meta import Session
-
 
 fixture = Fixture()
 
--- a/kallithea/tests/models/test_user_permissions_on_repo_groups.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_user_permissions_on_repo_groups.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,11 +1,9 @@
 import functools
 
+from kallithea.model.db import RepoGroup, Repository, User
+from kallithea.model.meta import Session
 from kallithea.model.repo_group import RepoGroupModel
-from kallithea.model.db import RepoGroup, Repository, User
-
-from kallithea.model.meta import Session
-from kallithea.tests.models.common import _create_project_tree, check_tree_perms, \
-    _get_perms, _check_expected_count, expected_count, _destroy_project_tree
+from kallithea.tests.models.common import _check_expected_count, _create_project_tree, _destroy_project_tree, _get_perms, check_tree_perms, expected_count
 
 
 test_u1_id = None
--- a/kallithea/tests/models/test_user_ssh_keys.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_user_ssh_keys.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,8 @@
 from kallithea.model.db import UserSshKeys
-
 from kallithea.tests.base import TestController
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 public_key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC6Ycnc2oUZHQnQwuqgZqTTdMDZD7ataf3JM7oG2Fw8JR6cdmz4QZLe5mfDwaFwG2pWHLRpVqzfrD/Pn3rIO++bgCJH5ydczrl1WScfryV1hYMJ/4EzLGM657J1/q5EI+b9SntKjf4ax+KP322L0TNQGbZUHLbfG2MwHMrYBQpHUQ== kallithea@localhost'
--- a/kallithea/tests/models/test_users.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/models/test_users.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,13 +1,13 @@
 import pytest
-from kallithea.tests.base import *
 
-from kallithea.model.db import User, UserGroup, UserGroupMember, UserEmailMap, \
-    Permission
+from kallithea.model.db import Permission, User, UserEmailMap, UserGroup, UserGroupMember
+from kallithea.model.meta import Session
 from kallithea.model.user import UserModel
-from kallithea.model.meta import Session
 from kallithea.model.user_group import UserGroupModel
+from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/other/test_auth_ldap.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/other/test_auth_ldap.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,10 @@
+import uuid
+
+import pytest
+
 from kallithea.lib.auth_modules import auth_ldap, authenticate
 from kallithea.model.db import Setting, User
 from kallithea.model.meta import Session
-import uuid
-import pytest
 
 
 @pytest.fixture
--- a/kallithea/tests/other/test_libs.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/other/test_libs.py	Wed Aug 07 00:25:02 2019 +0200
@@ -27,11 +27,14 @@
 
 import datetime
 import hashlib
+
 import mock
-from kallithea.tests.base import *
+from tg.util.webtest import test_context
+
 from kallithea.lib.utils2 import AttributeDict
 from kallithea.model.db import Repository
-from tg.util.webtest import test_context
+from kallithea.tests.base import *
+
 
 proto = 'http'
 TEST_URLS = [
--- a/kallithea/tests/other/test_mail.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/other/test_mail.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,8 @@
 import mock
 
 import kallithea
+from kallithea.model.db import User
 from kallithea.tests.base import *
-from kallithea.model.db import User
 
 
 class smtplib_mock(object):
--- a/kallithea/tests/other/test_validators.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/other/test_validators.py	Wed Aug 07 00:25:02 2019 +0200
@@ -2,15 +2,14 @@
 import formencode
 import pytest
 
-from kallithea.tests.base import *
-
 from kallithea.model import validators as v
-from kallithea.model.user_group import UserGroupModel
-
 from kallithea.model.meta import Session
 from kallithea.model.repo_group import RepoGroupModel
+from kallithea.model.user_group import UserGroupModel
+from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
 
+
 fixture = Fixture()
 
 
--- a/kallithea/tests/other/test_vcs_operations.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/other/test_vcs_operations.py	Wed Aug 07 00:25:02 2019 +0200
@@ -25,25 +25,26 @@
 
 """
 
+import json
 import os
 import re
 import tempfile
 import time
 import urllib2
-import json
+from subprocess import PIPE, Popen
 from tempfile import _RandomNameSequence
-from subprocess import Popen, PIPE
 
 import pytest
 
+from kallithea import CONFIG
+from kallithea.model.db import CacheInvalidation, Repository, Ui, User, UserIpMap, UserLog
+from kallithea.model.meta import Session
+from kallithea.model.repo import RepoModel
+from kallithea.model.ssh_key import SshKeyModel
+from kallithea.model.user import UserModel
 from kallithea.tests.base import *
 from kallithea.tests.fixture import Fixture
-from kallithea.model.db import User, Repository, UserIpMap, CacheInvalidation, Ui, UserLog
-from kallithea.model.meta import Session
-from kallithea.model.repo import RepoModel
-from kallithea.model.user import UserModel
-from kallithea.model.ssh_key import SshKeyModel
-from kallithea import CONFIG
+
 
 DEBUG = True
 HOST = '127.0.0.1:4999'  # test host
--- a/kallithea/tests/performance/test_vcs.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/performance/test_vcs.py	Wed Aug 07 00:25:02 2019 +0200
@@ -17,6 +17,7 @@
 from kallithea.model.db import Repository
 from kallithea.tests.base import *
 
+
 @pytest.mark.skipif("not os.environ.has_key('TEST_PERFORMANCE')", reason="skipping performance tests, set TEST_PERFORMANCE in environment if desired")
 class TestVCSPerformance(TestController):
 
--- a/kallithea/tests/scripts/manual_test_concurrency.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/scripts/manual_test_concurrency.py	Wed Aug 07 00:25:02 2019 +0200
@@ -26,25 +26,25 @@
 
 """
 
+import logging
 import os
+import shutil
 import sys
-import shutil
-import logging
 import tempfile
 from os.path import dirname
-from subprocess import Popen, PIPE
+from subprocess import PIPE, Popen
 
 from paste.deploy import appconfig
 from sqlalchemy import engine_from_config
 
+from kallithea.config.environment import load_environment
+from kallithea.lib.auth import get_crypt_password
 from kallithea.lib.utils import setup_cache_regions
-from kallithea.model.base import init_model
 from kallithea.model import meta
-from kallithea.model.db import User, Repository, Ui
-from kallithea.lib.auth import get_crypt_password
+from kallithea.model.base import init_model
+from kallithea.model.db import Repository, Ui, User
+from kallithea.tests.base import HG_REPO, TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS
 
-from kallithea.tests.base import HG_REPO, TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS
-from kallithea.config.environment import load_environment
 
 rel_path = dirname(dirname(dirname(dirname(os.path.abspath(__file__)))))
 conf = appconfig('config:development.ini', relative_to=rel_path)
--- a/kallithea/tests/scripts/manual_test_crawler.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/scripts/manual_test_crawler.py	Wed Aug 07 00:25:02 2019 +0200
@@ -32,21 +32,23 @@
 
 
 import cookielib
-import urllib
-import urllib2
-import time
 import os
 import sys
 import tempfile
+import time
+import urllib
+import urllib2
 from os.path import dirname
 
+from kallithea.lib import vcs
+from kallithea.lib.compat import OrderedSet
+from kallithea.lib.vcs.exceptions import RepositoryError
+
+
 __here__ = os.path.abspath(__file__)
 __root__ = dirname(dirname(dirname(__here__)))
 sys.path.append(__root__)
 
-from kallithea.lib import vcs
-from kallithea.lib.compat import OrderedSet
-from kallithea.lib.vcs.exceptions import RepositoryError
 
 PASES = 3
 HOST = 'http://127.0.0.1'
--- a/kallithea/tests/vcs/__init__.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/__init__.py	Wed Aug 07 00:25:02 2019 +0200
@@ -22,7 +22,7 @@
 import os
 import shutil
 
-from kallithea.tests.base import TEST_HG_REPO, HG_REMOTE_REPO, TEST_GIT_REPO, GIT_REMOTE_REPO, TESTS_TMP_PATH
+from kallithea.tests.base import GIT_REMOTE_REPO, HG_REMOTE_REPO, TEST_GIT_REPO, TEST_HG_REPO, TESTS_TMP_PATH
 from kallithea.tests.vcs.utils import SCMFetcher
 
 
--- a/kallithea/tests/vcs/base.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/base.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,14 +1,14 @@
 """
 Module providing backend independent mixin class.
 """
+import datetime
 import os
 import time
-import datetime
+
 import pytest
 
 from kallithea.lib import vcs
 from kallithea.lib.vcs.nodes import FileNode
-
 from kallithea.tests.vcs.conf import get_new_dir
 
 
--- a/kallithea/tests/vcs/conf.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/conf.py	Wed Aug 07 00:25:02 2019 +0200
@@ -8,12 +8,8 @@
 # module. Some of these configuration options are subsequently
 # consumed by the VCS test module.
 from kallithea.tests.base import (
-    TESTS_TMP_PATH,
-    TEST_HG_REPO, HG_REMOTE_REPO,
-    TEST_HG_REPO_CLONE, TEST_HG_REPO_PULL,
-    TEST_GIT_REPO, GIT_REMOTE_REPO,
-    TEST_GIT_REPO_CLONE,
-)
+    GIT_REMOTE_REPO, HG_REMOTE_REPO, TEST_GIT_REPO, TEST_GIT_REPO_CLONE, TEST_HG_REPO, TEST_HG_REPO_CLONE, TEST_HG_REPO_PULL, TESTS_TMP_PATH)
+
 
 __all__ = (
     'TEST_HG_REPO', 'TEST_GIT_REPO', 'HG_REMOTE_REPO', 'GIT_REMOTE_REPO',
--- a/kallithea/tests/vcs/test_archives.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_archives.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,15 +1,14 @@
+import datetime
 import os
+import StringIO
 import tarfile
+import tempfile
 import zipfile
-import datetime
-import tempfile
-import StringIO
 
 import pytest
 
 from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.nodes import FileNode
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 from kallithea.tests.vcs.conf import TESTS_TMP_PATH
 
--- a/kallithea/tests/vcs/test_branches.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_branches.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 import datetime
+
 from kallithea.lib import vcs
 from kallithea.lib.vcs.nodes import FileNode
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 
 
--- a/kallithea/tests/vcs/test_changesets.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_changesets.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,22 +1,14 @@
 # encoding: utf-8
 
+import datetime
 import time
-import datetime
 
 import pytest
 
 from kallithea.lib import vcs
-
 from kallithea.lib.vcs.backends.base import BaseChangeset
-from kallithea.lib.vcs.nodes import (
-    FileNode, AddedFileNodesGenerator,
-    ChangedFileNodesGenerator, RemovedFileNodesGenerator
-)
-from kallithea.lib.vcs.exceptions import (
-    BranchDoesNotExistError, ChangesetDoesNotExistError,
-    RepositoryError, EmptyRepositoryError
-)
-
+from kallithea.lib.vcs.exceptions import BranchDoesNotExistError, ChangesetDoesNotExistError, EmptyRepositoryError, RepositoryError
+from kallithea.lib.vcs.nodes import AddedFileNodesGenerator, ChangedFileNodesGenerator, FileNode, RemovedFileNodesGenerator
 from kallithea.tests.vcs.base import _BackendTestMixin
 from kallithea.tests.vcs.conf import get_new_dir
 
--- a/kallithea/tests/vcs/test_getitem.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_getitem.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,7 @@
 import datetime
 
+from kallithea.lib.vcs.nodes import FileNode
 from kallithea.tests.vcs.base import _BackendTestMixin
-from kallithea.lib.vcs.nodes import FileNode
 
 
 class GetitemTestCaseMixin(_BackendTestMixin):
--- a/kallithea/tests/vcs/test_getslice.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_getslice.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,7 +1,6 @@
 import datetime
 
 from kallithea.lib.vcs.nodes import FileNode
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 
 
--- a/kallithea/tests/vcs/test_git.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_git.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,16 +1,15 @@
+import datetime
 import os
 import sys
-import mock
-import datetime
 import urllib2
 
+import mock
 import pytest
 
-from kallithea.lib.vcs.backends.git import GitRepository, GitChangeset
-from kallithea.lib.vcs.exceptions import RepositoryError, VCSError, NodeDoesNotExistError
-from kallithea.lib.vcs.nodes import NodeKind, FileNode, DirNode, NodeState
+from kallithea.lib.vcs.backends.git import GitChangeset, GitRepository
+from kallithea.lib.vcs.exceptions import NodeDoesNotExistError, RepositoryError, VCSError
+from kallithea.lib.vcs.nodes import DirNode, FileNode, NodeKind, NodeState
 from kallithea.model.scm import ScmModel
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 from kallithea.tests.vcs.conf import TEST_GIT_REPO, TEST_GIT_REPO_CLONE, TESTS_TMP_PATH, get_new_dir
 
--- a/kallithea/tests/vcs/test_hg.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_hg.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,15 +1,13 @@
 import os
 
+import mock
 import pytest
-import mock
 
 from kallithea.lib.utils2 import safe_str
-from kallithea.lib.vcs.backends.hg import MercurialRepository, MercurialChangeset
-from kallithea.lib.vcs.exceptions import RepositoryError, VCSError, NodeDoesNotExistError
+from kallithea.lib.vcs.backends.hg import MercurialChangeset, MercurialRepository
+from kallithea.lib.vcs.exceptions import NodeDoesNotExistError, RepositoryError, VCSError
 from kallithea.lib.vcs.nodes import NodeKind, NodeState
-
-from kallithea.tests.vcs.conf import TEST_HG_REPO, TEST_HG_REPO_CLONE, \
-    TEST_HG_REPO_PULL, TESTS_TMP_PATH
+from kallithea.tests.vcs.conf import TEST_HG_REPO, TEST_HG_REPO_CLONE, TEST_HG_REPO_PULL, TESTS_TMP_PATH
 
 
 class TestMercurialRepository(object):
--- a/kallithea/tests/vcs/test_inmemchangesets.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_inmemchangesets.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,23 +3,16 @@
 Tests so called "in memory changesets" commit API of vcs.
 """
 
+import datetime
 import time
-import datetime
 
 import pytest
 
 from kallithea.lib import vcs
-from kallithea.lib.vcs.exceptions import EmptyRepositoryError
-from kallithea.lib.vcs.exceptions import NodeAlreadyAddedError
-from kallithea.lib.vcs.exceptions import NodeAlreadyExistsError
-from kallithea.lib.vcs.exceptions import NodeAlreadyRemovedError
-from kallithea.lib.vcs.exceptions import NodeAlreadyChangedError
-from kallithea.lib.vcs.exceptions import NodeDoesNotExistError
-from kallithea.lib.vcs.exceptions import NodeNotChangedError
-from kallithea.lib.vcs.nodes import DirNode
-from kallithea.lib.vcs.nodes import FileNode
+from kallithea.lib.vcs.exceptions import (
+    EmptyRepositoryError, NodeAlreadyAddedError, NodeAlreadyChangedError, NodeAlreadyExistsError, NodeAlreadyRemovedError, NodeDoesNotExistError, NodeNotChangedError)
+from kallithea.lib.vcs.nodes import DirNode, FileNode
 from kallithea.lib.vcs.utils import safe_unicode
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 
 
--- a/kallithea/tests/vcs/test_nodes.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_nodes.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,13 +1,9 @@
+import mimetypes
 import stat
-import mimetypes
 
 import pytest
 
-from kallithea.lib.vcs.nodes import DirNode
-from kallithea.lib.vcs.nodes import FileNode
-from kallithea.lib.vcs.nodes import Node
-from kallithea.lib.vcs.nodes import NodeError
-from kallithea.lib.vcs.nodes import NodeKind
+from kallithea.lib.vcs.nodes import DirNode, FileNode, Node, NodeError, NodeKind
 
 
 class TestNodeBasic(object):
--- a/kallithea/tests/vcs/test_repository.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_repository.py	Wed Aug 07 00:25:02 2019 +0200
@@ -2,11 +2,10 @@
 
 import pytest
 
+from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError
 from kallithea.lib.vcs.nodes import FileNode
-from kallithea.lib.vcs.exceptions import ChangesetDoesNotExistError
-
+from kallithea.tests.vcs import TEST_USER_CONFIG_FILE
 from kallithea.tests.vcs.base import _BackendTestMixin
-from kallithea.tests.vcs import TEST_USER_CONFIG_FILE
 
 
 class RepositoryBaseTest(_BackendTestMixin):
--- a/kallithea/tests/vcs/test_tags.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_tags.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,6 @@
 import pytest
 
-from kallithea.lib.vcs.exceptions import TagAlreadyExistError
-from kallithea.lib.vcs.exceptions import TagDoesNotExistError
-
+from kallithea.lib.vcs.exceptions import TagAlreadyExistError, TagDoesNotExistError
 from kallithea.tests.vcs.base import _BackendTestMixin
 
 
--- a/kallithea/tests/vcs/test_utils.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_utils.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,24 +1,18 @@
 # -*- coding: utf-8 -*-
 
+import datetime
 import os
-import mock
+import shutil
 import time
-import shutil
-import datetime
 
+import mock
 import pytest
 
-from kallithea.lib.vcs.utils.paths import get_dirs_for_path
-from kallithea.lib.vcs.utils.helpers import get_dict_for_attrs
-from kallithea.lib.vcs.utils.helpers import get_scm
-from kallithea.lib.vcs.utils.helpers import get_scms_for_path
-from kallithea.lib.vcs.utils.helpers import parse_changesets
-from kallithea.lib.vcs.utils.helpers import parse_datetime
+from kallithea.lib.vcs.exceptions import VCSError
 from kallithea.lib.vcs.utils import author_email, author_name
-from kallithea.lib.vcs.utils.paths import get_user_home
-from kallithea.lib.vcs.exceptions import VCSError
-
-from kallithea.tests.vcs.conf import TEST_HG_REPO, TEST_GIT_REPO, TESTS_TMP_PATH
+from kallithea.lib.vcs.utils.helpers import get_dict_for_attrs, get_scm, get_scms_for_path, parse_changesets, parse_datetime
+from kallithea.lib.vcs.utils.paths import get_dirs_for_path, get_user_home
+from kallithea.tests.vcs.conf import TEST_GIT_REPO, TEST_HG_REPO, TESTS_TMP_PATH
 
 
 class TestPaths(object):
--- a/kallithea/tests/vcs/test_vcs.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_vcs.py	Wed Aug 07 00:25:02 2019 +0200
@@ -4,10 +4,9 @@
 import pytest
 
 from kallithea.lib.utils2 import safe_str
-from kallithea.lib.vcs import VCSError, get_repo, get_backend
+from kallithea.lib.vcs import VCSError, get_backend, get_repo
 from kallithea.lib.vcs.backends.hg import MercurialRepository
-
-from kallithea.tests.vcs.conf import TEST_HG_REPO, TEST_GIT_REPO, TESTS_TMP_PATH
+from kallithea.tests.vcs.conf import TEST_GIT_REPO, TEST_HG_REPO, TESTS_TMP_PATH
 
 
 class TestVCS(object):
--- a/kallithea/tests/vcs/test_workdirs.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/test_workdirs.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,7 +3,6 @@
 import pytest
 
 from kallithea.lib.vcs.nodes import FileNode
-
 from kallithea.tests.vcs.base import _BackendTestMixin
 
 
--- a/kallithea/tests/vcs/utils.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/kallithea/tests/vcs/utils.py	Wed Aug 07 00:25:02 2019 +0200
@@ -4,7 +4,6 @@
 """
 import os
 import sys
-
 from subprocess import Popen
 
 
--- a/scripts/docs-headings.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/scripts/docs-headings.py	Wed Aug 07 00:25:02 2019 +0200
@@ -7,6 +7,7 @@
 import re
 import subprocess
 
+
 spaces = [
     (0, 1), # we assume this is a over-and-underlined header
     (2, 1),
--- a/scripts/generate-ini.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/scripts/generate-ini.py	Wed Aug 07 00:25:02 2019 +0200
@@ -7,6 +7,7 @@
 
 from kallithea.lib import inifile
 
+
 # files to be generated from the mako template
 ini_files = [
     ('development.ini',
--- a/scripts/logformat.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/scripts/logformat.py	Wed Aug 07 00:25:02 2019 +0200
@@ -3,6 +3,7 @@
 import re
 import sys
 
+
 logre = r'''
 (log\.(?:error|info|warning|debug)
 [(][ \n]*
--- a/scripts/shortlog.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/scripts/shortlog.py	Wed Aug 07 00:25:02 2019 +0200
@@ -8,8 +8,10 @@
 import argparse
 import os
 from collections import Counter
+
 import contributor_data
 
+
 def main():
 
     parser = argparse.ArgumentParser(description='Generate a list of committers and commit counts.')
--- a/scripts/update-copyrights.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/scripts/update-copyrights.py	Wed Aug 07 00:25:02 2019 +0200
@@ -41,6 +41,7 @@
 import os
 import re
 from collections import defaultdict
+
 import contributor_data
 
 
--- a/setup.py	Wed Aug 07 00:22:56 2019 +0200
+++ b/setup.py	Wed Aug 07 00:25:02 2019 +0200
@@ -1,8 +1,13 @@
 #!/usr/bin/env python2
 # -*- coding: utf-8 -*-
 import os
+import platform
 import sys
-import platform
+
+import setuptools
+# monkey patch setuptools to use distutils owner/group functionality
+from setuptools.command import sdist
+
 
 if sys.version_info < (2, 6) or sys.version_info >= (3,):
     raise Exception('Kallithea requires python 2.7')
@@ -110,10 +115,7 @@
     )
     long_description = description
 
-import setuptools
 
-# monkey patch setuptools to use distutils owner/group functionality
-from setuptools.command import sdist
 sdist_org = sdist.sdist
 class sdist_new(sdist_org):
     def initialize_options(self):