mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-24 08:58:49 -05: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
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.9", "3.10", "3.11"]
|
||||
python-version: ["3.10", "3.11"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- 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
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.9", "3.10", "3.11"]
|
||||
python-version: ["3.10", "3.11"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- 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
|
||||
|
||||
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 Changelog docs/changelog.rst
|
||||
mv ChangeLog.rst docs/changelog.rst
|
||||
tox -edocs
|
||||
|
||||
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
|
||||
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)/python3 -m build
|
||||
$(VENV)/twine check dist/*
|
||||
|
@ -37,7 +37,7 @@ class PacketList(objectstore.ObjectStoreMixin):
|
||||
self._total_rx += 1
|
||||
self._add(packet)
|
||||
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]["rx"] += 1
|
||||
|
||||
@ -47,7 +47,7 @@ class PacketList(objectstore.ObjectStoreMixin):
|
||||
self._total_tx += 1
|
||||
self._add(packet)
|
||||
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"] += 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
|
||||
----------
|
||||
|
||||
aprsd.packets.collector module
|
||||
------------------------------
|
||||
|
||||
.. automodule:: aprsd.packets.collector
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.packets.core module
|
||||
-------------------------
|
||||
|
||||
@ -12,6 +20,14 @@ aprsd.packets.core module
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.packets.log module
|
||||
------------------------
|
||||
|
||||
.. automodule:: aprsd.packets.log
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.packets.packet\_list module
|
||||
---------------------------------
|
||||
|
||||
|
@ -44,14 +44,6 @@ aprsd.plugins.ping module
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.plugins.query module
|
||||
--------------------------
|
||||
|
||||
.. automodule:: aprsd.plugins.query
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
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::
|
||||
:maxdepth: 4
|
||||
|
||||
aprsd.clients
|
||||
aprsd.client
|
||||
aprsd.cmds
|
||||
aprsd.conf
|
||||
aprsd.log
|
||||
aprsd.packets
|
||||
aprsd.plugins
|
||||
aprsd.rpc
|
||||
aprsd.stats
|
||||
aprsd.threads
|
||||
aprsd.utils
|
||||
aprsd.web
|
||||
@ -29,14 +29,6 @@ aprsd.cli\_helper module
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.client module
|
||||
-------------------
|
||||
|
||||
.. automodule:: aprsd.client
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.exception module
|
||||
----------------------
|
||||
|
||||
@ -77,14 +69,6 @@ aprsd.plugin\_utils module
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.stats module
|
||||
------------------
|
||||
|
||||
.. automodule:: aprsd.stats
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
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:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.threads.registry module
|
||||
-----------------------------
|
||||
|
||||
.. automodule:: aprsd.threads.registry
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.threads.rx module
|
||||
-----------------------
|
||||
|
||||
@ -36,6 +44,14 @@ aprsd.threads.rx module
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
aprsd.threads.stats module
|
||||
--------------------------
|
||||
|
||||
.. automodule:: aprsd.threads.stats
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
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 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
|
||||
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
|
||||
provide responding to messages to check email, get location, ping,
|
||||
time of day, get weather, and fortune telling as well as version information
|
||||
of aprsd itself.
|
||||
What is APRSD
|
||||
=============
|
||||
APRSD is a python application for interacting with the APRS network and providing
|
||||
APRS services for HAM radio operators.
|
||||
|
||||
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!
|
||||
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
APRSD Overview Diagram
|
||||
======================
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/craigerl/aprsd/master/docs/_static/aprsd_overview.svg?sanitize=true
|
||||
|
||||
|
||||
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
|
||||
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
|
||||
@ -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.
|
||||
|
||||
|
||||
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
|
||||
=============
|
||||
@ -112,6 +69,7 @@ Help
|
||||
====
|
||||
::
|
||||
|
||||
|
||||
└─> aprsd -h
|
||||
Usage: aprsd [OPTIONS] COMMAND [ARGS]...
|
||||
|
||||
@ -120,18 +78,19 @@ Help
|
||||
-h, --help Show this message and exit.
|
||||
|
||||
Commands:
|
||||
check-version Check this version against the latest in pypi.org.
|
||||
completion Click Completion subcommands
|
||||
dev Development type subcommands
|
||||
healthcheck Check the health of the running aprsd server.
|
||||
list-plugins List the built in plugins available to APRSD.
|
||||
listen Listen to packets on the APRS-IS Network based on FILTER.
|
||||
sample-config Generate a sample Config file from aprsd and all...
|
||||
send-message Send a message to a callsign via APRS_IS.
|
||||
server Start the aprsd server gateway process.
|
||||
version Show the APRSD version.
|
||||
webchat Web based HAM Radio chat program!
|
||||
|
||||
check-version Check this version against the latest in pypi.org.
|
||||
completion Show the shell completion code
|
||||
dev Development type subcommands
|
||||
fetch-stats Fetch stats from a APRSD admin web interface.
|
||||
healthcheck Check the health of the running aprsd server.
|
||||
list-extensions List the built in plugins available to APRSD.
|
||||
list-plugins List the built in plugins available to APRSD.
|
||||
listen Listen to packets on the APRS-IS Network based on FILTER.
|
||||
sample-config Generate a sample Config file from aprsd and all...
|
||||
send-message Send a message to a callsign via APRS_IS.
|
||||
server Start the aprsd server gateway process.
|
||||
version Show the APRSD version.
|
||||
webchat Web based HAM Radio chat program!
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
@ -289,6 +298,20 @@ LOCATION
|
||||
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
|
||||
===========
|
||||
|
||||
|
@ -18,3 +18,6 @@ wheel
|
||||
# but it induces an install of cryptography
|
||||
# This is sucky for rpi systems.
|
||||
# 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
|
||||
#
|
||||
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.7.4
|
||||
# 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.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
|
||||
add-trailing-comma==3.1.0 # via gray
|
||||
alabaster==1.0.0 # via sphinx
|
||||
autoflake==1.5.3 # via gray
|
||||
babel==2.16.0 # via sphinx
|
||||
black==24.8.0 # via gray
|
||||
build==1.2.2 # via -r requirements-dev.in, check-manifest, pip-tools
|
||||
cachetools==5.5.0 # via tox
|
||||
certifi==2024.8.30 # 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.6.1 # via pytest-cov
|
||||
distlib==0.3.8 # via virtualenv
|
||||
docutils==0.21.2 # via m2r, sphinx
|
||||
exceptiongroup==1.2.2 # via pytest
|
||||
filelock==3.16.0 # via tox, virtualenv
|
||||
fixit==2.1.0 # via gray
|
||||
flake8==7.1.1 # via -r requirements-dev.in, pep8-naming
|
||||
gray==0.15.0 # via -r requirements-dev.in
|
||||
identify==2.6.1 # via pre-commit
|
||||
idna==3.10 # 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.4.0 # via fixit
|
||||
m2r==0.3.1 # via -r requirements-dev.in
|
||||
markupsafe==2.1.5 # via jinja2
|
||||
mccabe==0.7.0 # via flake8
|
||||
mistune==0.8.4 # via m2r
|
||||
moreorless==0.4.0 # via fixit
|
||||
mypy==1.11.2 # via -r requirements-dev.in
|
||||
mypy-extensions==1.0.0 # via black, mypy
|
||||
nodeenv==1.9.1 # via pre-commit
|
||||
packaging==24.1 # 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.3.3 # via black, tox, virtualenv
|
||||
pluggy==1.5.0 # via pytest, tox
|
||||
pre-commit==3.8.0 # via -r requirements-dev.in
|
||||
pycodestyle==2.12.1 # via flake8
|
||||
pyflakes==3.2.0 # via autoflake, flake8
|
||||
pygments==2.18.0 # via rich, sphinx
|
||||
pyproject-api==1.7.1 # via tox
|
||||
pyproject-hooks==1.1.0 # via build, pip-tools
|
||||
pytest==8.3.3 # via -r requirements-dev.in, pytest-cov
|
||||
pytest-cov==5.0.0 # via -r requirements-dev.in
|
||||
pyupgrade==3.17.0 # via gray
|
||||
pyyaml==6.0.2 # via libcst, pre-commit
|
||||
requests==2.32.3 # via sphinx
|
||||
rich==12.6.0 # via gray
|
||||
snowballstemmer==2.2.0 # via sphinx
|
||||
sphinx==8.0.2 # via -r requirements-dev.in
|
||||
sphinxcontrib-applehelp==2.0.0 # via sphinx
|
||||
sphinxcontrib-devhelp==2.0.0 # via sphinx
|
||||
sphinxcontrib-htmlhelp==2.1.0 # via sphinx
|
||||
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||
sphinxcontrib-qthelp==2.0.0 # via sphinx
|
||||
sphinxcontrib-serializinghtml==2.0.0 # via sphinx
|
||||
tokenize-rt==6.0.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.18.1 # via -r requirements-dev.in
|
||||
trailrunner==1.4.0 # via fixit
|
||||
typing-extensions==4.12.2 # via black, mypy
|
||||
unify==0.5 # via gray
|
||||
untokenize==0.1.1 # via unify
|
||||
urllib3==2.2.3 # via requests
|
||||
virtualenv==20.26.4 # via pre-commit, tox
|
||||
wheel==0.44.0 # via -r requirements-dev.in, pip-tools
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# pip
|
||||
|
245
requirements.txt
245
requirements.txt
@ -4,179 +4,78 @@
|
||||
#
|
||||
# pip-compile --annotation-style=line requirements.in
|
||||
#
|
||||
aprslib==0.7.2
|
||||
# via -r requirements.in
|
||||
attrs==23.2.0
|
||||
# via
|
||||
# ax253
|
||||
# kiss3
|
||||
# rush
|
||||
ax253==0.1.5.post1
|
||||
# via kiss3
|
||||
beautifulsoup4==4.12.3
|
||||
# via -r requirements.in
|
||||
bidict==0.23.1
|
||||
# via python-socketio
|
||||
bitarray==2.9.2
|
||||
# via
|
||||
# ax253
|
||||
# kiss3
|
||||
blinker==1.8.2
|
||||
# via flask
|
||||
certifi==2024.7.4
|
||||
# via requests
|
||||
charset-normalizer==3.3.2
|
||||
# via requests
|
||||
click==8.1.7
|
||||
# via
|
||||
# -r requirements.in
|
||||
# click-params
|
||||
# flask
|
||||
click-params==0.5.0
|
||||
# via -r requirements.in
|
||||
commonmark==0.9.1
|
||||
# via rich
|
||||
dataclasses==0.6
|
||||
# via -r requirements.in
|
||||
dataclasses-json==0.6.6
|
||||
# via -r requirements.in
|
||||
debtcollector==3.0.0
|
||||
# via oslo-config
|
||||
deprecated==1.2.14
|
||||
# via click-params
|
||||
dnspython==2.6.1
|
||||
# via eventlet
|
||||
eventlet==0.36.1
|
||||
# via -r requirements.in
|
||||
flask==3.0.3
|
||||
# via
|
||||
# -r requirements.in
|
||||
# flask-httpauth
|
||||
# flask-socketio
|
||||
flask-httpauth==4.8.0
|
||||
# via -r requirements.in
|
||||
flask-socketio==5.3.6
|
||||
# via -r requirements.in
|
||||
geographiclib==2.0
|
||||
# via geopy
|
||||
geopy==2.4.1
|
||||
# via -r requirements.in
|
||||
gevent==24.2.1
|
||||
# via -r requirements.in
|
||||
greenlet==3.0.3
|
||||
# via
|
||||
# eventlet
|
||||
# gevent
|
||||
h11==0.14.0
|
||||
# via wsproto
|
||||
idna==3.7
|
||||
# via requests
|
||||
imapclient==3.0.1
|
||||
# via -r requirements.in
|
||||
importlib-metadata==7.1.0
|
||||
# via
|
||||
# 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.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
|
||||
aprslib==0.7.2 # via -r requirements.in
|
||||
attrs==24.2.0 # via ax253, kiss3, rush
|
||||
ax253==0.1.5.post1 # via kiss3
|
||||
beautifulsoup4==4.12.3 # via -r requirements.in
|
||||
bidict==0.23.1 # via python-socketio
|
||||
bitarray==2.9.2 # via ax253, kiss3
|
||||
blinker==1.8.2 # via flask
|
||||
certifi==2024.8.30 # via requests
|
||||
charset-normalizer==3.3.2 # via requests
|
||||
click==8.1.7 # via -r requirements.in, click-params, flask
|
||||
click-params==0.5.0 # via -r requirements.in
|
||||
commonmark==0.9.1 # via rich
|
||||
dataclasses==0.6 # via -r requirements.in
|
||||
dataclasses-json==0.6.7 # via -r requirements.in
|
||||
debtcollector==3.0.0 # via oslo-config
|
||||
deprecated==1.2.14 # via click-params
|
||||
dnspython==2.6.1 # via eventlet
|
||||
eventlet==0.37.0 # via -r requirements.in
|
||||
flask==3.0.3 # via -r requirements.in, flask-httpauth, flask-socketio
|
||||
flask-httpauth==4.8.0 # via -r requirements.in
|
||||
flask-socketio==5.3.7 # via -r requirements.in
|
||||
geographiclib==2.0 # via geopy
|
||||
geopy==2.4.1 # via -r requirements.in
|
||||
gevent==24.2.1 # via -r requirements.in
|
||||
greenlet==3.1.0 # via eventlet, gevent
|
||||
h11==0.14.0 # via wsproto
|
||||
idna==3.10 # via requests
|
||||
imapclient==3.0.1 # via -r requirements.in
|
||||
importlib-metadata==8.5.0 # via 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.22.0 # via dataclasses-json
|
||||
mypy-extensions==1.0.0 # via typing-inspect
|
||||
netaddr==1.3.0 # via oslo-config
|
||||
oslo-config==9.6.0 # via -r requirements.in
|
||||
oslo-i18n==6.4.0 # via oslo-config
|
||||
packaging==24.1 # via marshmallow
|
||||
pbr==6.1.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.1 # via python-socketio
|
||||
python-socketio==5.11.4 # via -r requirements.in, flask-socketio
|
||||
pytz==2024.2 # via -r requirements.in
|
||||
pyyaml==6.0.2 # via -r requirements.in, oslo-config
|
||||
requests==2.32.3 # 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.6 # via beautifulsoup4
|
||||
stevedore==5.3.0 # via oslo-config
|
||||
tabulate==0.9.0 # via -r requirements.in
|
||||
thesmuggler==1.0.1 # via -r requirements.in
|
||||
typing-extensions==4.12.2 # 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.3 # via requests
|
||||
validators==0.22.0 # via click-params
|
||||
werkzeug==3.0.4 # via flask
|
||||
wrapt==1.16.0 # via -r requirements.in, debtcollector, deprecated
|
||||
wsproto==1.2.0 # via simple-websocket
|
||||
zipp==3.20.2 # via importlib-metadata
|
||||
zope-event==5.0 # via gevent
|
||||
zope-interface==7.0.3 # via gevent
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# setuptools
|
||||
|
Loading…
Reference in New Issue
Block a user