I saw "qc relies on Pandoc for converting between file formats, so make sure that is installed as well." in the documentation, but that implied to me that I only needed it to convert between file formats. I was surprised when I tried to import a text file into a project that I got an unhandled Python error
/Users/christina/Desktop/qc_project % qc corpus import ../untitled.txt
/bin/sh: pandoc: command not found
Traceback (most recent call last):
File "/Users/christina/.local/bin/qc", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/qualitative_coding/cli/decorators.py", line 14, in command
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/qualitative_coding/cli/corpus/import_media.py", line 23, in import_media
corpus.import_media(
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/qualitative_coding/corpus.py", line 464, in import_media
imp.import_media(source, dest_path)
File "/Users/christina/.local/pipx/venvs/qualitative-coding/lib/python3.11/site-packages/qualitative_coding/media_importers/pandoc.py", line 7, in import_media
run(cmd, shell=True, check=True)
File "/opt/anaconda3/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'pandoc -i "../untitled.txt" -o "/Users/christina/Desktop/qc_project/corpus/untitled.txt" --to plain --columns 80' returned non-zero exit status 127.
So two suggestions:
Just state pandoc as a required dependency and make it clear as a required installation step.
Do some checking for pandoc before it's used and provide a more helpful error message if it's not found.
I saw "qc relies on Pandoc for converting between file formats, so make sure that is installed as well." in the documentation, but that implied to me that I only needed it to convert between file formats. I was surprised when I tried to import a text file into a project that I got an unhandled Python error
So two suggestions:
re: https://github.com/openjournals/joss-reviews/issues/7031