I have a strange error that I've been able to reproduce on 2 machines but it doesn't occur on others. For example, I have the issue running on my local laptop but then not with other environments.
The behavior is such that Gofer Grader runs fine until pandas is imported. Then the issue below occurs every time you run the grading.
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-7-bdbe578848a5> in <module>()
----> 1 _ = ok.grade('q21')
~/anaconda3/envs/auto/lib/python3.6/site-packages/client/api/notebook.py in grade(self, question, global_env)
56 # inspect trick to pass in its parents' global env.
57 global_env = inspect.currentframe().f_back.f_globals
---> 58 result = check(path, global_env)
59 # We display the output if we're in IPython.
60 # This keeps backwards compatibility with okpy's grade method
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/ok.py in check(test_file_path, global_env)
294 # inspect trick to pass in its parents' global env.
295 global_env = inspect.currentframe().f_back.f_globals
--> 296 return tests.run(global_env, include_grade=False)
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/ok.py in run(self, global_environment, include_grade)
143 failed_tests = []
144 for t in self.tests:
--> 145 passed, hint = t.run(global_environment)
146 if passed:
147 passed_tests.append(t)
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/ok.py in run(self, global_environment)
85 def run(self, global_environment):
86 for i, t in enumerate(self.tests):
---> 87 passed, result = run_doctest(self.name + ' ' + str(i), t, global_environment)
88 if not passed:
89 return False, OKTest.result_fail_template.render(
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/ok.py in run_doctest(name, doctest_string, global_environment)
43 runresults = io.StringIO()
44 with redirect_stdout(runresults), redirect_stderr(runresults), hide_outputs():
---> 45 doctestrunner.run(test, clear_globs=False)
46 with open('/dev/null', 'w') as f, redirect_stderr(f), redirect_stdout(f):
47 result = doctestrunner.summarize(verbose=True)
~/anaconda3/envs/auto/lib/python3.6/contextlib.py in __exit__(self, type, value, traceback)
86 if type is None:
87 try:
---> 88 next(self.gen)
89 except StopIteration:
90 return False
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/utils.py in hide_outputs()
46 yield
47 finally:
---> 48 flush_inline_matplotlib_plots()
49 ipy.display_formatter.formatters = old_formatters
~/anaconda3/envs/auto/lib/python3.6/site-packages/gofer/utils.py in flush_inline_matplotlib_plots()
21 try:
22 import matplotlib as mpl
---> 23 from ipykernel.pylab.backend_inline import flush_figures
24 except ImportError:
25 return
~/anaconda3/envs/auto/lib/python3.6/site-packages/ipykernel/pylab/backend_inline.py in <module>()
167 ip.events.register('post_run_cell', configure_once)
168
--> 169 _enable_matplotlib_integration()
170
171 def _fetch_figure_metadata(fig):
~/anaconda3/envs/auto/lib/python3.6/site-packages/ipykernel/pylab/backend_inline.py in _enable_matplotlib_integration()
158 try:
159 activate_matplotlib(backend)
--> 160 configure_inline_support(ip, backend)
161 except (ImportError, AttributeError):
162 # bugs may cause a circular import on Python 2
~/anaconda3/envs/auto/lib/python3.6/site-packages/IPython/core/pylabtools.py in configure_inline_support(shell, backend)
409 if new_backend_name != cur_backend:
410 # Setup the default figure format
--> 411 select_figure_formats(shell, cfg.figure_formats, **cfg.print_figure_kwargs)
412 configure_inline_support.current_backend = new_backend_name
~/anaconda3/envs/auto/lib/python3.6/site-packages/IPython/core/pylabtools.py in select_figure_formats(shell, formats, **kwargs)
215 from matplotlib.figure import Figure
216
--> 217 svg_formatter = shell.display_formatter.formatters['image/svg+xml']
218 png_formatter = shell.display_formatter.formatters['image/png']
219 jpg_formatter = shell.display_formatter.formatters['image/jpeg']
KeyError: 'image/svg+xml'
I have a strange error that I've been able to reproduce on 2 machines but it doesn't occur on others. For example, I have the issue running on my local laptop but then not with other environments.
The behavior is such that Gofer Grader runs fine until pandas is imported. Then the issue below occurs every time you run the grading.