aprsd 4.0.2__tar.gz → 4.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/release_build.yml +1 -1
- {aprsd-4.0.2 → aprsd-4.1.1}/ChangeLog.md +52 -17
- {aprsd-4.0.2 → aprsd-4.1.1}/PKG-INFO +22 -20
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cli_helper.py +36 -35
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/base.py +14 -11
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/drivers/aprsis.py +87 -35
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/drivers/kiss.py +28 -5
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/kiss.py +1 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/listen.py +84 -91
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/send_message.py +30 -28
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/server.py +29 -64
- aprsd-4.1.1/aprsd/conf/common.py +237 -0
- aprsd-4.1.1/aprsd/conf/log.py +73 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/log/log.py +31 -18
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/main.py +22 -22
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/__init__.py +6 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/core.py +5 -2
- aprsd-4.1.1/aprsd/packets/filter.py +58 -0
- aprsd-4.1.1/aprsd/packets/filters/dupe_filter.py +68 -0
- aprsd-4.1.1/aprsd/packets/filters/packet_type.py +53 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/packet_list.py +33 -27
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugin.py +52 -52
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugin_utils.py +20 -21
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/weather.py +110 -109
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/__init__.py +1 -2
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/rx.py +83 -75
- aprsd-4.1.1/aprsd/threads/service.py +42 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/stats.py +4 -9
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/objectstore.py +12 -13
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/PKG-INFO +22 -20
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/SOURCES.txt +5 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/requires.txt +21 -19
- {aprsd-4.0.2 → aprsd-4.1.1}/requirements-dev.txt +7 -7
- {aprsd-4.0.2 → aprsd-4.1.1}/requirements.in +1 -2
- {aprsd-4.0.2 → aprsd-4.1.1}/requirements.txt +15 -13
- aprsd-4.1.1/tests/plugins/__init__.py +0 -0
- aprsd-4.0.2/aprsd/conf/common.py +0 -238
- aprsd-4.0.2/aprsd/conf/log.py +0 -63
- {aprsd-4.0.2 → aprsd-4.1.1}/.coveragerc +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/authors.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/codeql.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/manual_build.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/master-build.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.github/workflows/python.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.mailmap +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.pre-commit-config.yaml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/.readthedocs.yaml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/AUTHORS +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/CONTRIBUTING.md +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/INSTALL.txt +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/LICENSE +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/MANIFEST.in +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/Makefile +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/README.md +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/aprsis.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/drivers/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/drivers/fake.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/factory.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/fake.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/client/stats.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/completion.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/dev.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/fetch_stats.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/healthcheck.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/cmds/list_plugins.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/conf/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/conf/client.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/conf/opts.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/conf/plugin_common.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/exception.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/log/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/collector.py +0 -0
- {aprsd-4.0.2/aprsd/plugins → aprsd-4.1.1/aprsd/packets/filters}/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/log.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/seen_list.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/tracker.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/packets/watch_list.py +0 -0
- {aprsd-4.0.2/examples → aprsd-4.1.1/aprsd}/plugins/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/fortune.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/notify.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/ping.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/time.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/plugins/version.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/stats/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/stats/app.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/stats/collector.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/aprsd.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/keepalive.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/registry.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/threads/tx.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/counter.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/fuzzyclock.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/json.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/keepalive_collector.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/ring_buffer.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd/utils/trace.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd-lnav.json +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/dependency_links.txt +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/entry_points.txt +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd.egg-info/top_level.txt +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/aprsd_logo.png +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/Dockerfile +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/bin/admin.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/bin/healthcheck.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/bin/listen.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/bin/run.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/bin/setup.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/build.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docker/docker-compose.yml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/_static/.keep +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/_static/aprsd_overview.png +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/_static/aprsd_overview.svg +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/_templates/.keep +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.client.drivers.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.client.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.cmds.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.conf.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.log.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.packets.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.plugins.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.stats.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.threads.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/aprsd.utils.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/apidoc/modules.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/aprsd.drawio +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/changelog.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/clean_docs.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/conf.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/configure.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/index.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/install.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/links.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/plugin.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/readme.rst +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/docs/server.rst +0 -0
- {aprsd-4.0.2/tests → aprsd-4.1.1/examples/plugins}/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/examples/plugins/example_plugin.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/gray.conf +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/pyproject.toml +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/requirements-dev.in +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/setup.cfg +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/setup.py +0 -0
- {aprsd-4.0.2/tests/cmds → aprsd-4.1.1/tests}/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/client/test_aprsis.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/client/test_client_base.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/client/test_factory.py +0 -0
- {aprsd-4.0.2/tests/plugins → aprsd-4.1.1/tests/cmds}/__init__.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/cmds/test_send_message.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/fake.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_fortune.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_notify.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_ping.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_time.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_version.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/plugins/test_weather.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/test_packets.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tests/test_plugin.py +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tools/fast8.sh +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/tox.ini +0 -0
- {aprsd-4.0.2 → aprsd-4.1.1}/uv.lock +0 -0
@@ -4,6 +4,34 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
4
4
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
6
6
|
|
7
|
+
#### [4.1.1](https://github.com/craigerl/aprsd/compare/4.1.0...4.1.1)
|
8
|
+
|
9
|
+
> 5 March 2025
|
10
|
+
|
11
|
+
- Added new config to disable logging to console [`0fa5b07`](https://github.com/craigerl/aprsd/commit/0fa5b07d4bf4bc5d5aaad1de52b78058e472fe24)
|
12
|
+
- Added threads.service [`c1c89fd`](https://github.com/craigerl/aprsd/commit/c1c89fd2c2c69c5e6c5d29a736a7b89e3d45cfe2)
|
13
|
+
- Update requirements [`2b185ee`](https://github.com/craigerl/aprsd/commit/2b185ee1b84598c832d8a5d73753cb428854b932)
|
14
|
+
- Fixed some more ruff checks [`94ba915`](https://github.com/craigerl/aprsd/commit/94ba915ed44b11eaabc885e033669d67d8c341a5)
|
15
|
+
|
16
|
+
#### [4.1.0](https://github.com/craigerl/aprsd/compare/4.0.2...4.1.0)
|
17
|
+
|
18
|
+
> 20 February 2025
|
19
|
+
|
20
|
+
- Added new PacketFilter mechanism [`#184`](https://github.com/craigerl/aprsd/pull/184)
|
21
|
+
- Update to build from pypi [`3b57e75`](https://github.com/craigerl/aprsd/commit/3b57e7597d77303ffc03b082370283bb2fea2838)
|
22
|
+
- Updated APRSIS driver [`1606585`](https://github.com/craigerl/aprsd/commit/1606585d41f69133192199d139b53344bb320fa9)
|
23
|
+
- Updated packet_list to allow infinit max store [`19c12e7`](https://github.com/craigerl/aprsd/commit/19c12e70f30a6f1f7d223a2f0fd3bf1182579fa4)
|
24
|
+
- Update StatsStore to use existing lock [`227ddbf`](https://github.com/craigerl/aprsd/commit/227ddbf148be2e14d4b4f27e48a4b091a98f15df)
|
25
|
+
- Try and stop chardet logging! [`101904c`](https://github.com/craigerl/aprsd/commit/101904ca77d816ae9e70bc7d22e6d8516fc3c5ce)
|
26
|
+
- Fixed some pep8 failures. [`e9e7e6b`](https://github.com/craigerl/aprsd/commit/e9e7e6b59f9f93f3f09142e56407bc87603a44cb)
|
27
|
+
- updated gitignore [`fd517b3`](https://github.com/craigerl/aprsd/commit/fd517b32188fdf15835a74fbd515ce417e7ef1f5)
|
28
|
+
- Remove sleep in main RX thread [`6cd7e99`](https://github.com/craigerl/aprsd/commit/6cd7e997139e8f2687bee753d9e0d2b22b1c42a3)
|
29
|
+
- Changed Objectstore log to debug [`361663e`](https://github.com/craigerl/aprsd/commit/361663e7d2cf43bd2fd53da0d8c5205bb848dbc2)
|
30
|
+
- fix for None packet in rx thread [`d82a81a`](https://github.com/craigerl/aprsd/commit/d82a81a2c3c1a7f50177a0a6435a555daeb858aa)
|
31
|
+
- Fix runaway KISS driver on failed connnection [`b6da0eb`](https://github.com/craigerl/aprsd/commit/b6da0ebb0d2f4d7078dbbf91d8c03715412d89ea)
|
32
|
+
- CONF.logging.enable_color option added [`06bdb34`](https://github.com/craigerl/aprsd/commit/06bdb34642640d91ea96e3c6e8d8b5a4b8230611)
|
33
|
+
- Update Changelog for 4.1.0 release [`a3cda9f`](https://github.com/craigerl/aprsd/commit/a3cda9f37d4c9b955b523f46b2eb8cf412a84407)
|
34
|
+
|
7
35
|
#### [4.0.2](https://github.com/craigerl/aprsd/compare/4.0.1...4.0.2)
|
8
36
|
|
9
37
|
> 25 January 2025
|
@@ -16,6 +44,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
16
44
|
- Added uv.lock [`2f26eb8`](https://github.com/craigerl/aprsd/commit/2f26eb86f44625547f72f7c3612494b1bc44bc99)
|
17
45
|
- Fix the testing of fortune path [`3c4e200`](https://github.com/craigerl/aprsd/commit/3c4e200d700c24125479bb754b5f68bdf35b85a6)
|
18
46
|
- update the install from github in Dockerfile [`bea4815`](https://github.com/craigerl/aprsd/commit/bea481555bc1270ab371a22c69973d648e526d54)
|
47
|
+
- Prep for 4.0.2 [`000adef`](https://github.com/craigerl/aprsd/commit/000adef6d4f2792d33980d59d37f4b139e0c693c)
|
19
48
|
|
20
49
|
#### [4.0.1](https://github.com/craigerl/aprsd/compare/4.0.0...4.0.1)
|
21
50
|
|
@@ -24,11 +53,33 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
24
53
|
- Update pyproject for README.rst -> md [`e080394`](https://github.com/craigerl/aprsd/commit/e08039431ebde92a162ab422c05391dc55d3d3fa)
|
25
54
|
- Updated Changelog [`24f5672`](https://github.com/craigerl/aprsd/commit/24f567224cf8ecdebd51f49804425565883acb94)
|
26
55
|
|
27
|
-
### [4.0.0](https://github.com/craigerl/aprsd/compare/3.
|
56
|
+
### [4.0.0](https://github.com/craigerl/aprsd/compare/3.5.0...4.0.0)
|
28
57
|
|
29
58
|
> 24 January 2025
|
30
59
|
|
31
60
|
- Migrate admin web out of aprsd. [`#183`](https://github.com/craigerl/aprsd/pull/183)
|
61
|
+
- Enable packet stats for listen command in Docker [`e5d8796`](https://github.com/craigerl/aprsd/commit/e5d8796cda1a007aa868c760b96b50b364351519)
|
62
|
+
- Added activity to README [`cdd297c`](https://github.com/craigerl/aprsd/commit/cdd297c5bbc8b93f4739f5850a3e5971ce8baeba)
|
63
|
+
- Added star history to readme [`02e2940`](https://github.com/craigerl/aprsd/commit/02e29405ce2f8310e4f87f68498dfd6575c2e43b)
|
64
|
+
- removed pytest from README [`1cba31f`](https://github.com/craigerl/aprsd/commit/1cba31f0ac9bd5ee532721a909fc752f023f3b06)
|
65
|
+
- Updated Docker for using alpine and uv [`24db814`](https://github.com/craigerl/aprsd/commit/24db814c82c9bb6634566d7428603bf7a9ae37d1)
|
66
|
+
- Update the admin and setup.sh for container [`044ea4c`](https://github.com/craigerl/aprsd/commit/044ea4cc9a0059101851d6e722e986ee236833e8)
|
67
|
+
- added healthcheck.sh [`1054999`](https://github.com/craigerl/aprsd/commit/10549995686b08e4c166f780efdec5bdae496cab)
|
68
|
+
- updated healthcheck.sh [`dabb48c`](https://github.com/craigerl/aprsd/commit/dabb48c6f64062c1fed8f83a4f0b8ffba0c206a5)
|
69
|
+
- try making image for webchat [`ba8acdc`](https://github.com/craigerl/aprsd/commit/ba8acdc5849fc7b2d8a1ee11af6f5e317cf30f45)
|
70
|
+
- Added APRSD logo [`0ed648f`](https://github.com/craigerl/aprsd/commit/0ed648f8f8a961dbbd9e22bcebadcde525ee41ae)
|
71
|
+
- Added plugin and extension links [`447451c`](https://github.com/craigerl/aprsd/commit/447451c6c97e1f2d3d0bf580db21ecd176690258)
|
72
|
+
- reduced logo size 50% [`cf4a29f`](https://github.com/craigerl/aprsd/commit/cf4a29f0cb3ed366b21ec3120a189614e0955180)
|
73
|
+
- Updated README.md TOC [`375a5e5`](https://github.com/craigerl/aprsd/commit/375a5e5b34718cadc6ee8a51484fc91441440a61)
|
74
|
+
- chore: update AUTHORS [skip ci] [`c556f51`](https://github.com/craigerl/aprsd/commit/c556f5126f725904822a75427475d46986f8e9f3)
|
75
|
+
- Updated requirements [`4a7a902`](https://github.com/craigerl/aprsd/commit/4a7a902a337759a352560d4d92dc314b1726412a)
|
76
|
+
- Updated ChangeLog for 4.0.0 [`934ebd2`](https://github.com/craigerl/aprsd/commit/934ebd236d044625b911dd8ca45293f6c5680a68)
|
77
|
+
|
78
|
+
#### [3.5.0](https://github.com/craigerl/aprsd/compare/3.4.4...3.5.0)
|
79
|
+
|
80
|
+
> 10 January 2025
|
81
|
+
|
82
|
+
- Migrate admin web out of aprsd. [`c48ff8d`](https://github.com/craigerl/aprsd/commit/c48ff8dfd4bd4ce2f95b36e71dce13da5446a658)
|
32
83
|
- Remove webchat as a built in command. [`8f8887f`](https://github.com/craigerl/aprsd/commit/8f8887f0e496d960b0e71275893b75408a40fdb2)
|
33
84
|
- Remove email plugin [`0880a35`](https://github.com/craigerl/aprsd/commit/0880a356e6df1a0924cbf6e815e68cba5f5c6cf1)
|
34
85
|
- Fixed make clean [`ae28dbb`](https://github.com/craigerl/aprsd/commit/ae28dbb0e6bc216bf78c0bd9d7804f57b39091d1)
|
@@ -37,7 +88,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
37
88
|
- Removed LocationPlugin from aprsd core [`3bba8a1`](https://github.com/craigerl/aprsd/commit/3bba8a19da88b0912064cea786bc9f8203038946)
|
38
89
|
- Include haversine library [`bbdbb9a`](https://github.com/craigerl/aprsd/commit/bbdbb9aba189d536497ea3cd7d30911fe3d9d706)
|
39
90
|
- Update Makefile [`caa4bb8`](https://github.com/craigerl/aprsd/commit/caa4bb8bd01cbd2e02024d75e1c8af97acf6c657)
|
40
|
-
- Enable packet stats for listen command in Docker [`e5d8796`](https://github.com/craigerl/aprsd/commit/e5d8796cda1a007aa868c760b96b50b364351519)
|
41
91
|
- Added new KeepAliveCollector [`30d1eb5`](https://github.com/craigerl/aprsd/commit/30d1eb57dd249c609f5b092d8084c40cadda7bd9)
|
42
92
|
- Changed to ruff [`72d068c`](https://github.com/craigerl/aprsd/commit/72d068c0b8944c8c9eed494fc23de8d7179ee09b)
|
43
93
|
- Changed README.rst -> README.md [`b1a830d`](https://github.com/craigerl/aprsd/commit/b1a830d54e9dec473074b34f9566f161bdec0030)
|
@@ -58,21 +108,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
58
108
|
- Added .mailmap [`8d98546`](https://github.com/craigerl/aprsd/commit/8d9854605584fa35117af888fe219df610fb7cb4)
|
59
109
|
- updated tools in pre-commit [`e4f82d6`](https://github.com/craigerl/aprsd/commit/e4f82d6054d4d859023423bccdd5c402d7a83494)
|
60
110
|
- some cleanup [`e332d7c`](https://github.com/craigerl/aprsd/commit/e332d7c9d046066e2686ea0522ae06b86d2f162d)
|
61
|
-
- Added activity to README [`cdd297c`](https://github.com/craigerl/aprsd/commit/cdd297c5bbc8b93f4739f5850a3e5971ce8baeba)
|
62
|
-
- Added star history to readme [`02e2940`](https://github.com/craigerl/aprsd/commit/02e29405ce2f8310e4f87f68498dfd6575c2e43b)
|
63
|
-
- removed pytest from README [`1cba31f`](https://github.com/craigerl/aprsd/commit/1cba31f0ac9bd5ee532721a909fc752f023f3b06)
|
64
|
-
- Updated Docker for using alpine and uv [`24db814`](https://github.com/craigerl/aprsd/commit/24db814c82c9bb6634566d7428603bf7a9ae37d1)
|
65
|
-
- Update the admin and setup.sh for container [`044ea4c`](https://github.com/craigerl/aprsd/commit/044ea4cc9a0059101851d6e722e986ee236833e8)
|
66
|
-
- added healthcheck.sh [`1054999`](https://github.com/craigerl/aprsd/commit/10549995686b08e4c166f780efdec5bdae496cab)
|
67
|
-
- updated healthcheck.sh [`dabb48c`](https://github.com/craigerl/aprsd/commit/dabb48c6f64062c1fed8f83a4f0b8ffba0c206a5)
|
68
|
-
- try making image for webchat [`ba8acdc`](https://github.com/craigerl/aprsd/commit/ba8acdc5849fc7b2d8a1ee11af6f5e317cf30f45)
|
69
|
-
- Added APRSD logo [`0ed648f`](https://github.com/craigerl/aprsd/commit/0ed648f8f8a961dbbd9e22bcebadcde525ee41ae)
|
70
|
-
- Added plugin and extension links [`447451c`](https://github.com/craigerl/aprsd/commit/447451c6c97e1f2d3d0bf580db21ecd176690258)
|
71
|
-
- reduced logo size 50% [`cf4a29f`](https://github.com/craigerl/aprsd/commit/cf4a29f0cb3ed366b21ec3120a189614e0955180)
|
72
|
-
- Updated README.md TOC [`375a5e5`](https://github.com/craigerl/aprsd/commit/375a5e5b34718cadc6ee8a51484fc91441440a61)
|
73
|
-
- chore: update AUTHORS [skip ci] [`c556f51`](https://github.com/craigerl/aprsd/commit/c556f5126f725904822a75427475d46986f8e9f3)
|
74
|
-
- Updated requirements [`4a7a902`](https://github.com/craigerl/aprsd/commit/4a7a902a337759a352560d4d92dc314b1726412a)
|
75
|
-
- Updated ChangeLog for 4.0.0 [`934ebd2`](https://github.com/craigerl/aprsd/commit/934ebd236d044625b911dd8ca45293f6c5680a68)
|
76
111
|
|
77
112
|
#### [3.4.4](https://github.com/craigerl/aprsd/compare/3.4.3...3.4.4)
|
78
113
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: aprsd
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.1.1
|
4
4
|
Summary: APRSd is a APRS-IS server that can be used to connect to APRS-IS and send and receive APRS packets.
|
5
5
|
Author-email: Craig Lamparter <craig@craiger.org>, "Walter A. Boring IV" <waboring@hemna.com>, Emre Saglam <emresaglam@gmail.com>, Jason Martin <jhmartin@toger.us>, John <johng42@users.noreply.github.com>, Martiros Shakhzadyan <vrzh@vrzh.net>, Zoe Moore <zoenb@mailbox.org>, ranguli <hello@joshmurphy.ca>
|
6
6
|
Maintainer-email: Craig Lamparter <craig@craiger.org>, "Walter A. Boring IV" <waboring@hemna.com>
|
@@ -202,13 +202,12 @@ Description-Content-Type: text/markdown
|
|
202
202
|
License-File: LICENSE
|
203
203
|
License-File: AUTHORS
|
204
204
|
Requires-Dist: aprslib==0.7.2
|
205
|
-
Requires-Dist: attrs==
|
205
|
+
Requires-Dist: attrs==25.1.0
|
206
206
|
Requires-Dist: ax253==0.1.5.post1
|
207
|
-
Requires-Dist: bitarray==3.
|
208
|
-
Requires-Dist: certifi==
|
207
|
+
Requires-Dist: bitarray==3.1.0
|
208
|
+
Requires-Dist: certifi==2025.1.31
|
209
209
|
Requires-Dist: charset-normalizer==3.4.1
|
210
210
|
Requires-Dist: click==8.1.8
|
211
|
-
Requires-Dist: commonmark==0.9.1
|
212
211
|
Requires-Dist: dataclasses-json==0.6.7
|
213
212
|
Requires-Dist: debtcollector==3.0.0
|
214
213
|
Requires-Dist: haversine==2.9.0
|
@@ -216,39 +215,42 @@ Requires-Dist: idna==3.10
|
|
216
215
|
Requires-Dist: importlib-metadata==8.6.1
|
217
216
|
Requires-Dist: kiss3==8.0.0
|
218
217
|
Requires-Dist: loguru==0.7.3
|
219
|
-
Requires-Dist:
|
218
|
+
Requires-Dist: markdown-it-py==3.0.0
|
219
|
+
Requires-Dist: marshmallow==3.26.1
|
220
|
+
Requires-Dist: mdurl==0.1.2
|
220
221
|
Requires-Dist: mypy-extensions==1.0.0
|
221
222
|
Requires-Dist: netaddr==1.3.0
|
222
|
-
Requires-Dist: oslo-config==9.7.
|
223
|
-
Requires-Dist: oslo-i18n==6.5.
|
223
|
+
Requires-Dist: oslo-config==9.7.1
|
224
|
+
Requires-Dist: oslo-i18n==6.5.1
|
224
225
|
Requires-Dist: packaging==24.2
|
225
|
-
Requires-Dist: pbr==6.1.
|
226
|
+
Requires-Dist: pbr==6.1.1
|
226
227
|
Requires-Dist: pluggy==1.5.0
|
227
228
|
Requires-Dist: pygments==2.19.1
|
228
229
|
Requires-Dist: pyserial==3.5
|
229
230
|
Requires-Dist: pyserial-asyncio==0.6
|
230
|
-
Requires-Dist: pytz==
|
231
|
+
Requires-Dist: pytz==2025.1
|
231
232
|
Requires-Dist: pyyaml==6.0.2
|
232
233
|
Requires-Dist: requests==2.32.3
|
233
234
|
Requires-Dist: rfc3986==2.0.0
|
234
|
-
Requires-Dist: rich==
|
235
|
+
Requires-Dist: rich==13.9.4
|
235
236
|
Requires-Dist: rush==2021.4.0
|
236
|
-
Requires-Dist:
|
237
|
+
Requires-Dist: setuptools==75.8.2
|
238
|
+
Requires-Dist: stevedore==5.4.1
|
237
239
|
Requires-Dist: thesmuggler==1.0.1
|
238
240
|
Requires-Dist: timeago==1.0.16
|
239
241
|
Requires-Dist: typing-extensions==4.12.2
|
240
242
|
Requires-Dist: typing-inspect==0.9.0
|
241
|
-
Requires-Dist: tzlocal==5.
|
243
|
+
Requires-Dist: tzlocal==5.3
|
242
244
|
Requires-Dist: update-checker==0.18.0
|
243
245
|
Requires-Dist: urllib3==2.3.0
|
244
246
|
Requires-Dist: wrapt==1.17.2
|
245
247
|
Requires-Dist: zipp==3.21.0
|
246
248
|
Provides-Extra: dev
|
247
249
|
Requires-Dist: alabaster==1.0.0; extra == "dev"
|
248
|
-
Requires-Dist: babel==2.
|
250
|
+
Requires-Dist: babel==2.17.0; extra == "dev"
|
249
251
|
Requires-Dist: build==1.2.2.post1; extra == "dev"
|
250
|
-
Requires-Dist: cachetools==5.5.
|
251
|
-
Requires-Dist: certifi==
|
252
|
+
Requires-Dist: cachetools==5.5.2; extra == "dev"
|
253
|
+
Requires-Dist: certifi==2025.1.31; extra == "dev"
|
252
254
|
Requires-Dist: cfgv==3.4.0; extra == "dev"
|
253
255
|
Requires-Dist: chardet==5.2.0; extra == "dev"
|
254
256
|
Requires-Dist: charset-normalizer==3.4.1; extra == "dev"
|
@@ -257,7 +259,7 @@ Requires-Dist: colorama==0.4.6; extra == "dev"
|
|
257
259
|
Requires-Dist: distlib==0.3.9; extra == "dev"
|
258
260
|
Requires-Dist: docutils==0.21.2; extra == "dev"
|
259
261
|
Requires-Dist: filelock==3.17.0; extra == "dev"
|
260
|
-
Requires-Dist: identify==2.6.
|
262
|
+
Requires-Dist: identify==2.6.8; extra == "dev"
|
261
263
|
Requires-Dist: idna==3.10; extra == "dev"
|
262
264
|
Requires-Dist: imagesize==1.4.1; extra == "dev"
|
263
265
|
Requires-Dist: jinja2==3.1.5; extra == "dev"
|
@@ -266,7 +268,7 @@ Requires-Dist: markupsafe==3.0.2; extra == "dev"
|
|
266
268
|
Requires-Dist: mistune==0.8.4; extra == "dev"
|
267
269
|
Requires-Dist: nodeenv==1.9.1; extra == "dev"
|
268
270
|
Requires-Dist: packaging==24.2; extra == "dev"
|
269
|
-
Requires-Dist: pip==
|
271
|
+
Requires-Dist: pip==25.0.1; extra == "dev"
|
270
272
|
Requires-Dist: pip-tools==7.4.1; extra == "dev"
|
271
273
|
Requires-Dist: platformdirs==4.3.6; extra == "dev"
|
272
274
|
Requires-Dist: pluggy==1.5.0; extra == "dev"
|
@@ -276,7 +278,7 @@ Requires-Dist: pyproject-api==1.9.0; extra == "dev"
|
|
276
278
|
Requires-Dist: pyproject-hooks==1.2.0; extra == "dev"
|
277
279
|
Requires-Dist: pyyaml==6.0.2; extra == "dev"
|
278
280
|
Requires-Dist: requests==2.32.3; extra == "dev"
|
279
|
-
Requires-Dist: setuptools==75.8.
|
281
|
+
Requires-Dist: setuptools==75.8.2; extra == "dev"
|
280
282
|
Requires-Dist: snowballstemmer==2.2.0; extra == "dev"
|
281
283
|
Requires-Dist: sphinx==8.1.3; extra == "dev"
|
282
284
|
Requires-Dist: sphinxcontrib-applehelp==2.0.0; extra == "dev"
|
@@ -289,7 +291,7 @@ Requires-Dist: tomli==2.2.1; extra == "dev"
|
|
289
291
|
Requires-Dist: tox==4.24.1; extra == "dev"
|
290
292
|
Requires-Dist: typing-extensions==4.12.2; extra == "dev"
|
291
293
|
Requires-Dist: urllib3==2.3.0; extra == "dev"
|
292
|
-
Requires-Dist: virtualenv==20.29.
|
294
|
+
Requires-Dist: virtualenv==20.29.2; extra == "dev"
|
293
295
|
Requires-Dist: wheel==0.45.1; extra == "dev"
|
294
296
|
|
295
297
|
# APRSD - Ham radio APRS-IS Message platform software
|
@@ -13,35 +13,35 @@ from aprsd.utils import trace
|
|
13
13
|
|
14
14
|
CONF = cfg.CONF
|
15
15
|
home = str(Path.home())
|
16
|
-
DEFAULT_CONFIG_DIR = f
|
17
|
-
DEFAULT_SAVE_FILE = f
|
18
|
-
DEFAULT_CONFIG_FILE = f
|
16
|
+
DEFAULT_CONFIG_DIR = f'{home}/.config/aprsd/'
|
17
|
+
DEFAULT_SAVE_FILE = f'{home}/.config/aprsd/aprsd.p'
|
18
|
+
DEFAULT_CONFIG_FILE = f'{home}/.config/aprsd/aprsd.conf'
|
19
19
|
|
20
20
|
|
21
|
-
F = t.TypeVar(
|
21
|
+
F = t.TypeVar('F', bound=t.Callable[..., t.Any])
|
22
22
|
|
23
23
|
common_options = [
|
24
24
|
click.option(
|
25
|
-
|
26
|
-
default=
|
25
|
+
'--loglevel',
|
26
|
+
default='INFO',
|
27
27
|
show_default=True,
|
28
28
|
type=click.Choice(
|
29
|
-
[
|
29
|
+
['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'],
|
30
30
|
case_sensitive=False,
|
31
31
|
),
|
32
32
|
show_choices=True,
|
33
|
-
help=
|
33
|
+
help='The log level to use for aprsd.log',
|
34
34
|
),
|
35
35
|
click.option(
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
'-c',
|
37
|
+
'--config',
|
38
|
+
'config_file',
|
39
39
|
show_default=True,
|
40
40
|
default=DEFAULT_CONFIG_FILE,
|
41
|
-
help=
|
41
|
+
help='The aprsd config file to use for options.',
|
42
42
|
),
|
43
43
|
click.option(
|
44
|
-
|
44
|
+
'--quiet',
|
45
45
|
is_flag=True,
|
46
46
|
default=False,
|
47
47
|
help="Don't log to stdout",
|
@@ -59,7 +59,7 @@ class AliasedGroup(click.Group):
|
|
59
59
|
"""
|
60
60
|
|
61
61
|
def decorator(f):
|
62
|
-
aliases = kwargs.pop(
|
62
|
+
aliases = kwargs.pop('aliases', [])
|
63
63
|
cmd = click.decorators.command(*args, **kwargs)(f)
|
64
64
|
self.add_command(cmd)
|
65
65
|
for alias in aliases:
|
@@ -77,7 +77,7 @@ class AliasedGroup(click.Group):
|
|
77
77
|
"""
|
78
78
|
|
79
79
|
def decorator(f):
|
80
|
-
aliases = kwargs.pop(
|
80
|
+
aliases = kwargs.pop('aliases', [])
|
81
81
|
cmd = click.decorators.group(*args, **kwargs)(f)
|
82
82
|
self.add_command(cmd)
|
83
83
|
for alias in aliases:
|
@@ -101,36 +101,37 @@ def process_standard_options(f: F) -> F:
|
|
101
101
|
ctx = args[0]
|
102
102
|
ctx.ensure_object(dict)
|
103
103
|
config_file_found = True
|
104
|
-
if kwargs[
|
105
|
-
default_config_files = [kwargs[
|
104
|
+
if kwargs['config_file']:
|
105
|
+
default_config_files = [kwargs['config_file']]
|
106
106
|
else:
|
107
107
|
default_config_files = None
|
108
|
+
|
108
109
|
try:
|
109
110
|
CONF(
|
110
111
|
[],
|
111
|
-
project=
|
112
|
+
project='aprsd',
|
112
113
|
version=aprsd.__version__,
|
113
114
|
default_config_files=default_config_files,
|
114
115
|
)
|
115
116
|
except cfg.ConfigFilesNotFoundError:
|
116
117
|
config_file_found = False
|
117
|
-
ctx.obj[
|
118
|
+
ctx.obj['loglevel'] = kwargs['loglevel']
|
118
119
|
# ctx.obj["config_file"] = kwargs["config_file"]
|
119
|
-
ctx.obj[
|
120
|
+
ctx.obj['quiet'] = kwargs['quiet']
|
120
121
|
log.setup_logging(
|
121
|
-
ctx.obj[
|
122
|
-
ctx.obj[
|
122
|
+
ctx.obj['loglevel'],
|
123
|
+
ctx.obj['quiet'],
|
123
124
|
)
|
124
125
|
if CONF.trace_enabled:
|
125
|
-
trace.setup_tracing([
|
126
|
+
trace.setup_tracing(['method', 'api'])
|
126
127
|
|
127
128
|
if not config_file_found:
|
128
|
-
LOG = logging.getLogger(
|
129
|
+
LOG = logging.getLogger('APRSD') # noqa: N806
|
129
130
|
LOG.error("No config file found!! run 'aprsd sample-config'")
|
130
131
|
|
131
|
-
del kwargs[
|
132
|
-
del kwargs[
|
133
|
-
del kwargs[
|
132
|
+
del kwargs['loglevel']
|
133
|
+
del kwargs['config_file']
|
134
|
+
del kwargs['quiet']
|
134
135
|
return f(*args, **kwargs)
|
135
136
|
|
136
137
|
return update_wrapper(t.cast(F, new_func), f)
|
@@ -142,17 +143,17 @@ def process_standard_options_no_config(f: F) -> F:
|
|
142
143
|
def new_func(*args, **kwargs):
|
143
144
|
ctx = args[0]
|
144
145
|
ctx.ensure_object(dict)
|
145
|
-
ctx.obj[
|
146
|
-
ctx.obj[
|
147
|
-
ctx.obj[
|
146
|
+
ctx.obj['loglevel'] = kwargs['loglevel']
|
147
|
+
ctx.obj['config_file'] = kwargs['config_file']
|
148
|
+
ctx.obj['quiet'] = kwargs['quiet']
|
148
149
|
log.setup_logging(
|
149
|
-
ctx.obj[
|
150
|
-
ctx.obj[
|
150
|
+
ctx.obj['loglevel'],
|
151
|
+
ctx.obj['quiet'],
|
151
152
|
)
|
152
153
|
|
153
|
-
del kwargs[
|
154
|
-
del kwargs[
|
155
|
-
del kwargs[
|
154
|
+
del kwargs['loglevel']
|
155
|
+
del kwargs['config_file']
|
156
|
+
del kwargs['quiet']
|
156
157
|
return f(*args, **kwargs)
|
157
158
|
|
158
159
|
return update_wrapper(t.cast(F, new_func), f)
|
@@ -9,7 +9,7 @@ from aprsd.packets import core
|
|
9
9
|
from aprsd.utils import keepalive_collector
|
10
10
|
|
11
11
|
CONF = cfg.CONF
|
12
|
-
LOG = logging.getLogger(
|
12
|
+
LOG = logging.getLogger('APRSD')
|
13
13
|
|
14
14
|
|
15
15
|
class APRSClient:
|
@@ -20,8 +20,8 @@ class APRSClient:
|
|
20
20
|
|
21
21
|
connected = False
|
22
22
|
login_status = {
|
23
|
-
|
24
|
-
|
23
|
+
'success': False,
|
24
|
+
'message': None,
|
25
25
|
}
|
26
26
|
filter = None
|
27
27
|
lock = threading.Lock()
|
@@ -59,17 +59,20 @@ class APRSClient:
|
|
59
59
|
|
60
60
|
@property
|
61
61
|
def login_success(self):
|
62
|
-
return self.login_status.get(
|
62
|
+
return self.login_status.get('success', False)
|
63
63
|
|
64
64
|
@property
|
65
65
|
def login_failure(self):
|
66
|
-
return self.login_status[
|
66
|
+
return self.login_status['message']
|
67
67
|
|
68
68
|
def set_filter(self, filter):
|
69
69
|
self.filter = filter
|
70
70
|
if self._client:
|
71
71
|
self._client.set_filter(filter)
|
72
72
|
|
73
|
+
def get_filter(self):
|
74
|
+
return self.filter
|
75
|
+
|
73
76
|
@property
|
74
77
|
def client(self):
|
75
78
|
if not self._client:
|
@@ -80,16 +83,16 @@ class APRSClient:
|
|
80
83
|
try:
|
81
84
|
self._client = self.setup_connection()
|
82
85
|
if self.filter:
|
83
|
-
LOG.info(
|
86
|
+
LOG.info('Creating APRS client filter')
|
84
87
|
self._client.set_filter(self.filter)
|
85
88
|
except Exception as e:
|
86
|
-
LOG.error(f
|
89
|
+
LOG.error(f'Failed to create APRS client: {e}')
|
87
90
|
self._client = None
|
88
91
|
raise
|
89
92
|
|
90
93
|
def stop(self):
|
91
94
|
if self._client:
|
92
|
-
LOG.info(
|
95
|
+
LOG.info('Stopping client connection.')
|
93
96
|
self._client.stop()
|
94
97
|
|
95
98
|
def send(self, packet: core.Packet) -> None:
|
@@ -103,16 +106,16 @@ class APRSClient:
|
|
103
106
|
@wrapt.synchronized(lock)
|
104
107
|
def reset(self) -> None:
|
105
108
|
"""Call this to force a rebuild/reconnect."""
|
106
|
-
LOG.info(
|
109
|
+
LOG.info('Resetting client connection.')
|
107
110
|
if self._client:
|
108
111
|
self._client.close()
|
109
112
|
del self._client
|
110
113
|
self._create_client()
|
111
114
|
else:
|
112
|
-
LOG.warning(
|
115
|
+
LOG.warning('Client not initialized, nothing to reset.')
|
113
116
|
|
114
117
|
# Recreate the client
|
115
|
-
LOG.info(f
|
118
|
+
LOG.info(f'Creating new client {self.client}')
|
116
119
|
|
117
120
|
@abc.abstractmethod
|
118
121
|
def setup_connection(self):
|