Skip to content
Snippets Groups Projects
Commit 509d11b1 authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

Style fixes

parent 975bbd8e
No related branches found
No related tags found
No related merge requests found
Pipeline #64660 failed
......@@ -3,6 +3,7 @@
import os
import time
from importlib.metadata import version as package_version
import sphinx_rtd_theme
......
# the b variable from the last config file is available here
c = b + 1
b = b + 3
c = b + 1 # noqa: F821
b = b + 3 # noqa: F821
......@@ -9,17 +9,21 @@ import click
import expose.click
@click.group(cls=expose.click.AliasedGroup)
def main():
pass
@main.command()
def push():
click.echo("push was called")
@main.command()
def pop():
click.echo("pop was called")
if __name__ == "__main__":
main()
......@@ -7,14 +7,12 @@
import click
from expose.click import (
verbosity_option,
ConfigCommand,
ResourceOption,
)
from expose.click import ConfigCommand, ResourceOption, verbosity_option
from expose.logging import setup
logger = setup(__name__.split(".", 1)[0])
@click.command(
context_settings={
"show_default": True,
......@@ -42,8 +40,7 @@ Examples:
@click.version_option(package_name="expose")
@click.pass_context
def main(ctx, **_):
"""Tests our Click interfaces
"""
"""Tests our Click interfaces"""
# Add imports needed for your code here, and avoid spending time loading!
......@@ -54,5 +51,6 @@ def main(ctx, **_):
continue
click.echo(f"{k}: {v}")
if __name__ == "__main__":
main()
from expose.rc import UserDefaults
from expose.click import user_defaults_group
from expose.logging import setup
from expose.rc import UserDefaults
logger = setup(__name__.split(".", 1)[0])
rc = UserDefaults(".myapprc", logger=logger)
@user_defaults_group(logger=logger, config=rc)
def main(**kwargs):
'''Use this command to affect the global user defaults.'''
"""Use this command to affect the global user defaults."""
pass
if __name__ == "__main__":
main()
import logging
from expose.logging import setup
logger = setup(__name__.split(".", 1)[0], format="%(levelname)s: %(message)s")
logger.setLevel(logging.INFO)
logger.info("test message")
"""Helpers to build command-line interfaces (CLI) via :py:mod:`click`."""
import time
import functools
import logging
import time
import typing
import traceback
import functools
import configparser
import click
from click.core import ParameterSource
from .config import load
from .config import mod_to_context
from .config import resource_keys
from .config import load, mod_to_context, resource_keys
from .rc import UserDefaults
logger = logging.getLogger(__name__)
......@@ -237,7 +234,7 @@ will override the values of configuration files. You can run this command with
begin, dflt = "Required parameter", ""
else:
begin, dflt = (
f"Optional parameter",
"Optional parameter",
f" [default: {param.default}]",
)
......@@ -541,7 +538,6 @@ def user_defaults_group(
def group_decorator(
func: typing.Callable[..., typing.Any]
) -> typing.Callable[..., typing.Any]:
@click.group(cls=AliasedGroup)
@verbosity_option(logger=logger)
@functools.wraps(func)
......
......@@ -3,13 +3,14 @@
"""Functionality to implement python-based config file parsing and loading.
"""
import types
import pkgutil
import typing
import os.path
import logging
import os.path
import pathlib
from importlib.metadata import entry_points, EntryPoint
import pkgutil
import types
import typing
from importlib.metadata import EntryPoint, entry_points
logger = logging.getLogger(__name__)
......
""":py:class:`logging.Logger` setup and stream separation"""
import logging
import sys
import typing
import logging
# debug and info messages are written to sys.stdout
class _InfoFilter(logging.Filter):
......
......@@ -2,12 +2,12 @@
"""Implements a global configuration system setup and readout."""
import os
import configparser
import io
import logging
import os
import pathlib
import typing
import logging
import configparser
class UserDefaults(configparser.ConfigParser):
......@@ -76,16 +76,18 @@ class UserDefaults(configparser.ConfigParser):
"""Reads configuraiton file"""
if self.path.exists():
self.logger.debug(f"User configuration file exists, reading contents...")
self.logger.debug(
"User configuration file exists, reading contents..."
)
self.read_file(self.path.open("rt"))
else:
self.logger.debug(f"Initializing empty user configuration...")
self.logger.debug("Initializing empty user configuration...")
def write(self) -> None:
"""Stores any modifications done on the user configuration"""
if self.path.exists():
backup = pathlib.Path(str(self.path)+ "~")
backup = pathlib.Path(str(self.path) + "~")
self.logger.debug(f"Backing-up {str(self.path)} -> {str(backup)}")
self.path.rename(backup)
......
from setuptools import setup, find_packages
from setuptools import find_packages, setup
setup(
name="expose",
version=open("version.txt").read().rstrip(),
description="Configuration Support for Python Packages and CLIs",
url='http://gitlab.idiap.ch/bob/expose',
url="http://gitlab.idiap.ch/bob/expose",
license="BSD",
author='Andre Anjos',
author_email='andre.anjos@idiap.ch',
long_description=open('README.rst').read(),
author="Andre Anjos",
author_email="andre.anjos@idiap.ch",
long_description=open("README.rst").read(),
packages=find_packages(),
include_package_data=True,
zip_safe=True,
install_requires=['click >= 8'],
entry_points = {
install_requires=["click >= 8"],
entry_points={
# these are just test entry-points (not distributed)
"expose.test.config": [
"first = tests.data.basic_config",
......@@ -26,15 +26,15 @@ setup(
"complex-var = tests.data.complex:cplx",
"verbose-config = tests.data.verbose_config",
"error-config = tests.data.doesnt_exist",
]
},
]
},
classifiers=[
'Framework :: Bob',
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Topic :: Software Development :: Libraries :: Python Modules',
"Framework :: Bob",
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Libraries :: Python Modules",
],
)
import contextlib
import io
import pathlib
import warnings
import contextlib
import pytest
from pytest import fixture
from click.testing import CliRunner
from pytest import fixture
"""
......@@ -43,7 +43,6 @@ def pytest_addoption(parser) -> None:
class MyCliRunner(CliRunner):
def __init__(self, *args, in_pdb=False, **kwargs) -> None:
self._in_pdb = in_pdb
super().__init__(*args, **kwargs)
......
# the b variable from the last config file is available here
c = b + 1
b = b + 3
c = b + 1 # noqa: F821
b = b + 3 # noqa: F821
import time
import logging
import difflib
import logging
import click
from click.testing import CliRunner
from expose.click import (
verbosity_option,
AliasedGroup,
ConfigCommand,
ResourceOption,
AliasedGroup,
verbosity_option,
)
......@@ -109,9 +109,7 @@ def test_commands_with_config_3():
def _assert_config_dump(output, ref, ref_date):
today = time.strftime("%d/%m/%Y")
# uncomment below to re-write tests
# open(ref, 'wt').write(open('TEST_CONF').read())
with output.open("rt") as f, open(ref, "rt") as f2:
diff = difflib.ndiff(f.readlines(), f2.readlines())
important_diffs = [k for k in diff if k.startswith(("+", "-"))]
......
import os
import pytest
from expose.config import load, mod_to_context
......@@ -66,7 +64,7 @@ def test_config_with_entry_point():
def test_config_with_entry_point_file_missing():
with pytest.raises(ValueError):
c = load(["error-config"], entry_point_group="expose.test.config")
load(["error-config"], entry_point_group="expose.test.config")
def test_config_with_mixture(datadir):
......@@ -83,7 +81,7 @@ def test_config_with_mixture(datadir):
def test_config_not_found(datadir):
with pytest.raises(ValueError):
c = load([datadir / "basic_config.pz"])
load([datadir / "basic_config.pz"])
def test_config_load_attribute():
......
......@@ -2,9 +2,11 @@ import io
import logging
import click
from click.testing import CliRunner
import expose.logging
from expose.click import verbosity_option
......@@ -179,7 +181,7 @@ def test_logger_click_3x_verbose():
logger.error("error message")
runner = CliRunner()
result = runner.invoke(cli, 3*["--verbose"])
result = runner.invoke(cli, 3 * ["--verbose"])
assert result.exit_code == 0
lo.seek(0)
......@@ -210,7 +212,7 @@ def test_logger_click_3x_verb():
logger.error("error message")
runner = CliRunner()
result = runner.invoke(cli, 3*["--verb"])
result = runner.invoke(cli, 3 * ["--verb"])
assert result.exit_code == 0
lo.seek(0)
......
import os
import shutil
import filecmp
import logging
import os
import shutil
from click.testing import CliRunner
from expose.rc import UserDefaults
from expose.click import user_defaults_group
from expose.rc import UserDefaults
def _check_userdefaults_ex1_contents(rc):
......@@ -21,14 +21,14 @@ def _check_userdefaults_ex1_contents(rc):
assert rc["foo"]["blue_red"] == "blue,red"
assert rc.getint("foo", "integer") == 42
assert rc["foo"]["only_blue"] == "blue"
assert rc.getboolean("foo", "boolean") == True
assert rc.getboolean("foo", "boolean") is True
assert "bar" in rc
assert len(rc["bar"]) == 4 # includes default section entries
assert rc["bar"]["blue_yellow"] == "blue,yellow"
assert rc.getfloat("bar", "float") == 3.14
assert rc["bar"]["only_blue"] == "blue"
assert rc.getboolean("bar", "boolean") == False
assert rc.getboolean("bar", "boolean") is False
def test_rc_basic_loading(datadir):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment