mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-21 23:55:17 -05:00
Compare commits
3 Commits
4d1dfadbde
...
fa2d2d965d
Author | SHA1 | Date | |
---|---|---|---|
fa2d2d965d | |||
2abf8bc750 | |||
f15974131c |
@ -1,6 +1,8 @@
|
|||||||
CHANGES
|
CHANGES
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
* Put an upper bound on the QueueHandler queue
|
||||||
|
|
||||||
v3.4.0
|
v3.4.0
|
||||||
------
|
------
|
||||||
|
|
||||||
|
11
Makefile
11
Makefile
@ -17,7 +17,7 @@ Makefile.venv:
|
|||||||
help: # Help for the Makefile
|
help: # Help for the Makefile
|
||||||
@egrep -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
@egrep -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
||||||
|
|
||||||
dev: REQUIREMENTS_TXT = requirements.txt dev-requirements.txt
|
dev: REQUIREMENTS_TXT = requirements.txt requirements-dev.txt
|
||||||
dev: venv ## Create a python virtual environment for development of aprsd
|
dev: venv ## Create a python virtual environment for development of aprsd
|
||||||
|
|
||||||
run: venv ## Create a virtual environment for running aprsd commands
|
run: venv ## Create a virtual environment for running aprsd commands
|
||||||
@ -39,7 +39,6 @@ clean-build: ## remove build artifacts
|
|||||||
clean-pyc: ## remove Python file artifacts
|
clean-pyc: ## remove Python file artifacts
|
||||||
find . -name '*.pyc' -exec rm -f {} +
|
find . -name '*.pyc' -exec rm -f {} +
|
||||||
find . -name '*.pyo' -exec rm -f {} +
|
find . -name '*.pyo' -exec rm -f {} +
|
||||||
find . -name '*~' -exec rm -f {} +
|
|
||||||
find . -name '__pycache__' -exec rm -fr {} +
|
find . -name '__pycache__' -exec rm -fr {} +
|
||||||
|
|
||||||
clean-test: ## remove test and coverage artifacts
|
clean-test: ## remove test and coverage artifacts
|
||||||
@ -57,7 +56,7 @@ test: dev ## Run all the tox tests
|
|||||||
|
|
||||||
build: test ## Make the build artifact prior to doing an upload
|
build: test ## Make the build artifact prior to doing an upload
|
||||||
$(VENV)/pip install twine
|
$(VENV)/pip install twine
|
||||||
$(VENV)/python3 setup.py sdist bdist_wheel
|
$(VENV)/python3 -m build
|
||||||
$(VENV)/twine check dist/*
|
$(VENV)/twine check dist/*
|
||||||
|
|
||||||
upload: build ## Upload a new version of the plugin
|
upload: build ## Upload a new version of the plugin
|
||||||
@ -81,8 +80,8 @@ docker-dev: test ## Make a development docker container tagged with hemna6969/a
|
|||||||
|
|
||||||
update-requirements: dev ## Update the requirements.txt and dev-requirements.txt files
|
update-requirements: dev ## Update the requirements.txt and dev-requirements.txt files
|
||||||
rm requirements.txt
|
rm requirements.txt
|
||||||
rm dev-requirements.txt
|
rm requirements-dev.txt
|
||||||
touch requirements.txt
|
touch requirements.txt
|
||||||
touch dev-requirements.txt
|
touch requirements-dev.txt
|
||||||
$(VENV)/pip-compile --resolver backtracking --annotation-style=line requirements.in
|
$(VENV)/pip-compile --resolver backtracking --annotation-style=line requirements.in
|
||||||
$(VENV)/pip-compile --resolver backtracking --annotation-style=line dev-requirements.in
|
$(VENV)/pip-compile --resolver backtracking --annotation-style=line requirements-dev.in
|
||||||
|
@ -10,7 +10,10 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import pbr.version
|
from importlib.metadata import PackageNotFoundError, version
|
||||||
|
|
||||||
|
|
||||||
__version__ = pbr.version.VersionInfo("aprsd").version_string()
|
try:
|
||||||
|
__version__ = version("aprsd")
|
||||||
|
except PackageNotFoundError:
|
||||||
|
pass
|
||||||
|
@ -1,209 +0,0 @@
|
|||||||
#
|
|
||||||
# This file is autogenerated by pip-compile with Python 3.10
|
|
||||||
# by the following command:
|
|
||||||
#
|
|
||||||
# pip-compile --annotation-style=line dev-requirements.in
|
|
||||||
#
|
|
||||||
add-trailing-comma==3.1.0
|
|
||||||
# via gray
|
|
||||||
alabaster==0.7.16
|
|
||||||
# via sphinx
|
|
||||||
autoflake==1.5.3
|
|
||||||
# via gray
|
|
||||||
babel==2.14.0
|
|
||||||
# via sphinx
|
|
||||||
black==24.4.0
|
|
||||||
# via gray
|
|
||||||
build==1.2.1
|
|
||||||
# via pip-tools
|
|
||||||
cachetools==5.3.3
|
|
||||||
# via tox
|
|
||||||
certifi==2024.2.2
|
|
||||||
# via requests
|
|
||||||
cfgv==3.4.0
|
|
||||||
# via pre-commit
|
|
||||||
chardet==5.2.0
|
|
||||||
# via tox
|
|
||||||
charset-normalizer==3.3.2
|
|
||||||
# via requests
|
|
||||||
click==8.1.7
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# fixit
|
|
||||||
# moreorless
|
|
||||||
# pip-tools
|
|
||||||
colorama==0.4.6
|
|
||||||
# via tox
|
|
||||||
commonmark==0.9.1
|
|
||||||
# via rich
|
|
||||||
configargparse==1.7
|
|
||||||
# via gray
|
|
||||||
coverage[toml]==7.5.0
|
|
||||||
# via pytest-cov
|
|
||||||
distlib==0.3.8
|
|
||||||
# via virtualenv
|
|
||||||
docutils==0.21.2
|
|
||||||
# via sphinx
|
|
||||||
exceptiongroup==1.2.1
|
|
||||||
# via pytest
|
|
||||||
filelock==3.13.4
|
|
||||||
# via
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
fixit==2.1.0
|
|
||||||
# via gray
|
|
||||||
flake8==7.0.0
|
|
||||||
# via
|
|
||||||
# -r dev-requirements.in
|
|
||||||
# pep8-naming
|
|
||||||
gray==0.14.0
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
identify==2.5.36
|
|
||||||
# via pre-commit
|
|
||||||
idna==3.7
|
|
||||||
# via requests
|
|
||||||
imagesize==1.4.1
|
|
||||||
# via sphinx
|
|
||||||
iniconfig==2.0.0
|
|
||||||
# via pytest
|
|
||||||
isort==5.13.2
|
|
||||||
# via
|
|
||||||
# -r dev-requirements.in
|
|
||||||
# gray
|
|
||||||
jinja2==3.1.4
|
|
||||||
# via sphinx
|
|
||||||
libcst==1.3.1
|
|
||||||
# via fixit
|
|
||||||
markupsafe==2.1.5
|
|
||||||
# via jinja2
|
|
||||||
mccabe==0.7.0
|
|
||||||
# via flake8
|
|
||||||
moreorless==0.4.0
|
|
||||||
# via fixit
|
|
||||||
mypy==1.9.0
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
mypy-extensions==1.0.0
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# mypy
|
|
||||||
nodeenv==1.8.0
|
|
||||||
# via pre-commit
|
|
||||||
packaging==24.0
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# build
|
|
||||||
# fixit
|
|
||||||
# pyproject-api
|
|
||||||
# pytest
|
|
||||||
# sphinx
|
|
||||||
# tox
|
|
||||||
pathspec==0.12.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# trailrunner
|
|
||||||
pep8-naming==0.13.3
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
pip-tools==7.4.1
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
platformdirs==4.2.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# tox
|
|
||||||
# virtualenv
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via
|
|
||||||
# pytest
|
|
||||||
# tox
|
|
||||||
pre-commit==3.7.0
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
pycodestyle==2.11.1
|
|
||||||
# via flake8
|
|
||||||
pyflakes==3.2.0
|
|
||||||
# via
|
|
||||||
# autoflake
|
|
||||||
# flake8
|
|
||||||
pygments==2.17.2
|
|
||||||
# via
|
|
||||||
# rich
|
|
||||||
# sphinx
|
|
||||||
pyproject-api==1.6.1
|
|
||||||
# via tox
|
|
||||||
pyproject-hooks==1.0.0
|
|
||||||
# via
|
|
||||||
# build
|
|
||||||
# pip-tools
|
|
||||||
pytest==8.1.1
|
|
||||||
# via
|
|
||||||
# -r dev-requirements.in
|
|
||||||
# pytest-cov
|
|
||||||
pytest-cov==5.0.0
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
pyupgrade==3.15.2
|
|
||||||
# via gray
|
|
||||||
pyyaml==6.0.1
|
|
||||||
# via
|
|
||||||
# libcst
|
|
||||||
# pre-commit
|
|
||||||
requests==2.31.0
|
|
||||||
# via sphinx
|
|
||||||
rich==12.6.0
|
|
||||||
# via gray
|
|
||||||
snowballstemmer==2.2.0
|
|
||||||
# via sphinx
|
|
||||||
sphinx==7.3.7
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
sphinxcontrib-applehelp==1.0.8
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-devhelp==1.0.6
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-htmlhelp==2.0.5
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-jsmath==1.0.1
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-qthelp==1.0.7
|
|
||||||
# via sphinx
|
|
||||||
sphinxcontrib-serializinghtml==1.1.10
|
|
||||||
# via sphinx
|
|
||||||
tokenize-rt==5.2.0
|
|
||||||
# via
|
|
||||||
# add-trailing-comma
|
|
||||||
# pyupgrade
|
|
||||||
toml==0.10.2
|
|
||||||
# via autoflake
|
|
||||||
tomli==2.0.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# build
|
|
||||||
# coverage
|
|
||||||
# fixit
|
|
||||||
# mypy
|
|
||||||
# pip-tools
|
|
||||||
# pyproject-api
|
|
||||||
# pyproject-hooks
|
|
||||||
# pytest
|
|
||||||
# sphinx
|
|
||||||
# tox
|
|
||||||
tox==4.14.2
|
|
||||||
# via -r dev-requirements.in
|
|
||||||
trailrunner==1.4.0
|
|
||||||
# via fixit
|
|
||||||
typing-extensions==4.11.0
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# mypy
|
|
||||||
unify==0.5
|
|
||||||
# via gray
|
|
||||||
untokenize==0.1.1
|
|
||||||
# via unify
|
|
||||||
urllib3==2.2.1
|
|
||||||
# via requests
|
|
||||||
virtualenv==20.26.0
|
|
||||||
# via
|
|
||||||
# pre-commit
|
|
||||||
# tox
|
|
||||||
wheel==0.43.0
|
|
||||||
# via pip-tools
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
|
||||||
# pip
|
|
||||||
# setuptools
|
|
161
pyproject.toml
161
pyproject.toml
@ -1,5 +1,162 @@
|
|||||||
|
[project]
|
||||||
|
|
||||||
|
# This is the name of your project. The first time you publish this
|
||||||
|
# package, this name will be registered for you. It will determine how
|
||||||
|
# users can install this project, e.g.:
|
||||||
|
#
|
||||||
|
# $ pip install sampleproject
|
||||||
|
#
|
||||||
|
# And where it will live on PyPI: https://pypi.org/project/sampleproject/
|
||||||
|
#
|
||||||
|
# There are some restrictions on what makes a valid project name
|
||||||
|
# specification here:
|
||||||
|
# https://packaging.python.org/specifications/core-metadata/#name
|
||||||
|
name = "aprsd"
|
||||||
|
description = "APRSd is a APRS-IS server that can be used to connect to APRS-IS and send and receive APRS packets."
|
||||||
|
|
||||||
|
# Specify which Python versions you support. In contrast to the
|
||||||
|
# 'Programming Language' classifiers in this file, 'pip install' will check this
|
||||||
|
# and refuse to install the project if the version does not match. See
|
||||||
|
# https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires
|
||||||
|
requires-python = ">=3.8"
|
||||||
|
|
||||||
|
dynamic = ["version", "dependencies", "optional-dependencies"]
|
||||||
|
|
||||||
|
# This is an optional longer description of your project that represents
|
||||||
|
# the body of text which users will see when they visit PyPI.
|
||||||
|
#
|
||||||
|
# Often, this is the same as your README, so you can just read it in from
|
||||||
|
# that file directly.
|
||||||
|
#
|
||||||
|
# This field corresponds to the "Description" metadata field:
|
||||||
|
# https://packaging.python.org/specifications/core-metadata/#description-optional
|
||||||
|
readme = {file = "README.rst", content-type = "text/x-rst"}
|
||||||
|
|
||||||
|
|
||||||
|
# This is either text indicating the license for the distribution, or a file
|
||||||
|
# that contains the license.
|
||||||
|
# https://packaging.python.org/en/latest/specifications/core-metadata/#license
|
||||||
|
license = {file = "LICENSE"}
|
||||||
|
|
||||||
|
# This should be your name or the name of the organization who originally
|
||||||
|
# authored the project, and a valid email address corresponding to the name
|
||||||
|
# listed.
|
||||||
|
authors = [
|
||||||
|
{name = "Craig Lamparter", email = "craig@craiger.org"},
|
||||||
|
{name = "Walter A. Boring IV", email = "waboring@hemna.com"},
|
||||||
|
{name = "Emre Saglam", email = "emresaglam@gmail.com"},
|
||||||
|
{name = "Jason Martin", email= "jhmartin@toger.us"},
|
||||||
|
{name = "John", email="johng42@users.noreply.github.com"},
|
||||||
|
{name = "Martiros Shakhzadyan", email="vrzh@vrzh.net"},
|
||||||
|
{name = "Zoe Moore", email="zoenb@mailbox.org"},
|
||||||
|
{name = "ranguli", email="hello@joshmurphy.ca"},
|
||||||
|
]
|
||||||
|
|
||||||
|
# This should be your name or the names of the organization who currently
|
||||||
|
# maintains the project, and a valid email address corresponding to the name
|
||||||
|
# listed.
|
||||||
|
maintainers = [
|
||||||
|
{name = "Craig Lamparter", email = "craig@craiger.org"},
|
||||||
|
{name = "Walter A. Boring IV", email = "waboring@hemna.com"},
|
||||||
|
]
|
||||||
|
|
||||||
|
# This field adds keywords for your project which will appear on the
|
||||||
|
# project page. What does your project relate to?
|
||||||
|
#
|
||||||
|
# Note that this is a list of additional keywords, separated
|
||||||
|
# by commas, to be used to assist searching for the distribution in a
|
||||||
|
# larger catalog.
|
||||||
|
keywords = [
|
||||||
|
"aprs",
|
||||||
|
"aprs-is",
|
||||||
|
"aprsd",
|
||||||
|
"aprsd-server",
|
||||||
|
"aprsd-client",
|
||||||
|
"aprsd-socket",
|
||||||
|
"aprsd-socket-server",
|
||||||
|
"aprsd-socket-client",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Classifiers help users find your project by categorizing it.
|
||||||
|
#
|
||||||
|
# For a list of valid classifiers, see https://pypi.org/classifiers/
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"Environment :: Console",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"Intended Audience :: End Users/Desktop",
|
||||||
|
"Intended Audience :: Information Technology",
|
||||||
|
"Topic :: Communications :: Ham Radio",
|
||||||
|
"Topic :: Communications :: Internet Relay Chat",
|
||||||
|
"Topic :: Internet",
|
||||||
|
"Programming Language :: Python :: 3 :: Only",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Programming Language :: Python :: 3.10",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
]
|
||||||
|
|
||||||
|
# This field lists other packages that your project depends on to run.
|
||||||
|
# Any package you put here will be installed by pip when your project is
|
||||||
|
# installed, so they must be valid existing projects.
|
||||||
|
#
|
||||||
|
# For an analysis of this field vs pip's requirements files see:
|
||||||
|
# https://packaging.python.org/discussions/install-requires-vs-requirements/
|
||||||
|
[tool.setuptools.dynamic]
|
||||||
|
dependencies = {file = ["./requirements.txt"]}
|
||||||
|
optional-dependencies.dev = {file = ["./requirements-dev.txt"]}
|
||||||
|
|
||||||
|
# List additional groups of dependencies here (e.g. development
|
||||||
|
# dependencies). Users will be able to install these using the "extras"
|
||||||
|
# syntax, for example:
|
||||||
|
#
|
||||||
|
# $ pip install sampleproject[dev]
|
||||||
|
#
|
||||||
|
# Optional dependencies the project provides. These are commonly
|
||||||
|
# referred to as "extras". For a more extensive definition see:
|
||||||
|
# https://packaging.python.org/en/latest/specifications/dependency-specifiers/#extras
|
||||||
|
# [project.optional-dependencies]
|
||||||
|
|
||||||
|
# List URLs that are relevant to your project
|
||||||
|
#
|
||||||
|
# This field corresponds to the "Project-URL" and "Home-Page" metadata fields:
|
||||||
|
# https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use
|
||||||
|
# https://packaging.python.org/specifications/core-metadata/#home-page-optional
|
||||||
|
#
|
||||||
|
# Examples listed include a pattern for specifying where the package tracks
|
||||||
|
# issues, where the source is hosted, where to say thanks to the package
|
||||||
|
# maintainers, and where to support the project financially. The key is
|
||||||
|
# what's used to render the link text on PyPI.
|
||||||
|
[project.urls]
|
||||||
|
"Homepage" = "https://github.com/craigerl/aprsd"
|
||||||
|
"Bug Reports" = "https://github.com/craigerl/aprsd/issues"
|
||||||
|
"Source" = "https://github.com/craigerl/aprsd"
|
||||||
|
|
||||||
|
# The following would provide a command line executable called `sample`
|
||||||
|
# which executes the function `main` from this package when invoked.
|
||||||
|
[project.scripts]
|
||||||
|
aprsd = "aprsd.main:main"
|
||||||
|
|
||||||
|
[project.entry-points."oslo.config.opts"]
|
||||||
|
"aprsd.conf" = "aprsd.conf.opts:list_opts"
|
||||||
|
|
||||||
|
[project.entry-points."oslo.config.opts.defaults"]
|
||||||
|
"aprsd.conf" = "aprsd.conf:set_lib_defaults"
|
||||||
|
|
||||||
|
# If you are using a different build backend, you will need to change this.
|
||||||
|
[tool.setuptools]
|
||||||
|
# If there are data files included in your packages that need to be
|
||||||
|
# installed, specify them here.
|
||||||
|
py-modules = ["aprsd"]
|
||||||
|
package-data = {"sample" = ["*.dat"]}
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["setuptools>=46.0", "wheel"]
|
requires = [
|
||||||
|
"setuptools>=69.5.0",
|
||||||
|
"setuptools_scm>=0",
|
||||||
|
"wheel",
|
||||||
|
]
|
||||||
build-backend = "setuptools.build_meta"
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[tool.isort]
|
[tool.isort]
|
||||||
@ -14,3 +171,5 @@ skip_gitignore = true
|
|||||||
|
|
||||||
[tool.coverage.run]
|
[tool.coverage.run]
|
||||||
branch = true
|
branch = true
|
||||||
|
|
||||||
|
[tool.setuptools_scm]
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
|
build
|
||||||
|
check-manifest
|
||||||
flake8
|
flake8
|
||||||
|
gray
|
||||||
isort
|
isort
|
||||||
mypy
|
mypy
|
||||||
pep8-naming
|
pep8-naming
|
||||||
|
pytest
|
||||||
|
pytest-cov
|
||||||
|
pip
|
||||||
|
pip-tools
|
||||||
|
pre-commit
|
||||||
Sphinx
|
Sphinx
|
||||||
tox
|
tox
|
||||||
|
wheel
|
||||||
|
|
||||||
# Twine is used for uploading packages to pypi
|
# Twine is used for uploading packages to pypi
|
||||||
# but it induces an install of cryptography
|
# but it induces an install of cryptography
|
||||||
# This is sucky for rpi systems.
|
# This is sucky for rpi systems.
|
||||||
# twine
|
# twine
|
||||||
pre-commit
|
|
||||||
pytest
|
|
||||||
pytest-cov
|
|
||||||
gray
|
|
||||||
pip
|
|
||||||
pip-tools
|
|
84
requirements-dev.txt
Normal file
84
requirements-dev.txt
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
#
|
||||||
|
# This file is autogenerated by pip-compile with Python 3.10
|
||||||
|
# by the following command:
|
||||||
|
#
|
||||||
|
# pip-compile --annotation-style=line requirements-dev.in
|
||||||
|
#
|
||||||
|
add-trailing-comma==3.1.0 # via gray
|
||||||
|
alabaster==0.7.16 # via sphinx
|
||||||
|
autoflake==1.5.3 # via gray
|
||||||
|
babel==2.15.0 # via sphinx
|
||||||
|
black==24.4.2 # via gray
|
||||||
|
build==1.2.1 # via -r requirements-dev.in, check-manifest, pip-tools
|
||||||
|
cachetools==5.3.3 # via tox
|
||||||
|
certifi==2024.2.2 # via requests
|
||||||
|
cfgv==3.4.0 # via pre-commit
|
||||||
|
chardet==5.2.0 # via tox
|
||||||
|
charset-normalizer==3.3.2 # via requests
|
||||||
|
check-manifest==0.49 # via -r requirements-dev.in
|
||||||
|
click==8.1.7 # via black, fixit, moreorless, pip-tools
|
||||||
|
colorama==0.4.6 # via tox
|
||||||
|
commonmark==0.9.1 # via rich
|
||||||
|
configargparse==1.7 # via gray
|
||||||
|
coverage[toml]==7.5.1 # via pytest-cov
|
||||||
|
distlib==0.3.8 # via virtualenv
|
||||||
|
docutils==0.21.2 # via sphinx
|
||||||
|
exceptiongroup==1.2.1 # via pytest
|
||||||
|
filelock==3.14.0 # via tox, virtualenv
|
||||||
|
fixit==2.1.0 # via gray
|
||||||
|
flake8==7.0.0 # via -r requirements-dev.in, pep8-naming
|
||||||
|
gray==0.15.0 # via -r requirements-dev.in
|
||||||
|
identify==2.5.36 # via pre-commit
|
||||||
|
idna==3.7 # via requests
|
||||||
|
imagesize==1.4.1 # via sphinx
|
||||||
|
iniconfig==2.0.0 # via pytest
|
||||||
|
isort==5.13.2 # via -r requirements-dev.in, gray
|
||||||
|
jinja2==3.1.4 # via sphinx
|
||||||
|
libcst==1.3.1 # via fixit
|
||||||
|
markupsafe==2.1.5 # via jinja2
|
||||||
|
mccabe==0.7.0 # via flake8
|
||||||
|
moreorless==0.4.0 # via fixit
|
||||||
|
mypy==1.10.0 # via -r requirements-dev.in
|
||||||
|
mypy-extensions==1.0.0 # via black, mypy
|
||||||
|
nodeenv==1.8.0 # via pre-commit
|
||||||
|
packaging==24.0 # via black, build, fixit, pyproject-api, pytest, sphinx, tox
|
||||||
|
pathspec==0.12.1 # via black, trailrunner
|
||||||
|
pep8-naming==0.14.1 # via -r requirements-dev.in
|
||||||
|
pip-tools==7.4.1 # via -r requirements-dev.in
|
||||||
|
platformdirs==4.2.2 # via black, tox, virtualenv
|
||||||
|
pluggy==1.5.0 # via pytest, tox
|
||||||
|
pre-commit==3.7.1 # via -r requirements-dev.in
|
||||||
|
pycodestyle==2.11.1 # via flake8
|
||||||
|
pyflakes==3.2.0 # via autoflake, flake8
|
||||||
|
pygments==2.18.0 # via rich, sphinx
|
||||||
|
pyproject-api==1.6.1 # via tox
|
||||||
|
pyproject-hooks==1.1.0 # via build, pip-tools
|
||||||
|
pytest==8.2.0 # via -r requirements-dev.in, pytest-cov
|
||||||
|
pytest-cov==5.0.0 # via -r requirements-dev.in
|
||||||
|
pyupgrade==3.15.2 # via gray
|
||||||
|
pyyaml==6.0.1 # via libcst, pre-commit
|
||||||
|
requests==2.31.0 # via sphinx
|
||||||
|
rich==12.6.0 # via gray
|
||||||
|
snowballstemmer==2.2.0 # via sphinx
|
||||||
|
sphinx==7.3.7 # via -r requirements-dev.in
|
||||||
|
sphinxcontrib-applehelp==1.0.8 # via sphinx
|
||||||
|
sphinxcontrib-devhelp==1.0.6 # via sphinx
|
||||||
|
sphinxcontrib-htmlhelp==2.0.5 # via sphinx
|
||||||
|
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||||
|
sphinxcontrib-qthelp==1.0.7 # via sphinx
|
||||||
|
sphinxcontrib-serializinghtml==1.1.10 # via sphinx
|
||||||
|
tokenize-rt==5.2.0 # via add-trailing-comma, pyupgrade
|
||||||
|
toml==0.10.2 # via autoflake
|
||||||
|
tomli==2.0.1 # via black, build, check-manifest, coverage, fixit, mypy, pip-tools, pyproject-api, pytest, sphinx, tox
|
||||||
|
tox==4.15.0 # via -r requirements-dev.in
|
||||||
|
trailrunner==1.4.0 # via fixit
|
||||||
|
typing-extensions==4.11.0 # via black, mypy
|
||||||
|
unify==0.5 # via gray
|
||||||
|
untokenize==0.1.1 # via unify
|
||||||
|
urllib3==2.2.1 # via requests
|
||||||
|
virtualenv==20.26.2 # via pre-commit, tox
|
||||||
|
wheel==0.43.0 # via -r requirements-dev.in, pip-tools
|
||||||
|
|
||||||
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
|
# pip
|
||||||
|
# setuptools
|
@ -1,38 +1,32 @@
|
|||||||
aprslib>=0.7.0
|
aprslib>=0.7.0
|
||||||
click
|
|
||||||
click-params
|
|
||||||
flask
|
|
||||||
werkzeug
|
|
||||||
flask-httpauth
|
|
||||||
imapclient
|
|
||||||
pluggy
|
|
||||||
pbr
|
|
||||||
pyyaml
|
|
||||||
requests
|
|
||||||
pytz
|
|
||||||
tzlocal
|
|
||||||
six
|
|
||||||
thesmuggler
|
|
||||||
update_checker
|
|
||||||
flask-socketio
|
|
||||||
python-socketio
|
|
||||||
gevent
|
|
||||||
eventlet
|
|
||||||
tabulate
|
|
||||||
# Pinned due to gray needing 12.6.0
|
|
||||||
rich~=12.6.0
|
|
||||||
# For the list-plugins pypi.org search scraping
|
# For the list-plugins pypi.org search scraping
|
||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
wrapt
|
click
|
||||||
# kiss3 uses attrs
|
click-params
|
||||||
kiss3
|
|
||||||
attrs
|
|
||||||
dataclasses
|
dataclasses
|
||||||
oslo.config
|
|
||||||
# Pin this here so it doesn't require a compile on
|
|
||||||
# raspi
|
|
||||||
shellingham
|
|
||||||
geopy
|
|
||||||
rush
|
|
||||||
dataclasses-json
|
dataclasses-json
|
||||||
|
eventlet
|
||||||
|
flask
|
||||||
|
flask-httpauth
|
||||||
|
flask-socketio
|
||||||
|
geopy
|
||||||
|
gevent
|
||||||
|
imapclient
|
||||||
|
kiss3
|
||||||
loguru
|
loguru
|
||||||
|
oslo.config
|
||||||
|
pluggy
|
||||||
|
python-socketio
|
||||||
|
pyyaml
|
||||||
|
pytz
|
||||||
|
requests
|
||||||
|
# Pinned due to gray needing 12.6.0
|
||||||
|
rich~=12.6.0
|
||||||
|
rush
|
||||||
|
shellingham
|
||||||
|
six
|
||||||
|
tabulate
|
||||||
|
thesmuggler
|
||||||
|
tzlocal
|
||||||
|
update_checker
|
||||||
|
wrapt
|
||||||
|
249
requirements.txt
249
requirements.txt
@ -4,183 +4,78 @@
|
|||||||
#
|
#
|
||||||
# pip-compile --annotation-style=line requirements.in
|
# pip-compile --annotation-style=line requirements.in
|
||||||
#
|
#
|
||||||
aprslib==0.7.2
|
aprslib==0.7.2 # via -r requirements.in
|
||||||
# via -r requirements.in
|
attrs==23.2.0 # via ax253, kiss3, rush
|
||||||
attrs==23.2.0
|
ax253==0.1.5.post1 # via kiss3
|
||||||
# via
|
beautifulsoup4==4.12.3 # via -r requirements.in
|
||||||
# -r requirements.in
|
bidict==0.23.1 # via python-socketio
|
||||||
# ax253
|
bitarray==2.9.2 # via ax253, kiss3
|
||||||
# kiss3
|
blinker==1.8.2 # via flask
|
||||||
# rush
|
certifi==2024.2.2 # via requests
|
||||||
ax253==0.1.5.post1
|
charset-normalizer==3.3.2 # via requests
|
||||||
# via kiss3
|
click==8.1.7 # via -r requirements.in, click-params, flask
|
||||||
beautifulsoup4==4.12.3
|
click-params==0.5.0 # via -r requirements.in
|
||||||
# via -r requirements.in
|
commonmark==0.9.1 # via rich
|
||||||
bidict==0.23.1
|
dataclasses==0.6 # via -r requirements.in
|
||||||
# via python-socketio
|
dataclasses-json==0.6.6 # via -r requirements.in
|
||||||
bitarray==2.9.2
|
debtcollector==3.0.0 # via oslo-config
|
||||||
# via
|
deprecated==1.2.14 # via click-params
|
||||||
# ax253
|
dnspython==2.6.1 # via eventlet
|
||||||
# kiss3
|
eventlet==0.36.1 # via -r requirements.in
|
||||||
blinker==1.7.0
|
flask==3.0.3 # via -r requirements.in, flask-httpauth, flask-socketio
|
||||||
# via flask
|
flask-httpauth==4.8.0 # via -r requirements.in
|
||||||
certifi==2024.2.2
|
flask-socketio==5.3.6 # via -r requirements.in
|
||||||
# via requests
|
geographiclib==2.0 # via geopy
|
||||||
charset-normalizer==3.3.2
|
geopy==2.4.1 # via -r requirements.in
|
||||||
# via requests
|
gevent==24.2.1 # via -r requirements.in
|
||||||
click==8.1.7
|
greenlet==3.0.3 # via eventlet, gevent
|
||||||
# via
|
h11==0.14.0 # via wsproto
|
||||||
# -r requirements.in
|
idna==3.7 # via requests
|
||||||
# click-params
|
imapclient==3.0.1 # via -r requirements.in
|
||||||
# flask
|
importlib-metadata==7.1.0 # via ax253, kiss3
|
||||||
click-params==0.5.0
|
itsdangerous==2.2.0 # via flask
|
||||||
# via -r requirements.in
|
jinja2==3.1.4 # via flask
|
||||||
commonmark==0.9.1
|
kiss3==8.0.0 # via -r requirements.in
|
||||||
# via rich
|
loguru==0.7.2 # via -r requirements.in
|
||||||
dataclasses==0.6
|
markupsafe==2.1.5 # via jinja2, werkzeug
|
||||||
# via -r requirements.in
|
marshmallow==3.21.2 # via dataclasses-json
|
||||||
dataclasses-json==0.6.4
|
mypy-extensions==1.0.0 # via typing-inspect
|
||||||
# via -r requirements.in
|
netaddr==1.2.1 # via oslo-config
|
||||||
debtcollector==3.0.0
|
oslo-config==9.4.0 # via -r requirements.in
|
||||||
# via oslo-config
|
oslo-i18n==6.3.0 # via oslo-config
|
||||||
deprecated==1.2.14
|
packaging==24.0 # via marshmallow
|
||||||
# via click-params
|
pbr==6.0.0 # via oslo-i18n, stevedore
|
||||||
dnspython==2.6.1
|
pluggy==1.5.0 # via -r requirements.in
|
||||||
# via eventlet
|
pygments==2.18.0 # via rich
|
||||||
eventlet==0.36.1
|
pyserial==3.5 # via pyserial-asyncio
|
||||||
# via -r requirements.in
|
pyserial-asyncio==0.6 # via kiss3
|
||||||
flask==3.0.3
|
python-engineio==4.9.0 # via python-socketio
|
||||||
# via
|
python-socketio==5.11.2 # via -r requirements.in, flask-socketio
|
||||||
# -r requirements.in
|
pytz==2024.1 # via -r requirements.in
|
||||||
# flask-httpauth
|
pyyaml==6.0.1 # via -r requirements.in, oslo-config
|
||||||
# flask-socketio
|
requests==2.31.0 # via -r requirements.in, oslo-config, update-checker
|
||||||
flask-httpauth==4.8.0
|
rfc3986==2.0.0 # via oslo-config
|
||||||
# via -r requirements.in
|
rich==12.6.0 # via -r requirements.in
|
||||||
flask-socketio==5.3.6
|
rush==2021.4.0 # via -r requirements.in
|
||||||
# via -r requirements.in
|
shellingham==1.5.4 # via -r requirements.in
|
||||||
geographiclib==2.0
|
simple-websocket==1.0.0 # via python-engineio
|
||||||
# via geopy
|
six==1.16.0 # via -r requirements.in
|
||||||
geopy==2.4.1
|
soupsieve==2.5 # via beautifulsoup4
|
||||||
# via -r requirements.in
|
stevedore==5.2.0 # via oslo-config
|
||||||
gevent==24.2.1
|
tabulate==0.9.0 # via -r requirements.in
|
||||||
# via -r requirements.in
|
thesmuggler==1.0.1 # via -r requirements.in
|
||||||
greenlet==3.0.3
|
typing-extensions==4.11.0 # via typing-inspect
|
||||||
# via
|
typing-inspect==0.9.0 # via dataclasses-json
|
||||||
# eventlet
|
tzlocal==5.2 # via -r requirements.in
|
||||||
# gevent
|
update-checker==0.18.0 # via -r requirements.in
|
||||||
h11==0.14.0
|
urllib3==2.2.1 # via requests
|
||||||
# via wsproto
|
validators==0.22.0 # via click-params
|
||||||
idna==3.7
|
werkzeug==3.0.3 # via flask
|
||||||
# via requests
|
wrapt==1.16.0 # via -r requirements.in, debtcollector, deprecated
|
||||||
imapclient==3.0.1
|
wsproto==1.2.0 # via simple-websocket
|
||||||
# via -r requirements.in
|
zipp==3.18.2 # via importlib-metadata
|
||||||
importlib-metadata==7.1.0
|
zope-event==5.0 # via gevent
|
||||||
# via
|
zope-interface==6.4 # via gevent
|
||||||
# ax253
|
|
||||||
# kiss3
|
|
||||||
itsdangerous==2.2.0
|
|
||||||
# via flask
|
|
||||||
jinja2==3.1.4
|
|
||||||
# via flask
|
|
||||||
kiss3==8.0.0
|
|
||||||
# via -r requirements.in
|
|
||||||
loguru==0.7.2
|
|
||||||
# via -r requirements.in
|
|
||||||
markupsafe==2.1.5
|
|
||||||
# via
|
|
||||||
# jinja2
|
|
||||||
# werkzeug
|
|
||||||
marshmallow==3.21.1
|
|
||||||
# via dataclasses-json
|
|
||||||
mypy-extensions==1.0.0
|
|
||||||
# via typing-inspect
|
|
||||||
netaddr==1.2.1
|
|
||||||
# via oslo-config
|
|
||||||
oslo-config==9.4.0
|
|
||||||
# via -r requirements.in
|
|
||||||
oslo-i18n==6.3.0
|
|
||||||
# via oslo-config
|
|
||||||
packaging==24.0
|
|
||||||
# via marshmallow
|
|
||||||
pbr==6.0.0
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# oslo-i18n
|
|
||||||
# stevedore
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via -r requirements.in
|
|
||||||
pygments==2.17.2
|
|
||||||
# via rich
|
|
||||||
pyserial==3.5
|
|
||||||
# via pyserial-asyncio
|
|
||||||
pyserial-asyncio==0.6
|
|
||||||
# via kiss3
|
|
||||||
python-engineio==4.9.0
|
|
||||||
# via python-socketio
|
|
||||||
python-socketio==5.11.2
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# flask-socketio
|
|
||||||
pytz==2024.1
|
|
||||||
# via -r requirements.in
|
|
||||||
pyyaml==6.0.1
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# oslo-config
|
|
||||||
requests==2.31.0
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# oslo-config
|
|
||||||
# update-checker
|
|
||||||
rfc3986==2.0.0
|
|
||||||
# via oslo-config
|
|
||||||
rich==12.6.0
|
|
||||||
# via -r requirements.in
|
|
||||||
rush==2021.4.0
|
|
||||||
# via -r requirements.in
|
|
||||||
shellingham==1.5.4
|
|
||||||
# via -r requirements.in
|
|
||||||
simple-websocket==1.0.0
|
|
||||||
# via python-engineio
|
|
||||||
six==1.16.0
|
|
||||||
# via -r requirements.in
|
|
||||||
soupsieve==2.5
|
|
||||||
# via beautifulsoup4
|
|
||||||
stevedore==5.2.0
|
|
||||||
# via oslo-config
|
|
||||||
tabulate==0.9.0
|
|
||||||
# via -r requirements.in
|
|
||||||
thesmuggler==1.0.1
|
|
||||||
# via -r requirements.in
|
|
||||||
typing-extensions==4.11.0
|
|
||||||
# via typing-inspect
|
|
||||||
typing-inspect==0.9.0
|
|
||||||
# via dataclasses-json
|
|
||||||
tzlocal==5.2
|
|
||||||
# via -r requirements.in
|
|
||||||
update-checker==0.18.0
|
|
||||||
# via -r requirements.in
|
|
||||||
urllib3==2.2.1
|
|
||||||
# via requests
|
|
||||||
validators==0.22.0
|
|
||||||
# via click-params
|
|
||||||
werkzeug==3.0.2
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# flask
|
|
||||||
wrapt==1.16.0
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# debtcollector
|
|
||||||
# deprecated
|
|
||||||
wsproto==1.2.0
|
|
||||||
# via simple-websocket
|
|
||||||
zipp==3.18.1
|
|
||||||
# via importlib-metadata
|
|
||||||
zope-event==5.0
|
|
||||||
# via gevent
|
|
||||||
zope-interface==6.3
|
|
||||||
# via gevent
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
# setuptools
|
# setuptools
|
||||||
|
51
setup.cfg
51
setup.cfg
@ -1,51 +0,0 @@
|
|||||||
[metadata]
|
|
||||||
name = aprsd
|
|
||||||
long_description = file: README.rst
|
|
||||||
long_description_content_type = text/x-rst
|
|
||||||
url = http://aprsd.readthedocs.org
|
|
||||||
author = Craig Lamparter
|
|
||||||
author_email = something@somewhere.com
|
|
||||||
license = Apache
|
|
||||||
license_file = LICENSE
|
|
||||||
classifier =
|
|
||||||
License :: OSI Approved :: Apache Software License
|
|
||||||
Topic :: Communications :: Ham Radio
|
|
||||||
Operating System :: POSIX :: Linux
|
|
||||||
Programming Language :: Python :: 3 :: Only
|
|
||||||
Programming Language :: Python :: 3
|
|
||||||
Programming Language :: Python :: 3.7
|
|
||||||
Programming Language :: Python :: 3.8
|
|
||||||
Programming Language :: Python :: 3.9
|
|
||||||
description_file =
|
|
||||||
README.rst
|
|
||||||
project_urls =
|
|
||||||
Source=https://github.com/craigerl/aprsd
|
|
||||||
Tracker=https://github.com/craigerl/aprsd/issues
|
|
||||||
summary = Amateur radio APRS daemon which listens for messages and responds
|
|
||||||
|
|
||||||
[global]
|
|
||||||
setup-hooks =
|
|
||||||
pbr.hooks.setup_hook
|
|
||||||
|
|
||||||
[files]
|
|
||||||
packages =
|
|
||||||
aprsd
|
|
||||||
|
|
||||||
[entry_points]
|
|
||||||
console_scripts =
|
|
||||||
aprsd = aprsd.main:main
|
|
||||||
oslo.config.opts =
|
|
||||||
aprsd.conf = aprsd.conf.opts:list_opts
|
|
||||||
oslo.config.opts.defaults =
|
|
||||||
aprsd.conf = aprsd.conf:set_lib_defaults
|
|
||||||
|
|
||||||
[build_sphinx]
|
|
||||||
source-dir = docs
|
|
||||||
build-dir = docs/_build
|
|
||||||
all_files = 1
|
|
||||||
|
|
||||||
[upload_sphinx]
|
|
||||||
upload-dir = docs/_build
|
|
||||||
|
|
||||||
[bdist_wheel]
|
|
||||||
universal = 1
|
|
10
setup.py
10
setup.py
@ -17,12 +17,4 @@
|
|||||||
import setuptools
|
import setuptools
|
||||||
|
|
||||||
|
|
||||||
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
setuptools.setup()
|
||||||
# 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)
|
|
||||||
|
10
tox.ini
10
tox.ini
@ -23,7 +23,7 @@ install_command = pip install {opts} {packages}
|
|||||||
extras = tests
|
extras = tests
|
||||||
deps = coverage: coverage
|
deps = coverage: coverage
|
||||||
-r{toxinidir}/requirements.txt
|
-r{toxinidir}/requirements.txt
|
||||||
-r{toxinidir}/dev-requirements.txt
|
-r{toxinidir}/requirements-dev.txt
|
||||||
pytestmain: git+https://github.com/pytest-dev/pytest.git@main
|
pytestmain: git+https://github.com/pytest-dev/pytest.git@main
|
||||||
commands =
|
commands =
|
||||||
pytest -v --cov-report term-missing --cov=aprsd {posargs}
|
pytest -v --cov-report term-missing --cov=aprsd {posargs}
|
||||||
@ -34,7 +34,7 @@ commands =
|
|||||||
skip_install = true
|
skip_install = true
|
||||||
deps =
|
deps =
|
||||||
-r{toxinidir}/requirements.txt
|
-r{toxinidir}/requirements.txt
|
||||||
-r{toxinidir}/dev-requirements.txt
|
-r{toxinidir}/requirements-dev.txt
|
||||||
{toxinidir}/.
|
{toxinidir}/.
|
||||||
changedir = {toxinidir}/docs
|
changedir = {toxinidir}/docs
|
||||||
commands =
|
commands =
|
||||||
@ -57,7 +57,7 @@ passenv = FAST8_NUM_COMMITS
|
|||||||
[testenv:lint]
|
[testenv:lint]
|
||||||
skip_install = true
|
skip_install = true
|
||||||
deps =
|
deps =
|
||||||
-r{toxinidir}/dev-requirements.txt
|
-r{toxinidir}/requirements-dev.txt
|
||||||
commands =
|
commands =
|
||||||
flake8 aprsd tests
|
flake8 aprsd tests
|
||||||
|
|
||||||
@ -85,14 +85,14 @@ python =
|
|||||||
# and standard formatting
|
# and standard formatting
|
||||||
skip_install = true
|
skip_install = true
|
||||||
deps =
|
deps =
|
||||||
-r{toxinidir}/dev-requirements.txt
|
-r{toxinidir}/requirements-dev.txt
|
||||||
commands =
|
commands =
|
||||||
gray aprsd tests
|
gray aprsd tests
|
||||||
|
|
||||||
[testenv:type-check]
|
[testenv:type-check]
|
||||||
skip_install = true
|
skip_install = true
|
||||||
deps = -r{toxinidir}/requirements.txt
|
deps = -r{toxinidir}/requirements.txt
|
||||||
-r{toxinidir}/dev-requirements.txt
|
-r{toxinidir}/requirements-dev.txt
|
||||||
commands =
|
commands =
|
||||||
mypy --ignore-missing-imports --install-types aprsd
|
mypy --ignore-missing-imports --install-types aprsd
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user