-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Lodewic
committed
Aug 24, 2023
0 parents
commit f02e0b3
Showing
33 changed files
with
1,192 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
########################## | ||
# KEDRO PROJECT | ||
|
||
# ignore all local configuration | ||
conf/local/** | ||
!conf/local/.gitkeep | ||
|
||
# ignore potentially sensitive credentials files | ||
conf/**/*credentials* | ||
|
||
# ignore everything in the following folders | ||
data/** | ||
|
||
# except their sub-folders | ||
!data/**/ | ||
|
||
# also keep all .gitkeep files | ||
!.gitkeep | ||
|
||
# also keep the example dataset | ||
!data/01_raw/*.csv | ||
|
||
|
||
########################## | ||
# Common files | ||
|
||
# IntelliJ | ||
.idea/ | ||
*.iml | ||
out/ | ||
.idea_modules/ | ||
|
||
### macOS | ||
*.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
.Trashes | ||
|
||
# Vim | ||
*~ | ||
.*.swo | ||
.*.swp | ||
|
||
# emacs | ||
*~ | ||
\#*\# | ||
/.emacs.desktop | ||
/.emacs.desktop.lock | ||
*.elc | ||
|
||
# JIRA plugin | ||
atlassian-ide-plugin.xml | ||
|
||
# C extensions | ||
*.so | ||
|
||
### Python template | ||
# Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
|
||
# Distribution / packaging | ||
.Python | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
wheels/ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
MANIFEST | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*.cover | ||
.hypothesis/ | ||
|
||
# Translations | ||
*.mo | ||
*.pot | ||
|
||
# Django stuff: | ||
*.log | ||
.static_storage/ | ||
.media/ | ||
local_settings.py | ||
|
||
# Flask stuff: | ||
instance/ | ||
.webassets-cache | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
target/ | ||
|
||
# Jupyter Notebook | ||
.ipynb_checkpoints | ||
|
||
# pyenv | ||
.python-version | ||
|
||
# celery beat schedule file | ||
celerybeat-schedule | ||
|
||
# SageMath parsed files | ||
*.sage.py | ||
|
||
# Environments | ||
.env | ||
.envrc | ||
.venv | ||
env/ | ||
venv/ | ||
ENV/ | ||
env.bak/ | ||
venv.bak/ | ||
|
||
# mkdocs documentation | ||
/site | ||
|
||
# mypy | ||
.mypy_cache/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# kedro-dynamic-pipeline-hook-example | ||
|
||
## Overview | ||
|
||
This is your new Kedro project, which was generated using `Kedro 0.18.12`. | ||
|
||
Take a look at the [Kedro documentation](https://kedro.readthedocs.io) to get started. | ||
|
||
## Rules and guidelines | ||
|
||
In order to get the best out of the template: | ||
|
||
* Don't remove any lines from the `.gitignore` file we provide | ||
* Make sure your results can be reproduced by following a [data engineering convention](https://kedro.readthedocs.io/en/stable/faq/faq.html#what-is-data-engineering-convention) | ||
* Don't commit data to your repository | ||
* Don't commit any credentials or your local configuration to your repository. Keep all your credentials and local configuration in `conf/local/` | ||
|
||
## How to install dependencies | ||
|
||
Declare any dependencies in `src/requirements.txt` for `pip` installation and `src/environment.yml` for `conda` installation. | ||
|
||
To install them, run: | ||
|
||
``` | ||
pip install -r src/requirements.txt | ||
``` | ||
|
||
## How to run your Kedro pipeline | ||
|
||
You can run your Kedro project with: | ||
|
||
``` | ||
kedro run | ||
``` | ||
|
||
## How to test your Kedro project | ||
|
||
Have a look at the file `src/tests/test_run.py` for instructions on how to write your tests. You can run your tests as follows: | ||
|
||
``` | ||
kedro test | ||
``` | ||
|
||
To configure the coverage threshold, go to the `.coveragerc` file. | ||
|
||
## Project dependencies | ||
|
||
To generate or update the dependency requirements for your project: | ||
|
||
``` | ||
kedro build-reqs | ||
``` | ||
|
||
This will `pip-compile` the contents of `src/requirements.txt` into a new file `src/requirements.lock`. You can see the output of the resolution by opening `src/requirements.lock`. | ||
|
||
After this, if you'd like to update your project requirements, please update `src/requirements.txt` and re-run `kedro build-reqs`. | ||
|
||
[Further information about project dependencies](https://kedro.readthedocs.io/en/stable/kedro_project_setup/dependencies.html#project-specific-dependencies) | ||
|
||
## How to work with Kedro and notebooks | ||
|
||
> Note: Using `kedro jupyter` or `kedro ipython` to run your notebook provides these variables in scope: `catalog`, `context`, `pipelines` and `session`. | ||
> | ||
> Jupyter, JupyterLab, and IPython are already included in the project requirements by default, so once you have run `pip install -r src/requirements.txt` you will not need to take any extra steps before you use them. | ||
### Jupyter | ||
To use Jupyter notebooks in your Kedro project, you need to install Jupyter: | ||
|
||
``` | ||
pip install jupyter | ||
``` | ||
|
||
After installing Jupyter, you can start a local notebook server: | ||
|
||
``` | ||
kedro jupyter notebook | ||
``` | ||
|
||
### JupyterLab | ||
To use JupyterLab, you need to install it: | ||
|
||
``` | ||
pip install jupyterlab | ||
``` | ||
|
||
You can also start JupyterLab: | ||
|
||
``` | ||
kedro jupyter lab | ||
``` | ||
|
||
### IPython | ||
And if you want to run an IPython session: | ||
|
||
``` | ||
kedro ipython | ||
``` | ||
|
||
### How to convert notebook cells to nodes in a Kedro project | ||
You can move notebook code over into a Kedro project structure using a mixture of [cell tagging](https://jupyter-notebook.readthedocs.io/en/stable/changelog.html#release-5-0-0) and Kedro CLI commands. | ||
|
||
By adding the `node` tag to a cell and running the command below, the cell's source code will be copied over to a Python file within `src/<package_name>/nodes/`: | ||
|
||
``` | ||
kedro jupyter convert <filepath_to_my_notebook> | ||
``` | ||
> *Note:* The name of the Python file matches the name of the original notebook. | ||
Alternatively, you may want to transform all your notebooks in one go. Run the following command to convert all notebook files found in the project root directory and under any of its sub-folders: | ||
|
||
``` | ||
kedro jupyter convert --all | ||
``` | ||
|
||
### How to ignore notebook output cells in `git` | ||
To automatically strip out all output cell contents before committing to `git`, you can run `kedro activate-nbstripout`. This will add a hook in `.git/config` which will run `nbstripout` before anything is committed to `git`. | ||
|
||
> *Note:* Your output cells will be retained locally. | ||
## Package your Kedro project | ||
|
||
[Further information about building project documentation and packaging your project](https://kedro.readthedocs.io/en/stable/tutorial/package_a_project.html) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# What is this for? | ||
|
||
This folder should be used to store configuration files used by Kedro or by separate tools. | ||
|
||
This file can be used to provide users with instructions for how to reproduce local configuration with their own credentials. You can edit the file however you like, but you may wish to retain the information below and add your own section in the [Instructions](#Instructions) section. | ||
|
||
## Local configuration | ||
|
||
The `local` folder should be used for configuration that is either user-specific (e.g. IDE configuration) or protected (e.g. security keys). | ||
|
||
> *Note:* Please do not check in any local configuration to version control. | ||
## Base configuration | ||
|
||
The `base` folder is for shared configuration, such as non-sensitive and project-related configuration that may be shared across team members. | ||
|
||
WARNING: Please do not put access credentials in the base configuration folder. | ||
|
||
## Instructions | ||
|
||
|
||
|
||
|
||
|
||
## Find out more | ||
You can find out more about configuration from the [user guide documentation](https://kedro.readthedocs.io/en/stable/user_guide/configuration.html). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Here you can define all your data sets by using simple YAML syntax. | ||
# | ||
# Documentation for this file format can be found in "The Data Catalog" | ||
# Link: https://kedro.readthedocs.io/en/stable/data/data_catalog.html | ||
# | ||
# We support interacting with a variety of data stores including local file systems, cloud, network and HDFS | ||
# | ||
# An example data set definition can look as follows: | ||
# | ||
#bikes: | ||
# type: pandas.CSVDataSet | ||
# filepath: "data/01_raw/bikes.csv" | ||
# | ||
#weather: | ||
# type: spark.SparkDataSet | ||
# filepath: s3a://your_bucket/data/01_raw/weather* | ||
# file_format: csv | ||
# credentials: dev_s3 | ||
# load_args: | ||
# header: True | ||
# inferSchema: True | ||
# save_args: | ||
# sep: '|' | ||
# header: True | ||
# | ||
#scooters: | ||
# type: pandas.SQLTableDataSet | ||
# credentials: scooters_credentials | ||
# table_name: scooters | ||
# load_args: | ||
# index_col: ['name'] | ||
# columns: ['name', 'gear'] | ||
# save_args: | ||
# if_exists: 'replace' | ||
# # if_exists: 'fail' | ||
# # if_exists: 'append' | ||
# | ||
# The Data Catalog supports being able to reference the same file using two different DataSet implementations | ||
# (transcoding), templating and a way to reuse arguments that are frequently repeated. See more here: | ||
# https://kedro.readthedocs.io/en/stable/data/data_catalog.html | ||
# | ||
# This is a data set used by the "Hello World" example pipeline provided with the project | ||
# template. Please feel free to remove it once you remove the example pipeline. | ||
|
||
example_iris_data: | ||
type: pandas.CSVDataSet | ||
filepath: data/01_raw/iris.csv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
version: 1 | ||
|
||
disable_existing_loggers: False | ||
|
||
formatters: | ||
simple: | ||
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" | ||
|
||
handlers: | ||
console: | ||
class: logging.StreamHandler | ||
level: INFO | ||
formatter: simple | ||
stream: ext://sys.stdout | ||
|
||
info_file_handler: | ||
class: logging.handlers.RotatingFileHandler | ||
level: INFO | ||
formatter: simple | ||
filename: info.log | ||
maxBytes: 10485760 # 10MB | ||
backupCount: 20 | ||
encoding: utf8 | ||
delay: True | ||
|
||
rich: | ||
class: kedro.logging.RichHandler | ||
rich_tracebacks: True | ||
# Advance options for customisation. | ||
# See https://docs.kedro.org/en/stable/logging/logging.html#project-side-logging-configuration | ||
# tracebacks_show_locals: False | ||
|
||
loggers: | ||
kedro: | ||
level: INFO | ||
|
||
kedro_dynamic_pipeline_hook_example: | ||
level: INFO | ||
|
||
root: | ||
handlers: [rich, info_file_handler] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
train_fraction: 0.8 | ||
random_state: 3 | ||
target_column: species |
Empty file.
Empty file.
Oops, something went wrong.