mirror of
https://github.com/craigerl/aprsd.git
synced 2025-07-30 20:32:27 -04:00
Compare commits
11 Commits
ffa28fa28a
...
e5662b95f8
Author | SHA1 | Date | |
---|---|---|---|
e5662b95f8 | |||
a6f84e42bc | |||
e3ab6e7f59 | |||
af3d741833 | |||
b172c6dbde | |||
9d3f45ac30 | |||
49e8a622a7 | |||
92cb92f89c | |||
37415557b5 | |||
5ebbb52a2c | |||
673b34c78b |
2
.github/workflows/master-build.yml
vendored
2
.github/workflows/master-build.yml
vendored
@ -17,7 +17,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.9", "3.10", "3.11"]
|
python-version: ["3.10", "3.11"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
2
.github/workflows/python.yml
vendored
2
.github/workflows/python.yml
vendored
@ -7,7 +7,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ["3.9", "3.10", "3.11"]
|
python-version: ["3.10", "3.11"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
1167
ChangeLog.md
Normal file
1167
ChangeLog.md
Normal file
File diff suppressed because it is too large
Load Diff
11
Makefile
11
Makefile
@ -22,9 +22,14 @@ 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
|
||||||
|
|
||||||
docs: dev
|
changelog: dev
|
||||||
|
npm i -g auto-changelog
|
||||||
|
auto-changelog -l false -o ChangeLog.md
|
||||||
|
|
||||||
|
docs: changelog
|
||||||
|
m2r --overwrite ChangeLog.md
|
||||||
cp README.rst docs/readme.rst
|
cp README.rst docs/readme.rst
|
||||||
cp Changelog docs/changelog.rst
|
mv ChangeLog.rst docs/changelog.rst
|
||||||
tox -edocs
|
tox -edocs
|
||||||
|
|
||||||
clean: clean-build clean-pyc clean-test clean-dev ## remove all build, test, coverage and Python artifacts
|
clean: clean-build clean-pyc clean-test clean-dev ## remove all build, test, coverage and Python artifacts
|
||||||
@ -54,7 +59,7 @@ clean-dev:
|
|||||||
test: dev ## Run all the tox tests
|
test: dev ## Run all the tox tests
|
||||||
tox -p all
|
tox -p all
|
||||||
|
|
||||||
build: test ## Make the build artifact prior to doing an upload
|
build: test changelog ## Make the build artifact prior to doing an upload
|
||||||
$(VENV)/pip install twine
|
$(VENV)/pip install twine
|
||||||
$(VENV)/python3 -m build
|
$(VENV)/python3 -m build
|
||||||
$(VENV)/twine check dist/*
|
$(VENV)/twine check dist/*
|
||||||
|
@ -37,7 +37,7 @@ class PacketList(objectstore.ObjectStoreMixin):
|
|||||||
self._total_rx += 1
|
self._total_rx += 1
|
||||||
self._add(packet)
|
self._add(packet)
|
||||||
ptype = packet.__class__.__name__
|
ptype = packet.__class__.__name__
|
||||||
if not ptype in self.data["types"]:
|
if ptype not in self.data["types"]:
|
||||||
self.data["types"][ptype] = {"tx": 0, "rx": 0}
|
self.data["types"][ptype] = {"tx": 0, "rx": 0}
|
||||||
self.data["types"][ptype]["rx"] += 1
|
self.data["types"][ptype]["rx"] += 1
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ class PacketList(objectstore.ObjectStoreMixin):
|
|||||||
self._total_tx += 1
|
self._total_tx += 1
|
||||||
self._add(packet)
|
self._add(packet)
|
||||||
ptype = packet.__class__.__name__
|
ptype = packet.__class__.__name__
|
||||||
if not ptype in self.data["types"]:
|
if ptype not in self.data["types"]:
|
||||||
self.data["types"][ptype] = {"tx": 0, "rx": 0}
|
self.data["types"][ptype] = {"tx": 0, "rx": 0}
|
||||||
self.data["types"][ptype]["tx"] += 1
|
self.data["types"][ptype]["tx"] += 1
|
||||||
|
|
||||||
|
37
docs/apidoc/aprsd.client.drivers.rst
Normal file
37
docs/apidoc/aprsd.client.drivers.rst
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
aprsd.client.drivers package
|
||||||
|
============================
|
||||||
|
|
||||||
|
Submodules
|
||||||
|
----------
|
||||||
|
|
||||||
|
aprsd.client.drivers.aprsis module
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.drivers.aprsis
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.drivers.fake module
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.drivers.fake
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.drivers.kiss module
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.drivers.kiss
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
Module contents
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.drivers
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
69
docs/apidoc/aprsd.client.rst
Normal file
69
docs/apidoc/aprsd.client.rst
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
aprsd.client package
|
||||||
|
====================
|
||||||
|
|
||||||
|
Subpackages
|
||||||
|
-----------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 4
|
||||||
|
|
||||||
|
aprsd.client.drivers
|
||||||
|
|
||||||
|
Submodules
|
||||||
|
----------
|
||||||
|
|
||||||
|
aprsd.client.aprsis module
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.aprsis
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.base module
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.base
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.factory module
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.factory
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.fake module
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.fake
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.kiss module
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.kiss
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.client.stats module
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client.stats
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
Module contents
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.client
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
@ -1,29 +0,0 @@
|
|||||||
aprsd.clients package
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Submodules
|
|
||||||
----------
|
|
||||||
|
|
||||||
aprsd.clients.aprsis module
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.clients.aprsis
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
aprsd.clients.kiss module
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.clients.kiss
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
Module contents
|
|
||||||
---------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.clients
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
21
docs/apidoc/aprsd.log.rst
Normal file
21
docs/apidoc/aprsd.log.rst
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
aprsd.log package
|
||||||
|
=================
|
||||||
|
|
||||||
|
Submodules
|
||||||
|
----------
|
||||||
|
|
||||||
|
aprsd.log.log module
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.log.log
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
Module contents
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.log
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
@ -4,6 +4,14 @@ aprsd.packets package
|
|||||||
Submodules
|
Submodules
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
aprsd.packets.collector module
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.packets.collector
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.packets.core module
|
aprsd.packets.core module
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
@ -12,6 +20,14 @@ aprsd.packets.core module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.packets.log module
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.packets.log
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.packets.packet\_list module
|
aprsd.packets.packet\_list module
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
|
@ -44,14 +44,6 @@ aprsd.plugins.ping module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.plugins.query module
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.plugins.query
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
aprsd.plugins.time module
|
aprsd.plugins.time module
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
aprsd.rpc package
|
|
||||||
=================
|
|
||||||
|
|
||||||
Submodules
|
|
||||||
----------
|
|
||||||
|
|
||||||
aprsd.rpc.client module
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.rpc.client
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
aprsd.rpc.server module
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.rpc.server
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
Module contents
|
|
||||||
---------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.rpc
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
@ -7,13 +7,13 @@ Subpackages
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 4
|
:maxdepth: 4
|
||||||
|
|
||||||
aprsd.clients
|
aprsd.client
|
||||||
aprsd.cmds
|
aprsd.cmds
|
||||||
aprsd.conf
|
aprsd.conf
|
||||||
aprsd.log
|
aprsd.log
|
||||||
aprsd.packets
|
aprsd.packets
|
||||||
aprsd.plugins
|
aprsd.plugins
|
||||||
aprsd.rpc
|
aprsd.stats
|
||||||
aprsd.threads
|
aprsd.threads
|
||||||
aprsd.utils
|
aprsd.utils
|
||||||
aprsd.web
|
aprsd.web
|
||||||
@ -29,14 +29,6 @@ aprsd.cli\_helper module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.client module
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.client
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
aprsd.exception module
|
aprsd.exception module
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
@ -77,14 +69,6 @@ aprsd.plugin\_utils module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.stats module
|
|
||||||
------------------
|
|
||||||
|
|
||||||
.. automodule:: aprsd.stats
|
|
||||||
:members:
|
|
||||||
:undoc-members:
|
|
||||||
:show-inheritance:
|
|
||||||
|
|
||||||
aprsd.wsgi module
|
aprsd.wsgi module
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
29
docs/apidoc/aprsd.stats.rst
Normal file
29
docs/apidoc/aprsd.stats.rst
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
aprsd.stats package
|
||||||
|
===================
|
||||||
|
|
||||||
|
Submodules
|
||||||
|
----------
|
||||||
|
|
||||||
|
aprsd.stats.app module
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.stats.app
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.stats.collector module
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.stats.collector
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
|
Module contents
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.stats
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
@ -28,6 +28,14 @@ aprsd.threads.log\_monitor module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.threads.registry module
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.threads.registry
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.threads.rx module
|
aprsd.threads.rx module
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@ -36,6 +44,14 @@ aprsd.threads.rx module
|
|||||||
:undoc-members:
|
:undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
aprsd.threads.stats module
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
.. automodule:: aprsd.threads.stats
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
aprsd.threads.tx module
|
aprsd.threads.tx module
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
1804
docs/changelog.rst
1804
docs/changelog.rst
File diff suppressed because it is too large
Load Diff
173
docs/readme.rst
173
docs/readme.rst
@ -10,32 +10,38 @@ ____________________
|
|||||||
|
|
||||||
`APRSD <http://github.com/craigerl/aprsd>`_ is a Ham radio `APRS <http://aprs.org>`_ message command gateway built on python.
|
`APRSD <http://github.com/craigerl/aprsd>`_ is a Ham radio `APRS <http://aprs.org>`_ message command gateway built on python.
|
||||||
|
|
||||||
APRSD listens on amateur radio aprs-is network for messages and respond to them.
|
|
||||||
It has a plugin architecture for extensibility. Users of APRSD can write their own
|
|
||||||
plugins that can respond to APRS-IS messages.
|
|
||||||
|
|
||||||
You must have an amateur radio callsign to use this software. APRSD gets
|
What is APRSD
|
||||||
messages for the configured HAM callsign, and sends those messages to a
|
=============
|
||||||
list of plugins for processing. There are a set of core plugins that
|
APRSD is a python application for interacting with the APRS network and providing
|
||||||
provide responding to messages to check email, get location, ping,
|
APRS services for HAM radio operators.
|
||||||
time of day, get weather, and fortune telling as well as version information
|
|
||||||
of aprsd itself.
|
APRSD currently has 4 main commands to use.
|
||||||
|
* server - Connect to APRS and listen/respond to APRS messages
|
||||||
|
* webchat - web based chat program over APRS
|
||||||
|
* send-message - Send a message to a callsign via APRS_IS.
|
||||||
|
* listen - Listen to packets on the APRS-IS Network based on FILTER.
|
||||||
|
|
||||||
|
Each of those commands can connect to the APRS-IS network if internet connectivity
|
||||||
|
is available. If internet is not available, then APRS can be configured to talk
|
||||||
|
to a TCP KISS TNC for radio connectivity.
|
||||||
|
|
||||||
Please `read the docs`_ to learn more!
|
Please `read the docs`_ to learn more!
|
||||||
|
|
||||||
|
|
||||||
.. contents:: :local:
|
|
||||||
|
|
||||||
|
|
||||||
APRSD Overview Diagram
|
APRSD Overview Diagram
|
||||||
======================
|
======================
|
||||||
|
|
||||||
.. image:: https://raw.githubusercontent.com/craigerl/aprsd/master/docs/_static/aprsd_overview.svg?sanitize=true
|
.. image:: https://raw.githubusercontent.com/craigerl/aprsd/master/docs/_static/aprsd_overview.svg?sanitize=true
|
||||||
|
|
||||||
|
|
||||||
Typical use case
|
Typical use case
|
||||||
================
|
================
|
||||||
|
|
||||||
|
APRSD's typical use case is that of providing an APRS wide service to all HAM
|
||||||
|
radio operators. For example the callsign 'REPEAT' on the APRS network is actually
|
||||||
|
an instance of APRSD that can provide a list of HAM repeaters in the area of the
|
||||||
|
callsign that sent the message.
|
||||||
|
|
||||||
|
|
||||||
Ham radio operator using an APRS enabled HAM radio sends a message to check
|
Ham radio operator using an APRS enabled HAM radio sends a message to check
|
||||||
the weather. An APRS message is sent, and then picked up by APRSD. The
|
the weather. An APRS message is sent, and then picked up by APRSD. The
|
||||||
APRS packet is decoded, and the message is sent through the list of plugins
|
APRS packet is decoded, and the message is sent through the list of plugins
|
||||||
@ -46,55 +52,6 @@ callsigns to look out for. The watch list can notify you when a HAM callsign
|
|||||||
in the list is seen and now available to message on the APRS network.
|
in the list is seen and now available to message on the APRS network.
|
||||||
|
|
||||||
|
|
||||||
Current list of built-in plugins
|
|
||||||
======================================
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
└─> aprsd list-plugins
|
|
||||||
🐍 APRSD Built-in Plugins 🐍
|
|
||||||
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
||||||
┃ Plugin Name ┃ Info ┃ Type ┃ Plugin Path ┃
|
|
||||||
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
|
||||||
│ AVWXWeatherPlugin │ AVWX weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.AVWXWeatherPlugin │
|
|
||||||
│ EmailPlugin │ Send and Receive email │ RegexCommand │ aprsd.plugins.email.EmailPlugin │
|
|
||||||
│ FortunePlugin │ Give me a fortune │ RegexCommand │ aprsd.plugins.fortune.FortunePlugin │
|
|
||||||
│ LocationPlugin │ Where in the world is a CALLSIGN's last GPS beacon? │ RegexCommand │ aprsd.plugins.location.LocationPlugin │
|
|
||||||
│ NotifySeenPlugin │ Notify me when a CALLSIGN is recently seen on APRS-IS │ WatchList │ aprsd.plugins.notify.NotifySeenPlugin │
|
|
||||||
│ OWMWeatherPlugin │ OpenWeatherMap weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.OWMWeatherPlugin │
|
|
||||||
│ PingPlugin │ reply with a Pong! │ RegexCommand │ aprsd.plugins.ping.PingPlugin │
|
|
||||||
│ QueryPlugin │ APRSD Owner command to query messages in the MsgTrack │ RegexCommand │ aprsd.plugins.query.QueryPlugin │
|
|
||||||
│ TimeOWMPlugin │ Current time of GPS beacon's timezone. Uses OpenWeatherMap │ RegexCommand │ aprsd.plugins.time.TimeOWMPlugin │
|
|
||||||
│ TimePlugin │ What is the current local time. │ RegexCommand │ aprsd.plugins.time.TimePlugin │
|
|
||||||
│ USMetarPlugin │ USA only METAR of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USMetarPlugin │
|
|
||||||
│ USWeatherPlugin │ Provide USA only weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USWeatherPlugin │
|
|
||||||
│ VersionPlugin │ What is the APRSD Version │ RegexCommand │ aprsd.plugins.version.VersionPlugin │
|
|
||||||
└───────────────────┴────────────────────────────────────────────────────────────┴──────────────┴─────────────────────────────────────────┘
|
|
||||||
|
|
||||||
|
|
||||||
Pypi.org APRSD Installable Plugin Packages
|
|
||||||
|
|
||||||
Install any of the following plugins with 'pip install <Plugin Package Name>'
|
|
||||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
|
|
||||||
┃ Plugin Package Name ┃ Description ┃ Version ┃ Released ┃ Installed? ┃
|
|
||||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
|
|
||||||
│ 📂 aprsd-stock-plugin │ Ham Radio APRSD Plugin for fetching stock quotes │ 0.1.3 │ Dec 2, 2022 │ No │
|
|
||||||
│ 📂 aprsd-sentry-plugin │ Ham radio APRSD plugin that does.... │ 0.1.2 │ Dec 2, 2022 │ No │
|
|
||||||
│ 📂 aprsd-timeopencage-plugin │ APRSD plugin for fetching time based on GPS location │ 0.1.0 │ Dec 2, 2022 │ No │
|
|
||||||
│ 📂 aprsd-weewx-plugin │ HAM Radio APRSD that reports weather from a weewx weather station. │ 0.1.4 │ Dec 7, 2021 │ Yes │
|
|
||||||
│ 📂 aprsd-repeat-plugins │ APRSD Plugins for the REPEAT service │ 1.0.12 │ Dec 2, 2022 │ No │
|
|
||||||
│ 📂 aprsd-telegram-plugin │ Ham Radio APRS APRSD plugin for Telegram IM service │ 0.1.3 │ Dec 2, 2022 │ No │
|
|
||||||
│ 📂 aprsd-twitter-plugin │ Python APRSD plugin to send tweets │ 0.3.0 │ Dec 7, 2021 │ No │
|
|
||||||
│ 📂 aprsd-slack-plugin │ Amateur radio APRS daemon which listens for messages and responds │ 1.0.5 │ Dec 18, 2022 │ No │
|
|
||||||
└──────────────────────────────┴────────────────────────────────────────────────────────────────────┴─────────┴──────────────┴────────────┘
|
|
||||||
|
|
||||||
|
|
||||||
🐍 APRSD Installed 3rd party Plugins 🐍
|
|
||||||
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
||||||
┃ Package Name ┃ Plugin Name ┃ Version ┃ Type ┃ Plugin Path ┃
|
|
||||||
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
|
||||||
│ aprsd-weewx-plugin │ WeewxMQTTPlugin │ 1.0 │ RegexCommand │ aprsd_weewx_plugin.weewx.WeewxMQTTPlugin │
|
|
||||||
└────────────────────┴─────────────────┴─────────┴──────────────┴──────────────────────────────────────────┘
|
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
=============
|
=============
|
||||||
@ -112,6 +69,7 @@ Help
|
|||||||
====
|
====
|
||||||
::
|
::
|
||||||
|
|
||||||
|
|
||||||
└─> aprsd -h
|
└─> aprsd -h
|
||||||
Usage: aprsd [OPTIONS] COMMAND [ARGS]...
|
Usage: aprsd [OPTIONS] COMMAND [ARGS]...
|
||||||
|
|
||||||
@ -120,18 +78,19 @@ Help
|
|||||||
-h, --help Show this message and exit.
|
-h, --help Show this message and exit.
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
check-version Check this version against the latest in pypi.org.
|
check-version Check this version against the latest in pypi.org.
|
||||||
completion Click Completion subcommands
|
completion Show the shell completion code
|
||||||
dev Development type subcommands
|
dev Development type subcommands
|
||||||
healthcheck Check the health of the running aprsd server.
|
fetch-stats Fetch stats from a APRSD admin web interface.
|
||||||
list-plugins List the built in plugins available to APRSD.
|
healthcheck Check the health of the running aprsd server.
|
||||||
listen Listen to packets on the APRS-IS Network based on FILTER.
|
list-extensions List the built in plugins available to APRSD.
|
||||||
sample-config Generate a sample Config file from aprsd and all...
|
list-plugins List the built in plugins available to APRSD.
|
||||||
send-message Send a message to a callsign via APRS_IS.
|
listen Listen to packets on the APRS-IS Network based on FILTER.
|
||||||
server Start the aprsd server gateway process.
|
sample-config Generate a sample Config file from aprsd and all...
|
||||||
version Show the APRSD version.
|
send-message Send a message to a callsign via APRS_IS.
|
||||||
webchat Web based HAM Radio chat program!
|
server Start the aprsd server gateway process.
|
||||||
|
version Show the APRSD version.
|
||||||
|
webchat Web based HAM Radio chat program!
|
||||||
|
|
||||||
|
|
||||||
Commands
|
Commands
|
||||||
@ -187,6 +146,56 @@ look for incomming commands to the callsign configured in the config file
|
|||||||
12/07/2021 03:16:17 PM MainThread INFO aprs.logfile = /tmp/aprsd.log server.py:60
|
12/07/2021 03:16:17 PM MainThread INFO aprs.logfile = /tmp/aprsd.log server.py:60
|
||||||
|
|
||||||
|
|
||||||
|
Current list of built-in plugins
|
||||||
|
======================================
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
└─> aprsd list-plugins
|
||||||
|
🐍 APRSD Built-in Plugins 🐍
|
||||||
|
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||||
|
┃ Plugin Name ┃ Info ┃ Type ┃ Plugin Path ┃
|
||||||
|
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||||
|
│ AVWXWeatherPlugin │ AVWX weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.AVWXWeatherPlugin │
|
||||||
|
│ EmailPlugin │ Send and Receive email │ RegexCommand │ aprsd.plugins.email.EmailPlugin │
|
||||||
|
│ FortunePlugin │ Give me a fortune │ RegexCommand │ aprsd.plugins.fortune.FortunePlugin │
|
||||||
|
│ LocationPlugin │ Where in the world is a CALLSIGN's last GPS beacon? │ RegexCommand │ aprsd.plugins.location.LocationPlugin │
|
||||||
|
│ NotifySeenPlugin │ Notify me when a CALLSIGN is recently seen on APRS-IS │ WatchList │ aprsd.plugins.notify.NotifySeenPlugin │
|
||||||
|
│ OWMWeatherPlugin │ OpenWeatherMap weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.OWMWeatherPlugin │
|
||||||
|
│ PingPlugin │ reply with a Pong! │ RegexCommand │ aprsd.plugins.ping.PingPlugin │
|
||||||
|
│ QueryPlugin │ APRSD Owner command to query messages in the MsgTrack │ RegexCommand │ aprsd.plugins.query.QueryPlugin │
|
||||||
|
│ TimeOWMPlugin │ Current time of GPS beacon's timezone. Uses OpenWeatherMap │ RegexCommand │ aprsd.plugins.time.TimeOWMPlugin │
|
||||||
|
│ TimePlugin │ What is the current local time. │ RegexCommand │ aprsd.plugins.time.TimePlugin │
|
||||||
|
│ USMetarPlugin │ USA only METAR of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USMetarPlugin │
|
||||||
|
│ USWeatherPlugin │ Provide USA only weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USWeatherPlugin │
|
||||||
|
│ VersionPlugin │ What is the APRSD Version │ RegexCommand │ aprsd.plugins.version.VersionPlugin │
|
||||||
|
└───────────────────┴────────────────────────────────────────────────────────────┴──────────────┴─────────────────────────────────────────┘
|
||||||
|
|
||||||
|
|
||||||
|
Pypi.org APRSD Installable Plugin Packages
|
||||||
|
|
||||||
|
Install any of the following plugins with 'pip install <Plugin Package Name>'
|
||||||
|
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
|
||||||
|
┃ Plugin Package Name ┃ Description ┃ Version ┃ Released ┃ Installed? ┃
|
||||||
|
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
|
||||||
|
│ 📂 aprsd-stock-plugin │ Ham Radio APRSD Plugin for fetching stock quotes │ 0.1.3 │ Dec 2, 2022 │ No │
|
||||||
|
│ 📂 aprsd-sentry-plugin │ Ham radio APRSD plugin that does.... │ 0.1.2 │ Dec 2, 2022 │ No │
|
||||||
|
│ 📂 aprsd-timeopencage-plugin │ APRSD plugin for fetching time based on GPS location │ 0.1.0 │ Dec 2, 2022 │ No │
|
||||||
|
│ 📂 aprsd-weewx-plugin │ HAM Radio APRSD that reports weather from a weewx weather station. │ 0.1.4 │ Dec 7, 2021 │ Yes │
|
||||||
|
│ 📂 aprsd-repeat-plugins │ APRSD Plugins for the REPEAT service │ 1.0.12 │ Dec 2, 2022 │ No │
|
||||||
|
│ 📂 aprsd-telegram-plugin │ Ham Radio APRS APRSD plugin for Telegram IM service │ 0.1.3 │ Dec 2, 2022 │ No │
|
||||||
|
│ 📂 aprsd-twitter-plugin │ Python APRSD plugin to send tweets │ 0.3.0 │ Dec 7, 2021 │ No │
|
||||||
|
│ 📂 aprsd-slack-plugin │ Amateur radio APRS daemon which listens for messages and responds │ 1.0.5 │ Dec 18, 2022 │ No │
|
||||||
|
└──────────────────────────────┴────────────────────────────────────────────────────────────────────┴─────────┴──────────────┴────────────┘
|
||||||
|
|
||||||
|
|
||||||
|
🐍 APRSD Installed 3rd party Plugins 🐍
|
||||||
|
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||||
|
┃ Package Name ┃ Plugin Name ┃ Version ┃ Type ┃ Plugin Path ┃
|
||||||
|
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||||
|
│ aprsd-weewx-plugin │ WeewxMQTTPlugin │ 1.0 │ RegexCommand │ aprsd_weewx_plugin.weewx.WeewxMQTTPlugin │
|
||||||
|
└────────────────────┴─────────────────┴─────────┴──────────────┴──────────────────────────────────────────┘
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
send-message
|
send-message
|
||||||
@ -289,6 +298,20 @@ LOCATION
|
|||||||
AND... ping, fortune, time.....
|
AND... ping, fortune, time.....
|
||||||
|
|
||||||
|
|
||||||
|
Web Admin Interface
|
||||||
|
===================
|
||||||
|
To start the web admin interface, You have to install gunicorn in your virtualenv that already has aprsd installed.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
source <path to APRSD's virtualenv>/bin/activate
|
||||||
|
pip install gunicorn
|
||||||
|
gunicorn --bind 0.0.0.0:8080 "aprsd.wsgi:app"
|
||||||
|
|
||||||
|
The web admin interface will be running on port 8080 on the local machine. http://localhost:8080
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Development
|
Development
|
||||||
===========
|
===========
|
||||||
|
|
||||||
|
@ -18,3 +18,6 @@ wheel
|
|||||||
# 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
|
||||||
|
|
||||||
|
# m2r is for converting .md files to .rst for the docs
|
||||||
|
m2r
|
||||||
|
@ -4,212 +4,82 @@
|
|||||||
#
|
#
|
||||||
# pip-compile --annotation-style=line requirements-dev.in
|
# pip-compile --annotation-style=line requirements-dev.in
|
||||||
#
|
#
|
||||||
add-trailing-comma==3.1.0
|
add-trailing-comma==3.1.0 # via gray
|
||||||
# via gray
|
alabaster==1.0.0 # via sphinx
|
||||||
alabaster==0.7.16
|
autoflake==1.5.3 # via gray
|
||||||
# via sphinx
|
babel==2.16.0 # via sphinx
|
||||||
autoflake==1.5.3
|
black==24.8.0 # via gray
|
||||||
# via gray
|
build==1.2.2 # via -r requirements-dev.in, check-manifest, pip-tools
|
||||||
babel==2.15.0
|
cachetools==5.5.0 # via tox
|
||||||
# via sphinx
|
certifi==2024.8.30 # via requests
|
||||||
black==24.4.2
|
cfgv==3.4.0 # via pre-commit
|
||||||
# via gray
|
chardet==5.2.0 # via tox
|
||||||
build==1.2.1
|
charset-normalizer==3.3.2 # via requests
|
||||||
# via
|
check-manifest==0.49 # via -r requirements-dev.in
|
||||||
# -r requirements-dev.in
|
click==8.1.7 # via black, fixit, moreorless, pip-tools
|
||||||
# check-manifest
|
colorama==0.4.6 # via tox
|
||||||
# pip-tools
|
commonmark==0.9.1 # via rich
|
||||||
cachetools==5.3.3
|
configargparse==1.7 # via gray
|
||||||
# via tox
|
coverage[toml]==7.6.1 # via pytest-cov
|
||||||
certifi==2024.7.4
|
distlib==0.3.8 # via virtualenv
|
||||||
# via requests
|
docutils==0.21.2 # via m2r, sphinx
|
||||||
cfgv==3.4.0
|
exceptiongroup==1.2.2 # via pytest
|
||||||
# via pre-commit
|
filelock==3.16.0 # via tox, virtualenv
|
||||||
chardet==5.2.0
|
fixit==2.1.0 # via gray
|
||||||
# via tox
|
flake8==7.1.1 # via -r requirements-dev.in, pep8-naming
|
||||||
charset-normalizer==3.3.2
|
gray==0.15.0 # via -r requirements-dev.in
|
||||||
# via requests
|
identify==2.6.1 # via pre-commit
|
||||||
check-manifest==0.49
|
idna==3.10 # via requests
|
||||||
# via -r requirements-dev.in
|
imagesize==1.4.1 # via sphinx
|
||||||
click==8.1.7
|
iniconfig==2.0.0 # via pytest
|
||||||
# via
|
isort==5.13.2 # via -r requirements-dev.in, gray
|
||||||
# black
|
jinja2==3.1.4 # via sphinx
|
||||||
# fixit
|
libcst==1.4.0 # via fixit
|
||||||
# moreorless
|
m2r==0.3.1 # via -r requirements-dev.in
|
||||||
# pip-tools
|
markupsafe==2.1.5 # via jinja2
|
||||||
colorama==0.4.6
|
mccabe==0.7.0 # via flake8
|
||||||
# via tox
|
mistune==0.8.4 # via m2r
|
||||||
commonmark==0.9.1
|
moreorless==0.4.0 # via fixit
|
||||||
# via rich
|
mypy==1.11.2 # via -r requirements-dev.in
|
||||||
configargparse==1.7
|
mypy-extensions==1.0.0 # via black, mypy
|
||||||
# via gray
|
nodeenv==1.9.1 # via pre-commit
|
||||||
coverage[toml]==7.5.1
|
packaging==24.1 # via black, build, fixit, pyproject-api, pytest, sphinx, tox
|
||||||
# via pytest-cov
|
pathspec==0.12.1 # via black, trailrunner
|
||||||
distlib==0.3.8
|
pep8-naming==0.14.1 # via -r requirements-dev.in
|
||||||
# via virtualenv
|
pip-tools==7.4.1 # via -r requirements-dev.in
|
||||||
docutils==0.21.2
|
platformdirs==4.3.3 # via black, tox, virtualenv
|
||||||
# via sphinx
|
pluggy==1.5.0 # via pytest, tox
|
||||||
exceptiongroup==1.2.1
|
pre-commit==3.8.0 # via -r requirements-dev.in
|
||||||
# via pytest
|
pycodestyle==2.12.1 # via flake8
|
||||||
filelock==3.14.0
|
pyflakes==3.2.0 # via autoflake, flake8
|
||||||
# via
|
pygments==2.18.0 # via rich, sphinx
|
||||||
# tox
|
pyproject-api==1.7.1 # via tox
|
||||||
# virtualenv
|
pyproject-hooks==1.1.0 # via build, pip-tools
|
||||||
fixit==2.1.0
|
pytest==8.3.3 # via -r requirements-dev.in, pytest-cov
|
||||||
# via gray
|
pytest-cov==5.0.0 # via -r requirements-dev.in
|
||||||
flake8==7.0.0
|
pyupgrade==3.17.0 # via gray
|
||||||
# via
|
pyyaml==6.0.2 # via libcst, pre-commit
|
||||||
# -r requirements-dev.in
|
requests==2.32.3 # via sphinx
|
||||||
# pep8-naming
|
rich==12.6.0 # via gray
|
||||||
gray==0.15.0
|
snowballstemmer==2.2.0 # via sphinx
|
||||||
# via -r requirements-dev.in
|
sphinx==8.0.2 # via -r requirements-dev.in
|
||||||
identify==2.5.36
|
sphinxcontrib-applehelp==2.0.0 # via sphinx
|
||||||
# via pre-commit
|
sphinxcontrib-devhelp==2.0.0 # via sphinx
|
||||||
idna==3.7
|
sphinxcontrib-htmlhelp==2.1.0 # via sphinx
|
||||||
# via requests
|
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||||
imagesize==1.4.1
|
sphinxcontrib-qthelp==2.0.0 # via sphinx
|
||||||
# via sphinx
|
sphinxcontrib-serializinghtml==2.0.0 # via sphinx
|
||||||
iniconfig==2.0.0
|
tokenize-rt==6.0.0 # via add-trailing-comma, pyupgrade
|
||||||
# via pytest
|
toml==0.10.2 # via autoflake
|
||||||
isort==5.13.2
|
tomli==2.0.1 # via black, build, check-manifest, coverage, fixit, mypy, pip-tools, pyproject-api, pytest, sphinx, tox
|
||||||
# via
|
tox==4.18.1 # via -r requirements-dev.in
|
||||||
# -r requirements-dev.in
|
trailrunner==1.4.0 # via fixit
|
||||||
# gray
|
typing-extensions==4.12.2 # via black, mypy
|
||||||
jinja2==3.1.4
|
unify==0.5 # via gray
|
||||||
# via sphinx
|
untokenize==0.1.1 # via unify
|
||||||
libcst==1.3.1
|
urllib3==2.2.3 # via requests
|
||||||
# via fixit
|
virtualenv==20.26.4 # via pre-commit, tox
|
||||||
markupsafe==2.1.5
|
wheel==0.44.0 # via -r requirements-dev.in, pip-tools
|
||||||
# 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.32.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.2
|
|
||||||
# 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:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
# pip
|
# pip
|
||||||
|
245
requirements.txt
245
requirements.txt
@ -4,179 +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==24.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
|
||||||
# ax253
|
bidict==0.23.1 # via python-socketio
|
||||||
# kiss3
|
bitarray==2.9.2 # via ax253, kiss3
|
||||||
# rush
|
blinker==1.8.2 # via flask
|
||||||
ax253==0.1.5.post1
|
certifi==2024.8.30 # via requests
|
||||||
# via kiss3
|
charset-normalizer==3.3.2 # via requests
|
||||||
beautifulsoup4==4.12.3
|
click==8.1.7 # via -r requirements.in, click-params, flask
|
||||||
# via -r requirements.in
|
click-params==0.5.0 # via -r requirements.in
|
||||||
bidict==0.23.1
|
commonmark==0.9.1 # via rich
|
||||||
# via python-socketio
|
dataclasses==0.6 # via -r requirements.in
|
||||||
bitarray==2.9.2
|
dataclasses-json==0.6.7 # via -r requirements.in
|
||||||
# via
|
debtcollector==3.0.0 # via oslo-config
|
||||||
# ax253
|
deprecated==1.2.14 # via click-params
|
||||||
# kiss3
|
dnspython==2.6.1 # via eventlet
|
||||||
blinker==1.8.2
|
eventlet==0.37.0 # via -r requirements.in
|
||||||
# via flask
|
flask==3.0.3 # via -r requirements.in, flask-httpauth, flask-socketio
|
||||||
certifi==2024.7.4
|
flask-httpauth==4.8.0 # via -r requirements.in
|
||||||
# via requests
|
flask-socketio==5.3.7 # via -r requirements.in
|
||||||
charset-normalizer==3.3.2
|
geographiclib==2.0 # via geopy
|
||||||
# via requests
|
geopy==2.4.1 # via -r requirements.in
|
||||||
click==8.1.7
|
gevent==24.2.1 # via -r requirements.in
|
||||||
# via
|
greenlet==3.1.0 # via eventlet, gevent
|
||||||
# -r requirements.in
|
h11==0.14.0 # via wsproto
|
||||||
# click-params
|
idna==3.10 # via requests
|
||||||
# flask
|
imapclient==3.0.1 # via -r requirements.in
|
||||||
click-params==0.5.0
|
importlib-metadata==8.5.0 # via ax253, kiss3
|
||||||
# via -r requirements.in
|
itsdangerous==2.2.0 # via flask
|
||||||
commonmark==0.9.1
|
jinja2==3.1.4 # via flask
|
||||||
# via rich
|
kiss3==8.0.0 # via -r requirements.in
|
||||||
dataclasses==0.6
|
loguru==0.7.2 # via -r requirements.in
|
||||||
# via -r requirements.in
|
markupsafe==2.1.5 # via jinja2, werkzeug
|
||||||
dataclasses-json==0.6.6
|
marshmallow==3.22.0 # via dataclasses-json
|
||||||
# via -r requirements.in
|
mypy-extensions==1.0.0 # via typing-inspect
|
||||||
debtcollector==3.0.0
|
netaddr==1.3.0 # via oslo-config
|
||||||
# via oslo-config
|
oslo-config==9.6.0 # via -r requirements.in
|
||||||
deprecated==1.2.14
|
oslo-i18n==6.4.0 # via oslo-config
|
||||||
# via click-params
|
packaging==24.1 # via marshmallow
|
||||||
dnspython==2.6.1
|
pbr==6.1.0 # via oslo-i18n, stevedore
|
||||||
# via eventlet
|
pluggy==1.5.0 # via -r requirements.in
|
||||||
eventlet==0.36.1
|
pygments==2.18.0 # via rich
|
||||||
# via -r requirements.in
|
pyserial==3.5 # via pyserial-asyncio
|
||||||
flask==3.0.3
|
pyserial-asyncio==0.6 # via kiss3
|
||||||
# via
|
python-engineio==4.9.1 # via python-socketio
|
||||||
# -r requirements.in
|
python-socketio==5.11.4 # via -r requirements.in, flask-socketio
|
||||||
# flask-httpauth
|
pytz==2024.2 # via -r requirements.in
|
||||||
# flask-socketio
|
pyyaml==6.0.2 # via -r requirements.in, oslo-config
|
||||||
flask-httpauth==4.8.0
|
requests==2.32.3 # via -r requirements.in, oslo-config, update-checker
|
||||||
# via -r requirements.in
|
rfc3986==2.0.0 # via oslo-config
|
||||||
flask-socketio==5.3.6
|
rich==12.6.0 # via -r requirements.in
|
||||||
# via -r requirements.in
|
rush==2021.4.0 # via -r requirements.in
|
||||||
geographiclib==2.0
|
shellingham==1.5.4 # via -r requirements.in
|
||||||
# via geopy
|
simple-websocket==1.0.0 # via python-engineio
|
||||||
geopy==2.4.1
|
six==1.16.0 # via -r requirements.in
|
||||||
# via -r requirements.in
|
soupsieve==2.6 # via beautifulsoup4
|
||||||
gevent==24.2.1
|
stevedore==5.3.0 # via oslo-config
|
||||||
# via -r requirements.in
|
tabulate==0.9.0 # via -r requirements.in
|
||||||
greenlet==3.0.3
|
thesmuggler==1.0.1 # via -r requirements.in
|
||||||
# via
|
typing-extensions==4.12.2 # via typing-inspect
|
||||||
# eventlet
|
typing-inspect==0.9.0 # via dataclasses-json
|
||||||
# gevent
|
tzlocal==5.2 # via -r requirements.in
|
||||||
h11==0.14.0
|
update-checker==0.18.0 # via -r requirements.in
|
||||||
# via wsproto
|
urllib3==2.2.3 # via requests
|
||||||
idna==3.7
|
validators==0.22.0 # via click-params
|
||||||
# via requests
|
werkzeug==3.0.4 # via flask
|
||||||
imapclient==3.0.1
|
wrapt==1.16.0 # via -r requirements.in, debtcollector, deprecated
|
||||||
# via -r requirements.in
|
wsproto==1.2.0 # via simple-websocket
|
||||||
importlib-metadata==7.1.0
|
zipp==3.20.2 # via importlib-metadata
|
||||||
# via
|
zope-event==5.0 # via gevent
|
||||||
# ax253
|
zope-interface==7.0.3 # via gevent
|
||||||
# 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.2
|
|
||||||
# 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
|
|
||||||
# oslo-i18n
|
|
||||||
# stevedore
|
|
||||||
pluggy==1.5.0
|
|
||||||
# via -r requirements.in
|
|
||||||
pygments==2.18.0
|
|
||||||
# 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.32.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.2
|
|
||||||
# via requests
|
|
||||||
validators==0.22.0
|
|
||||||
# via click-params
|
|
||||||
werkzeug==3.0.3
|
|
||||||
# via flask
|
|
||||||
wrapt==1.16.0
|
|
||||||
# via
|
|
||||||
# -r requirements.in
|
|
||||||
# debtcollector
|
|
||||||
# deprecated
|
|
||||||
wsproto==1.2.0
|
|
||||||
# via simple-websocket
|
|
||||||
zipp==3.19.1
|
|
||||||
# via importlib-metadata
|
|
||||||
zope-event==5.0
|
|
||||||
# via gevent
|
|
||||||
zope-interface==6.4
|
|
||||||
# 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
|
||||||
|
2
tox.ini
2
tox.ini
@ -2,7 +2,7 @@
|
|||||||
minversion = 2.9.0
|
minversion = 2.9.0
|
||||||
skipdist = True
|
skipdist = True
|
||||||
skip_missing_interpreters = true
|
skip_missing_interpreters = true
|
||||||
envlist = pep8,py{39,310}
|
envlist = pep8,py{310}
|
||||||
#requires = tox-pipenv
|
#requires = tox-pipenv
|
||||||
# pip==22.0.4
|
# pip==22.0.4
|
||||||
# pip-tools==5.4.0
|
# pip-tools==5.4.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user