sapling/hgext/logginghelper.py
Jun Wu 584656dff3 codemod: join the auto-formatter party
Summary:
Turned on the auto formatter. Ran `arc lint --apply-patches --take BLACK **/*.py`.
Then run `arc lint` again so some other autofixers like spellchecker etc. looked
at the code base. Manually accept the changes whenever they make sense, or use
a workaround (ex. changing "dict()" to "dict constructor") where autofix is false
positive. Disabled linters on files that are hard (i18n/polib.py) to fix, or less
interesting to fix (hgsubversion tests), or cannot be fixed without breaking
OSS build (FBPYTHON4).

Conflicted linters (test-check-module-imports.t, part of test-check-code.t,
test-check-pyflakes.t) are removed or disabled.

Duplicated linters (test-check-pyflakes.t, test-check-pylint.t) are removed.

An issue of the auto-formatter is lines are no longer guarnateed to be <= 80
chars. But that seems less important comparing with the benefit auto-formatter
provides.

As we're here, also remove test-check-py3-compat.t, as it is currently broken
if `PYTHON3=/bin/python3` is set.

Reviewed By: wez, phillco, simpkins, pkaush, singhsrb

Differential Revision: D8173629

fbshipit-source-id: 90e248ae0c5e6eaadbe25520a6ee42d32005621b
2018-05-25 22:17:29 -07:00

66 lines
1.8 KiB
Python

# reporootlog.py - log the repo root
#
# Copyright 2016 Facebook, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""this extension logs different pieces of information that will be used
by SCM wrappers
::
[logging]
# list of config options to log
configoptions = section1.option1,section2.option2
"""
import os
from mercurial import extensions, localrepo, registrar
configtable = {}
configitem = registrar.configitem(configtable)
configitem("logging", "configoptions", default=[])
def _localrepoinit(orig, self, baseui, path=None, create=False):
orig(self, baseui, path, create)
reponame = self.ui.config("paths", "default")
if reponame:
reponame = os.path.basename(reponame)
configoptstolog = self.ui.configlist("logging", "configoptions")
kwargs = {"repo": reponame}
# The configs being read here are user defined, so we need to suppress
# warnings telling us to register them.
with self.ui.configoverride({("devel", "all-warnings"): False}):
for option in configoptstolog:
split = option.split(".")
if len(split) != 2:
continue
section, name = split
value = self.ui.config(section, name)
if value is not None:
kwargs[name] = value
obsstore_size = 0
try:
obsstore_size = self.svfs.stat("obsstore").st_size
except Exception:
# just ignore exception, it's better than failing the whole command
pass
kwargs["obsstore_size"] = obsstore_size
self.ui.log(
"logginghelper", "", **kwargs # ui.log requires a format string as args[0].
)
def uisetup(ui):
extensions.wrapfunction(localrepo.localrepository, "__init__", _localrepoinit)