Skip to content
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

otter assign produces KeyError: 'users' after setting "submit_blank_pdf_on_export_failure" flag to true #695

Closed
champoll opened this issue Aug 8, 2023 · 9 comments · Fixed by #697
Labels
bug Something isn't working
Milestone

Comments

@champoll
Copy link

champoll commented Aug 8, 2023

Describe the bug
After setting the "submit_blank_pdf_on_export_failure" flag to true and compiling attached notebook with otter assign, I get an error.

To Reproduce
Steps to reproduce the behavior:

Run otter assign on attached notebook or on any notebook that sets the flag to true.

Expected behavior
Otter assign should complete without errors.

Versions
Python version: 3.10.12
Otter-Grader version: 5.0.2

Additional context
demo_champollion.ipynb.zip

Setting the flag to false removes the error.

(otter-env) champollion@LucasChLate2016 demo_champollion % otter assign demo_champollion.ipynb dist
/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/pydantic/_internal/_config.py:269: UserWarning: Valid config keys have changed in V2:
* 'allow_population_by_field_name' has been renamed to 'populate_by_name'
  warnings.warn(message, UserWarning)
Traceback (most recent call last):
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/runners/abstract_runner.py", line 128, in write_and_maybe_submit_pdf
    self.submit_pdf(client, pdf_path)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/runners/abstract_runner.py", line 154, in submit_pdf
    for user in metadata["users"]:
