Skip to content

Commit

Permalink
Add documentation about pyproject.toml (#2427)
Browse files Browse the repository at this point in the history
* first draft pyproject.toml

Signed-off-by: Ankita Katiyar <ankitakatiyar2401@gmail.com>

* Update docs/source/kedro_project_setup/settings.md

Co-authored-by: Juan Luis Cano Rodríguez <juan_cano@mckinsey.com>

* Apply suggestions from code review

Co-authored-by: Jo Stichbury <jo_stichbury@mckinsey.com>

* lint + fix rtd build

Signed-off-by: Ankita Katiyar <ankitakatiyar2401@gmail.com>

* Fix linting errors introduced by merge from FAQ changes

Signed-off-by: Jo Stichbury <jo_stichbury@mckinsey.com>

---------

Signed-off-by: Ankita Katiyar <ankitakatiyar2401@gmail.com>
Signed-off-by: Jo Stichbury <jo_stichbury@mckinsey.com>
Co-authored-by: Juan Luis Cano Rodríguez <juan_cano@mckinsey.com>
Co-authored-by: Jo Stichbury <jo_stichbury@mckinsey.com>
  • Loading branch information
3 people committed Mar 22, 2023
1 parent c42b9cd commit 471153d
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion docs/source/kedro_project_setup/settings.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Project settings

## Application settings

A Kedro project's `settings.py` file contains the application settings for the project, including registration of Hooks and library components. This page explains how settings work, and which settings are available.

```{note}
Application settings is distinct from [run time configuration](configuration.md), which is stored in the `conf` folder and can vary by configuration environment, and according to the contents of `pyproject.toml`, which provides project metadata such as `package_name`, `project_name` and `project_version` (the version of Kedro with which the project was generated).
Application settings is distinct from [run time configuration](configuration.md), which is stored in the `conf` folder and can vary by configuration environment, and [pyproject.toml](#project-metadata) , which provides project metadata and build configuration.
```

By default, all code in `settings.py` is commented out. When settings are not supplied, Kedro chooses sensible default values. You only need to edit `settings.py` if you wish to change to values other than the defaults.
Expand All @@ -19,3 +21,22 @@ By default, all code in `settings.py` is commented out. When settings are not su
| `CONFIG_LOADER_CLASS` | `kedro.config.ConfigLoader` | Customise how project configuration is handled. |
| `CONFIG_LOADER_ARGS` | `dict()` | Keyword arguments for the `CONFIG_LOADER_CLASS` constructor. |
| `DATA_CATALOG_CLASS` | `kedro.io.DataCatalog` | Customise how the [Data Catalog](../data/data_catalog.md) is handled. |

## Project metadata
The `pyproject.toml` file is the standard way to store build metadata and tool settings for Python projects.
Every Kedro project comes with a default pre-populated `pyproject.toml` file in your project root directory with the following keys specified under the `[tool.kedro]` section:

```toml
[tool.kedro]
package_name = package_name
project_name = project_name
kedro_init_version = kedro_version
```

The `package_name` should be a [valid Python package name](https://peps.python.org/pep-0423/) and the `project_name` should be a human-readable name. They are both mandatory keys for your project.
`kedro_init_version` specifies the version of Kedro the project was created with. When you upgrade to a newer Kedro version,
this value should also be updated.

You can also use `pyproject.toml` to specify settings for functionalities such as [micro-packaging](../nodes_and_pipelines/micro_packaging.md).
You can also store the settings for the other tools you've used in your project, such as [`pytest` for automated testing](../development/automated_testing.md).
Consult the respective documentation for the tools you have used to check how you can configure the settings with the `pyproject.toml` file for your project.

0 comments on commit 471153d

Please sign in to comment.