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}
|
|
||||||
12
dev.py
12
dev.py
@ -3,17 +3,27 @@ import sys
|
|||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import click
|
||||||
|
|
||||||
sys.argv.append('--dev')
|
sys.argv.append('--dev')
|
||||||
|
|
||||||
import flandre
|
import flandre
|
||||||
from flandre.launcher import launch_from_file
|
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:
|
if (pyuic6 := shutil.which('pyuic6')) is None:
|
||||||
print('pyuic6 is not installed')
|
print('pyuic6 is not installed')
|
||||||
return
|
return
|
||||||
|
if generate_pyqt:
|
||||||
subprocess.run([pyuic6, '-o', flandre.PYQT / 'Main.py', flandre.PYQT / 'Main.ui'])
|
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')
|
launch_from_file(Path(__file__).parent / 'dev.toml')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
7
dev.toml
7
dev.toml
@ -1,2 +1,9 @@
|
|||||||
[MainUI]
|
[MainUI]
|
||||||
[ImageCV]
|
[ImageCV]
|
||||||
|
[Muxer]
|
||||||
|
[Loader]
|
||||||
|
[Beamformer]
|
||||||
|
#[ImageFFMPEG]
|
||||||
|
|
||||||
|
#[Robot]
|
||||||
|
#[Device]
|
||||||
|
|||||||
@ -88,22 +88,25 @@ class SoftwareConfig:
|
|||||||
j = json.loads(path.read_text(encoding='utf-8'))
|
j = json.loads(path.read_text(encoding='utf-8'))
|
||||||
arg_d = dict()
|
arg_d = dict()
|
||||||
for field in dataclasses.fields(SoftwareConfig):
|
for field in dataclasses.fields(SoftwareConfig):
|
||||||
|
v = j[field.name]
|
||||||
match field.type:
|
match field.type:
|
||||||
case Path():
|
case Path():
|
||||||
arg_d[field.name] = Path(j[field.name])
|
arg_d[field.name] = Path(v)
|
||||||
case _:
|
case _:
|
||||||
arg_d[field.name] = j[field.name]
|
arg_d[field.name] = v
|
||||||
sc = SoftwareConfig(**arg_d)
|
sc = SoftwareConfig(**arg_d)
|
||||||
return sc
|
return sc
|
||||||
|
|
||||||
def write_config(self):
|
def write_config(self):
|
||||||
arg_d = dict()
|
arg_d = dict()
|
||||||
for field in dataclasses.fields(SoftwareConfig):
|
for field in dataclasses.fields(SoftwareConfig):
|
||||||
match field.type:
|
v = self.__getattribute__(field.name)
|
||||||
|
match v:
|
||||||
case Path():
|
case Path():
|
||||||
arg_d[field.name] = str(self.__getattribute__(field.name))
|
arg_d[field.name] = str(v)
|
||||||
case _:
|
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')
|
SOFTWARE_CONFIG_PATH.write_text(json.dumps(arg_d, indent=4), encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,24 +1,33 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from PyQt6 import QtWidgets
|
from PyQt6 import QtWidgets
|
||||||
|
|
||||||
import flandre
|
import flandre
|
||||||
|
from flandre.config import C
|
||||||
from flandre.nodes.MainUI import MainUI
|
from flandre.nodes.MainUI import MainUI
|
||||||
|
|
||||||
|
|
||||||
def kde_pyqt6_mainui():
|
def kde_pyqt6_mainui():
|
||||||
subprocess.run(['python', __file__],
|
subprocess.run(['python', __file__, *sys.argv[1:]],
|
||||||
env=dict(XDG_CURRENT_DESKTOP="KDE",
|
env=dict(XDG_CURRENT_DESKTOP="KDE",
|
||||||
XDG_RUNTIME_DIR="/run/user/1000",
|
XDG_RUNTIME_DIR="/run/user/1000",
|
||||||
XDG_SESSION_TYPE="wayland",
|
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__':
|
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)
|
logging.basicConfig(level=logging.INFO)
|
||||||
MainUI()()
|
MainUI()()
|
||||||
|
|||||||
@ -67,6 +67,10 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
super(Adv, self).__init__(parent)
|
super(Adv, self).__init__(parent)
|
||||||
self.p = p
|
self.p = p
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# set default folder
|
||||||
|
self.l_base.setText(C.data_folder.__str__())
|
||||||
|
|
||||||
self.device_switch_state: LinkStatus = LinkStatus.RED
|
self.device_switch_state: LinkStatus = LinkStatus.RED
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap(str(ASSETS / 'switch_button.png')))
|
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.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.c_live_seq_name.currentIndexChanged.connect(self.on_seq_meta)
|
||||||
self.b_live_seq_apply.clicked.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.textChanged.connect(lambda e:
|
||||||
self.l_base.setStyleSheet("")
|
self.l_base.setStyleSheet("")
|
||||||
if Path(e).exists() else
|
if Path(e).exists() else
|
||||||
@ -450,7 +453,7 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
if msg.name == 'bscan' and msg.sender != 'ui':
|
if msg.name == 'bscan' and msg.sender != 'ui':
|
||||||
self.cb_bscan.setChecked(msg.value)
|
self.cb_bscan.setChecked(msg.value)
|
||||||
elif isinstance(msg, ImagingConfigNameListMsg):
|
elif isinstance(msg, ImagingConfigNameListMsg):
|
||||||
print(msg, flush=True)
|
# print(msg, flush=True) todo fix
|
||||||
self.c_imaging_config.clear()
|
self.c_imaging_config.clear()
|
||||||
for name in msg.value:
|
for name in msg.value:
|
||||||
self.c_imaging_config.addItem(name)
|
self.c_imaging_config.addItem(name)
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
import dataclasses
|
import dataclasses
|
||||||
import inspect
|
import inspect
|
||||||
|
import sys
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
from pathlib import Path, PosixPath
|
||||||
|
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
@ -18,10 +20,28 @@ class EE(Enum):
|
|||||||
x=1
|
x=1
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
print(sys.argv)
|
||||||
# print(dir(ASD()))
|
# print(dir(ASD()))
|
||||||
# print(ASD.__dict__)
|
# print(ASD.__dict__)
|
||||||
# print(inspect.getmembers(ASD))
|
# print(inspect.getmembers(ASD))
|
||||||
# print(inspect.getmembers(ASD))
|
# print(inspect.getmembers(ASD))
|
||||||
# for f in dataclasses.fields(ASD):
|
# for f in dataclasses.fields(ASD):
|
||||||
# print(f.name, f.type)
|
# 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