ORJson is not mandatory

This commit is contained in:
nicolargo 2024-05-12 09:52:17 +02:00
commit e9abf1c9af
14 changed files with 213 additions and 163 deletions

View File

@ -6,7 +6,7 @@
Version 4.0.0
===============
See release note in Wiki format here: https://github.com/nicolargo/glances/wiki/Glances-4.0-Release-Note
See release note in Wiki format: https://github.com/nicolargo/glances/wiki/Glances-4.0-Release-Note
**BREAKING CHANGES:**
@ -27,6 +27,26 @@ Glances version 4.x and higher:
* Alert data model change from a list of list to a list of dict #2633
* Docker memory usage uses the same algorithm than docker stats #2637
Special notes for package maintainers:
Minimal requirements for Glances version 4 are:
* psutil
* defusedxml
* packaging
* ujson
* pydantic
* fastapi (for WebUI / RestFull API)
* uvicorn (for WebUI / RestFull API)
* jinja2 (for WebUI / RestFull API)
Majors changes between Glances version 3 and version 4:
* Bottle has been replaced by FastAPI and Uvicorn
* CouchDB has been replaced by PyCouchDB
* nvidia-ml-py has been replaced by py3nvml
* pysnmp has been replaced by pysnmp-lextudio
Enhancements:
* Export individual processes stats #794

View File

@ -110,7 +110,6 @@ Optional dependencies:
- ``jinja2`` (for templating, used under the hood by FastAPI)
- ``kafka-python`` (for the Kafka export module)
- ``netifaces`` (for the IP plugin)
- ``orjson`` (fast JSON library, used under the hood by FastAPI)
- ``nvidia-ml-py`` (for the GPU plugin)
- ``pycouchdb`` (for the CouchDB export module)
- ``pika`` (for the RabbitMQ/ActiveMQ export module)
@ -224,6 +223,8 @@ Run last version of Glances container in *console mode*:
By default, the /etc/glances/glances.conf file is used (based on docker-compose/glances.conf).
By default, the /etc/glances/glances.conf file is used (based on docker-compose/glances.conf).
Additionally, if you want to use your own glances.conf file, you can
create your own Dockerfile:
@ -325,7 +326,7 @@ Start Termux on your device and enter:
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn orjson jinja2
$ pip install fastapi uvicorn jinja2
$ pip install glances
And start Glances:

View File

@ -61,6 +61,9 @@ RUN apk add --no-cache \
RUN python${PYTHON_VERSION} -m venv venv-build
RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --upgrade pip
RUN python${PYTHON_VERSION} -m venv venv-build
RUN /venv-build/bin/python${PYTHON_VERSION} -m pip install --upgrade pip
RUN python${PYTHON_VERSION} -m venv --without-pip venv
COPY requirements.txt docker-requirements.txt webui-requirements.txt optional-requirements.txt ./
@ -105,6 +108,11 @@ COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# Copy binary and update PATH
COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208

View File

@ -92,6 +92,11 @@ COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# Copy binary and update PATH
COPY docker-bin.sh /usr/local/bin/glances
RUN chmod a+x /usr/local/bin/glances
ENV PATH="/venv/bin:$PATH"
# EXPOSE PORT (XMLRPC / WebUI)
EXPOSE 61209 61208

View File

