mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-27 13:58:12 +08:00
Apply yapf to python files
This commit is contained in:
@@ -12,7 +12,9 @@ WindowUtils = cef.WindowUtils()
|
||||
# noinspection PyUnresolvedReferences
|
||||
CefWidgetParent = QWidget
|
||||
|
||||
|
||||
class CefWidget(CefWidgetParent):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super(CefWidget, self).__init__(parent)
|
||||
self.parent = parent
|
||||
@@ -58,8 +60,8 @@ class CefWidget(CefWidgetParent):
|
||||
if WINDOWS:
|
||||
WindowUtils.OnSize(self.getHandle(), 0, 0, 0)
|
||||
elif LINUX:
|
||||
self.browser.SetBounds(self.x, self.y,
|
||||
self.width(), self.height())
|
||||
self.browser.SetBounds(self.x, self.y, self.width(),
|
||||
self.height())
|
||||
self.browser.NotifyMoveOrResizeStarted()
|
||||
|
||||
def resizeEvent(self, event):
|
||||
@@ -68,12 +70,13 @@ class CefWidget(CefWidgetParent):
|
||||
if WINDOWS:
|
||||
WindowUtils.OnSize(self.getHandle(), 0, 0, 0)
|
||||
elif LINUX:
|
||||
self.browser.SetBounds(self.x, self.y,
|
||||
size.width(), size.height())
|
||||
self.browser.SetBounds(self.x, self.y, size.width(),
|
||||
size.height())
|
||||
self.browser.NotifyMoveOrResizeStarted()
|
||||
|
||||
|
||||
class CefApplication(QApplication):
|
||||
|
||||
def __init__(self, args):
|
||||
super(CefApplication, self).__init__(args)
|
||||
if not cef.GetAppSetting("external_message_pump"):
|
||||
|
||||
@@ -431,10 +431,15 @@ qt_resource_struct = b"\
|
||||
\x00\x00\x00,\x00\x00\x00\x00\x00\x01\x00\x00\x11>\
|
||||
"
|
||||
|
||||
|
||||
def qInitResources():
|
||||
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
|
||||
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name,
|
||||
qt_resource_data)
|
||||
|
||||
|
||||
def qCleanupResources():
|
||||
QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
|
||||
QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
|
||||
qt_resource_data)
|
||||
|
||||
|
||||
qInitResources()
|
||||
|
||||
@@ -50,22 +50,22 @@ def check_pyinstaller_version():
|
||||
version = PyInstaller.__version__
|
||||
match = re.search(r"^\d+\.\d+(\.\d+)?", version)
|
||||
if not (match.group(0) >= PYINSTALLER_MIN_VERSION):
|
||||
raise SystemExit("Error: pyinstaller %s or higher is required"
|
||||
% PYINSTALLER_MIN_VERSION)
|
||||
raise SystemExit("Error: pyinstaller %s or higher is required" %
|
||||
PYINSTALLER_MIN_VERSION)
|
||||
|
||||
|
||||
def check_cefpython3_version():
|
||||
if not is_module_satisfies("cefpython3 >= %s" % CEFPYTHON_MIN_VERSION):
|
||||
raise SystemExit("Error: cefpython3 %s or higher is required"
|
||||
% CEFPYTHON_MIN_VERSION)
|
||||
raise SystemExit("Error: cefpython3 %s or higher is required" %
|
||||
CEFPYTHON_MIN_VERSION)
|
||||
|
||||
|
||||
def get_cefpython_modules():
|
||||
"""Get all cefpython Cython modules in the cefpython3 package.
|
||||
It returns a list of names without file extension. Eg.
|
||||
'cefpython_py27'. """
|
||||
pyds = glob.glob(os.path.join(CEFPYTHON3_DIR,
|
||||
"cefpython_py*" + CYTHON_MODULE_EXT))
|
||||
pyds = glob.glob(
|
||||
os.path.join(CEFPYTHON3_DIR, "cefpython_py*" + CYTHON_MODULE_EXT))
|
||||
assert len(pyds) > 1, "Missing cefpython3 Cython modules"
|
||||
modules = []
|
||||
for path in pyds:
|
||||
@@ -155,7 +155,8 @@ def get_cefpython3_datas():
|
||||
absolute_file_path = os.path.join(path, file)
|
||||
dest_path = os.path.relpath(path, CEFPYTHON3_DIR)
|
||||
ret.append((absolute_file_path, dest_path))
|
||||
logger.info("Include cefpython3 data: {}/{}".format(dest_path, file))
|
||||
logger.info("Include cefpython3 data: {}/{}".format(
|
||||
dest_path, file))
|
||||
elif is_win or is_linux:
|
||||
# The .pak files in cefpython3/locales/ directory
|
||||
locales_dir = os.path.join(CEFPYTHON3_DIR, "locales")
|
||||
@@ -164,8 +165,9 @@ def get_cefpython3_datas():
|
||||
for filename in os.listdir(locales_dir):
|
||||
logger.info("Include cefpython3 data: {}/{}".format(
|
||||
os.path.basename(locales_dir), filename))
|
||||
ret.append((os.path.join(locales_dir, filename),
|
||||
os.path.join(cefdatadir, "locales")))
|
||||
ret.append(
|
||||
(os.path.join(locales_dir,
|
||||
filename), os.path.join(cefdatadir, "locales")))
|
||||
|
||||
# Optional .so/.dll files in cefpython3/swiftshader/ directory
|
||||
swiftshader_dir = os.path.join(CEFPYTHON3_DIR, "swiftshader")
|
||||
|
||||
+33
-11
@@ -34,6 +34,7 @@ LOAD_INDEX = 1
|
||||
|
||||
|
||||
class MainWindow(QMainWindow):
|
||||
|
||||
def __init__(self):
|
||||
super(MainWindow, self).__init__(None)
|
||||
self.cef_widget = None
|
||||
@@ -59,14 +60,17 @@ class MainWindow(QMainWindow):
|
||||
# close emitter on error/finished
|
||||
self.parent_conn, self.child_conn = Pipe()
|
||||
self.load_emitter = Emitter(self.parent_conn, WorkerSignals)
|
||||
self.emitter_thread = threading.Thread(target=self.load_emitter.run, daemon=True)
|
||||
self.emitter_thread = threading.Thread(target=self.load_emitter.run,
|
||||
daemon=True)
|
||||
self.emitter_thread.start()
|
||||
# send to load with error message?
|
||||
|
||||
def setupLayout(self):
|
||||
self.resize(WIDTH, HEIGHT)
|
||||
self.cef_widget = CefWidget(self)
|
||||
self.cef_widget.setSizePolicy(QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding))
|
||||
self.cef_widget.setSizePolicy(
|
||||
QSizePolicy(QSizePolicy.MinimumExpanding,
|
||||
QSizePolicy.MinimumExpanding))
|
||||
self.data_widget = LoadWidget(self)
|
||||
self.stacked_layout = QStackedLayout()
|
||||
self.stacked_layout.addWidget(self.cef_widget)
|
||||
@@ -104,7 +108,8 @@ class MainWindow(QMainWindow):
|
||||
# close emitter on error/finished
|
||||
self.parent_conn, self.child_conn = Pipe()
|
||||
self.load_emitter = Emitter(self.parent_conn, WorkerSignals)
|
||||
self.emitter_thread = threading.Thread(target=self.load_emitter.run, daemon=True)
|
||||
self.emitter_thread = threading.Thread(target=self.load_emitter.run,
|
||||
daemon=True)
|
||||
self.emitter_thread.start()
|
||||
# send to load with error message?
|
||||
|
||||
@@ -144,6 +149,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
|
||||
class LoadWidget(QFrame):
|
||||
|
||||
def __init__(self, parent):
|
||||
super(LoadWidget, self).__init__(parent=parent)
|
||||
# Init layout
|
||||
@@ -240,11 +246,18 @@ class LoadWidget(QFrame):
|
||||
def createScanpyEngine(self, file_name):
|
||||
title = splitext(basename(file_name))[0]
|
||||
self.window().setupServer()
|
||||
worker = Worker(self.window().parent_conn, self.window().child_conn, file_name, host="127.0.0.1",
|
||||
port=GUI_PORT, title=title, engine_options={})
|
||||
worker = Worker(self.window().parent_conn,
|
||||
self.window().child_conn,
|
||||
file_name,
|
||||
host="127.0.0.1",
|
||||
port=GUI_PORT,
|
||||
title=title,
|
||||
engine_options={})
|
||||
self.window().load_emitter.signals.ready.connect(self.onDataReady)
|
||||
self.window().load_emitter.signals.engine_error.connect(self.onServerError)
|
||||
self.window().load_emitter.signals.server_error.connect(self.onServerError)
|
||||
self.window().load_emitter.signals.engine_error.connect(
|
||||
self.onServerError)
|
||||
self.window().load_emitter.signals.server_error.connect(
|
||||
self.onServerError)
|
||||
# Error is generic error from emitter
|
||||
self.window().load_emitter.signals.error.connect(self.onServerError)
|
||||
self.window().worker = Process(target=worker.run, daemon=True)
|
||||
@@ -266,7 +279,8 @@ class LoadWidget(QFrame):
|
||||
self.site_ready_worker.signals.ready.connect(self.onServerReady)
|
||||
self.site_ready_worker.signals.error.connect(self.onServerError)
|
||||
|
||||
srw_thread = threading.Thread(target=self.site_ready_worker.run, daemon=True)
|
||||
srw_thread = threading.Thread(target=self.site_ready_worker.run,
|
||||
daemon=True)
|
||||
srw_thread.start()
|
||||
|
||||
def onServerReady(self):
|
||||
@@ -289,7 +303,9 @@ class LoadWidget(QFrame):
|
||||
|
||||
onServerError = partialmethod(onError, server_error=True)
|
||||
|
||||
|
||||
class FilePath(QObject):
|
||||
|
||||
def __init__(self):
|
||||
super(FilePath, self).__init__()
|
||||
self.value = ""
|
||||
@@ -301,6 +317,7 @@ class FilePath(QObject):
|
||||
|
||||
|
||||
class FileArea(QFrame):
|
||||
|
||||
def __init__(self, parent):
|
||||
super(FileArea, self).__init__()
|
||||
self.setFrameShape(QFrame.Box)
|
||||
@@ -309,10 +326,12 @@ class FileArea(QFrame):
|
||||
self.setAcceptDrops(True)
|
||||
self.instructions = QLabel(self)
|
||||
self.instructions.setText("Drag & Drop a h5ad file to load or open")
|
||||
self.instructions.setGeometry(10, 10, MAX_CONTENT_WIDTH, self.instructions.height())
|
||||
self.instructions.setGeometry(10, 10, MAX_CONTENT_WIDTH,
|
||||
self.instructions.height())
|
||||
self.loadButton = QPushButton("Open...", parent=self)
|
||||
x_pos = (MAX_CONTENT_WIDTH - self.loadButton.width()) / 2
|
||||
self.loadButton.setGeometry(x_pos, 50, self.loadButton.width(), self.loadButton.height())
|
||||
self.loadButton.setGeometry(x_pos, 50, self.loadButton.width(),
|
||||
self.loadButton.height())
|
||||
self.loadButton.clicked.connect(self.fileBrowse)
|
||||
self.label = QLabel(self)
|
||||
self.label.setGeometry(10, 75, MAX_CONTENT_WIDTH, self.label.height())
|
||||
@@ -321,7 +340,10 @@ class FileArea(QFrame):
|
||||
options = QFileDialog.Options()
|
||||
# options |= QFileDialog.DontUseNativeDialog
|
||||
file_name, _ = QFileDialog.getOpenFileName(self,
|
||||
"Open H5AD File", "", "H5AD Files (*.h5ad)", options=options)
|
||||
"Open H5AD File",
|
||||
"",
|
||||
"H5AD Files (*.h5ad)",
|
||||
options=options)
|
||||
if file_name:
|
||||
self.parent().file_name.updateValue(file_name)
|
||||
self.parent().onLoad()
|
||||
|
||||
@@ -49,6 +49,7 @@ class FileChanged(QObject):
|
||||
|
||||
|
||||
class Emitter:
|
||||
|
||||
def __init__(self, transport, signals):
|
||||
self.transport = transport
|
||||
self.signals = signals()
|
||||
|
||||
@@ -7,6 +7,7 @@ from server.gui.utils import SiteReadySignals
|
||||
|
||||
|
||||
class EmittingProcess(Process):
|
||||
|
||||
def __init__(self, parent_conn, child_conn, *arg, **kwargs):
|
||||
super(EmittingProcess, self).__init__()
|
||||
self.parent_conn = parent_conn
|
||||
@@ -21,7 +22,9 @@ class EmittingProcess(Process):
|
||||
|
||||
|
||||
class Worker(EmittingProcess):
|
||||
def __init__(self, parent_conn, child_conn, data_file, host, port, title, engine_options, *args, **kwargs):
|
||||
|
||||
def __init__(self, parent_conn, child_conn, data_file, host, port, title,
|
||||
engine_options, *args, **kwargs):
|
||||
super(Worker, self).__init__(parent_conn, child_conn)
|
||||
self.data_file = data_file
|
||||
self.host = host
|
||||
@@ -62,7 +65,10 @@ class Worker(EmittingProcess):
|
||||
return
|
||||
# launch server
|
||||
try:
|
||||
server.app.run(host=self.host, debug=False, port=self.port, threaded=True)
|
||||
server.app.run(host=self.host,
|
||||
debug=False,
|
||||
port=self.port,
|
||||
threaded=True)
|
||||
except Exception as e:
|
||||
self.emit("server_error", str(e))
|
||||
finally:
|
||||
@@ -70,6 +76,7 @@ class Worker(EmittingProcess):
|
||||
|
||||
|
||||
class SiteReadyWorker:
|
||||
|
||||
def __init__(self, location):
|
||||
super(SiteReadyWorker, self).__init__()
|
||||
self.signals = SiteReadySignals()
|
||||
|
||||
Reference in New Issue
Block a user