From f1c86cca4fdd26aa83a239342d022152fc1f4b8a Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Wed, 1 May 2019 09:08:16 +0300 Subject: better setup.py --- setup.py | 36 ++++++++++++++++++++---------------- testenv/linters/vulture-wl.py | 7 ++++++- testenv/tox.ini | 12 ++++++++---- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/setup.py b/setup.py index a3a84994..83605e49 100755 --- a/setup.py +++ b/setup.py @@ -24,16 +24,27 @@ import os import textwrap +import setuptools.command.easy_install from setuptools import setup -from setuptools.command.easy_install import ScriptWriter # ===== -def main() -> None: +class _ScriptWriter(setuptools.command.easy_install.ScriptWriter): + template = textwrap.dedent(""" + # EASY-INSTALL-ENTRY-SCRIPT: {spec},{group},{name} + + __requires__ = "{spec}" + + from {module} import main + + if __name__ == "__main__": + main() + """).strip() + + @classmethod def get_args(cls, dist, header=None): # type: ignore if header is None: header = cls.get_header() - spec = str(dist.as_requirement()) for group_type in ["console", "gui"]: group = group_type + "_scripts" @@ -45,21 +56,14 @@ def main() -> None: name=name, module=ep.module_name, ) - args = cls._get_script_args(group_type, name, header, script_text) - for res in args: - yield res - - ScriptWriter.get_args = classmethod(get_args) - ScriptWriter.template = textwrap.dedent(""" - # EASY-INSTALL-ENTRY-SCRIPT: {spec},{group},{name} + yield from cls._get_script_args(group_type, name, header, script_text) - __requires__ = "{spec}" - - from {module} import main - if __name__ == "__main__": - main() - """).strip() +# ===== +def main() -> None: + setuptools.command.easy_install.ScriptWriter = _ScriptWriter + setuptools.command.easy_install.get_script_args = _ScriptWriter.get_script_args + setuptools.command.easy_install.get_script_header = _ScriptWriter.get_script_header setup( name="kvmd", diff --git a/testenv/linters/vulture-wl.py b/testenv/linters/vulture-wl.py index 0933cb62..550190f5 100644 --- a/testenv/linters/vulture-wl.py +++ b/testenv/linters/vulture-wl.py @@ -3,8 +3,13 @@ _MassStorageDeviceInfo.product _MassStorageDeviceInfo.real _MassStorageDeviceInfo.hw _MassStorageDeviceInfo.image + +IpmiServer.handle_raw_request + fake_rpi.RPi.GPIO + _KeyMapping.kvmd_code _KeyMapping.arduino_hid_key _KeyMapping.web_key -IpmiServer.handle_raw_request + +_ScriptWriter.get_args diff --git a/testenv/tox.ini b/testenv/tox.ini index b63b5071..08d4d905 100644 --- a/testenv/tox.ini +++ b/testenv/tox.ini @@ -8,14 +8,16 @@ sitepackages = true changedir = /src [testenv:flake8] -commands = flake8 --config=testenv/linters/flake8.ini kvmd genmap.py testenv/tests +whitelist_externals = bash +commands = bash -c 'flake8 --config=testenv/linters/flake8.ini kvmd testenv/tests *.py' deps = flake8 flake8-double-quotes -rrequirements.txt [testenv:pylint] -commands = pylint --rcfile=testenv/linters/pylint.ini --output-format=colorized --reports=no kvmd genmap.py testenv/tests +whitelist_externals = bash +commands = bash -c 'pylint --rcfile=testenv/linters/pylint.ini --output-format=colorized --reports=no kvmd testenv/tests *.py' deps = pylint pytest @@ -24,13 +26,15 @@ deps = -rrequirements.txt [testenv:mypy] -commands = mypy --config-file=testenv/linters/mypy.ini --cache-dir=testenv/.mypy_cache kvmd genmap.py testenv/tests +whitelist_externals = bash +commands = bash -c 'mypy --config-file=testenv/linters/mypy.ini --cache-dir=testenv/.mypy_cache kvmd testenv/tests *.py' deps = mypy -rrequirements.txt [testenv:vulture] -commands = vulture --ignore-names=_format_P,Plugin --ignore-decorators=@_exposed,@_system_task,@pytest.fixture kvmd genmap.py testenv/tests testenv/linters/vulture-wl.py +whitelist_externals = bash +commands = bash -c 'vulture --ignore-names=_format_P,Plugin --ignore-decorators=@_exposed,@_system_task,@pytest.fixture kvmd testenv/tests *.py testenv/linters/vulture-wl.py' deps = vulture -rrequirements.txt -- cgit v1.2.3