Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/artiq
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: b3e55b753b96
Choose a base ref
...
head repository: m-labs/artiq
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 57e3d9ee34e2
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on May 25, 2016

  1. browser: refactor log

    jordens committed May 25, 2016
    Copy the full SHA
    26e98a1 View commit details
  2. browser: react to b3e55b7

    jordens committed May 25, 2016
    Copy the full SHA
    57e3d9e View commit details
Showing with 41 additions and 35 deletions.
  1. +5 −1 artiq/browser/experiments.py
  2. +34 −0 artiq/browser/log.py
  3. +2 −34 artiq/frontend/artiq_browser.py
6 changes: 5 additions & 1 deletion artiq/browser/experiments.py
Original file line number Diff line number Diff line change
@@ -240,7 +240,11 @@ async def _recompute_arguments(self, overrides={}):
self.expurl, exc_info=True)
return
for k, v in overrides.items():
arginfo[k][0]["default"] = v
# Some values (e.g. scans) may have multiple defaults in a list
if isinstance(arginfo[k][0].get("default"), list):
arginfo[k][0]["default"].insert(0, v)
else:
arginfo[k][0]["default"] = v
self.arguments = self._area.initialize_submission_arguments(arginfo)

self.argeditor.deleteLater()
34 changes: 34 additions & 0 deletions artiq/browser/log.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import logging

from artiq.protocols.logging import SourceFilter


class LogBufferHandler(logging.Handler):
def __init__(self, log, *args, **kwargs):
logging.Handler.__init__(self, *args, **kwargs)
self.log = log
self.setFormatter(logging.Formatter("%(name)s:%(message)s"))

def emit(self, record):
if self.log.model is not None:
self.log.model.append((record.levelno, record.source,
record.created, self.format(record)))


def init_log(args, log):
root_logger = logging.getLogger()
root_logger.setLevel(logging.NOTSET) # we use our custom filter only
flt = SourceFilter(logging.WARNING + args.quiet*10 - args.verbose*10,
"browser")
handlers = []
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter(
"%(levelname)s:%(source)s:%(name)s:%(message)s"))
handlers.append(console_handler)

buffer_handler = LogBufferHandler(log)
handlers.append(buffer_handler)

for handler in handlers:
handler.addFilter(flt)
root_logger.addHandler(handler)
36 changes: 2 additions & 34 deletions artiq/frontend/artiq_browser.py
Original file line number Diff line number Diff line change
@@ -12,8 +12,7 @@
from artiq import __artiq_dir__ as artiq_dir
from artiq.tools import verbosity_args, atexit_register_coroutine
from artiq.gui import state, applets, models, log
from artiq.browser import datasets, files, experiments
from artiq.protocols.logging import SourceFilter
from artiq.browser import datasets, files, experiments, log as browser_log

logger = logging.getLogger(__name__)

@@ -74,7 +73,7 @@ def main():
atexit.register(loop.close)

log_sub = models.LocalModelManager(log.Model)
init_log(args, log_sub)
browser_log.init_log(args, log_sub)
log_sub.init([])

smgr = state.StateManager(args.db_file)
@@ -140,36 +139,5 @@ def main():
loop.run_until_complete(main_window.exit_request.wait())


class LogBufferHandler(logging.Handler):
def __init__(self, log, *args, **kwargs):
logging.Handler.__init__(self, *args, **kwargs)
self.log = log
self.setFormatter(logging.Formatter("%(name)s:%(message)s"))

def emit(self, record):
if self.log.model is not None:
self.log.model.append((record.levelno, record.source,
record.created, self.format(record)))


def init_log(args, log):
root_logger = logging.getLogger()
root_logger.setLevel(logging.NOTSET) # we use our custom filter only
flt = SourceFilter(logging.WARNING + args.quiet*10 - args.verbose*10,
"browser")
handlers = []
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter(
"%(levelname)s:%(source)s:%(name)s:%(message)s"))
handlers.append(console_handler)

buffer_handler = LogBufferHandler(log)
handlers.append(buffer_handler)

for handler in handlers:
handler.addFilter(flt)
root_logger.addHandler(handler)


if __name__ == "__main__":
main()