@ -141,7 +141,7 @@ Get plugin stats::
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 0.3159339427947998},
"timer": 0.3663492202758789},
{"count": 0,
"countmax": 20.0,
"countmin": None,
@ -150,7 +150,7 @@ Get plugin stats::
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 0.3158426284790039}]
"timer": 0.36623501777648926}]
Fields descriptions:
@ -178,7 +178,7 @@ Get a specific item when field matches the given value::
"refresh": 3.0,
"regex": True,
"result": None,
"timer": 0.3159339427947998}]}
"timer": 0.3663492202758789}]}
GET cloud
---------
@ -228,14 +228,14 @@ Get plugin stats::
"image": ["catthehacker/ubuntu:act-22.04"],
"io": {"cumulative_ior": 100855808, "cumulative_iow": 0},
"key": "name",
"memory": {"inactive_file": 97996800,
"memory": {"inactive_file": 101560320,
"limit": 16422473728,
"usage": 229437440},
"memory_usage": 229437440,
"usage": 138932224},
"memory_usage": 138932224,
"name": "act-test-test-freebsd-700362a4fd49fe930f7ab89909c5ca853cd3a832c27b6ac4e363947b0dd29bef",
"network": {},
"status": "running",
"uptime": "3 days"}]
"uptime": "5 days"}]
Fields descriptions:
@ -276,14 +276,14 @@ Get a specific item when field matches the given value::
"io": {"cumulative_ior": 100855808,
"cumulative_iow": 0},
"key": "name",
"memory": {"inactive_file": 97996800,
"memory": {"inactive_file": 101560320,
"limit": 16422473728,
"usage": 229437440},
"memory_usage": 229437440,
"usage": 138932224},
"memory_usage": 138932224,
"name": "act-test-test-freebsd-700362a4fd49fe930f7ab89909c5ca853cd3a832c27b6ac4e363947b0dd29bef",
"network": {},
"status": "running",
"uptime": "3 "
"uptime": "5 "
"days"}]}
GET core
@ -311,18 +311,18 @@ Get plugin stats::
# curl http://localhost:61208/api/4/cpu
{"cpucore": 16,
"ctx_switches": 342229206,
"ctx_switches": 417599944,
"guest": 0.0,
"idle": 2.0,
"interrupts": 285412882,
"idle": 4.0,
"interrupts": 374317125,
"iowait": 0.0,
"irq": 0.0,
"nice": 0.0,
"soft_interrupts": 109392255,
"soft_interrupts": 133208497,
"steal": 0.0,
"syscalls": 0,
"system": 0.0,
"total": 40.0,
"total": 25.0,
"user": 0.0}
Fields descriptions:
@ -356,7 +356,7 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/cpu/total
{"total": 40.0}
{"total": 25.0}
GET diskio
----------
@ -366,10 +366,10 @@ Get plugin stats::
# curl http://localhost:61208/api/4/diskio
[{"disk_name": "nvme0n1",
"key": "disk_name",
"read_bytes": 6650374656,
"read_count": 310580,
"write_bytes": 19140867072,
"write_count": 813000},
"read_bytes": 7890098688,
"read_count": 344619,
"write_bytes": 24110978048,
"write_count": 1078819},
{"disk_name": "nvme0n1p1",
"key": "disk_name",
"read_bytes": 7484416,
@ -409,10 +409,10 @@ Get a specific item when field matches the given value::
# curl http://localhost:61208/api/4/diskio/disk_name/nvme0n1
{"nvme0n1": [{"disk_name": "nvme0n1",
"key": "disk_name",
"read_bytes": 6650374656,
"read_count": 310580,
"write_bytes": 19140867072,
"write_count": 813000}]}
"read_bytes": 7890098688,
"read_count": 344619,
"write_bytes": 24110978048,
"write_count": 1078819}]}
GET folders
-----------
@ -439,13 +439,13 @@ Get plugin stats::
# curl http://localhost:61208/api/4/fs
[{"device_name": "/dev/mapper/ubuntu--vg-ubuntu--lv",
"free": 906407231488,
"free": 905225412608,
"fs_type": "ext4",
"key": "mnt_point",
"mnt_point": "/",
"percent": 4.9,
"percent": 5.0,
"size": 1003736440832,
"used": 46266703872}]
"used": 47448522752}]
Fields descriptions:
@ -466,13 +466,13 @@ Get a specific item when field matches the given value::
# curl http://localhost:61208/api/4/fs/mnt_point//
{"/": [{"device_name": "/dev/mapper/ubuntu--vg-ubuntu--lv",
"free": 906407231488,
"free": 905225412608,
"fs_type": "ext4",
"key": "mnt_point",
"mnt_point": "/",
"percent": 4.9,
"percent": 5.0,
"size": 1003736440832,
"used": 46266703872}]}
"used": 47448522752}]}
GET gpu
-------
@ -505,8 +505,8 @@ GET ip
Get plugin stats::
# curl http://localhost:61208/api/4/ip
{"address": "192.168.0.28",
"gateway": "192.168.0.254",
{"address": "192.168.1.26",
"gateway": "192.168.1.1",
"mask": "255.255.255.0",
"mask_cidr": 24,
"public_address": "",
@ -524,7 +524,7 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/ip/gateway
{"gateway": "192.168.0.254"}
{"gateway": "192.168.1.1"}
GET irq
-------
@ -546,9 +546,9 @@ Get plugin stats::
# curl http://localhost:61208/api/4/load
{"cpucore": 16,
"min1": 1.37060546875,
"min15": 0.47119140625,
"min5": 0.728515625}
"min1": 1.19580078125,
"min15": 0.728515625,
"min5": 0.9990234375}
Fields descriptions:
@ -560,7 +560,7 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/load/min1
{"min1": 1.37060546875}
{"min1": 1.19580078125}
GET mem
-------
@ -568,16 +568,16 @@ GET mem
Get plugin stats::
# curl http://localhost:61208/api/4/mem
{"active": 8055816192,
"available": 7524483072,
"buffers": 424374272,
"cached": 7703969792,
"free": 7524483072,
"inactive": 5088911360,
"percent": 54.2,
"shared": 1277902848,
{"active": 8123240448,
"available": 7505043456,
"buffers": 322965504,
"cached": 7686283264,
"free": 7505043456,
"inactive": 5349273600,
"percent": 54.3,
"shared": 1051676672,
"total": 16422473728,
"used": 8897990656}
"used": 8917430272}
Fields descriptions:
@ -604,13 +604,13 @@ GET memswap
Get plugin stats::
# curl http://localhost:61208/api/4/memswap
{"free": 4288933888,
"percent": 0.1,
{"free": 4288409600,
"percent": 0.2,
"sin": 4096,
"sout": 3973120,
"sout": 4055040,
"time_since_update": 1,
"total": 4294963200,
"used": 6029312}
"used": 6553600}
Fields descriptions:
@ -635,15 +635,15 @@ Get plugin stats::
# curl http://localhost:61208/api/4/network
[{"alias": None,
"bytes_all": 0,
"bytes_all_gauge": 5485164328,
"bytes_all_gauge": 5895221761,
"bytes_recv": 0,
"bytes_recv_gauge": 5224129127,
"bytes_recv_gauge": 5571082392,
"bytes_sent": 0,
"bytes_sent_gauge": 261035201,
"bytes_sent_gauge": 324139369,
"interface_name": "wlp0s20f3",
"key": "interface_name",
"speed": 0,
"time_since_update": 0.32416534423828125}]
"time_since_update": 0.37969160079956055}]
Fields descriptions:
@ -672,15 +672,15 @@ Get a specific item when field matches the given value::
# curl http://localhost:61208/api/4/network/interface_name/wlp0s20f3
{"wlp0s20f3": [{"alias": None,
"bytes_all": 0,
"bytes_all_gauge": 5485164328,
"bytes_all_gauge": 5895221761,
"bytes_recv": 0,
"bytes_recv_gauge": 5224129127,
"bytes_recv_gauge": 5571082392,
"bytes_sent": 0,
"bytes_sent_gauge": 261035201,
"bytes_sent_gauge": 324139369,
"interface_name": "wlp0s20f3",
"key": "interface_name",
"speed": 0,
"time_since_update": 0.32416534423828125}]}
"time_since_update": 0.37969160079956055}]}
GET now
-------
@ -688,7 +688,7 @@ GET now
Get plugin stats::
# curl http://localhost:61208/api/4/now
{"custom": "2024-05-09 16:15:16 CEST", "iso": "2024-05-09T16:15:16+02:00"}
{"custom": "2024-05-12 09:32:48 CEST", "iso": "2024-05-12T09:32:48+02:00"}
Fields descriptions:
@ -698,7 +698,7 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/now/iso
{"iso": "2024-05-09T16:15:16+02:00"}
{"iso": "2024-05-12T09:32:48+02:00"}
GET percpu
----------
@ -718,7 +718,7 @@ Get plugin stats::
"steal": 0.0,
"system": 0.0,
"total": 100.0,
"user": 0.0},
"user": 1.0},
{"cpu_number": 1,
"guest": 0.0,
"guest_nice": 0.0,
@ -760,12 +760,12 @@ Get plugin stats::
# curl http://localhost:61208/api/4/ports
[{"description": "DefaultGateway",
"host": "192.168.0.254",
"host": "192.168.1.1",
"indice": "port_0",
"port": 0,
"refresh": 30,
"rtt_warning": None,
"status": 0.004874,
"status": 0.00664,
"timeout": 3}]
Fields descriptions:
@ -782,19 +782,19 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/ports/host
{"host": ["192.168.0.254"]}
{"host": ["192.168.1.1"]}
Get a specific item when field matches the given value::
# curl http://localhost:61208/api/4/ports/host/192.168.0.254
{"192.168.0.254": [{"description": "DefaultGateway",
"host": "192.168.0.254",
"indice": "port_0",
"port": 0,
"refresh": 30,
"rtt_warning": None,
"status": 0.004874,
"timeout": 3}]}
# curl http://localhost:61208/api/4/ports/host/192.168.1.1
{"192.168.1.1": [{"description": "DefaultGateway",
"host": "192.168.1.1",
"indice": "port_0",
"port": 0,
"refresh": 30,
"rtt_warning": None,
"status": 0.00664,
"timeout": 3}]}
GET processcount
----------------
@ -802,7 +802,7 @@ GET processcount
Get plugin stats::
# curl http://localhost:61208/api/4/processcount
{"pid_max": 0, "running": 3, "sleeping": 292, "thread": 1742, "total": 436}
{"pid_max": 0, "running": 1, "sleeping": 290, "thread": 1643, "total": 432}
Fields descriptions:
@ -815,7 +815,7 @@ Fields descriptions:
Get a specific field::
# curl http://localhost:61208/api/4/processcount/total
{"total": 436}
{"total": 432}
GET processlist
---------------
@ -855,14 +855,14 @@ GET quicklook
Get plugin stats::
# curl http://localhost:61208/api/4/quicklook
{"cpu": 40.0,
{"cpu": 25.0,
"cpu_hz": 4475000000.0,
"cpu_hz_current": 997360250.0,
"cpu_hz_current": 1170889250.0,
"cpu_log_core": 16,
"cpu_name": "13th Gen Intel(R) Core(TM) i7-13620H",
"cpu_phys_core": 10,
"load": 2.9,
"mem": 54.2,
"load": 4.6,
"mem": 54.3,
"percpu": [{"cpu_number": 0,
"guest": 0.0,
"guest_nice": 0.0,
@ -875,7 +875,7 @@ Get plugin stats::
"steal": 0.0,
"system": 0.0,
"total": 100.0,
"user": 0.0},
"user": 1.0},
{"cpu_number": 1,
"guest": 0.0,
"guest_nice": 0.0,
@ -931,7 +931,7 @@ Get plugin stats::
{"cpu_number": 5,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 1.0,
"idle": 0.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
@ -939,35 +939,9 @@ Get plugin stats::
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 99.0,
"total": 100.0,
"user": 0.0},
{"cpu_number": 6,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 1.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
"nice": 0.0,
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 99.0,
"user": 0.0},
{"cpu_number": 7,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 1.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
"nice": 0.0,
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 99.0,
"user": 0.0},
{"cpu_number": 8,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 0.0,
@ -980,7 +954,20 @@ Get plugin stats::
"system": 0.0,
"total": 100.0,
"user": 0.0},
{"cpu_number": 9,
{"cpu_number": 7,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 0.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
"nice": 0.0,
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 100.0,
"user": 0.0},
{"cpu_number": 8,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 1.0,
@ -993,6 +980,19 @@ Get plugin stats::
"system": 0.0,
"total": 99.0,
"user": 0.0},
{"cpu_number": 9,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 0.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
"nice": 0.0,
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 100.0,
"user": 0.0},
{"cpu_number": 10,
"guest": 0.0,
"guest_nice": 0.0,
@ -1009,7 +1009,7 @@ Get plugin stats::
{"cpu_number": 11,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 1.0,
"idle": 0.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
@ -1017,7 +1017,7 @@ Get plugin stats::
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 99.0,
"total": 100.0,
"user": 0.0},
{"cpu_number": 12,
"guest": 0.0,
@ -1061,7 +1061,7 @@ Get plugin stats::
{"cpu_number": 15,
"guest": 0.0,
"guest_nice": 0.0,
"idle": 0.0,
"idle": 1.0,
"iowait": 0.0,
"irq": 0.0,
"key": "cpu_number",
@ -1069,9 +1069,9 @@ Get plugin stats::
"softirq": 0.0,
"steal": 0.0,
"system": 0.0,
"total": 100.0,
"total": 99.0,
"user": 0.0}],
"swap": 0.1}
"swap": 0.2}
Fields descriptions:
@ -1109,14 +1109,14 @@ Get plugin stats::
"label": "Ambient",
"type": "temperature_core",
"unit": "C",
"value": 34,
"value": 32,
"warning": 0},
{"critical": None,
"key": "label",
"label": "Ambient 3",
"type": "temperature_core",
"unit": "C",
"value": 31,
"value": 26,
"warning": 0}]
Fields descriptions:
@ -1177,7 +1177,7 @@ Get a specific item when field matches the given value::
"label": "Ambient",
"type": "temperature_core",
"unit": "C",
"value": 34,
"value": 32,
"warning": 0}]}
GET smart
@ -1221,7 +1221,7 @@ GET uptime
Get plugin stats::
# curl http://localhost:61208/api/4/uptime
"3 days, 6:51:31"
"6 days, 0:09:01"
GET version
-----------
@ -1238,8 +1238,8 @@ Get plugin stats::
# curl http://localhost:61208/api/4/wifi
[{"key": "ssid",
"quality_level": -65.0,
"quality_link": 45.0,
"quality_level": -63.0,
"quality_link": 47.0,
"ssid": "wlp0s20f3"}]
Get a specific field::
@ -1251,8 +1251,8 @@ Get a specific item when field matches the given value::
# curl http://localhost:61208/api/4/wifi/ssid/wlp0s20f3
{"wlp0s20f3": [{"key": "ssid",
"quality_level": -65.0,
"quality_link": 45.0,
"quality_level": -63.0,
"quality_link": 47.0,
"ssid": "wlp0s20f3"}]}
GET all stats
@ -1297,34 +1297,34 @@ GET stats history
History of a plugin::
# curl http://localhost:61208/api/4/cpu/history
{"system": [["2024-05-09T16:15:18.123732", 0.0],
["2024-05-09T16:15:19.174298", 0.0],
["2024-05-09T16:15:20.258556", 0.0]],
"user": [["2024-05-09T16:15:18.123722", 0.0],
["2024-05-09T16:15:19.174291", 0.0],
["2024-05-09T16:15:20.258547", 0.0]]}
{"system": [["2024-05-12T09:32:49.897081", 0.0],
["2024-05-12T09:32:50.949869", 0.0],
["2024-05-12T09:32:52.026236", 0.0]],
"user": [["2024-05-12T09:32:49.897070", 0.0],
["2024-05-12T09:32:50.949864", 0.0],
["2024-05-12T09:32:52.026226", 0.0]]}
Limit history to last 2 values::
# curl http://localhost:61208/api/4/cpu/history/2
{"system": [["2024-05-09T16:15:19.174298", 0.0],
["2024-05-09T16:15:20.258556", 0.0]],
"user": [["2024-05-09T16:15:19.174291", 0.0],
["2024-05-09T16:15:20.258547", 0.0]]}
{"system": [["2024-05-12T09:32:50.949869", 0.0],
["2024-05-12T09:32:52.026236", 0.0]],
"user": [["2024-05-12T09:32:50.949864", 0.0],
["2024-05-12T09:32:52.026226", 0.0]]}
History for a specific field::
# curl http://localhost:61208/api/4/cpu/system/history
{"system": [["2024-05-09T16:15:16.808048", 0.0],
["2024-05-09T16:15:18.123732", 0.0],
["2024-05-09T16:15:19.174298", 0.0],
["2024-05-09T16:15:20.258556", 0.0]]}
{"system": [["2024-05-12T09:32:48.680666", 0.0],
["2024-05-12T09:32:49.897081", 0.0],
["2024-05-12T09:32:50.949869", 0.0],
["2024-05-12T09:32:52.026236", 0.0]]}
Limit history for a specific field to last 2 values::
# curl http://localhost:61208/api/4/cpu/system/history
{"system": [["2024-05-09T16:15:19.174298", 0.0],
["2024-05-09T16:15:20.258556", 0.0]]}
{"system": [["2024-05-12T09:32:50.949869", 0.0],
["2024-05-12T09:32:52.026236", 0.0]]}
GET limits (used for thresholds)
--------------------------------