KeyError: 'users'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/champollion/miniconda3/envs/otter-env/bin/otter", line 10, in <module>
    sys.exit(cli())
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/cli.py", line 32, in wrapper
    return f(*args, **kwargs)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/cli.py", line 64, in assign_cli
    return assign(*args, **kwargs)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/assign/__init__.py", line 157, in main
    run_tests(assignment, debug=debug)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/assign/utils.py", line 208, in run_tests
    results = grade_submission(
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/api.py", line 54, in grade_submission
    results = run_grader(
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/__init__.py", line 59, in main
    run_autograder_main(ag_dir, logo=logo, debug=debug)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/__init__.py", line 65, in main
    scores = runner.run()
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/runners/python_runner.py", line 157, in run
    self.write_and_maybe_submit_pdf(client, subm_path, has_token, scores)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/runners/abstract_runner.py", line 138, in write_and_maybe_submit_pdf
    self.submit_pdf(client, ntf.name)
  File "/Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages/otter/run/run_autograder/runners/abstract_runner.py", line 154, in submit_pdf
    for user in metadata["users"]:
KeyError: 'users'
(otter-env) champollion@LucasChLate2016 demo_champollion % 


@champoll champoll added the bug Something isn't working label Aug 8, 2023
@chrispyles chrispyles added this to the v5.1.1 milestone Aug 8, 2023
@chrispyles
Copy link
Member

@champoll thanks for the bug report. I think I've made a fix -- can you install from my fork and let me know if otter assign works as expected?

pip uninstall -y otter-grader && pip install git+https://github.com/chrispyles/otter-grader.git@key-error-blank-pdf

@champoll
Copy link
Author

champoll commented Aug 9, 2023

Unfortunately not:


(otter-env) champollion@LucasChLate2016 demo_champollion % otter assign demo_champollion.ipynb dist
Generating views...
Traceback (most recent call last):
  File "/Users/champollion/.pyenv/versions/3.8.5/bin/otter", line 6, in <module>
    run_otter()
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/run.py", line 43, in run_otter
    args.func(args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/__init__.py", line 57, in main
    write_output_directories(master, result, assignment, args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/output.py", line 134, in write_output_directories
    write_student_dir(master_nb_path.name, autograder_dir, student_dir, assignment, args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/output.py", line 103, in write_student_dir
    nb = strip_solutions_and_output(nb)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/solutions.py", line 112, in strip_solutions_and_output
    cell['source'] = '\n'.join(replace_solutions(get_source(cell)))
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/solutions.py", line 99, in replace_solutions
    assert not solution, f"BEGIN SOLUTION without END SOLUTION in {lines}"
AssertionError: BEGIN SOLUTION without END SOLUTION in ['# BEGIN SOLUTION']
(otter-env) champollion@LucasChLate2016 demo_champollion % 

@chrispyles
Copy link
Member

@champoll is this running on the same notebook as the one you attached? The error you sent is getting thrown before the one from your original message. I'm guessing the notebook from the latest error isn't correctly formatted.

@chrispyles
Copy link
Member

Also it looks like it may not be using the version of otter you installed from my fork? I can see you have a conda environment activated but it's not using otter from inside the conda environment

@champoll
Copy link
Author

champoll commented Aug 9, 2023

It is running on the same notebook. I had previously installed otter via conda, so I uninstalled it, and then installed otter from your fork.

(otter-env) champollion@LucasChLate2016 demo_champollion % md5sum demo_champollion.ipynb
a3f7bd6c6d5dddc9471d8b91992166f2  demo_champollion.ipynb
(otter-env) champollion@LucasChLate2016 demo_champollion % md5sum ~/Downloads/demo_champollion.ipynb
a3f7bd6c6d5dddc9471d8b91992166f2  /Users/champollion/Downloads/demo_champollion.ipynb
(otter-env) champollion@LucasChLate2016 demo_champollion % history
  944  otter assign demo_champollion.ipynb dist
  945  otter --version
  946  otter assign demo_champollion.ipynb dist
  947  cd ..
  948  cd assignment07
  949  otter assign assignment07.ipynb dist
  950  conda uninstall otter-grader
  951  pip install git+https://github.com/chrispyles/otter-grader.git@key-error-blank-pdf
  952  cd ..
  953  cd assignment01
  954  otter assign assignment01.ipynb dist
  955  cd ..
  956  cd demo_champollion
  957  otter assign demo_champollion.ipynb dist
  958  md5sum demo_champollion.ipynb
  959  md5sum ~/Downloads/demo_champollion.ipynb
(otter-env) champollion@LucasChLate2016 demo_champollion % 

@chrispyles
Copy link
Member

can you try running conda run pip install git+https://github.com/chrispyles/otter-grader.git@key-error-blank-pdf inside your conda environment and see if that works? if it doesn't can you also send the output of which -a otter?

@chrispyles
Copy link
Member

I think that for some reason when you're running otter you're not getting the version you installed from my fork. Looking at the stack trace, it doesn't line up with the current version of otter.

@champoll
Copy link
Author

champoll commented Aug 9, 2023

It didn't work, so I tried to install your fork's otter in a new conda environment. I found that there is a version 1.1.3 of otter-grader installed on my system that I don't know how to uninstall. Please see below.

(otter-env) champollion@LucasChLate2016 demo_champollion % conda run pip install git+https://github.com/chrispyles/otter-grader.git@key-error-blank-pdf
Collecting git+https://github.com/chrispyles/otter-grader.git@key-error-blank-pdf
  Cloning https://github.com/chrispyles/otter-grader.git (to revision key-error-blank-pdf) to /private/var/folders/ls/2k887vrd70sd0kl477v3c72w0000gq/T/pip-req-build-zru7tztv
  Resolved https://github.com/chrispyles/otter-grader.git to commit de64024303e0fdbe6afd88a123a7b91196381124
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: dill in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (0.3.7)
Requirement already satisfied: jinja2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (3.1.2)
Requirement already satisfied: nbformat in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (5.9.2)
Requirement already satisfied: pandas in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (2.0.3)
Requirement already satisfied: PyYAML in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (6.0.1)
Requirement already satisfied: python-on-whales in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (0.64.0)
Requirement already satisfied: requests in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (2.31.0)
Requirement already satisfied: wrapt in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (1.15.0)
Requirement already satisfied: jupytext in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (1.15.0)
Requirement already satisfied: click in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (8.0.4)
Requirement already satisfied: fica>=0.2.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (0.2.2)
Requirement already satisfied: ipython in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (8.12.2)
Requirement already satisfied: astunparse in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (1.6.3)
Requirement already satisfied: ipywidgets in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (8.1.0)
Requirement already satisfied: ipylab in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (0.7.1)
Requirement already satisfied: nbconvert in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from otter-grader==5.1.0) (7.7.3)
Requirement already satisfied: docutils in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from fica>=0.2.0->otter-grader==5.1.0) (0.20.1)
Requirement already satisfied: sphinx in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from fica>=0.2.0->otter-grader==5.1.0) (7.1.2)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from astunparse->otter-grader==5.1.0) (0.38.4)
Requirement already satisfied: six<2.0,>=1.6.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from astunparse->otter-grader==5.1.0) (1.16.0)
Requirement already satisfied: comm>=0.1.3 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipywidgets->otter-grader==5.1.0) (0.1.4)
Requirement already satisfied: traitlets>=4.3.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipywidgets->otter-grader==5.1.0) (5.7.1)
Requirement already satisfied: widgetsnbextension~=4.0.7 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipywidgets->otter-grader==5.1.0) (4.0.8)
Requirement already satisfied: jupyterlab-widgets~=3.0.7 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipywidgets->otter-grader==5.1.0) (3.0.8)
Requirement already satisfied: backcall in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.2.0)
Requirement already satisfied: decorator in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (5.1.1)
Requirement already satisfied: jedi>=0.16 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.18.1)
Requirement already satisfied: matplotlib-inline in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.1.6)
Requirement already satisfied: pickleshare in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (3.0.36)
Requirement already satisfied: pygments>=2.4.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (2.15.1)
Requirement already satisfied: stack-data in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.2.0)
Requirement already satisfied: pexpect>4.3 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (4.8.0)
Requirement already satisfied: appnope in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from ipython->otter-grader==5.1.0) (0.1.2)
Requirement already satisfied: MarkupSafe>=2.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jinja2->otter-grader==5.1.0) (2.1.3)
Requirement already satisfied: toml in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupytext->otter-grader==5.1.0) (0.10.2)
Requirement already satisfied: markdown-it-py>=1.0.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupytext->otter-grader==5.1.0) (3.0.0)
Requirement already satisfied: mdit-py-plugins in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupytext->otter-grader==5.1.0) (0.4.0)
Requirement already satisfied: beautifulsoup4 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (4.12.2)
Requirement already satisfied: bleach!=5.0.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (6.0.0)
Requirement already satisfied: defusedxml in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (0.7.1)
Requirement already satisfied: jupyter-core>=4.7 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (5.3.0)
Requirement already satisfied: jupyterlab-pygments in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (0.2.2)
Requirement already satisfied: mistune<4,>=2.0.3 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (3.0.1)
Requirement already satisfied: nbclient>=0.5.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (0.8.0)
Requirement already satisfied: packaging in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (23.0)
Requirement already satisfied: pandocfilters>=1.4.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (1.5.0)
Requirement already satisfied: tinycss2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbconvert->otter-grader==5.1.0) (1.2.1)
Requirement already satisfied: fastjsonschema in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbformat->otter-grader==5.1.0) (2.18.0)
Requirement already satisfied: jsonschema>=2.6 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbformat->otter-grader==5.1.0) (4.19.0)
Requirement already satisfied: python-dateutil>=2.8.2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pandas->otter-grader==5.1.0) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pandas->otter-grader==5.1.0) (2023.3)
Requirement already satisfied: tzdata>=2022.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pandas->otter-grader==5.1.0) (2023.3)
Requirement already satisfied: numpy>=1.21.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pandas->otter-grader==5.1.0) (1.25.2)
Requirement already satisfied: pydantic!=2.0.*,<3,>=1.5 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from python-on-whales->otter-grader==5.1.0) (2.1.1)
Requirement already satisfied: tqdm in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from python-on-whales->otter-grader==5.1.0) (4.65.0)
Requirement already satisfied: typer>=0.4.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from python-on-whales->otter-grader==5.1.0) (0.9.0)
Requirement already satisfied: typing-extensions in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from python-on-whales->otter-grader==5.1.0) (4.7.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from requests->otter-grader==5.1.0) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from requests->otter-grader==5.1.0) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from requests->otter-grader==5.1.0) (2.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from requests->otter-grader==5.1.0) (2023.7.22)
Requirement already satisfied: webencodings in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from bleach!=5.0.0->nbconvert->otter-grader==5.1.0) (0.5.1)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jedi>=0.16->ipython->otter-grader==5.1.0) (0.8.3)
Requirement already satisfied: attrs>=22.2.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->otter-grader==5.1.0) (23.1.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->otter-grader==5.1.0) (2023.7.1)
Requirement already satisfied: referencing>=0.28.4 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->otter-grader==5.1.0) (0.30.2)
Requirement already satisfied: rpds-py>=0.7.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jsonschema>=2.6->nbformat->otter-grader==5.1.0) (0.9.2)
Requirement already satisfied: platformdirs>=2.5 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupyter-core>=4.7->nbconvert->otter-grader==5.1.0) (2.5.2)
Requirement already satisfied: mdurl~=0.1 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from markdown-it-py>=1.0.0->jupytext->otter-grader==5.1.0) (0.1.2)
Requirement already satisfied: jupyter-client>=6.1.12 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from nbclient>=0.5.0->nbconvert->otter-grader==5.1.0) (8.1.0)
Requirement already satisfied: ptyprocess>=0.5 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pexpect>4.3->ipython->otter-grader==5.1.0) (0.7.0)
Requirement already satisfied: wcwidth in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython->otter-grader==5.1.0) (0.2.5)
Requirement already satisfied: annotated-types>=0.4.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pydantic!=2.0.*,<3,>=1.5->python-on-whales->otter-grader==5.1.0) (0.5.0)
Requirement already satisfied: pydantic-core==2.4.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from pydantic!=2.0.*,<3,>=1.5->python-on-whales->otter-grader==5.1.0) (2.4.0)
Requirement already satisfied: soupsieve>1.2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from beautifulsoup4->nbconvert->otter-grader==5.1.0) (2.4.1)
Requirement already satisfied: sphinxcontrib-applehelp in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.0.5)
Requirement already satisfied: sphinxcontrib-devhelp in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.0.3)
Requirement already satisfied: sphinxcontrib-jsmath in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.0.1)
Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (2.0.2)
Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.1.6)
Requirement already satisfied: sphinxcontrib-qthelp in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.0.4)
Requirement already satisfied: snowballstemmer>=2.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (2.2.0)
Requirement already satisfied: babel>=2.9 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (2.12.1)
Requirement already satisfied: alabaster<0.8,>=0.7 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (0.7.13)
Requirement already satisfied: imagesize>=1.3 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from sphinx->fica>=0.2.0->otter-grader==5.1.0) (1.4.1)
Requirement already satisfied: executing in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from stack-data->ipython->otter-grader==5.1.0) (0.8.3)
Requirement already satisfied: asttokens in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from stack-data->ipython->otter-grader==5.1.0) (2.0.5)
Requirement already satisfied: pure-eval in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from stack-data->ipython->otter-grader==5.1.0) (0.2.2)
Requirement already satisfied: pyzmq>=23.0 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert->otter-grader==5.1.0) (25.1.0)
Requirement already satisfied: tornado>=6.2 in /Users/champollion/miniconda3/envs/otter-env/lib/python3.10/site-packages (from jupyter-client>=6.1.12->nbclient>=0.5.0->nbconvert->otter-grader==5.1.0) (6.3.2)

  Running command git clone --filter=blob:none --quiet https://github.com/chrispyles/otter-grader.git /private/var/folders/ls/2k887vrd70sd0kl477v3c72w0000gq/T/pip-req-build-zru7tztv
  Running command git checkout -b key-error-blank-pdf --track origin/key-error-blank-pdf
  Switched to a new branch 'key-error-blank-pdf'
  Branch 'key-error-blank-pdf' set up to track remote branch 'key-error-blank-pdf' from 'origin'.

