diff options
author | Devaev Maxim <[email protected]> | 2019-05-01 09:08:16 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2019-05-01 09:08:16 +0300 |
commit | f1c86cca4fdd26aa83a239342d022152fc1f4b8a (patch) | |
tree | 369d7d8f7e64f6f2d6b0d4500a3f85bd89aab543 | |
parent | 374ff9cf9ea463b4d49227f89c5798d249330fd0 (diff) |
better setup.py
-rwxr-xr-x | setup.py | 36 | ||||
-rw-r--r-- | testenv/linters/vulture-wl.py | 7 | ||||
-rw-r--r-- | testenv/tox.ini | 12 |
3 files changed, 34 insertions, 21 deletions
@@ -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 |