Dependencies¶
NC has dependencies in multiple different groups
Mandatory productive
Optional productive (aka. “extras”)
Mandatory dev dependencies
Optional dev dependencies
Mandatory Productive Dependencies¶
These dependencies are mandatory, always installed, and are required for
productive usage of NC, for example exasol-saas-api.
In file pyproject.toml these are in group [project], dependencies.
Optional Productive Dependencies (aka. “extras”)¶
These dependencies are optional, but required for specific productive
scenarios, for example sqlalchemy.
In file pyproject.toml these are in group
[project.optional-dependencies].
Mandatory Dev Dependencies¶
These dependencies are only required during development, for example
pytest. They are installed when using poetry install but not
contained in the package built by this project and published on pypi.
In file pyproject.toml these are in group
[tool.poetry.group.dev.dependencies].
Optional Dev Dependencies¶
These dependencies are only required for specific tasks during development, e.g. when updating performance measurements.
They are installed when using poetry install --with <dep>, see also
Poetry docs.
Currently there is only one such group, called performance. In file
pyproject.toml the group is defined like
[tool.poetry.group.performance]
optional = true
[tool.poetry.group.performance.dependencies]
pytest-benchmark = { version = ">=5.1.0, <6", extras = ["histogram"] }
# end of optional dev dependencies
Pytest Benchmark is used for measuring the performance when accessing the Secure Configuration Storage. It is added as optional dev dependency to avoid interferences as reported in project Pyexasol.
Building Documentation¶
Generating the Sphinx documentation requires the optional dependencies from the productive extras in addition to the development dependencies. Install them with:
poetry install --all-extras
Then build the documentation with:
poetry run nox -s docs:build
Troubleshooting¶
If the documentation build fails because your virtual environment is out of sync, recreate it and rerun the build:
poetry env remove --all
poetry install --all-extras
poetry run nox -s docs:build
If you suspect stale generated HTML output, remove the build directory and run the docs build again:
rm -r .html-documentation
poetry run nox -s docs:build