find match case Path
fix kde6
This commit is contained in:
parent
20539edf5c
commit
4e02ce83d3
@ -1 +0,0 @@
|
||||
{"t_start": 21, "t_end": 838}
|
||||
@ -1 +0,0 @@
|
||||
{"t_start": 0, "t_end": 1499}
|
||||
14
dev.py
14
dev.py
@ -3,17 +3,27 @@ import sys
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
import click
|
||||
|
||||
sys.argv.append('--dev')
|
||||
|
||||
import flandre
|
||||
from flandre.launcher import launch_from_file
|
||||
from flandre.config import C
|
||||
|
||||
|
||||
def main():
|
||||
@click.command()
|
||||
@click.option('--data_folder', default=None)
|
||||
@click.option('--generate_pyqt', default=True)
|
||||
@click.option('--dev', default=True, is_flag=True)
|
||||
def main(data_folder, generate_pyqt, dev):
|
||||
if (pyuic6 := shutil.which('pyuic6')) is None:
|
||||
print('pyuic6 is not installed')
|
||||
return
|
||||
subprocess.run([pyuic6, '-o', flandre.PYQT / 'Main.py', flandre.PYQT / 'Main.ui'])
|
||||
if generate_pyqt:
|
||||
subprocess.run([pyuic6, '-o', flandre.PYQT / 'Main.py', flandre.PYQT / 'Main.ui'])
|
||||
if data_folder is not None:
|
||||
C.data_folder = Path(data_folder)
|
||||
launch_from_file(Path(__file__).parent / 'dev.toml')
|
||||
|
||||
|
||||
|
||||
7
dev.toml
7
dev.toml
@ -1,2 +1,9 @@
|
||||
[MainUI]
|
||||
[ImageCV]
|
||||
[Muxer]
|
||||
[Loader]
|
||||
[Beamformer]
|
||||
#[ImageFFMPEG]
|
||||
|
||||
#[Robot]
|
||||
#[Device]
|
||||
|
||||
@ -88,22 +88,25 @@ class SoftwareConfig:
|
||||
j = json.loads(path.read_text(encoding='utf-8'))
|
||||
arg_d = dict()
|
||||
for field in dataclasses.fields(SoftwareConfig):
|
||||
v = j[field.name]
|
||||
match field.type:
|
||||
case Path():
|
||||
arg_d[field.name] = Path(j[field.name])
|
||||
arg_d[field.name] = Path(v)
|
||||
case _:
|
||||
arg_d[field.name] = j[field.name]
|
||||
arg_d[field.name] = v
|
||||
sc = SoftwareConfig(**arg_d)
|
||||
return sc
|
||||
|
||||
def write_config(self):
|
||||
arg_d = dict()
|
||||
for field in dataclasses.fields(SoftwareConfig):
|
||||
match field.type:
|
||||
v = self.__getattribute__(field.name)
|
||||
match v:
|
||||
case Path():
|
||||
arg_d[field.name] = str(self.__getattribute__(field.name))
|
||||
arg_d[field.name] = str(v)
|
||||
case _:
|
||||
arg_d[field.name] = self.__getattribute__(field.name)
|
||||
arg_d[field.name] = v
|
||||
SOFTWARE_CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
|
||||
SOFTWARE_CONFIG_PATH.write_text(json.dumps(arg_d, indent=4), encoding='utf-8')
|
||||
|
||||
|
||||
|
||||
@ -1,24 +1,33 @@
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from PyQt6 import QtWidgets
|
||||
|
||||
import flandre
|
||||
from flandre.config import C
|
||||
from flandre.nodes.MainUI import MainUI
|
||||
|
||||
|
||||
def kde_pyqt6_mainui():
|
||||
subprocess.run(['python', __file__],
|
||||
subprocess.run(['python', __file__, *sys.argv[1:]],
|
||||
env=dict(XDG_CURRENT_DESKTOP="KDE",
|
||||
XDG_RUNTIME_DIR="/run/user/1000",
|
||||
XDG_SESSION_TYPE="wayland",
|
||||
PYTHONPATH=os.environ.get('PYTHONPATH', flandre.MODULE_FOLDER.parent), )
|
||||
PYTHONPATH=os.environ.get('PYTHONPATH', flandre.MODULE_FOLDER.parent))
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(QtWidgets.QStyleFactory.keys())
|
||||
if '--dev' in sys.argv:
|
||||
print('qt styles:',QtWidgets.QStyleFactory.keys())
|
||||
try:
|
||||
idx = sys.argv.index('--data_folder')
|
||||
C.data_folder = Path(sys.argv[idx + 1])
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
MainUI()()
|
||||
|
||||
@ -67,6 +67,10 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
super(Adv, self).__init__(parent)
|
||||
self.p = p
|
||||
self.setupUi(self)
|
||||
|
||||
# set default folder
|
||||
self.l_base.setText(C.data_folder.__str__())
|
||||
|
||||
self.device_switch_state: LinkStatus = LinkStatus.RED
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(str(ASSETS / 'switch_button.png')))
|
||||
@ -100,7 +104,6 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
# self.b_device_connected.clicked.connect(lambda: self.p.send(SetDeviceConnectedMsg(not self.device_connected)))
|
||||
# self.c_live_seq_name.currentIndexChanged.connect(self.on_seq_meta)
|
||||
self.b_live_seq_apply.clicked.connect(self.on_seq_meta)
|
||||
self.l_base.setText(C.data_folder.__str__())
|
||||
self.l_base.textChanged.connect(lambda e:
|
||||
self.l_base.setStyleSheet("")
|
||||
if Path(e).exists() else
|
||||
@ -450,7 +453,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
||||
if msg.name == 'bscan' and msg.sender != 'ui':
|
||||
self.cb_bscan.setChecked(msg.value)
|
||||
elif isinstance(msg, ImagingConfigNameListMsg):
|
||||
print(msg, flush=True)
|
||||
# print(msg, flush=True) todo fix
|
||||
self.c_imaging_config.clear()
|
||||
for name in msg.value:
|
||||
self.c_imaging_config.addItem(name)
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import dataclasses
|
||||
import inspect
|
||||
import sys
|
||||
from enum import Enum
|
||||
from pathlib import Path, PosixPath
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
@ -18,10 +20,28 @@ class EE(Enum):
|
||||
x=1
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(sys.argv)
|
||||
# print(dir(ASD()))
|
||||
# print(ASD.__dict__)
|
||||
# print(inspect.getmembers(ASD))
|
||||
# print(inspect.getmembers(ASD))
|
||||
# for f in dataclasses.fields(ASD):
|
||||
# print(f.name, f.type)
|
||||
print(EE.asd.value())
|
||||
p = Path('asd')
|
||||
pt = type(p)
|
||||
print(pt)
|
||||
print(pt.__name__)
|
||||
print(type(type(p)))
|
||||
match pt:
|
||||
case _x if isinstance(_x, PosixPath):
|
||||
print(-2)
|
||||
case type(__name__='PosixPath'):
|
||||
print(-1)
|
||||
case type():
|
||||
print(0)
|
||||
case Path():
|
||||
print(1)
|
||||
case PosixPath():
|
||||
print(3)
|
||||
case _:
|
||||
print(2)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user