mirror of
https://github.com/hemna/aprsd-slack-plugin.git
synced 2026-01-18 11:35:30 -05:00
switch to pyproject.toml and update tox.ini
This commit is contained in:
parent
849639767d
commit
b77e01d9e9
@ -1,23 +1,29 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.4.0
|
||||
rev: v6.0.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-added-large-files
|
||||
- id: check-json
|
||||
- id: detect-private-key
|
||||
- id: check-merge-conflict
|
||||
- id: check-case-conflict
|
||||
- id: check-docstring-first
|
||||
- id: check-builtin-literals
|
||||
- id: check-illegal-windows-names
|
||||
|
||||
- repo: https://github.com/asottile/setup-cfg-fmt
|
||||
rev: v1.16.0
|
||||
rev: v2.7.0
|
||||
hooks:
|
||||
- id: setup-cfg-fmt
|
||||
|
||||
- repo: https://github.com/dizballanze/gray
|
||||
rev: v0.10.1
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.14.10
|
||||
hooks:
|
||||
- id: gray
|
||||
###### Relevant part below ######
|
||||
- id: ruff-check
|
||||
types_or: [python, pyi]
|
||||
args: ["check", "--select", "I", "--fix"]
|
||||
###### Relevant part above ######
|
||||
- id: ruff-format
|
||||
types_or: [python, pyi]
|
||||
|
||||
@ -10,6 +10,13 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
try:
|
||||
from importlib.metadata import PackageNotFoundError, version
|
||||
except ImportError:
|
||||
# Python < 3.8
|
||||
from importlib_metadata import PackageNotFoundError, version
|
||||
|
||||
__version__ = pbr.version.VersionInfo("aprsd_slack_plugin").version_string()
|
||||
try:
|
||||
__version__ = version("aprsd_slack_plugin")
|
||||
except PackageNotFoundError:
|
||||
__version__ = "unknown"
|
||||
|
||||
@ -2,11 +2,53 @@
|
||||
requires = ["setuptools>=46.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.black]
|
||||
# Use the more relaxed max line length permitted in PEP8.
|
||||
line-length = 99
|
||||
target-version = ["py36", "py37", "py38"]
|
||||
# black will automatically exclude all files listed in .gitignore
|
||||
[project]
|
||||
name = "aprsd_slack_plugin"
|
||||
version = "1.2.0"
|
||||
description = "Amateur radio APRS daemon which listens for messages and responds"
|
||||
readme = "README.rst"
|
||||
requires-python = ">=3.11"
|
||||
license = {file = "LICENSE.txt"}
|
||||
authors = [
|
||||
{name = "Walter A. Boring IV", email = "something@somewhere.com"}
|
||||
]
|
||||
classifiers = [
|
||||
"Topic :: Communications :: Ham Radio",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
]
|
||||
dependencies = [
|
||||
"slack_sdk>=3.0",
|
||||
"slackeventsapi>=2.1.0",
|
||||
"aprsd",
|
||||
"oslo_config",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"tox",
|
||||
"pytest",
|
||||
"pytest-cov",
|
||||
"mypy",
|
||||
"flake8",
|
||||
"pep8-naming",
|
||||
"black",
|
||||
"isort",
|
||||
"sphinx",
|
||||
"pre-commit",
|
||||
"pip-tools",
|
||||
]
|
||||
|
||||
[project.entry-points]
|
||||
"oslo.config.opts" = { "aprsd_slack_plugin.conf" = "aprsd_slack_plugin.conf.opts:list_opts" }
|
||||
|
||||
[tool.setuptools]
|
||||
packages = ["aprsd_slack_plugin"]
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
aprsd_slack_plugin = ["py.typed"]
|
||||
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
@ -20,3 +62,7 @@ skip_gitignore = true
|
||||
|
||||
[tool.coverage.run]
|
||||
branch = true
|
||||
|
||||
[tool.mypy]
|
||||
ignore_missing_imports = true
|
||||
strict = true
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
tox
|
||||
pytest
|
||||
pytest-cov
|
||||
mypy
|
||||
flake8
|
||||
pep8-naming
|
||||
black
|
||||
isort
|
||||
pbr
|
||||
Sphinx
|
||||
aprsd
|
||||
pre-commit
|
||||
pip-tools
|
||||
@ -1,76 +0,0 @@
|
||||
#
|
||||
# This file is autogenerated by pip-compile with Python 3.9
|
||||
# by the following command:
|
||||
#
|
||||
# pip-compile --annotation-style=line --resolver=backtracking requirements-dev.in
|
||||
#
|
||||
alabaster==0.7.13 # via sphinx
|
||||
aprsd==1.0.0 # via -r requirements-dev.in
|
||||
babel==2.12.1 # via sphinx
|
||||
black==23.3.0 # via -r requirements-dev.in
|
||||
build==0.10.0 # via pip-tools
|
||||
cachetools==5.3.1 # via tox
|
||||
certifi==2023.5.7 # via requests
|
||||
cfgv==3.3.1 # via pre-commit
|
||||
chardet==5.1.0 # via tox
|
||||
charset-normalizer==3.2.0 # via requests
|
||||
click==8.1.4 # via aprsd, black, click-completion, pip-tools
|
||||
click-completion==0.5.2 # via aprsd
|
||||
colorama==0.4.6 # via tox
|
||||
coverage[toml]==7.2.7 # via pytest-cov
|
||||
distlib==0.3.6 # via virtualenv
|
||||
docutils==0.20.1 # via sphinx
|
||||
exceptiongroup==1.1.2 # via pytest
|
||||
filelock==3.12.2 # via tox, virtualenv
|
||||
flake8==6.0.0 # via -r requirements-dev.in, pep8-naming
|
||||
identify==2.5.24 # via pre-commit
|
||||
idna==3.4 # via requests
|
||||
imagesize==1.4.1 # via sphinx
|
||||
imapclient==2.3.1 # via aprsd
|
||||
importlib-metadata==6.8.0 # via sphinx
|
||||
iniconfig==2.0.0 # via pytest
|
||||
isort==5.12.0 # via -r requirements-dev.in
|
||||
jinja2==3.1.2 # via click-completion, sphinx
|
||||
markupsafe==2.1.3 # via jinja2
|
||||
mccabe==0.7.0 # via flake8
|
||||
mypy==1.4.1 # via -r requirements-dev.in
|
||||
mypy-extensions==1.0.0 # via black, mypy
|
||||
nodeenv==1.8.0 # via pre-commit
|
||||
packaging==23.1 # via black, build, pyproject-api, pytest, sphinx, tox
|
||||
pathspec==0.11.1 # via black
|
||||
pbr==5.11.1 # via -r requirements-dev.in, aprsd
|
||||
pep8-naming==0.13.3 # via -r requirements-dev.in
|
||||
pip-tools==6.14.0 # via -r requirements-dev.in
|
||||
platformdirs==3.8.1 # via black, tox, virtualenv
|
||||
pluggy==1.2.0 # via aprsd, pytest, tox
|
||||
pre-commit==3.3.3 # via -r requirements-dev.in
|
||||
pycodestyle==2.10.0 # via flake8
|
||||
pyflakes==3.0.1 # via flake8
|
||||
pygments==2.15.1 # via sphinx
|
||||
pyproject-api==1.5.3 # via tox
|
||||
pyproject-hooks==1.0.0 # via build
|
||||
pytest==7.4.0 # via -r requirements-dev.in, pytest-cov
|
||||
pytest-cov==4.1.0 # via -r requirements-dev.in
|
||||
pyyaml==6.0 # via aprsd, pre-commit
|
||||
requests==2.31.0 # via aprsd, sphinx
|
||||
shellingham==1.5.0.post1 # via click-completion
|
||||
six==1.16.0 # via aprsd, click-completion, imapclient
|
||||
snowballstemmer==2.2.0 # via sphinx
|
||||
sphinx==7.0.1 # via -r requirements-dev.in
|
||||
sphinxcontrib-applehelp==1.0.4 # via sphinx
|
||||
sphinxcontrib-devhelp==1.0.2 # via sphinx
|
||||
sphinxcontrib-htmlhelp==2.0.1 # via sphinx
|
||||
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||
sphinxcontrib-qthelp==1.0.3 # via sphinx
|
||||
sphinxcontrib-serializinghtml==1.1.5 # via sphinx
|
||||
tomli==2.0.1 # via black, build, coverage, mypy, pip-tools, pyproject-api, pyproject-hooks, pytest, tox
|
||||
tox==4.6.4 # via -r requirements-dev.in
|
||||
typing-extensions==4.7.1 # via black, mypy
|
||||
urllib3==2.0.3 # via requests
|
||||
virtualenv==20.23.1 # via pre-commit, tox
|
||||
wheel==0.40.0 # via pip-tools
|
||||
zipp==3.16.0 # via importlib-metadata
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# pip
|
||||
# setuptools
|
||||
@ -1,5 +0,0 @@
|
||||
pbr
|
||||
slack_sdk>=3.0
|
||||
slackeventsapi>=2.1.0
|
||||
aprsd
|
||||
oslo_config
|
||||
42
setup.cfg
42
setup.cfg
@ -1,42 +0,0 @@
|
||||
[metadata]
|
||||
name = aprsd_slack_plugin
|
||||
long_description = file: README.rst
|
||||
long_description_content_type = text/x-rst
|
||||
author = Walter A. Boring IV
|
||||
author_email = something@somewhere.com
|
||||
license_file = LICENSE.txt
|
||||
classifier =
|
||||
Topic :: Communications :: Ham Radio
|
||||
Operating System :: POSIX :: Linux
|
||||
Programming Language :: Python
|
||||
Programming Language :: Python :: 3.6
|
||||
Programming Language :: Python :: 3.7
|
||||
Programming Language :: Python :: 3.8
|
||||
Programming Language :: Python :: 3.9
|
||||
description_file =
|
||||
README.rst
|
||||
summary = Amateur radio APRS daemon which listens for messages and responds
|
||||
|
||||
[options.entry_points]
|
||||
oslo.config.opts =
|
||||
aprsd_slack_plugin.conf = aprsd_slack_plugin.conf.opts:list_opts
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
pbr.hooks.setup_hook
|
||||
|
||||
[files]
|
||||
packages =
|
||||
aprsd_slack_plugin
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = doc/source
|
||||
build-dir = doc/build
|
||||
all_files = 1
|
||||
|
||||
[upload_sphinx]
|
||||
upload-dir = doc/build/html
|
||||
|
||||
[mypy]
|
||||
ignore_missing_imports = True
|
||||
strict = True
|
||||
15
setup.py
15
setup.py
@ -12,15 +12,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
||||
import setuptools
|
||||
# Configuration is now in pyproject.toml
|
||||
# This file is kept for compatibility with tools that expect setup.py
|
||||
from setuptools import setup
|
||||
|
||||
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
||||
# setuptools if some other modules registered functions in `atexit`.
|
||||
# solution from: http://bugs.python.org/issue15881#msg170215
|
||||
try:
|
||||
import multiprocessing # noqa
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
setuptools.setup(setup_requires=["pbr"], pbr=True)
|
||||
setup()
|
||||
|
||||
44
tox.ini
44
tox.ini
@ -1,25 +1,18 @@
|
||||
[flake8]
|
||||
# Use the more relaxed max line length permitted in PEP8.
|
||||
max-line-length = 99
|
||||
# This ignore is required by black.
|
||||
extend-ignore = E203
|
||||
extend-exclude =
|
||||
venv
|
||||
|
||||
# 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 =
|
||||
3.9: py39
|
||||
3.11: py311
|
||||
|
||||
[tox]
|
||||
# These are the default environments that will be run
|
||||
# when ``tox`` is run without arguments.
|
||||
envlist =
|
||||
lint
|
||||
py{39}
|
||||
py{311}
|
||||
skip_missing_interpreters = true
|
||||
requires = tox-uv
|
||||
|
||||
# Activate isolated build environment. tox will use a virtual environment
|
||||
# to build a source distribution from the source tree. For build tools and
|
||||
@ -27,45 +20,46 @@ skip_missing_interpreters = true
|
||||
isolated_build = true
|
||||
|
||||
[testenv]
|
||||
package = editable
|
||||
deps =
|
||||
-r{toxinidir}/requirements.txt
|
||||
-r{toxinidir}/requirements-dev.txt
|
||||
pytest
|
||||
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 {posargs}
|
||||
uv run pytest tests {posargs}
|
||||
|
||||
[testenv:type-check]
|
||||
skip_install = true
|
||||
deps =
|
||||
-r{toxinidir}/requirements.txt
|
||||
-r{toxinidir}/requirements-dev.txt
|
||||
pytest
|
||||
mypy
|
||||
commands =
|
||||
mypy src tests
|
||||
uv run mypy src tests
|
||||
|
||||
[testenv:lint]
|
||||
skip_install = true
|
||||
deps =
|
||||
-r{toxinidir}/requirements-dev.txt
|
||||
pytest
|
||||
ruff
|
||||
commands =
|
||||
flake8 aprsd_slack_plugin tests
|
||||
uv run ruff check aprsd_slack_plugin tests
|
||||
|
||||
[testenv:docs]
|
||||
skip_install = true
|
||||
deps =
|
||||
-r{toxinidir}/requirements.txt
|
||||
-r{toxinidir}/requirements-dev.txt
|
||||
pytest
|
||||
sphinx
|
||||
changedir = {toxinidir}/docs
|
||||
commands =
|
||||
{envpython} clean_docs.py
|
||||
sphinx-apidoc --force --output-dir apidoc {toxinidir}/aprsd_slack_plugin
|
||||
sphinx-build -a -W . _build
|
||||
uv run python clean_docs.py
|
||||
uv run sphinx-apidoc --force --output-dir apidoc {toxinidir}/aprsd_slack_plugin
|
||||
uv run sphinx-build -a -W . _build
|
||||
|
||||
[testenv:licenses]
|
||||
skip_install = true
|
||||
recreate = true
|
||||
deps =
|
||||
-r{toxinidir}/requirements.txt
|
||||
pytest
|
||||
pip-licenses
|
||||
commands =
|
||||
pip-licenses {posargs}
|
||||
uv run pip-licenses {posargs}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user