mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-08 17:46:09 -05:00
Hemna
d09a66006b
This patch adds the new APRSD Command Plugin architecture. All Comand plugins must implement the same object API, which includes plugin object is subclass of APRSDPluginBase version attribute command_regex attribute command method When an APRS command is detected, then the regex is run against the command. If the command_regex matches, then the plugin's command() method will be called. If the command() method returns a string, then that string is sent as a reply to the APRS caller. A new aprs.yml config section is added to support selecting which plugins to enable. If you want all plugins enabled, then omit "enabled_plugins" entirely from the aprs section of the config. To load custom plugins: 1) create a directory with an __init__.py file 2) Add a plugin.py file that contains your plugin Look at the exmaples directory for an example plugin.
115 lines
3.1 KiB
INI
115 lines
3.1 KiB
INI
[tox]
|
|
minversion = 2.9.0
|
|
skipdist = True
|
|
skip_missing_interpreters = true
|
|
envlist = py{27,36,37,38},pep8,fmt-check
|
|
|
|
# Activate isolated build environment. tox will use a virtual environment
|
|
# to build a source distribution from the source tree. For build tools and
|
|
# arguments use the pyproject.toml file as specified in PEP-517 and PEP-518.
|
|
isolated_build = true
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
# Use -bb to enable BytesWarnings as error to catch str/bytes misuse.
|
|
# Use -Werror to treat warnings as errors.
|
|
# {envpython} -bb -Werror -m pytest \
|
|
# --cov="{envsitepackagesdir}/aprsd" --cov-report=html --cov-report=term {posargs}
|
|
{envpython} -bb -m pytest {posargs}
|
|
|
|
[testenv:py27]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements-py2.txt
|
|
commands =
|
|
# Use -bb to enable BytesWarnings as error to catch str/bytes misuse.
|
|
# Use -Werror to treat warnings as errors.
|
|
# {envpython} -bb -Werror -m pytest \
|
|
# --cov="{envsitepackagesdir}/aprsd" --cov-report=html --cov-report=term {posargs}
|
|
{envpython} -bb -Werror -m pytest
|
|
|
|
[testenv:docs]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = sphinx-build -b html docs/source docs/html
|
|
|
|
[testenv:pep8-27]
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements-py2.txt
|
|
commands =
|
|
flake8 {posargs} aprsd
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8 {posargs} aprsd
|
|
|
|
[testenv:fast8]
|
|
basepython = python3
|
|
# Use same environment directory as pep8 env to save space and install time
|
|
envdir = {toxworkdir}/pep8
|
|
commands =
|
|
{toxinidir}/tools/fast8.sh
|
|
passenv = FAST8_NUM_COMMITS
|
|
|
|
[testenv:lint]
|
|
skip_install = true
|
|
deps =
|
|
-r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
flake8 aprsd
|
|
|
|
[flake8]
|
|
max-line-length = 99
|
|
show-source = True
|
|
ignore = E713,E501,W503
|
|
extend-ignore = E203,W503
|
|
extend-exclude = venv
|
|
exclude = .venv,.git,.tox,dist,doc,.ropeproject
|
|
|
|
# This is the configuration for the tox-gh-actions plugin for GitHub Actions
|
|
# https://github.com/ymyzk/tox-gh-actions
|
|
# This section is not needed if not using GitHub Actions for CI.
|
|
[gh-actions]
|
|
python =
|
|
2.7: py27, pep8-27
|
|
3.6: py36, pep8, fmt-check
|
|
3.7: py38, pep8, fmt-check
|
|
3.8: py38, pep8, fmt-check, type-check, docs
|
|
3.9: py39
|
|
|
|
[testenv:fmt]
|
|
# This will reformat your code to comply with pep8
|
|
# and standard formatting
|
|
skip_install = true
|
|
deps =
|
|
-r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
isort .
|
|
black .
|
|
|
|
[testenv:fmt-check]
|
|
# Runs a check only on code formatting.
|
|
# you can fix imports by running isort standalone
|
|
# you can fix code formatting by running black standalone
|
|
skip_install = true
|
|
deps =
|
|
-r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
isort --check-only .
|
|
black --check .
|
|
|
|
[testenv:type-check]
|
|
skip_install = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/dev-requirements.txt
|
|
commands =
|
|
mypy aprsd
|