View File

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "GLANCES" "1" "May 09, 2024" "4.0.0_rc03" "Glances"
.TH "GLANCES" "1" "May 12, 2024" "4.0.0_rc03" "Glances"
.SH NAME
glances \- An eye on your system
.SH SYNOPSIS

View File

@ -146,8 +146,7 @@ class GlancesClientBrowser(object):
# Else, the password should be enter by the user
# Display a popup to enter password
clear_password = self.screen.display_popup(
'Password needed for {}: '.format(server['name']),
popup_type='input', is_password=True
'Password needed for {}: '.format(server['name']), popup_type='input', is_password=True
)
# Store the password for the selected server
if clear_password is not None:

View File

@ -382,7 +382,7 @@ Examples of use:
action='store_true',
default=False,
dest='webserver',
help='run Glances in web server mode (FastAPI, Uvicorn, Jinja2 and OrJsonLib needed)',
help='run Glances in web server mode (FastAPI, Uvicorn, Jinja2 libs needed)',
)
parser.add_argument(
'--cached-time',

View File

@ -921,12 +921,15 @@ class _GlancesCurses(object):
self.display_plugin(stat_display[p])
def display_popup(
self, message,
size_x=None, size_y=None,
self,
message,
size_x=None,
size_y=None,
duration=3,
popup_type='info',
input_size=30, input_value=None,
is_password=False
input_size=30,
input_value=None,
is_password=False,
):
"""
Display a centered popup.

View File

@ -3562,9 +3562,9 @@
}
},
"node_modules/nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"funding": [
{
"type": "github",
@ -4059,7 +4059,7 @@
}
],
"dependencies": {
"nanoid": "^3.3.6",
"nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@ -5800,6 +5800,15 @@
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
"dev": true
},
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@ -8567,9 +8576,9 @@
}
},
"nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
},
"natural-compare": {
"version": "1.4.0",
@ -8925,7 +8934,7 @@
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"requires": {
"nanoid": "^3.3.6",
"nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
@ -10142,6 +10151,11 @@
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
"dev": true
},
"word-wrap": {
"version": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@ -15,7 +15,6 @@ influxdb-client; python_version >= "3.7" # For InfluxDB >= 1.8
jinja2
kafka-python
netifaces
orjson; python_version >= "3.8"
packaging; python_version >= "3.7"
paho-mqtt
pika

View File

@ -8,6 +8,10 @@ from io import open
from setuptools import setup, Command
# Predication warning
# Glances version 4 will only be compatible with Python 3.7 and above
if sys.version_info < (3, 7):
print('WARNING: Glances version 4 will only be compatible with Python 3.7 and above.')
if sys.version_info < (3, 8):
print('Glances requires at least Python 3.8 to run.')
@ -46,7 +50,6 @@ def get_install_requires():
if sys.platform.startswith('win'):
requires.append('fastapi')
requires.append('uvicorn')
requires.append('orjson')
requires.append('jinja2')
requires.append('requests')
@ -70,7 +73,7 @@ def get_install_extras_require():
'smart': ['pySMART.smartx'],
'snmp': ['pysnmp'],
'sparklines': ['sparklines'],
'web': ['fastapi', 'uvicorn', 'jinja2', 'orjson', 'requests'],
'web': ['fastapi', 'uvicorn', 'jinja2', 'requests'],
'wifi': ['wifi']
}
if sys.platform.startswith('linux'):

View File

@ -21,7 +21,6 @@ deps =
ujson
fastapi
uvicorn
orjson
jinja2
requests
commands =

View File

@ -3,5 +3,4 @@
fastapi; python_version >= "3.8"
uvicorn; python_version >= "3.8"
orjson; python_version >= "3.8"
jinja2