From 626b6ff0f209b48150435ad131a638cf919b8b78 Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins <jrollins@finestructure.net> Date: Thu, 23 Apr 2020 13:13:12 -0700 Subject: [PATCH] cli: fix interactive mode At some point this mode stopped producing plots. This fixes that by updating the code execution call to InteractiveShellEmbed. Also only imports ipython opportunistically, so it's not a hard dependency. --- .gitlab-ci.yml | 2 +- gwinc/__main__.py | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 99539fd2..f8958171 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,7 +27,7 @@ gwinc/base: cat <<EOF > Dockerfile FROM igwn/base:buster RUN apt-get update -qq - RUN apt-get -y install --no-install-recommends git python3-gitlab python3 python3-yaml python3-scipy python3-matplotlib python3-ipython python3-lalsimulation python3-pypdf2 python3-h5py + RUN apt-get -y install --no-install-recommends git python3-gitlab python3 python3-yaml python3-scipy python3-matplotlib python3-lalsimulation python3-pypdf2 python3-h5py RUN git clone https://gitlab-ci-token:ci_token@git.ligo.org/gwinc/inspiral_range.git EOF - docker build -t $IMAGE_TAG . diff --git a/gwinc/__main__.py b/gwinc/__main__.py index e4eea3b1..5b112dfb 100644 --- a/gwinc/__main__.py +++ b/gwinc/__main__.py @@ -3,7 +3,6 @@ import os import signal import argparse import numpy as np -from IPython.terminal.embed import InteractiveShellEmbed import logging logging.basicConfig( @@ -247,14 +246,8 @@ def main(): # interactive shell plotting if args.interactive: + from IPython.terminal.embed import InteractiveShellEmbed ipshell = InteractiveShellEmbed( - user_ns={ - 'freq': freq, - 'traces': traces, - 'ifo': ifo, - 'plot_style': plot_style, - 'plot_noise': plot_noise, - }, banner1=''' GWINC interactive plotter @@ -262,10 +255,18 @@ You may interact with plot using "plt." methods, e.g.: >>> plt.title("foo") >>> plt.savefig("foo.pdf") -''') +''', + user_ns={ + 'freq': freq, + 'traces': traces, + 'ifo': ifo, + 'plot_style': plot_style, + 'plot_noise': plot_noise, + }, + ) ipshell.enable_pylab() - ipshell.run_code("plot_noise(freq, traces, **plot_style)") - ipshell.run_code("plt.title('{}')".format(plot_style['title'])) + ipshell.ex("fig = plot_noise(freq, traces, **plot_style)") + ipshell.ex("plt.title('{}')".format(plot_style['title'])) ipshell() ########## -- GitLab