Skip to content
This repository has been archived by the owner on Sep 26, 2023. It is now read-only.

IPyPublish and Pandoc-Filters #6

Closed
boisgera opened this issue May 28, 2021 · 2 comments
Closed

IPyPublish and Pandoc-Filters #6

boisgera opened this issue May 28, 2021 · 2 comments

Comments

@boisgera
Copy link
Contributor

make in notebooks generates:

Exception occurred:
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/filters_pandoc/prepare_cites.py", line 62, in process_citations
    for subel in initial_content:
TypeError: 'Caption' object is not iterable

Full traceback:

# Sphinx version: 3.5.4
# Python version: 3.9.5 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.0
# Last messages:
#   ipypublish: converting /home/boisgera/tmp/python-numerique/notebooks/0-98-checklist.md
#   ipypublish: successful conversion
#   reading sources... [ 13%] 0-99-consignes-rendus
#   ipypublish: converting /home/boisgera/tmp/python-numerique/notebooks/0-99-consignes-rendus.md
#   ipypublish: successful conversion
#   reading sources... [ 16%] 1-01-environnement
#   ipypublish: converting /home/boisgera/tmp/python-numerique/notebooks/1-01-environnement.md
#   ipypublish: successful conversion
#   reading sources... [ 18%] 1-02-rudiments
#   ipypublish: converting /home/boisgera/tmp/python-numerique/notebooks/1-02-rudiments.md
# Loaded extensions:
#   sphinx.ext.mathjax (3.5.4) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.2) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.2) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (2.0.0) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.5) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.3) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/alabaster/__init__.py
#   ipypublish.sphinx.notebook (0.10.12) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/sphinx/notebook/__init__.py
#   ipypublish.sphinx.gls (0.10.12) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/sphinx/gls/__init__.py
#   sphinxcontrib.bibtex (unknown version) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinxcontrib/bibtex/__init__.py
#   sphinx.ext.todo (3.5.4) from /home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/ext/todo.py
Traceback (most recent call last):
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/cmd/build.py", line 280, in build_main
    app.build(args.force_all, filenames)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/application.py", line 352, in build
    self.builder.build_update()
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 296, in build_update
    self.build(to_build,
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 310, in build
    updated_docnames = set(self.read())
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 417, in read
    self._read_serial(docnames)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 438, in _read_serial
    self.read_doc(docname)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/builders/__init__.py", line 478, in read_doc
    doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/io.py", line 221, in read_doc
    pub.publish()
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/docutils/core.py", line 217, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/sphinx/io.py", line 126, in read
    self.parse()
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/docutils/readers/__init__.py", line 77, in parse
    self.parser.parse(self.input, document)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/sphinx/notebook/parser.py", line 90, in parse
    outdata = publish(filepath)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/convert/main.py", line 354, in __call__
    return self.publish(ipynb_path, nb_node)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/convert/main.py", line 486, in publish
    exporter, stream, resources = self.export_notebook(
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/convert/main.py", line 615, in export_notebook
    body, resources = exporter.from_notebook_node(final_nb)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/nbconvert/exporters/templateexporter.py", line 384, in from_notebook_node
    output = self.template.render(nb=nb_copy, resources=resources)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 474, in top-level template code
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/compatibility/display_priority.tpl", line 1, in top-level template code
    {{ resources.deprecated("This template is deprecated, please use base/display_priority.j2") }}
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/base/display_priority.j2", line 1, in top-level template code
    {%- extends 'base/null.j2' -%}
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/base/null.j2", line 25, in top-level template code
    {%- endblock header -%}
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/base/null.j2", line 28, in block "body"
    {%- endblock body_header -%}
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/base/null.j2", line 30, in block "body_loop"
    {%- for cell in nb.cells -%}
  File "<template>", line 92, in block "any_cell"
  File "/home/boisgera/miniconda3/envs/UE12/share/jupyter/nbconvert/templates/base/null.j2", line 83, in block "any_cell"
    {%- if resources.global_content_filter.include_markdown and not cell.get("transient",{}).get("remove_source", false) -%}
  File "<template>", line 139, in block "markdowncell"
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/filters_pandoc/main.py", line 209, in jinja_filter
    out_str = apply_filter(
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/filters_pandoc/utils.py", line 114, in apply_filter
    out_doc = func(out_doc, **kwargs)  # type: Doc
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/filters_pandoc/prepare_cites.py", line 131, in main
    return pf.run_filter(process_citations, prepare, finalize, doc=doc)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/io.py", line 224, in run_filter
    return run_filters([action], *args, **kwargs)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/io.py", line 205, in run_filters
    doc = doc.walk(action, doc)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/base.py", line 264, in walk
    ans = list(chain.from_iterable(ans))
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/base.py", line 262, in <genexpr>
    ans = ((item,) if type(item) != list else item for item in ans)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/base.py", line 259, in <genexpr>
    ans = (item.walk(action, doc) for item in obj)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/panflute/base.py", line 275, in walk
    altered = action(self, doc)
  File "/home/boisgera/miniconda3/envs/UE12/lib/python3.9/site-packages/ipypublish/filters_pandoc/prepare_cites.py", line 62, in process_citations
    for subel in initial_content:
TypeError: 'Caption' object is not iterable
@boisgera
Copy link
Contributor Author

Found chrisjsewell/ipypublish#147.

Tried with panflute 1.12 and pandoc 2.9 (see supported pandoc versions for panflute here.

Now, it seems to work. Pin down these versions (see also: #5).

@parmentelat
Copy link
Contributor

closing as a leftover of the migration to jupyter-book
see also #3 for more details

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants