Welcome to Nox ============== .. toctree:: :hidden: :maxdepth: 2 tutorial config usage cookbook CONTRIBUTING CHANGELOG ``nox`` is a command-line tool that automates testing in multiple Python environments, similar to `tox`_. Unlike tox, Nox uses a standard Python file for configuration. To install Nox with `pipx`_:: pipx install nox You can also use `pip`_ in your global python:: python3 -m pip install nox Nox is configured via a ``noxfile.py`` file in your project's directory. Here's a simple noxfile that runs lint and some tests:: import nox @nox.session def tests(session): session.install('pytest') session.run('pytest') @nox.session def lint(session): session.install('flake8') session.run('flake8', '--import-order-style', 'google') To run both of these sessions, just run:: nox For each session, Nox will automatically create a `virtualenv`_ with the appropriate interpreter, install the specified dependencies, and run the commands in order. To learn how to install and use Nox, see the :doc:`tutorial`. For documentation on configuring sessions, see :doc:`config`. For documentation on running ``nox``, see :doc:`usage`. .. _tox: https://tox.readthedocs.org .. _pip: https://pip.pypa.io .. _pipx: https://pipx.pypa.io .. _pytest: http://pytest.org .. _virtualenv: https://virtualenv.pypa.io Projects that use Nox --------------------- Nox is lucky to have `over 3,000 `__ wonderful projects that use it and provide feedback and contributions. A few of them are: - `Bézier `__ - `cibuildwheel `__ - `gapic-generator-python `__ - `gdbgui `__ - `Google Assistant SDK `__ - `google-cloud-python `__ - `google-resumable-media-python `__ - `Hydra `__ - `Jupyter `__ - `manylinux `__ - `OmegaConf `__ - `OpenCensus Python `__ - `packaging `__ - `packaging.python.org `__ - `pip `__ - `pipx `__ - `pybind11 `__ - `Salt `__ - `Scikit-build `__ - `Scikit-HEP `__ - `Scientific Python `__ - `Subpar `__ - `Urllib3 `__ - `Zazo `__ Other useful projects --------------------- Nox is not the only tool of its kind. If Nox doesn't quite fit your needs or you want to do more research, we recommend looking at these tools: - `tox `__ is the de-facto standard for managing multiple Python test environments, and is the direct spiritual ancestor to Nox. - `Invoke `__ is a general-purpose task execution library, similar to Make. Nox can be thought of as if Invoke were tailored specifically to Python testing, so Invoke is a great choice for scripts that need to encompass far more than Nox's specialization. - `Hatch `__ A modern, extensible Python project manager using ``pyproject.toml`` configuration and a scripts + environments approach. Maintainers & contributors -------------------------- Nox is free & open-source software and is made possible by community maintainers and contributors. Our maintainers are (in alphabetical order): * `Chris Wilcox `__ * `Claudio Jolowicz `__ * `Danny Hermes `__ * `Diego Ramirez `__ * `Henry Schreiner `__ * `Luke Sneeringer `__ * `Santos Gallegos `__ * `Thea Flowers `__ * `Tom Fleet `__ Nox also exists due to the various patches and work contributed by `the community `__. If you'd like to get involved, see :doc:`CONTRIBUTING`. We pay our contributors using `Open Collective `__.