Skip to content

Remove unused imports/PY2 compat, check_version() calls, and implement graceful ctrl-c handling #37

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 14 additions & 34 deletions runviewer/__main__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#####################################################################
# #
# /main.pyw #
# __main__.py #
# #
# Copyright 2014, Monash University #
# #
Expand All @@ -10,19 +10,9 @@
# the project for the full license. #
# #
#####################################################################
from __future__ import division, unicode_literals, print_function, absolute_import
from labscript_utils import PY2

import os
import labscript_utils.excepthook

try:
from labscript_utils import check_version
except ImportError:
raise ImportError('Require labscript_utils > 2.1.0')

check_version('labscript_utils', '2.15.0', '3')

# Associate app windows with OS menu shortcuts:
import desktop_app
desktop_app.set_process_appid('runviewer')
Expand All @@ -39,22 +29,10 @@
import time
import threading
import logging
import socket
if PY2:
str = unicode
from Queue import Queue
else:
from queue import Queue
from queue import Queue
import ast
import pprint

import signal
# Quit on ctrl-c
signal.signal(signal.SIGINT, signal.SIG_DFL)


splash.update_text('importing Qt')
check_version('qtutils', '2.0.0', '3.0.0')

splash.update_text('importing labscript suite modules')
from labscript_utils.setup_logging import setup_logging
Expand All @@ -65,23 +43,19 @@
import labscript_utils.h5_lock
import h5py

# This must be bumped until after the h5_lock import
# This is because the check imports pyqtgraph, which imports h5py
# h5py must be imported after h5_lock, thus we do the check here
splash.update_text('importing pyqtgraph')
check_version('pyqtgraph', '0.9.10', '1')

# No splash update for Qt - the splash screen already imported it
from qtutils.qt.QtCore import *
from qtutils.qt.QtGui import *
from qtutils.qt.QtWidgets import *

splash.update_text('importing pyqtgraph')
import pyqtgraph as pg

splash.update_text('importing numpy')
import numpy
splash.update_text('importing scipy')
from scipy import interpolate

# must be imported after PySide/PyQt4
import pyqtgraph as pg
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')

Expand All @@ -91,8 +65,7 @@
from labscript_utils.connections import ConnectionTable
import labscript_devices

from labscript_utils.labconfig import LabConfig, config_prefix
check_version('labscript_utils', '2.11.0', '3')
from labscript_utils.labconfig import LabConfig
from labscript_utils.ls_zprocess import ZMQServer, ProcessTree
process_tree = ProcessTree.instance()
process_tree.zlock_client.set_process_name('runviewer')
Expand Down Expand Up @@ -1686,4 +1659,11 @@ def handler(self, h5_filepath):
def execute_program():
qapplication.exec_()

# Let the interpreter run every 500ms so it sees Ctrl-C interrupts:
timer = QTimer()
timer.start(500)
timer.timeout.connect(lambda: None)
# Upon seeing a ctrl-c interrupt, quit the event loop
signal.signal(signal.SIGINT, lambda *args: qapplication.exit())

sys.exit(execute_program())
22 changes: 1 addition & 21 deletions runviewer/resample/__init__.py
Original file line number Diff line number Diff line change
@@ -1,21 +1 @@
from __future__ import print_function, unicode_literals, division, absolute_import
from labscript_utils import PY2, check_version
if PY2:
str = unicode
import os

if PY2:
try:
import autocython
except ImportError:
msg = ('autocython required, installable via pip')
raise RuntimeError(msg)

check_version('autocython', '1.1', '2.0')
from autocython import ensure_extensions_compiled, import_extension

ensure_extensions_compiled(os.path.abspath(os.path.dirname(__file__)))
extension = import_extension('runviewer.resample.resample')
resample = extension.resample
else:
from .resample import resample
from .resample import resample
11 changes: 1 addition & 10 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,9 @@
import os
from setuptools import setup

try:
from setuptools_conda import dist_conda
CMDCLASS = {"dist_conda": dist_conda}
except ImportError:
CMDCLASS = {}

VERSION_SCHEME = {
"version_scheme": os.getenv("SCM_VERSION_SCHEME", "guess-next-dev"),
"local_scheme": os.getenv("SCM_LOCAL_SCHEME", "node-and-date"),
}

setup(
use_scm_version=VERSION_SCHEME,
cmdclass=CMDCLASS,
)
setup(use_scm_version=VERSION_SCHEME)