1
0

commands: add "version_info" cmd

example:
```
$ ./run_electrum -o version_info
{
    "aiohttp.version": "3.8.1",
    "aiorpcx.version": "0.22.1",
    "certifi.version": "2021.10.08",
    "cryptodome.version": null,
    "cryptography.path": "/home/user/.local/lib/python3.8/site-packages/cryptography",
    "cryptography.version": "3.4.6",
    "dnspython.version": "2.2.0",
    "electrum.path": "/home/user/wspace/electrum/electrum",
    "electrum.version": "4.2.1",
    "hidapi.version": "0.11.0.post2",
    "libsecp256k1.path": "/home/user/wspace/electrum/electrum/libsecp256k1.so.0",
    "libusb.path": "libusb-1.0.so",
    "libusb.version": "1.0.23.11397",
    "libzbar.path": "/home/user/wspace/electrum/electrum/libzbar.so.0",
    "pyaes.version": "1.3.0",
    "pyqt.path": "/usr/lib/python3/dist-packages/PyQt5",
    "pyqt.version": "5.14.1",
    "qt.version": "5.12.8"
}
```
This commit is contained in:
SomberNight
2022-04-11 17:05:26 +02:00
parent 419fc6e1c1
commit e47e0afa91
8 changed files with 122 additions and 5 deletions

View File

@@ -29,7 +29,7 @@ import time
import threading
import sys
from typing import (NamedTuple, Any, Union, TYPE_CHECKING, Optional, Tuple,
Dict, Iterable, List, Sequence, Callable, TypeVar)
Dict, Iterable, List, Sequence, Callable, TypeVar, Mapping)
import concurrent
from concurrent import futures
from functools import wraps, partial
@@ -749,3 +749,25 @@ class DeviceMgr(ThreadJob):
client.handler.update_status(False)
return devices
@classmethod
def version_info(cls) -> Mapping[str, Optional[str]]:
ret = {}
# add libusb
try:
import usb1
except Exception as e:
ret["libusb.version"] = None
else:
ret["libusb.version"] = ".".join(map(str, usb1.getVersion()[:4]))
try:
ret["libusb.path"] = usb1.libusb1.libusb._name
except AttributeError:
ret["libusb.path"] = None
# add hidapi
from importlib.metadata import version
try:
ret["hidapi.version"] = version("hidapi")
except ImportError:
ret["hidapi.version"] = None
return ret