Features

Uniform Project Layout

PTB expects a default project layout following “convention over configuration” when possible and reasonable. See the cookie-cutter project template for details, which is part of the python-toolbox workspace and can be found in directory project-template. You can also generate a project from the template to explore the default structure. For more details on this, please check out section “getting started” section.

Nox

The most central tool when interacting with the toolbox is nox, which is the task runner used across all of Exasol’s Python-based projects. The toolbox itself provides various standard tasks and a plugin mechanism to extend these tasks if needed. For more information regarding nox, please visit the nox homepage.

Central files in regards to nox and the toolbox are:

  • noxfile.py: Standard nox configuration/setup file

  • noxconfig.py: Exasol-specific file containing additional information needed by the standard tasks of the toolbox

Important Nox Commands

  • nox -l shows a list of all available nox tasks

  • nox -s <tasks> run the specified task(s)
    • nox -s test:typing runs the type checker on the project

    • nox -s docs:clean docs:build docs:open
      1. first task removes the documentation folder

      2. second one builds the documentation

      3. last one opens the documentation in the web browser

  • nox without -s runs the default task which is
    • nox -s project:fix this command runs automated fixes on the code