batplot 1.1.2__tar.gz → 1.1.3__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.
- {batplot-1.1.2 → batplot-1.1.3}/PKG-INFO +1 -1
- {batplot-1.1.2 → batplot-1.1.3}/batplot/electrochem_interactive.py +47 -30
- {batplot-1.1.2 → batplot-1.1.3}/batplot/interactive.py +4 -31
- {batplot-1.1.2 → batplot-1.1.3}/batplot/session.py +10 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/PKG-INFO +1 -1
- {batplot-1.1.2 → batplot-1.1.3}/pyproject.toml +1 -1
- {batplot-1.1.2 → batplot-1.1.3}/LICENSE +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/README.md +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/__init__.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/args.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/batch.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/batplot.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/batplot_new.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/cif.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/cli.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/converters.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/cpc_interactive.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/modes.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/operando.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/operando_ec_interactive.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/plotting.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/readers.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/style.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/ui.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot/utils.py +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/SOURCES.txt +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/dependency_links.txt +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/entry_points.txt +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/requires.txt +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/batplot.egg-info/top_level.txt +0 -0
- {batplot-1.1.2 → batplot-1.1.3}/setup.cfg +0 -0
|
@@ -25,7 +25,7 @@ from .plotting import update_labels as _update_labels
|
|
|
25
25
|
from .utils import _confirm_overwrite
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def _print_menu(n_cycles: int):
|
|
28
|
+
def _print_menu(n_cycles: int, is_dqdv: bool = False):
|
|
29
29
|
# Three-column menu similar to operando: Styles | Geometries | Options
|
|
30
30
|
# Use dynamic column widths for clean alignment.
|
|
31
31
|
col1 = [
|
|
@@ -38,11 +38,14 @@ def _print_menu(n_cycles: int):
|
|
|
38
38
|
]
|
|
39
39
|
col2 = [
|
|
40
40
|
"c: cycles/colors",
|
|
41
|
-
"a: capacity/ion",
|
|
42
41
|
"r: rename axes",
|
|
43
42
|
"x: x-scale",
|
|
44
43
|
"y: y-scale",
|
|
45
44
|
]
|
|
45
|
+
# Only show capacity/ion option when NOT in dQdV mode
|
|
46
|
+
if not is_dqdv:
|
|
47
|
+
col2.insert(1, "a: capacity/ion")
|
|
48
|
+
|
|
46
49
|
col3 = [
|
|
47
50
|
"p: print(export) style",
|
|
48
51
|
"i: import style",
|
|
@@ -364,6 +367,15 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
364
367
|
|
|
365
368
|
base_xlabel = ax.get_xlabel() or ''
|
|
366
369
|
base_ylabel = ax.get_ylabel() or ''
|
|
370
|
+
|
|
371
|
+
# Detect dQdV mode: check stored flag first, then fall back to y-label detection
|
|
372
|
+
# This handles cases where the user renamed the y-axis and saved/reloaded the session
|
|
373
|
+
is_dqdv = getattr(ax, '_is_dqdv_mode', None)
|
|
374
|
+
if is_dqdv is None:
|
|
375
|
+
# Initial detection: check if y-label contains "dQ"
|
|
376
|
+
is_dqdv = 'dQ' in base_ylabel
|
|
377
|
+
# Store the mode on the axes for persistence
|
|
378
|
+
ax._is_dqdv_mode = is_dqdv
|
|
367
379
|
|
|
368
380
|
def _set_spine_visible(which: str, visible: bool):
|
|
369
381
|
sp = ax.spines.get(which)
|
|
@@ -765,7 +777,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
765
777
|
print("Undo: restored previous state.")
|
|
766
778
|
except Exception as e:
|
|
767
779
|
print(f"Undo failed: {e}")
|
|
768
|
-
_print_menu(len(all_cycles))
|
|
780
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
769
781
|
while True:
|
|
770
782
|
key = input("Press a key: ").strip().lower()
|
|
771
783
|
if not key:
|
|
@@ -778,18 +790,18 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
778
790
|
if confirm == 'y':
|
|
779
791
|
break
|
|
780
792
|
else:
|
|
781
|
-
_print_menu(len(all_cycles))
|
|
793
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
782
794
|
continue
|
|
783
795
|
elif key == 'b':
|
|
784
796
|
restore_state()
|
|
785
|
-
_print_menu(len(all_cycles))
|
|
797
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
786
798
|
continue
|
|
787
799
|
elif key == 'e':
|
|
788
800
|
# Export current figure to a file; default extension .svg if missing
|
|
789
801
|
try:
|
|
790
802
|
fname = input("Export filename (default .svg if no extension, q=cancel): ").strip()
|
|
791
803
|
if not fname or fname.lower() == 'q':
|
|
792
|
-
_print_menu(len(all_cycles))
|
|
804
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
793
805
|
continue
|
|
794
806
|
root, ext = os.path.splitext(fname)
|
|
795
807
|
if ext == '':
|
|
@@ -843,7 +855,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
843
855
|
print(f"Export failed: {e}")
|
|
844
856
|
except Exception as e:
|
|
845
857
|
print(f"Error exporting figure: {e}")
|
|
846
|
-
_print_menu(len(all_cycles))
|
|
858
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
847
859
|
continue
|
|
848
860
|
elif key == 'h':
|
|
849
861
|
# Legend submenu: toggle visibility and move legend in inches relative to canvas center
|
|
@@ -948,7 +960,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
948
960
|
print("Unknown option.")
|
|
949
961
|
except Exception:
|
|
950
962
|
pass
|
|
951
|
-
_print_menu(len(all_cycles))
|
|
963
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
952
964
|
continue
|
|
953
965
|
elif key == 'p':
|
|
954
966
|
# Print current style and optionally export to .bpcfg
|
|
@@ -964,7 +976,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
964
976
|
|
|
965
977
|
except Exception as e:
|
|
966
978
|
print(f"Error in style menu: {e}")
|
|
967
|
-
_print_menu(len(all_cycles))
|
|
979
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
968
980
|
continue
|
|
969
981
|
elif key == 'i':
|
|
970
982
|
# Import style from .bpcfg (with numbered list)
|
|
@@ -980,13 +992,13 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
980
992
|
print(f" {_i}: {_f}")
|
|
981
993
|
inp = input("Enter number to open or filename (.bpcfg, q=cancel): ").strip()
|
|
982
994
|
if not inp or inp.lower() == 'q':
|
|
983
|
-
_print_menu(len(all_cycles)); continue
|
|
995
|
+
_print_menu(len(all_cycles), is_dqdv); continue
|
|
984
996
|
if inp.isdigit() and _bpcfg_files:
|
|
985
997
|
_idx = int(inp)
|
|
986
998
|
if 1 <= _idx <= len(_bpcfg_files):
|
|
987
999
|
path = os.path.join(os.getcwd(), _bpcfg_files[_idx-1])
|
|
988
1000
|
else:
|
|
989
|
-
print("Invalid number."); _print_menu(len(all_cycles)); continue
|
|
1001
|
+
print("Invalid number."); _print_menu(len(all_cycles), is_dqdv); continue
|
|
990
1002
|
else:
|
|
991
1003
|
path = inp
|
|
992
1004
|
if not os.path.isfile(path):
|
|
@@ -996,14 +1008,14 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
996
1008
|
if os.path.isfile(alt):
|
|
997
1009
|
path = alt
|
|
998
1010
|
else:
|
|
999
|
-
print("File not found."); _print_menu(len(all_cycles)); continue
|
|
1011
|
+
print("File not found."); _print_menu(len(all_cycles), is_dqdv); continue
|
|
1000
1012
|
else:
|
|
1001
|
-
print("File not found."); _print_menu(len(all_cycles)); continue
|
|
1013
|
+
print("File not found."); _print_menu(len(all_cycles), is_dqdv); continue
|
|
1002
1014
|
with open(path, 'r', encoding='utf-8') as f:
|
|
1003
1015
|
cfg = json.load(f)
|
|
1004
1016
|
if not isinstance(cfg, dict) or cfg.get('kind') != 'ec_style':
|
|
1005
1017
|
print("Not an EC style file.")
|
|
1006
|
-
_print_menu(len(all_cycles))
|
|
1018
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1007
1019
|
continue
|
|
1008
1020
|
|
|
1009
1021
|
# --- Apply comprehensive style (no curve data) ---
|
|
@@ -1087,7 +1099,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1087
1099
|
|
|
1088
1100
|
except Exception as e:
|
|
1089
1101
|
print(f"Error importing style: {e}")
|
|
1090
|
-
_print_menu(len(all_cycles))
|
|
1102
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1091
1103
|
continue
|
|
1092
1104
|
elif key == 'l':
|
|
1093
1105
|
# Line widths submenu: curves vs frame/ticks
|
|
@@ -1262,7 +1274,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1262
1274
|
print("Unknown option.")
|
|
1263
1275
|
except Exception as e:
|
|
1264
1276
|
print(f"Error in line submenu: {e}")
|
|
1265
|
-
_print_menu(len(all_cycles))
|
|
1277
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1266
1278
|
continue
|
|
1267
1279
|
elif key == 'r':
|
|
1268
1280
|
# Rename axis labels
|
|
@@ -1323,7 +1335,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1323
1335
|
fig.canvas.draw_idle()
|
|
1324
1336
|
except Exception as e:
|
|
1325
1337
|
print(f"Error renaming axes: {e}")
|
|
1326
|
-
_print_menu(len(all_cycles))
|
|
1338
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1327
1339
|
continue
|
|
1328
1340
|
elif key == 't':
|
|
1329
1341
|
# Unified WASD: w/a/s/d x 1..5 => spine, ticks, minor, labels, title
|
|
@@ -1442,7 +1454,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1442
1454
|
fig.canvas.draw_idle()
|
|
1443
1455
|
except Exception as e:
|
|
1444
1456
|
print(f"Error in WASD tick visibility menu: {e}")
|
|
1445
|
-
_print_menu(len(all_cycles))
|
|
1457
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1446
1458
|
continue
|
|
1447
1459
|
elif key == 's':
|
|
1448
1460
|
try:
|
|
@@ -1458,18 +1470,18 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1458
1470
|
print(f" {i}: {f}")
|
|
1459
1471
|
choice = input("Enter new filename or number to overwrite (q=cancel): ").strip()
|
|
1460
1472
|
if not choice or choice.lower() == 'q':
|
|
1461
|
-
_print_menu(len(all_cycles)); continue
|
|
1473
|
+
_print_menu(len(all_cycles), is_dqdv); continue
|
|
1462
1474
|
if choice.isdigit() and files:
|
|
1463
1475
|
idx = int(choice)
|
|
1464
1476
|
if 1 <= idx <= len(files):
|
|
1465
1477
|
name = files[idx-1]
|
|
1466
1478
|
yn = input(f"Overwrite '{name}'? (y/n): ").strip().lower()
|
|
1467
1479
|
if yn != 'y':
|
|
1468
|
-
_print_menu(len(all_cycles)); continue
|
|
1480
|
+
_print_menu(len(all_cycles), is_dqdv); continue
|
|
1469
1481
|
target = os.path.join(folder, name)
|
|
1470
1482
|
else:
|
|
1471
1483
|
print("Invalid number.")
|
|
1472
|
-
_print_menu(len(all_cycles)); continue
|
|
1484
|
+
_print_menu(len(all_cycles), is_dqdv); continue
|
|
1473
1485
|
else:
|
|
1474
1486
|
name = choice
|
|
1475
1487
|
root, ext = os.path.splitext(name)
|
|
@@ -1479,11 +1491,11 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1479
1491
|
if os.path.exists(target):
|
|
1480
1492
|
yn = input(f"'{os.path.basename(target)}' exists. Overwrite? (y/n): ").strip().lower()
|
|
1481
1493
|
if yn != 'y':
|
|
1482
|
-
_print_menu(len(all_cycles)); continue
|
|
1494
|
+
_print_menu(len(all_cycles), is_dqdv); continue
|
|
1483
1495
|
dump_ec_session(target, fig=fig, ax=ax, cycle_lines=cycle_lines, skip_confirm=True)
|
|
1484
1496
|
except Exception as e:
|
|
1485
1497
|
print(f"Save failed: {e}")
|
|
1486
|
-
_print_menu(len(all_cycles))
|
|
1498
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1487
1499
|
continue
|
|
1488
1500
|
elif key == 'c':
|
|
1489
1501
|
print(f"Cycles present ({len(all_cycles)} total):", ", ".join(str(c) for c in all_cycles))
|
|
@@ -1559,9 +1571,14 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1559
1571
|
if ignored:
|
|
1560
1572
|
print("Ignored cycles:", ", ".join(str(c) for c in ignored))
|
|
1561
1573
|
# Show the menu again after completing the command
|
|
1562
|
-
_print_menu(len(all_cycles))
|
|
1574
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1563
1575
|
continue
|
|
1564
1576
|
elif key == 'a':
|
|
1577
|
+
# X-axis submenu: number-of-ions vs capacity (not available in dQdV mode)
|
|
1578
|
+
if is_dqdv:
|
|
1579
|
+
print("Capacity/ion conversion is not available in dQ/dV mode.")
|
|
1580
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1581
|
+
continue
|
|
1565
1582
|
# X-axis submenu: number-of-ions vs capacity
|
|
1566
1583
|
while True:
|
|
1567
1584
|
print("X-axis menu: n=number of ions, c=capacity, q=back")
|
|
@@ -1625,7 +1642,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1625
1642
|
fig.canvas.draw()
|
|
1626
1643
|
except Exception:
|
|
1627
1644
|
fig.canvas.draw_idle()
|
|
1628
|
-
_print_menu(len(all_cycles))
|
|
1645
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1629
1646
|
continue
|
|
1630
1647
|
elif key == 'f':
|
|
1631
1648
|
# Font submenu with numbered options
|
|
@@ -1694,7 +1711,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1694
1711
|
print("Size must be positive.")
|
|
1695
1712
|
except Exception:
|
|
1696
1713
|
print("Invalid size.")
|
|
1697
|
-
_print_menu(len(all_cycles))
|
|
1714
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1698
1715
|
continue
|
|
1699
1716
|
elif key == 'x':
|
|
1700
1717
|
# X-axis: set limits only
|
|
@@ -1708,7 +1725,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1708
1725
|
fig.canvas.draw()
|
|
1709
1726
|
except Exception:
|
|
1710
1727
|
print("Invalid limits, ignored.")
|
|
1711
|
-
_print_menu(len(all_cycles))
|
|
1728
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1712
1729
|
continue
|
|
1713
1730
|
elif key == 'y':
|
|
1714
1731
|
# Y-axis: set limits only
|
|
@@ -1722,7 +1739,7 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1722
1739
|
fig.canvas.draw()
|
|
1723
1740
|
except Exception:
|
|
1724
1741
|
print("Invalid limits, ignored.")
|
|
1725
|
-
_print_menu(len(all_cycles))
|
|
1742
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1726
1743
|
continue
|
|
1727
1744
|
elif key == 'g':
|
|
1728
1745
|
# Geometry submenu: plot frame vs canvas (scales moved to separate keys)
|
|
@@ -1751,11 +1768,11 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Dict[int, Dict[str, Optio
|
|
|
1751
1768
|
fig.canvas.draw()
|
|
1752
1769
|
except Exception:
|
|
1753
1770
|
fig.canvas.draw_idle()
|
|
1754
|
-
_print_menu(len(all_cycles))
|
|
1771
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1755
1772
|
continue
|
|
1756
1773
|
else:
|
|
1757
1774
|
print("Unknown command.")
|
|
1758
|
-
_print_menu(len(all_cycles))
|
|
1775
|
+
_print_menu(len(all_cycles), is_dqdv)
|
|
1759
1776
|
|
|
1760
1777
|
|
|
1761
1778
|
def _get_style_snapshot(fig, ax, cycle_lines: Dict, tick_state: Dict) -> Dict:
|
|
@@ -1969,37 +1969,10 @@ def interactive_menu(fig, ax, y_data_list, x_data_list, labels, orig_y,
|
|
|
1969
1969
|
if sub == 'r' or sub == '':
|
|
1970
1970
|
continue
|
|
1971
1971
|
if sub == 'e':
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
target = None
|
|
1977
|
-
if choice.isdigit() and _bpcfg_files:
|
|
1978
|
-
_idx = int(choice)
|
|
1979
|
-
if 1 <= _idx <= len(_bpcfg_files):
|
|
1980
|
-
name = _bpcfg_files[_idx-1]
|
|
1981
|
-
yn = input(f"Overwrite '{name}'? (y/n): ").strip().lower()
|
|
1982
|
-
if yn == 'y':
|
|
1983
|
-
target = os.path.join(os.getcwd(), name)
|
|
1984
|
-
else:
|
|
1985
|
-
print("Invalid number.")
|
|
1986
|
-
else:
|
|
1987
|
-
name = choice
|
|
1988
|
-
root, ext = os.path.splitext(name)
|
|
1989
|
-
if ext == '':
|
|
1990
|
-
name = name + '.bpcfg'
|
|
1991
|
-
target = name if os.path.isabs(name) else os.path.join(os.getcwd(), name)
|
|
1992
|
-
if os.path.exists(target):
|
|
1993
|
-
yn = input(f"'{os.path.basename(target)}' exists. Overwrite? (y/n): ").strip().lower()
|
|
1994
|
-
if yn != 'y':
|
|
1995
|
-
target = None
|
|
1996
|
-
if target:
|
|
1997
|
-
export_style_config(target)
|
|
1998
|
-
print(f"Exported style to {target}")
|
|
1999
|
-
style_menu_active = False # Exit style submenu and return to main menu
|
|
2000
|
-
break
|
|
2001
|
-
else:
|
|
2002
|
-
print("Export canceled.")
|
|
1972
|
+
# Call export_style_config which handles the entire export dialog
|
|
1973
|
+
export_style_config(None) # The filename parameter is ignored by the function
|
|
1974
|
+
style_menu_active = False # Exit style submenu and return to main menu
|
|
1975
|
+
break
|
|
2003
1976
|
else:
|
|
2004
1977
|
print("Unknown choice.")
|
|
2005
1978
|
except Exception as e:
|
|
@@ -1011,6 +1011,7 @@ def dump_ec_session(
|
|
|
1011
1011
|
'tick_widths': tick_widths,
|
|
1012
1012
|
'spines': spines_state,
|
|
1013
1013
|
'titles': titles,
|
|
1014
|
+
'mode': getattr(ax, '_is_dqdv_mode', None), # Store dQdV mode flag
|
|
1014
1015
|
}
|
|
1015
1016
|
if skip_confirm:
|
|
1016
1017
|
target = filename
|
|
@@ -1316,6 +1317,15 @@ def load_ec_session(filename: str):
|
|
|
1316
1317
|
ax._right_ylabel_on = False
|
|
1317
1318
|
except Exception:
|
|
1318
1319
|
pass
|
|
1320
|
+
|
|
1321
|
+
# Restore mode flag (e.g., dQdV mode)
|
|
1322
|
+
try:
|
|
1323
|
+
mode = sess.get('mode')
|
|
1324
|
+
if mode is not None:
|
|
1325
|
+
ax._is_dqdv_mode = bool(mode)
|
|
1326
|
+
except Exception:
|
|
1327
|
+
pass
|
|
1328
|
+
|
|
1319
1329
|
try:
|
|
1320
1330
|
fig.canvas.draw()
|
|
1321
1331
|
except Exception:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "batplot"
|
|
7
|
-
version = "1.1.
|
|
7
|
+
version = "1.1.3"
|
|
8
8
|
description = "Interactive plotting for XRD, PDF, and XAS data (.xye, .xy, .qye, .dat, .csv, .gr, .nor, .chik, .chir)"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Tian Dai", email = "tianda@uio.no" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|