Skip to content

Commit 7a48110

Browse files
committed
MAVExplorer.py: use importlib for graph definitions and version
removes warnings under 3.12
1 parent 90ce00e commit 7a48110

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

Diff for: MAVProxy/tools/MAVExplorer.py

+38-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,11 @@
3535
from MAVProxy.modules.lib import wxsettings
3636
from MAVProxy.modules.lib.graphdefinition import GraphDefinition
3737
from lxml import objectify
38-
import pkg_resources
38+
try:
39+
import importlib
40+
import importlib.resources
41+
except ImportError:
42+
pass
3943
from builtins import input
4044
import datetime
4145
import matplotlib
@@ -353,8 +357,28 @@ def load_graphs():
353357
if graphs:
354358
mestate.graphs.extend(graphs)
355359
mestate.console.writeln("Loaded %s" % file)
360+
356361
# also load the built in graphs
362+
load_built_in_graphs()
363+
364+
mestate.graphs = sorted(mestate.graphs, key=lambda g: g.name)
365+
366+
def load_built_in_graphs():
367+
'''load graph definitions from packaged resources'''
357368
try:
369+
dlist = importlib.resources.files("MAVProxy.tools.graphs")
370+
for f in dlist.iterdir():
371+
raw = importlib.resources.files("MAVProxy.tools.graphs").joinpath(f).open('r').read()
372+
graphs = load_graph_xml(raw, None)
373+
if graphs:
374+
mestate.graphs.extend(graphs)
375+
mestate.console.writeln("Loaded %s" % f)
376+
return
377+
except Exception:
378+
pass
379+
380+
try:
381+
import pkg_resources
358382
dlist = pkg_resources.resource_listdir("MAVProxy", "tools/graphs")
359383
for f in dlist:
360384
raw = pkg_resources.resource_stream("MAVProxy", "tools/graphs/%s" % f).read()
@@ -371,7 +395,6 @@ def load_graphs():
371395
if graphs:
372396
mestate.graphs.extend(graphs)
373397
mestate.console.writeln("Loaded %s" % f)
374-
mestate.graphs = sorted(mestate.graphs, key=lambda g: g.name)
375398

376399
def flightmode_colours():
377400
'''return mapping of flight mode to colours'''
@@ -1554,9 +1577,21 @@ def progress_bar(pct):
15541577

15551578
if args.version:
15561579
#pkg_resources doesn't work in the windows exe build, so read the version file
1580+
version = None
15571581
try:
1558-
version = pkg_resources.require("mavproxy")[0].version
1582+
import importlib.metadata
1583+
version = importlib.metadata.version("mavproxy")
15591584
except Exception as e:
1585+
pass
1586+
1587+
if version is None:
1588+
try:
1589+
import pkg_resources
1590+
version = pkg_resources.require("mavproxy")[0].version
1591+
except Exception:
1592+
pass
1593+
1594+
if version is None:
15601595
start_script = mp_util.dot_mavproxy("version.txt")
15611596
f = open(start_script, 'r')
15621597
version = f.readline()

0 commit comments

Comments
 (0)