4

I use poetry to build my package with cython extensions, so install package flag is enabled. I'd like to host documentation via readthedocs. Poetry uses build.py file to generate setup.py with poetry build command. However readthedocs does not support build.py so I provided setup.py with following contents:

from setuptools import setup
from build import *

global setup_kwargs

setup_kwargs = {}

build(setup_kwargs)
setup(**setup_kwargs)

To get rid of requirements.txt file in docs folder, I would like to add extras_require parameter to setup, so the last line in setup.py:

setup(extras_require={'docs': ['toml']}, **setup_kwargs)

Readthedocs calls /<path>/envs/latest/bin/python -m pip install --upgrade --upgrade-strategy eager --no-cache-dir .[docs]

WARNING: does not provide the extra 'docs' and importing toml from docs/conf.py fails

If I add extras to pyproject.toml:

[tool.poetry.extras]
docs = ['toml']

Warning disappears but still rtd fails to import toml.

My .readthedocs.yml:

version: 2

sphinx:
  configuration: docs/conf.py

formats: all

python:
  version: 3.7
  install:
    - method: pip
      path: .
      extra_requirements:
        - docs

submodules:
  include: all
Ivan Mishalkin
  • 1,049
  • 9
  • 25

0 Answers0