mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-21 15:51:52 -05:00
Compare commits
5 Commits
82f8a0d0d1
...
3895786833
Author | SHA1 | Date | |
---|---|---|---|
|
3895786833 | ||
|
125ae6b97b | ||
4d1dfadbde | |||
93a9cce0c0 | |||
|
321260ff7a |
@ -4,6 +4,7 @@ CHANGES
|
||||
v3.4.0
|
||||
------
|
||||
|
||||
* Updated Changelog for 3.4.0
|
||||
* Change setup.h
|
||||
* Fixed docker setup.sh comparison
|
||||
* Fixed unit tests failing with WatchList
|
||||
|
@ -12,7 +12,22 @@ from aprsd.conf import log as conf_log
|
||||
CONF = cfg.CONF
|
||||
# LOG = logging.getLogger("APRSD")
|
||||
LOG = logger
|
||||
logging_queue = queue.Queue()
|
||||
|
||||
|
||||
class QueueLatest(queue.Queue):
|
||||
"""Custom Queue to keep only the latest N items.
|
||||
|
||||
This prevents the queue from blowing up in size.
|
||||
"""
|
||||
def put(self, *args, **kwargs):
|
||||
try:
|
||||
super().put(*args, **kwargs)
|
||||
except queue.Full:
|
||||
self.queue.popleft()
|
||||
super().put(*args, **kwargs)
|
||||
|
||||
|
||||
logging_queue = QueueLatest(maxsize=200)
|
||||
|
||||
|
||||
class InterceptHandler(logging.Handler):
|
||||
@ -59,6 +74,10 @@ def setup_logging(loglevel=None, quiet=False):
|
||||
"werkzeug._internal",
|
||||
"socketio",
|
||||
"urllib3.connectionpool",
|
||||
"chardet",
|
||||
"chardet.charsetgroupprober",
|
||||
"chardet.eucjpprober",
|
||||
"chardet.mbcharsetprober",
|
||||
]
|
||||
|
||||
# We don't really want to see the aprslib parsing debug output.
|
||||
|
@ -5,6 +5,7 @@ from oslo_config import cfg
|
||||
|
||||
import aprsd
|
||||
from aprsd import utils
|
||||
from aprsd.log import log as aprsd_log
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
@ -32,6 +33,7 @@ class APRSDStats:
|
||||
def stats(self, serializable=False) -> dict:
|
||||
current, peak = tracemalloc.get_traced_memory()
|
||||
uptime = self.uptime()
|
||||
qsize = aprsd_log.logging_queue.qsize()
|
||||
if serializable:
|
||||
uptime = str(uptime)
|
||||
stats = {
|
||||
@ -42,5 +44,6 @@ class APRSDStats:
|
||||
"memory_current_str": utils.human_size(current),
|
||||
"memory_peak": int(peak),
|
||||
"memory_peak_str": utils.human_size(peak),
|
||||
"loging_queue": qsize,
|
||||
}
|
||||
return stats
|
||||
|
@ -6,6 +6,7 @@ import tracemalloc
|
||||
from oslo_config import cfg
|
||||
|
||||
from aprsd import client, packets, utils
|
||||
from aprsd.log import log as aprsd_log
|
||||
from aprsd.stats import collector
|
||||
from aprsd.threads import APRSDThread, APRSDThreadList
|
||||
|
||||
@ -59,7 +60,7 @@ class KeepAliveThread(APRSDThread):
|
||||
|
||||
keepalive = (
|
||||
"{} - Uptime {} RX:{} TX:{} Tracker:{} Msgs TX:{} RX:{} "
|
||||
"Last:{} Email: {} - RAM Current:{} Peak:{} Threads:{}"
|
||||
"Last:{} Email: {} - RAM Current:{} Peak:{} Threads:{} LoggingQueue:{}"
|
||||
).format(
|
||||
stats_json["APRSDStats"]["callsign"],
|
||||
stats_json["APRSDStats"]["uptime"],
|
||||
@ -73,6 +74,7 @@ class KeepAliveThread(APRSDThread):
|
||||
stats_json["APRSDStats"]["memory_current_str"],
|
||||
stats_json["APRSDStats"]["memory_peak_str"],
|
||||
len(thread_list),
|
||||
aprsd_log.logging_queue.qsize(),
|
||||
)
|
||||
LOG.info(keepalive)
|
||||
if "APRSDThreadList" in stats_json:
|
||||
|
@ -4,79 +4,205 @@
|
||||
#
|
||||
# pip-compile --annotation-style=line dev-requirements.in
|
||||
#
|
||||
add-trailing-comma==3.1.0 # via gray
|
||||
alabaster==0.7.16 # via sphinx
|
||||
autoflake==1.5.3 # via gray
|
||||
babel==2.14.0 # via sphinx
|
||||
black==24.4.0 # via gray
|
||||
build==1.2.1 # via pip-tools
|
||||
cachetools==5.3.3 # via tox
|
||||
certifi==2024.2.2 # via requests
|
||||
cfgv==3.4.0 # via pre-commit
|
||||
chardet==5.2.0 # via tox
|
||||
charset-normalizer==3.3.2 # via requests
|
||||
click==8.1.7 # via black, fixit, moreorless, pip-tools
|
||||
colorama==0.4.6 # via tox
|
||||
commonmark==0.9.1 # via rich
|
||||
configargparse==1.7 # via gray
|
||||
coverage[toml]==7.5.0 # via pytest-cov
|
||||
distlib==0.3.8 # via virtualenv
|
||||
docutils==0.21.2 # via sphinx
|
||||
exceptiongroup==1.2.1 # via pytest
|
||||
filelock==3.13.4 # via tox, virtualenv
|
||||
fixit==2.1.0 # via gray
|
||||
flake8==7.0.0 # via -r dev-requirements.in, pep8-naming
|
||||
gray==0.14.0 # via -r dev-requirements.in
|
||||
identify==2.5.36 # via pre-commit
|
||||
idna==3.7 # via requests
|
||||
imagesize==1.4.1 # via sphinx
|
||||
iniconfig==2.0.0 # via pytest
|
||||
isort==5.13.2 # via -r dev-requirements.in, gray
|
||||
jinja2==3.1.3 # via sphinx
|
||||
libcst==1.3.1 # via fixit
|
||||
markupsafe==2.1.5 # via jinja2
|
||||
mccabe==0.7.0 # via flake8
|
||||
moreorless==0.4.0 # via fixit
|
||||
mypy==1.9.0 # via -r dev-requirements.in
|
||||
mypy-extensions==1.0.0 # via black, mypy
|
||||
nodeenv==1.8.0 # via pre-commit
|
||||
packaging==24.0 # via black, build, fixit, pyproject-api, pytest, sphinx, tox
|
||||
pathspec==0.12.1 # via black, trailrunner
|
||||
pep8-naming==0.13.3 # via -r dev-requirements.in
|
||||
pip-tools==7.4.1 # via -r dev-requirements.in
|
||||
platformdirs==4.2.1 # via black, tox, virtualenv
|
||||
pluggy==1.5.0 # via pytest, tox
|
||||
pre-commit==3.7.0 # via -r dev-requirements.in
|
||||
pycodestyle==2.11.1 # via flake8
|
||||
pyflakes==3.2.0 # via autoflake, flake8
|
||||
pygments==2.17.2 # via rich, sphinx
|
||||
pyproject-api==1.6.1 # via tox
|
||||
pyproject-hooks==1.0.0 # via build, pip-tools
|
||||
pytest==8.1.1 # via -r dev-requirements.in, pytest-cov
|
||||
pytest-cov==5.0.0 # via -r dev-requirements.in
|
||||
pyupgrade==3.15.2 # via gray
|
||||
pyyaml==6.0.1 # via libcst, pre-commit
|
||||
requests==2.31.0 # via sphinx
|
||||
rich==12.6.0 # via gray
|
||||
snowballstemmer==2.2.0 # via sphinx
|
||||
sphinx==7.3.7 # via -r dev-requirements.in
|
||||
sphinxcontrib-applehelp==1.0.8 # via sphinx
|
||||
sphinxcontrib-devhelp==1.0.6 # via sphinx
|
||||
sphinxcontrib-htmlhelp==2.0.5 # via sphinx
|
||||
sphinxcontrib-jsmath==1.0.1 # via sphinx
|
||||
sphinxcontrib-qthelp==1.0.7 # via sphinx
|
||||
sphinxcontrib-serializinghtml==1.1.10 # via sphinx
|
||||
tokenize-rt==5.2.0 # via add-trailing-comma, pyupgrade
|
||||
toml==0.10.2 # via autoflake
|
||||
tomli==2.0.1 # via black, build, coverage, fixit, mypy, pip-tools, pyproject-api, pyproject-hooks, pytest, sphinx, tox
|
||||
tox==4.14.2 # via -r dev-requirements.in
|
||||
trailrunner==1.4.0 # via fixit
|
||||
typing-extensions==4.11.0 # via black, mypy
|
||||
unify==0.5 # via gray
|
||||
untokenize==0.1.1 # via unify
|
||||
urllib3==2.2.1 # via requests
|
||||
virtualenv==20.26.0 # via pre-commit, tox
|
||||
wheel==0.43.0 # via pip-tools
|
||||
add-trailing-comma==3.1.0
|
||||
# via gray
|
||||
alabaster==0.7.16
|
||||
# via sphinx
|
||||
autoflake==1.5.3
|
||||
# via gray
|
||||
babel==2.14.0
|
||||
# via sphinx
|
||||
black==24.4.0
|
||||
# via gray
|
||||
build==1.2.1
|
||||
# via pip-tools
|
||||
cachetools==5.3.3
|
||||
# via tox
|
||||
certifi==2024.2.2
|
||||
# via requests
|
||||
cfgv==3.4.0
|
||||
# via pre-commit
|
||||
chardet==5.2.0
|
||||
# via tox
|
||||
charset-normalizer==3.3.2
|
||||
# via requests
|
||||
click==8.1.7
|
||||
# via
|
||||
# black
|
||||
# fixit
|
||||
# moreorless
|
||||
# pip-tools
|
||||
colorama==0.4.6
|
||||
# via tox
|
||||
commonmark==0.9.1
|
||||
# via rich
|
||||
configargparse==1.7
|
||||
# via gray
|
||||
coverage[toml]==7.5.0
|
||||
# via pytest-cov
|
||||
distlib==0.3.8
|
||||
# via virtualenv
|
||||
docutils==0.21.2
|
||||
# via sphinx
|
||||
exceptiongroup==1.2.1
|
||||
# via pytest
|
||||
filelock==3.13.4
|
||||
# via
|
||||
# tox
|
||||
# virtualenv
|
||||
fixit==2.1.0
|
||||
# via gray
|
||||
flake8==7.0.0
|
||||
# via
|
||||
# -r dev-requirements.in
|
||||
# pep8-naming
|
||||
gray==0.14.0
|
||||
# via -r dev-requirements.in
|
||||
identify==2.5.36
|
||||
# via pre-commit
|
||||
idna==3.7
|
||||
# via requests
|
||||
imagesize==1.4.1
|
||||
# via sphinx
|
||||
iniconfig==2.0.0
|
||||
# via pytest
|
||||
isort==5.13.2
|
||||
# via
|
||||
# -r dev-requirements.in
|
||||
# gray
|
||||
jinja2==3.1.4
|
||||
# via sphinx
|
||||
libcst==1.3.1
|
||||
# via fixit
|
||||
markupsafe==2.1.5
|
||||
# via jinja2
|
||||
mccabe==0.7.0
|
||||
# via flake8
|
||||
moreorless==0.4.0
|
||||
# via fixit
|
||||
mypy==1.9.0
|
||||
# via -r dev-requirements.in
|
||||
mypy-extensions==1.0.0
|
||||
# via
|
||||
# black
|
||||
# mypy
|
||||
nodeenv==1.8.0
|
||||
# via pre-commit
|
||||
packaging==24.0
|
||||
# via
|
||||
# black
|
||||
# build
|
||||
# fixit
|
||||
# pyproject-api
|
||||
# pytest
|
||||
# sphinx
|
||||
# tox
|
||||
pathspec==0.12.1
|
||||
# via
|
||||
# black
|
||||
# trailrunner
|
||||
pep8-naming==0.13.3
|
||||
# via -r dev-requirements.in
|
||||
pip-tools==7.4.1
|
||||
# via -r dev-requirements.in
|
||||
platformdirs==4.2.1
|
||||
# via
|
||||
# black
|
||||
# tox
|
||||
# virtualenv
|
||||
pluggy==1.5.0
|
||||
# via
|
||||
# pytest
|
||||
# tox
|
||||
pre-commit==3.7.0
|
||||
# via -r dev-requirements.in
|
||||
pycodestyle==2.11.1
|
||||
# via flake8
|
||||
pyflakes==3.2.0
|
||||
# via
|
||||
# autoflake
|
||||
# flake8
|
||||
pygments==2.17.2
|
||||
# via
|
||||
# rich
|
||||
# sphinx
|
||||
pyproject-api==1.6.1
|
||||
# via tox
|
||||
pyproject-hooks==1.0.0
|
||||
# via
|
||||
# build
|
||||
# pip-tools
|
||||
pytest==8.1.1
|
||||
# via
|
||||
# -r dev-requirements.in
|
||||
# pytest-cov
|
||||
pytest-cov==5.0.0
|
||||
# via -r dev-requirements.in
|
||||
pyupgrade==3.15.2
|
||||
# via gray
|
||||
pyyaml==6.0.1
|
||||
# via
|
||||
# libcst
|
||||
# pre-commit
|
||||
requests==2.31.0
|
||||
# via sphinx
|
||||
rich==12.6.0
|
||||
# via gray
|
||||
snowballstemmer==2.2.0
|
||||
# via sphinx
|
||||
sphinx==7.3.7
|
||||
# via -r dev-requirements.in
|
||||
sphinxcontrib-applehelp==1.0.8
|
||||
# via sphinx
|
||||
sphinxcontrib-devhelp==1.0.6
|
||||
# via sphinx
|
||||
sphinxcontrib-htmlhelp==2.0.5
|
||||
# via sphinx
|
||||
sphinxcontrib-jsmath==1.0.1
|
||||
# via sphinx
|
||||
sphinxcontrib-qthelp==1.0.7
|
||||
# via sphinx
|
||||
sphinxcontrib-serializinghtml==1.1.10
|
||||
# via sphinx
|
||||
tokenize-rt==5.2.0
|
||||
# via
|
||||
# add-trailing-comma
|
||||
# pyupgrade
|
||||
toml==0.10.2
|
||||
# via autoflake
|
||||
tomli==2.0.1
|
||||
# via
|
||||
# black
|
||||
# build
|
||||
# coverage
|
||||
# fixit
|
||||
# mypy
|
||||
# pip-tools
|
||||
# pyproject-api
|
||||
# pyproject-hooks
|
||||
# pytest
|
||||
# sphinx
|
||||
# tox
|
||||
tox==4.14.2
|
||||
# via -r dev-requirements.in
|
||||
trailrunner==1.4.0
|
||||
# via fixit
|
||||
typing-extensions==4.11.0
|
||||
# via
|
||||
# black
|
||||
# mypy
|
||||
unify==0.5
|
||||
# via gray
|
||||
untokenize==0.1.1
|
||||
# via unify
|
||||
urllib3==2.2.1
|
||||
# via requests
|
||||
virtualenv==20.26.0
|
||||
# via
|
||||
# pre-commit
|
||||
# tox
|
||||
wheel==0.43.0
|
||||
# via pip-tools
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# pip
|
||||
|
250
requirements.txt
250
requirements.txt
@ -4,79 +4,183 @@
|
||||
#
|
||||
# pip-compile --annotation-style=line requirements.in
|
||||
#
|
||||
aprslib==0.7.2 # via -r requirements.in
|
||||
attrs==23.2.0 # via -r requirements.in, 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.7.0 # via flask
|
||||
certifi==2024.2.2 # via requests
|
||||
charset-normalizer==3.3.2 # via requests
|
||||
click==8.1.7 # via -r requirements.in, click-completion, click-params, flask
|
||||
click-completion==0.5.2 # via -r requirements.in
|
||||
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.4 # 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.3 # via click-completion, flask
|
||||
kiss3==8.0.0 # via -r requirements.in
|
||||
loguru==0.7.2 # via -r requirements.in
|
||||
markupsafe==2.1.5 # via jinja2, werkzeug
|
||||
marshmallow==3.21.1 # via dataclasses-json
|
||||
mypy-extensions==1.0.0 # via typing-inspect
|
||||
netaddr==1.2.1 # via oslo-config
|
||||
oslo-config==9.4.0 # via -r requirements.in
|
||||
oslo-i18n==6.3.0 # via oslo-config
|
||||
packaging==24.0 # via marshmallow
|
||||
pbr==6.0.0 # via -r requirements.in, oslo-i18n, stevedore
|
||||
pluggy==1.5.0 # via -r requirements.in
|
||||
pygments==2.17.2 # via rich
|
||||
pyserial==3.5 # via pyserial-asyncio
|
||||
pyserial-asyncio==0.6 # via kiss3
|
||||
python-engineio==4.9.0 # via python-socketio
|
||||
python-socketio==5.11.2 # via -r requirements.in, flask-socketio
|
||||
pytz==2024.1 # via -r requirements.in
|
||||
pyyaml==6.0.1 # via -r requirements.in, oslo-config
|
||||
requests==2.31.0 # via -r requirements.in, oslo-config, update-checker
|
||||
rfc3986==2.0.0 # via oslo-config
|
||||
rich==12.6.0 # via -r requirements.in
|
||||
rush==2021.4.0 # via -r requirements.in
|
||||
shellingham==1.5.4 # via -r requirements.in, click-completion
|
||||
simple-websocket==1.0.0 # via python-engineio
|
||||
six==1.16.0 # via -r requirements.in, click-completion
|
||||
soupsieve==2.5 # via beautifulsoup4
|
||||
stevedore==5.2.0 # via oslo-config
|
||||
tabulate==0.9.0 # via -r requirements.in
|
||||
thesmuggler==1.0.1 # via -r requirements.in
|
||||
typing-extensions==4.11.0 # via typing-inspect
|
||||
typing-inspect==0.9.0 # via dataclasses-json
|
||||
tzlocal==5.2 # via -r requirements.in
|
||||
update-checker==0.18.0 # via -r requirements.in
|
||||
urllib3==2.2.1 # via requests
|
||||
validators==0.22.0 # via click-params
|
||||
werkzeug==3.0.2 # via -r requirements.in, flask
|
||||
wrapt==1.16.0 # via -r requirements.in, debtcollector, deprecated
|
||||
wsproto==1.2.0 # via simple-websocket
|
||||
zipp==3.18.1 # via importlib-metadata
|
||||
zope-event==5.0 # via gevent
|
||||
zope-interface==6.3 # via gevent
|
||||
aprslib==0.7.2
|
||||
# via -r requirements.in
|
||||
attrs==23.2.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# 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.7.0
|
||||
# via flask
|
||||
certifi==2024.2.2
|
||||
# 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.4
|
||||
# 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.1
|
||||
# via dataclasses-json
|
||||
mypy-extensions==1.0.0
|
||||
# via typing-inspect
|
||||
netaddr==1.2.1
|
||||
# via oslo-config
|
||||
oslo-config==9.4.0
|
||||
# via -r requirements.in
|
||||
oslo-i18n==6.3.0
|
||||
# via oslo-config
|
||||
packaging==24.0
|
||||
# via marshmallow
|
||||
pbr==6.0.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# oslo-i18n
|
||||
# stevedore
|
||||
pluggy==1.5.0
|
||||
# via -r requirements.in
|
||||
pygments==2.17.2
|
||||
# via rich
|
||||
pyserial==3.5
|
||||
# via pyserial-asyncio
|
||||
pyserial-asyncio==0.6
|
||||
# via kiss3
|
||||
python-engineio==4.9.0
|
||||
# via python-socketio
|
||||
python-socketio==5.11.2
|
||||
# via
|
||||
# -r requirements.in
|
||||
# flask-socketio
|
||||
pytz==2024.1
|
||||
# via -r requirements.in
|
||||
pyyaml==6.0.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# oslo-config
|
||||
requests==2.31.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# oslo-config
|
||||
# update-checker
|
||||
rfc3986==2.0.0
|
||||
# via oslo-config
|
||||
rich==12.6.0
|
||||
# via -r requirements.in
|
||||
rush==2021.4.0
|
||||
# via -r requirements.in
|
||||
shellingham==1.5.4
|
||||
# via -r requirements.in
|
||||
simple-websocket==1.0.0
|
||||
# via python-engineio
|
||||
six==1.16.0
|
||||
# via -r requirements.in
|
||||
soupsieve==2.5
|
||||
# via beautifulsoup4
|
||||
stevedore==5.2.0
|
||||
# via oslo-config
|
||||
tabulate==0.9.0
|
||||
# via -r requirements.in
|
||||
thesmuggler==1.0.1
|
||||
# via -r requirements.in
|
||||
typing-extensions==4.11.0
|
||||
# via typing-inspect
|
||||
typing-inspect==0.9.0
|
||||
# via dataclasses-json
|
||||
tzlocal==5.2
|
||||
# via -r requirements.in
|
||||
update-checker==0.18.0
|
||||
# via -r requirements.in
|
||||
urllib3==2.2.1
|
||||
# via requests
|
||||
validators==0.22.0
|
||||
# via click-params
|
||||
werkzeug==3.0.3
|
||||
# via
|
||||
# -r requirements.in
|
||||
# flask
|
||||
wrapt==1.16.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# debtcollector
|
||||
# deprecated
|
||||
wsproto==1.2.0
|
||||
# via simple-websocket
|
||||
zipp==3.18.1
|
||||
# via importlib-metadata
|
||||
zope-event==5.0
|
||||
# via gevent
|
||||
zope-interface==6.3
|
||||
# via gevent
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
# setuptools
|
||||
|
Loading…
Reference in New Issue
Block a user