pyproject.toml - Poetry configuration
See https://python-poetry.org/docs/dependency-specification/ to get an understanding of how poetry specifies dependencies.
Project metadata
[tool.poetry]
name = "bookserver"
version = "1.1.14"
description = "A new Runestone Server Framework"
authors = ["Brad Miller <bonelake@mac.com>", "Bryan A. Jones <bjones AT ece DOT msstate DOT edu"]
license = "MIT"
readme = "README.rst"
documentation = "https://bookserver.readthedocs.io/en/latest/"
include = ["deployment/*"]
Dependencies
Per the uvicorn docs, install the standard (as opposed to minimal) uvicorn dependencies.
See the poetry docs.
asyncpg v. 0.25 has a bug. Stay at v. 0.24 until it’s fixed.
Development dependencies
Needed for the --install-types --non-interactive
flags – see the mypy release notes.
See https://python-poetry.org/docs/dependency-specification/#path-dependencies. After some testing, Poetry v.1.1.6 allows both runestone
to be specified in the dependencies as a PyPI package and here in the dev dependencies as a local install, and will prefer the local install here. The local install is necessary, since the tests aren’t in the PyPI Runestone Components package.
This is a Runestone Components dependency that’s needed when testing PostgreSQL.
This is used by VSCode for Python refactoring
Scripts
See scripts.
Poetry backend
pytest configuration
Ignore source code produced by Sphinx. This happens because the source text for literate programming pages is a source file. Use short tracebacks since the default longer tracebacks produce too much noise.
The pytest-env plugin sets these environment variables. Set them here, before imports, since bookserver imports read from the environment variables.
The default logging level of INFO produces a LOT of output. Use a higher level of WARNING
to reduce the noise.
All async tests use the pytest-asyncio framework.