AWS Data Wranglerのv1.8.1のドキュメントが削除されていたので自分でビルドしてみた

2022.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

CX事業本部の夏目です。

AWS Data Wrangler(現AWS SDK for pandas)の1.8.1を案件で使用しているのですが、今日確認したらドキュメントが削除されていました。

最新のバージョンにアップデートするにもドキュメントを確認できないと困るので、自分でビルドしてみることにした。

ビルドしてみる

環境

  • Ubuntu 22.04.1 LTS
  • Python 3.7.13

Steps

まず全体を記述する。

$ git clone https://github.com/aws/aws-sdk-pandas.git
$ cd aws-sdk-pandas
$ git checkout 1.8.1
$ python -m venv .venv
$ source .venv/bin/activate
$ echo “setuptools<58” >> requirements-dev.txt
$ echo “jinja2==3.0.3” >> requirements-dev.txt
$ ./requirements.sh
$ cd docs
$ make html

特筆すべきは6行目と7行目。

6行目は sphinx_bootstrap_themeをインストールするため。 setuptoolsがv58以上だとuse_2to3がなくなるからインストールに失敗する。

  × Running setup.py install for sphinx_bootstrap_theme did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      error in sphinx-bootstrap-theme setup command: use_2to3 is invalid.
      [end of output]

7行目はドキュメントの生成時にエラーが出てしまうため。

Traceback (most recent call last):
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/bin/sphinx-build", line 5, in <module>
    from sphinx.cmd.build import main
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/sphinx/cmd/build.py", line 25, in <module>
    from sphinx.application import Sphinx
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/sphinx/application.py", line 42, in <module>
    from sphinx.registry import SphinxComponentRegistry
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/sphinx/registry.py", line 24, in <module>
    from sphinx.builders import Builder
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 26, in <module>
    from sphinx.util import import_object, logging, rst, progress_message, status_iterator
  File "/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/sphinx/util/rst.py", line 22, in <module>
    from jinja2 import environmentfilter
ImportError: cannot import name 'environmentfilter' from 'jinja2' (/home/yuta/workspace/tmp/002/a/aws-sdk-pandas/.venv/lib/python3.7/site-packages/jinja2/__init__.py)
make: *** [Makefile:20: html] Error 1

This happens with jinja2>=3.1.0, but if you step it down to jinja2==3.0.3 the docs build. https://bytemeta.vip/repo/executablebooks/meta/issues/720

jinja2のバージョンを固定することでとりあえずは問題がでなくなるので、固定する。

成果物

Makefileがあるディレクトリに buildというディレクトリが生成される。

build
├── doctrees
│  ├── api.doctree
│  ├── environment.pickle
│  ├── index.doctree
│  ├── install.doctree
│  ├── stubs
│  └── what.doctree
└── html
   ├── _sources
   ├── _static
   ├── api.html
   ├── genindex.html
   ├── index.html
   ├── install.html
   ├── objects.inv
   ├── search.html
   ├── searchindex.js
   ├── stubs
   └── what.html

htmlの中のファイルをどこかにホスティングすればドキュメントを見ることができるようになります。