(otter-env) champollion@LucasChLate2016 demo_champollion % otter assign demo_champollion.ipynb dist                                        
Generating views...
Traceback (most recent call last):
  File "/Users/champollion/.pyenv/versions/3.8.5/bin/otter", line 6, in <module>
    run_otter()
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/run.py", line 43, in run_otter
    args.func(args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/__init__.py", line 57, in main
    write_output_directories(master, result, assignment, args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/output.py", line 134, in write_output_directories
    write_student_dir(master_nb_path.name, autograder_dir, student_dir, assignment, args)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/output.py", line 103, in write_student_dir
    nb = strip_solutions_and_output(nb)
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/solutions.py", line 112, in strip_solutions_and_output
    cell['source'] = '\n'.join(replace_solutions(get_source(cell)))
  File "/Users/champollion/.pyenv/versions/3.8.5/lib/python3.8/site-packages/otter/assign/solutions.py", line 99, in replace_solutions
    assert not solution, f"BEGIN SOLUTION without END SOLUTION in {lines}"
AssertionError: BEGIN SOLUTION without END SOLUTION in ['# BEGIN SOLUTION']
(otter-env) champollion@LucasChLate2016 demo_champollion % which -a otter
/Users/champollion/miniconda3/envs/otter-env/bin/otter
/Users/champollion/.pyenv/shims/otter
(otter-env) champollion@LucasChLate2016 demo_champollion % conda deactivate                                                                            
(base) champollion@LucasChLate2016 demo_champollion % conda create --name chrisfork python=3.8.10
Retrieving notices: ...working... done
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/champollion/miniconda3/envs/chrisfork

  added / updated specs:
    - python=3.8.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libffi-3.3                 |       hb1e8313_2          44 KB
    openssl-1.1.1v             |       hca72f7f_0         3.3 MB
    pip-23.2.1                 |   py38hecd8cb5_0         2.6 MB
    python-3.8.10              |       h88f2d9e_7        20.9 MB
    setuptools-68.0.0          |   py38hecd8cb5_0         946 KB
    wheel-0.38.4               |   py38hecd8cb5_0          65 KB
    ------------------------------------------------------------
                                           Total:        27.8 MB

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/osx-64::ca-certificates-2023.05.30-hecd8cb5_0 
  libcxx             pkgs/main/osx-64::libcxx-14.0.6-h9765a3e_0 
  libffi             pkgs/main/osx-64::libffi-3.3-hb1e8313_2 
  ncurses            pkgs/main/osx-64::ncurses-6.4-hcec6c5f_0 
  openssl            pkgs/main/osx-64::openssl-1.1.1v-hca72f7f_0 
  pip                pkgs/main/osx-64::pip-23.2.1-py38hecd8cb5_0 
  python             pkgs/main/osx-64::python-3.8.10-h88f2d9e_7 
  readline           pkgs/main/osx-64::readline-8.2-hca72f7f_0 
  setuptools         pkgs/main/osx-64::setuptools-68.0.0-py38hecd8cb5_0 
  sqlite             pkgs/main/osx-64::sqlite-3.41.2-h6c40b1e_0 
  tk                 pkgs/main/osx-64::tk-8.6.12-h5d9f67b_0 
  wheel              pkgs/main/osx-64::wheel-0.38.4-py38hecd8cb5_0 
  xz                 pkgs/main/osx-64::xz-5.4.2-h6c40b1e_0 
  zlib               pkgs/main/osx-64::zlib-1.2.13-h4dc903c_0 


Proceed ([y]/n)? 


Downloading and Extracting Packages
                                                                                                                                                                                                            
Preparing transaction: done                                                                                                                                                                                 
Verifying transaction: done                                                                                                                                                                                 
Executing transaction: done                                                                                                                                                                                 
#                                                                                                                                                                                                           
# To activate this environment, use                                                                                                                                                                         
#
#     $ conda activate chrisfork
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) champollion@LucasChLate2016 demo_champollion % conda activate chrisfork
(chrisfork) champollion@LucasChLate2016 demo_champollion % which otter-grader -a
otter-grader not found
-a not found
(chrisfork) champollion@LucasChLate2016 demo_champollion % which otter -a
/Users/champollion/.pyenv/shims/otter
-a not found
(chrisfork) champollion@LucasChLate2016 demo_champollion % which -a otter
/Users/champollion/.pyenv/shims/otter
(chrisfork) champollion@LucasChLate2016 demo_champollion % pip uninstall otter
WARNING: Skipping otter as it is not installed.
(chrisfork) champollion@LucasChLate2016 demo_champollion % pyenv virtualenvs
pyenv: no such command `virtualenvs'
(chrisfork) champollion@LucasChLate2016 demo_champollion % pyenv uninstall otter-grader
pyenv: version `otter-grader' not installed
(chrisfork) champollion@LucasChLate2016 demo_champollion % pyenv uninstall otter       
pyenv: version `otter' not installed
(chrisfork) champollion@LucasChLate2016 demo_champollion % pip uninstall otter-grader
WARNING: Skipping otter-grader as it is not installed.
(chrisfork) champollion@LucasChLate2016 demo_champollion % otter --version

  _________        __          __               
 /  _____  \    __|  |__    __|  |__               
|  /     \  |  |__    __|  |__    __|   _______    _  _____
| |       | |     |  |        |  |     |  ___  |  | |/ ____|
| |       | |     |  |        |  |     | |___| |  |   /    
| |       | |     |  |        |  |     | ______|  |  |
|  \_____/  |     |  |_       |  |_    | |_____   |  |
 \_________/       \ __|       \ __|    \______|  |__|
                                                v1.1.3


Python version: 3.8.5
Otter-Grader version: 1.1.3

(chrisfork) champollion@LucasChLate2016 demo_champollion % conda uninstall otter
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are missing from the target environment:
  - otter


(chrisfork) champollion@LucasChLate2016 demo_champollion % conda uninstall otter-grader
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are missing from the target environment:
  - otter-grader


(chrisfork) champollion@LucasChLate2016 demo_champollion %   

@champoll
Copy link
Author

champoll commented Aug 9, 2023

I got it to compile (on a pristine system). I'll test the functionality now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants