From ebf3d6438c03115a591ca34ad28405fc9711d23e Mon Sep 17 00:00:00 2001 From: Jo Stichbury Date: Wed, 23 Nov 2022 21:49:46 +0000 Subject: [PATCH] Improve get started docs and guide to working with notebooks (#2031) * Revised the Introduction to make it short and sweet. * Revised the Get Started section. Gone is "Hello Kedro". Gone are the installation pre-requisites (that's just part of the Install Kedro page now). Gone is the "Standalone use of the data catalog - woot woot" and GONE is the page on Kedro starters. * Reordered the create project material to put the project structure breakdown in the section that introduces key concepts and shorten the Iris tutorial to the bare minimum. I did add visualisation at this point though, to highlight Kedro Viz, as I felt it was coming far too late in the spaceflights tutorial and needed to be more prominent as a feature. * Added a TL;DR page to Get Started which some people could probably just use as-is and ignore the rest of the section. * Starters material has moved into a new section all about "Kedro project setup". Much of that section still needs review/revision but I have updated the Starters page so it reads more clearly. * Improved the Kedro-Viz page somewhat (still more to come for Plotly) * Notebooks/IPython materials now merged and simplified --- README.md | 20 +- docs/build-docs.sh | 4 +- .../contribution/backwards_compatibility.md | 4 +- .../contribution/contribute_to_kedro.md | 2 +- .../developer_contributor_guidelines.md | 8 +- .../documentation_contributor_guidelines.md | 3 +- .../technical_steering_committee.md | 13 +- docs/source/data/data_catalog.md | 2 +- docs/source/deployment/airflow_astronomer.md | 2 +- docs/source/deployment/aws_batch.md | 2 +- docs/source/deployment/dask.md | 2 +- docs/source/deployment/databricks.md | 2 +- docs/source/deployment/deployment_guide.md | 2 +- docs/source/deployment/distributed.md | 2 +- docs/source/development/commands_reference.md | 2 +- docs/source/development/set_up_pycharm.md | 6 +- docs/source/extend_kedro/common_use_cases.md | 2 +- docs/source/extend_kedro/plugins.md | 2 +- docs/source/faq/architecture_overview.md | 2 +- docs/source/faq/faq.md | 19 +- docs/source/get_started/example_project.md | 127 -------- docs/source/get_started/hello_kedro.md | 124 -------- docs/source/get_started/install.md | 85 +++++- docs/source/get_started/kedro_concepts.md | 97 ++++++ docs/source/get_started/new_project.md | 119 ++++++-- docs/source/get_started/prerequisites.md | 51 ---- .../standalone_use_of_datacatalog.md | 66 ---- docs/source/get_started/starters.md | 89 ------ docs/source/get_started/summary.md | 33 ++ docs/source/index.rst | 24 +- docs/source/introduction/introduction.md | 19 +- .../kedro_project_setup/dependencies.md | 8 +- .../starters.md} | 88 +++++- .../meta/images/jupyter_new_notebook.png | Bin 10219 -> 159314 bytes .../meta/images/pipeline_visualisation.png | Bin 65114 -> 125256 bytes .../pipeline_visualisation_tutorial.png | Bin 0 -> 65114 bytes .../kedro_and_notebooks.md | 288 ++++++++++++++++++ .../kedro_as_a_data_registry.md | 45 +++ docs/source/resources/glossary.md | 8 +- docs/source/tools_integration/ipython.md | 266 ---------------- docs/source/tutorial/add_another_pipeline.md | 21 -- docs/source/tutorial/set_up_data.md | 2 +- docs/source/tutorial/spaceflights_tutorial.md | 9 +- docs/source/tutorial/tutorial_template.md | 6 +- .../visualisation/kedro-viz_visualisation.md | 54 ++-- 45 files changed, 850 insertions(+), 880 deletions(-) delete mode 100644 docs/source/get_started/example_project.md delete mode 100644 docs/source/get_started/hello_kedro.md create mode 100644 docs/source/get_started/kedro_concepts.md delete mode 100644 docs/source/get_started/prerequisites.md delete mode 100644 docs/source/get_started/standalone_use_of_datacatalog.md delete mode 100644 docs/source/get_started/starters.md create mode 100644 docs/source/get_started/summary.md rename docs/source/{extend_kedro/create_kedro_starters.md => kedro_project_setup/starters.md} (57%) create mode 100644 docs/source/meta/images/pipeline_visualisation_tutorial.png create mode 100644 docs/source/notebooks_and_ipython/kedro_and_notebooks.md create mode 100644 docs/source/notebooks_and_ipython/kedro_as_a_data_registry.md delete mode 100644 docs/source/tools_integration/ipython.md diff --git a/README.md b/README.md index 72a866adea..8c73ce1680 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,13 @@ ## What is Kedro? -Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). +Kedro is an open-source Python framework to create reproducible, maintainable, and modular data science code. It uses software engineering best practices to help you build production-ready data engineering and data science pipelines. + +Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). ## How do I install Kedro? -To install Kedro from the Python Package Index (PyPI) simply run: +To install Kedro from the Python Package Index (PyPI) run: ``` pip install kedro @@ -28,7 +30,7 @@ It is also possible to install Kedro using `conda`: conda install -c conda-forge kedro ``` -Our [Get Started guide](https://kedro.readthedocs.io/en/stable/get_started/prerequisites.html) contains full installation instructions, and includes how to set up Python virtual environments. +Our [Get Started guide](https://kedro.readthedocs.io/en/stable/get_started/install.html) contains full installation instructions, and includes how to set up Python virtual environments. ## What are the main features of Kedro? @@ -48,10 +50,14 @@ Our [Get Started guide](https://kedro.readthedocs.io/en/stable/get_started/prere ## How do I use Kedro? -The [Kedro documentation](https://kedro.readthedocs.io/en/stable/) includes three examples to help get you started: -- A typical "Hello World" example, for an [entry-level description of the main Kedro concepts](https://kedro.readthedocs.io/en/stable/get_started/hello_kedro.html) -- An [introduction to the project template](https://kedro.readthedocs.io/en/stable/get_started/example_project.html) using the Iris dataset -- A more detailed [spaceflights tutorial](https://kedro.readthedocs.io/en/stable/tutorial/tutorial_template.html) to give you hands-on experience +The [Kedro documentation](https://kedro.readthedocs.io/en/stable/) first explains [how to install Kedro](https://kedro.readthedocs.io/en/stable/get_started/install.html) and then introduces [key Kedro concepts](https://kedro.readthedocs.io/en/stable/get_started/kedro_concepts.html). + +- The first example illustrates the [basics of a Kedro project](https://kedro.readthedocs.io/en/stable/get_started/new_project.html) using the Iris dataset +- You can then review the [spaceflights tutorial](https://kedro.readthedocs.io/en/stable/tutorial/tutorial_template.html) to build a Kedro project for hands-on experience + +For new and intermediate Kedro users, there's a comprehensive section on [how to visualise Kedro projects using Kedro-Viz](https://kedro.readthedocs.io/en/stable/visualisation/kedro-viz_visualisation.html) and [how to work with Kedro and Jupyter notebooks](https://kedro.readthedocs.io/en/stable/notebooks_and_ipython/kedro_and_notebooks). + +Further documentation is available for more advanced Kedro usage and deployment. We also recommend the [glossary](https://kedro.readthedocs.io/en/stable/resources/glossary.html) and the [API reference documentation](/kedro) for additional information. ## Why does Kedro exist? diff --git a/docs/build-docs.sh b/docs/build-docs.sh index b506018fab..3bfa098013 100755 --- a/docs/build-docs.sh +++ b/docs/build-docs.sh @@ -17,9 +17,9 @@ mkdir docs/build/ cp -r docs/_templates docs/conf.py docs/*.svg docs/*.json docs/build/ if [ "$action" == "linkcheck" ]; then - sphinx-build -c docs/ -WETan -j auto -D language=en -b linkcheck docs/build/ docs/build/html + sphinx-build -c docs/ -ETan -j auto -D language=en -b linkcheck docs/build/ docs/build/html elif [ "$action" == "docs" ]; then - sphinx-build -c docs/ -WETa -j auto -D language=en docs/build/ docs/build/html + sphinx-build -c docs/ -ETa -j auto -D language=en docs/build/ docs/build/html fi # Clean up build artefacts diff --git a/docs/source/contribution/backwards_compatibility.md b/docs/source/contribution/backwards_compatibility.md index cb16c09836..142cf929d2 100644 --- a/docs/source/contribution/backwards_compatibility.md +++ b/docs/source/contribution/backwards_compatibility.md @@ -12,7 +12,7 @@ Your change is **not** considered a breaking change, and so is backwards compati We aim to minimise the number of breaking changes to keep Kedro software stable and reduce the overhead for users as they migrate their projects. However, there are cases where a breaking change brings considerable value or increases the maintainability of the codebase. In these cases, breaking backwards compatibility can make sense. -Before you contribute a breaking change, you should create a [Github Issue](https://github.com/kedro-org/kedro/issues) that describes the change and justifies the value gained by breaking backwards compatibility. +Before you contribute a breaking change, you should create a [GitHub Issue](https://github.com/kedro-org/kedro/issues) that describes the change and justifies the value gained by breaking backwards compatibility. ## The Kedro release model @@ -22,4 +22,4 @@ All breaking changes go into `develop`, from which a major release can be deploy ![Kedro Gitflow Diagram](../meta/images/kedro_gitflow.svg) -Please check the Q&A on [GitHub discussions](https://github.com/kedro-org/kedro/discussions) and ask any new questions about the development process there too! +Got a question about the development process? Ask the community on [Slack](https://slack.kedro.org) if you need to! diff --git a/docs/source/contribution/contribute_to_kedro.md b/docs/source/contribution/contribute_to_kedro.md index 480214778a..ac46f45128 100644 --- a/docs/source/contribution/contribute_to_kedro.md +++ b/docs/source/contribution/contribute_to_kedro.md @@ -5,7 +5,7 @@ We welcome any and all contributions to Kedro, at whatever level you can manage. - Join the community on [Slack](https://slack.kedro.org) - Review Kedro's [GitHub isusses](https://github.com/kedro-org/kedro/issues) or raise your own issue to report a bug or feature request - Start a conversation about the Kedro project on [GitHub discussions](https://github.com/kedro-org/kedro/discussions) -- Make a pull request on the [Kedro-Community Github repo](https://github.com/kedro-org/kedro-community) to update the curated list of Kedro community content. +- Make a pull request on the [Kedro-Community GitHub repo](https://github.com/kedro-org/kedro-community) to update the curated list of Kedro community content. - Report a bug or propose a new feature on [GitHub issues](https://github.com/kedro-org/kedro/issues) - [Review other contributors' PRs](https://github.com/kedro-org/kedro/pulls) - [Contribute code](./developer_contributor_guidelines.md), for example to fix a bug or add a feature diff --git a/docs/source/contribution/developer_contributor_guidelines.md b/docs/source/contribution/developer_contributor_guidelines.md index a0c9141628..6e7f9787c9 100644 --- a/docs/source/contribution/developer_contributor_guidelines.md +++ b/docs/source/contribution/developer_contributor_guidelines.md @@ -26,14 +26,14 @@ To work on the Kedro codebase, you will need to be set up with Git, and Make. If your development environment is Windows, you can use the `win_setup_conda` and `win_setup_env` commands from [Circle CI configuration](https://github.com/kedro-org/kedro/blob/main/.circleci/config.yml) to guide you in the correct way to do this. ``` -You will also need to create and activate virtual environment. If this is unfamiliar to you, read through our [pre-requisites documentation](../get_started/prerequisites.md). +You will also need to create and activate virtual environment. If this is unfamiliar to you, read through our [pre-requisites documentation](../get_started/install.md#installation-prerequisites). -Next, you'll need to fork the [Kedro source code from the Github repository](https://github.com/kedro-org/kedro): +Next, you'll need to fork the [Kedro source code from the GitHub repository](https://github.com/kedro-org/kedro): * Fork the project by clicking **Fork** in the top-right corner of the [Kedro GitHub repository](https://github.com/kedro-org/kedro) * Choose your target account -If you need further guidance, consult the [Github documentation about forking a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository). +If you need further guidance, consult the [GitHub documentation about forking a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository). You are almost ready to go. In your terminal, navigate to the folder into which you forked the Kedro code. @@ -194,4 +194,4 @@ Working on your first pull request? You can learn how from these resources: * [First timers only](https://www.firsttimersonly.com/) * [How to contribute to an open source project on GitHub](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github) -Please check the Q&A on [GitHub discussions](https://github.com/kedro-org/kedro/discussions) and ask any new questions about the development process there too! +Previous Q&A on [GitHub discussions](https://github.com/kedro-org/kedro/discussions) and our [searchable archive of Discord discussions](https://linen-discord.kedro.org). You can ask new questions about the development process on [Slack](https://slack.kedro.org) too! diff --git a/docs/source/contribution/documentation_contributor_guidelines.md b/docs/source/contribution/documentation_contributor_guidelines.md index dad9c29916..a98800ddc6 100644 --- a/docs/source/contribution/documentation_contributor_guidelines.md +++ b/docs/source/contribution/documentation_contributor_guidelines.md @@ -127,7 +127,8 @@ Do not pass "Go", do not collect £200. * You will need to use restructured text formatting within the box. Aim to keep the formatting of the callout text plain, although you can include bold, italic, code and links. * Keep the amount of text (and the number of callouts used) to a minimum. -* Prefer to use `note`, `warning` and `important` only, rather than a number of different colours/types of callout. +* Prefer to use `note`, `warning` and `important` only, rather than a larger range of callout. + * Use `note` for notable information * Use `warning` to indicate a potential `gotcha` * Use `important` when highlighting a key point that cannot be ignored diff --git a/docs/source/contribution/technical_steering_committee.md b/docs/source/contribution/technical_steering_committee.md index 1b80c5e6dc..780e7c63a6 100644 --- a/docs/source/contribution/technical_steering_committee.md +++ b/docs/source/contribution/technical_steering_committee.md @@ -21,11 +21,10 @@ In this section, we detail: - Make sure that ongoing pull requests are moving forward at the right pace or closing them - Guide the community to use the right channel: - - [Github](https://github.com/kedro-org/kedro/) for feature requests and bug reports - - [GitHub discussions](https://github.com/kedro-org/kedro/discussions) to discuss - the Kedro project - - [Slack](https://slack.kedro.org/) - for questions and to support other users + + - [GitHub issues](https://github.com/kedro-org/kedro/issues) for feature requests and bug reports + - [GitHub discussions](https://github.com/kedro-org/kedro/discussions) to discuss the future of the Kedro project + - [Slack](https://slack.kedro.org) for questions and to support other users ## Requirements to become a maintainer @@ -52,11 +51,11 @@ and the `kedro-team` channel on the Kedro Slack organisation. ## Voting process -Voting can change project maintainers and decide on the future of Kedro. The TSC leads it as voting maintainers of Kedro. The voting period is one week and is either performed on GitHub Discussions or through a pull request. +Voting can change project maintainers and decide on the future of Kedro. The TSC leads it as voting maintainers of Kedro. The voting period is one week and is either performed on GitHub discussions or through a pull request. ### Other issues or proposals -Open Github Discussions host votes on issues, proposals and changes affecting the future of Kedro, including amendments to our ways of working described in this document. These votes require **a 1/2 majority**. +GitHub discussions is used to host votes on issues, proposals and changes affecting the future of Kedro, including amendments to our ways of working described on this page. These votes require **a 1/2 majority**. ### Adding or removing maintainers diff --git a/docs/source/data/data_catalog.md b/docs/source/data/data_catalog.md index 63d9ac5735..35cfd1170b 100644 --- a/docs/source/data/data_catalog.md +++ b/docs/source/data/data_catalog.md @@ -535,7 +535,7 @@ The code API allows you to: ### Configure a Data Catalog -In a file like `catalog.py`, you can construct a `DataCatalog` object programmatically. In the following, we are using a number of pre-built data loaders documented in the [API reference documentation](/kedro.extras.datasets). +In a file like `catalog.py`, you can construct a `DataCatalog` object programmatically. In the following, we are using several pre-built data loaders documented in the [API reference documentation](/kedro.extras.datasets). ```python from kedro.io import DataCatalog diff --git a/docs/source/deployment/airflow_astronomer.md b/docs/source/deployment/airflow_astronomer.md index 1dbdefc435..69e5c9acc1 100644 --- a/docs/source/deployment/airflow_astronomer.md +++ b/docs/source/deployment/airflow_astronomer.md @@ -2,7 +2,7 @@ This tutorial explains how to deploy a Kedro project on [Apache Airflow](https://airflow.apache.org/) with [Astronomer](https://www.astronomer.io/). Apache Airflow is an extremely popular open-source workflow management platform. Workflows in Airflow are modelled and organised as [DAGs](https://en.wikipedia.org/wiki/Directed_acyclic_graph), making it a suitable engine to orchestrate and execute a pipeline authored with Kedro. [Astronomer](https://docs.astronomer.io/astro/install-cli) is a managed Airflow platform which allows users to spin up and run an Airflow cluster easily in production. Additionally, it also provides a set of tools to help users get started with Airflow locally in the easiest way possible. -The following discusses how to run the [example Iris classification pipeline](../get_started/example_project.md) on a local Airflow cluster with Astronomer. +The following discusses how to run the [example Iris classification pipeline](../get_started/new_project.md#create-the-example-project) on a local Airflow cluster with Astronomer. ## Strategy diff --git a/docs/source/deployment/aws_batch.md b/docs/source/deployment/aws_batch.md index fa583537b7..cc4a5a6b2f 100644 --- a/docs/source/deployment/aws_batch.md +++ b/docs/source/deployment/aws_batch.md @@ -3,7 +3,7 @@ ## Why would you use AWS Batch? [AWS Batch](https://aws.amazon.com/batch/) is optimised for batch computing and applications that scale with the number of jobs running in parallel. It manages job execution and compute resources, and dynamically provisions the optimal quantity and type. AWS Batch can assist with planning, scheduling, and executing your batch computing workloads, using [Amazon EC2](https://aws.amazon.com/ec2/) On-Demand and [Spot Instances](https://aws.amazon.com/ec2/spot/), and it has native integration with [CloudWatch](https://aws.amazon.com/cloudwatch/) for log collection. -AWS Batch helps you run massively parallel Kedro pipelines in a cost-effective way, and allows you to parallelise the pipeline execution across a number of compute instances. Each Batch job is run in an isolated Docker container environment. +AWS Batch helps you run massively parallel Kedro pipelines in a cost-effective way, and allows you to parallelise the pipeline execution across multiple compute instances. Each Batch job is run in an isolated Docker container environment. The following sections are a guide on how to deploy a Kedro project to AWS Batch, and uses the [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) as primary example. The guide assumes that you have already completed the tutorial, and that the project was created with the project name **Kedro Tutorial**. diff --git a/docs/source/deployment/dask.md b/docs/source/deployment/dask.md index 756c86c431..44b7e3ab3c 100644 --- a/docs/source/deployment/dask.md +++ b/docs/source/deployment/dask.md @@ -10,7 +10,7 @@ Dask offers both a default, single-machine scheduler and a more sophisticated, d ## Prerequisites -The only additional requirement, beyond what was already required by your Kedro pipeline, is to [install `dask.distributed`](http://distributed.dask.org/en/stable/install.html). To review the full installation instructions, including how to set up Python virtual environments, see our [Get Started guide](../get_started/prerequisites.md). +The only additional requirement, beyond what was already required by your Kedro pipeline, is to [install `dask.distributed`](http://distributed.dask.org/en/stable/install.html). To review the full installation instructions, including how to set up Python virtual environments, see our [Get Started guide](../get_started/install.md#installation-prerequisites). ## How to distribute your Kedro pipeline using Dask diff --git a/docs/source/deployment/databricks.md b/docs/source/deployment/databricks.md index e9b5e407e6..712bc54704 100644 --- a/docs/source/deployment/databricks.md +++ b/docs/source/deployment/databricks.md @@ -234,7 +234,7 @@ You can interact with Kedro in Databricks through the Kedro [IPython extension]( The Kedro IPython extension launches a [Kedro session](../kedro_project_setup/session.md) and makes available the useful Kedro variables `catalog`, `context`, `pipelines` and `session`. It also provides the `%reload_kedro` [line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) that reloads these variables (for example, if you need to update `catalog` following changes to your Data Catalog). -The IPython extension can be used in a Databricks notebook in a similar way to how it is used in [Jupyter notebooks](../tools_integration/ipython.md). +The IPython extension can be used in a Databricks notebook in a similar way to how it is used in [Jupyter notebooks](../notebooks_and_ipython/kedro_and_notebooks.md). If you encounter a `ContextualVersionConflictError`, it is likely caused by Databricks using an old version of `pip`. Hence there's one additional step you need to do in the Databricks notebook to make use of the IPython extension. After you load the IPython extension using the below command: diff --git a/docs/source/deployment/deployment_guide.md b/docs/source/deployment/deployment_guide.md index 93b3b94a2b..e940df8d46 100644 --- a/docs/source/deployment/deployment_guide.md +++ b/docs/source/deployment/deployment_guide.md @@ -2,7 +2,7 @@ ## Deployment choices -Your choice of deployment method will depend on a number of factors. In this section we provide a number of guides for different approaches. +Your choice of deployment method will depend on various factors. In this section we provide guides for different approaches. If you decide to deploy your Kedro project on a single machine, you should consult our [guide to single-machine deployment](single_machine.md), and decide whether to [use Docker for container-based deployment](./single_machine.md#container-based) or to use [package-based deployment](./single_machine.md#package-based) or to [use the CLI to clone and deploy](./single_machine.md#cli-based) your codebase to a server. diff --git a/docs/source/deployment/distributed.md b/docs/source/deployment/distributed.md index dea927a099..ed1caec087 100644 --- a/docs/source/deployment/distributed.md +++ b/docs/source/deployment/distributed.md @@ -40,4 +40,4 @@ We encourage you to play with different ways of parameterising your runs as you ## 4. (Optional) Create starters -This is an optional step, but it may speed up your work in the long term. If you find yourself having to deploy in a similar environment or to a similar platform fairly often, you may want to [build your own Kedro starter](../get_started/starters.md). That way you will be able to re-use any deployment scripts written as part of step 2. +This is an optional step, but it may speed up your work in the long term. If you find yourself having to deploy in a similar environment or to a similar platform fairly often, you may want to [build your own Kedro starter](../kedro_project_setup/starters.md). That way you will be able to re-use any deployment scripts written as part of step 2. diff --git a/docs/source/development/commands_reference.md b/docs/source/development/commands_reference.md index 441aeb2562..679b0d16e0 100644 --- a/docs/source/development/commands_reference.md +++ b/docs/source/development/commands_reference.md @@ -506,7 +506,7 @@ To start an IPython shell: kedro ipython ``` -The [Kedro IPython extension](../tools_integration/ipython.md) will make the following variables available in your IPython or Jupyter session: +The [Kedro IPython extension](../notebooks_and_ipython/kedro_and_notebooks.md#a-custom-kedro-kernel) makes the following variables available in your IPython or Jupyter session: * `catalog` (type `DataCatalog`): [Data Catalog](../data/data_catalog.md) instance that contains all defined datasets; this is a shortcut for `context.catalog` * `context` (type `KedroContext`): Kedro project context that provides access to Kedro's library components diff --git a/docs/source/development/set_up_pycharm.md b/docs/source/development/set_up_pycharm.md index 3d851c807e..bcd41769f1 100644 --- a/docs/source/development/set_up_pycharm.md +++ b/docs/source/development/set_up_pycharm.md @@ -153,9 +153,11 @@ You can configure Pycharm's IPython to load Kedro's Extension. Click **PyCharm | Preferences** for macOS or **File | Settings**, inside **Build, Execution, Deployment** and **Console**, enter the **Python Console** configuration. -You can append the configuration necessary to use Kedro IPython to the **Starting script** as described in the [IPython configuring documentation](../tools_integration/ipython.md). +You can append the configuration necessary to use Kedro IPython to the **Starting script**: -![](../meta/images/pycharm_ipython_starting_script.png) +``` +%load_ext kedro.ipython +``` With this configuration, when you create a Python Console you should be able to use context, session and catalog. diff --git a/docs/source/extend_kedro/common_use_cases.md b/docs/source/extend_kedro/common_use_cases.md index 248782ee50..44c4cd9878 100644 --- a/docs/source/extend_kedro/common_use_cases.md +++ b/docs/source/extend_kedro/common_use_cases.md @@ -39,4 +39,4 @@ Your plugin's implementation can take advantage of other extension mechanisms su ## Use Case 4: How to customise the initial boilerplate of your project -Sometimes you might want to tailor the starting boilerplate of a Kedro project to your specific needs. For example, your organisation might have a standard CI script that you want to include in every new Kedro project. To this end, please visit our [guide to create Kedro starters](./create_kedro_starters.md) to solve this extension requirement. +Sometimes you might want to tailor the starting boilerplate of a Kedro project to your specific needs. For example, your organisation might have a standard CI script that you want to include in every new Kedro project. To this end, please visit the [guide for creating Kedro starters](../kedro_project_setup/starters.md#how-to-create-a-kedro-starter) to solve this extension requirement. diff --git a/docs/source/extend_kedro/plugins.md b/docs/source/extend_kedro/plugins.md index 287cf4859a..9ea7a59837 100644 --- a/docs/source/extend_kedro/plugins.md +++ b/docs/source/extend_kedro/plugins.md @@ -44,7 +44,7 @@ kedro to_json ``` ## Extend starter aliases -It is possible to extend the list of starter aliases built into Kedro. This means that a [custom Kedro starter](create_kedro_starters.md) can be used directly through the `starter` argument in `kedro new` rather than needing to explicitly provide the `template` and `directory` arguments. A custom starter alias behaves in the same way as an official Kedro starter alias and is also picked up by `kedro starter list`. +It is possible to extend the list of starter aliases built into Kedro. This means that a [custom Kedro starter](../kedro_project_setup/starters.md#how-to-create-a-kedro-starter) can be used directly through the `starter` argument in `kedro new` rather than needing to explicitly provide the `template` and `directory` arguments. A custom starter alias behaves in the same way as an official Kedro starter alias and is also picked up by `kedro starter list`. You need to extend the starters by providing a list of `KedroStarterSpec`, in this example it is defined in a file called `plugin.py`. diff --git a/docs/source/faq/architecture_overview.md b/docs/source/faq/architecture_overview.md index 0e4263ebf2..6a24bef2f9 100644 --- a/docs/source/faq/architecture_overview.md +++ b/docs/source/faq/architecture_overview.md @@ -21,7 +21,7 @@ As a data pipeline developer, you will interact with a Kedro project, which cons ## Kedro starter -You can use a [Kedro starter](../get_started/starters.md) to generate a Kedro project that contains boilerplate code. We maintain a set of [official starters](https://github.com/kedro-org/kedro-starters/) but you can also use a custom starter of your choice. +You can use a [Kedro starter](../kedro_project_setup/starters.md) to generate a Kedro project that contains boilerplate code. We maintain a set of [official starters](https://github.com/kedro-org/kedro-starters/) but you can also use a custom starter of your choice. ## Kedro library diff --git a/docs/source/faq/faq.md b/docs/source/faq/faq.md index 75d7936a80..358ed9d690 100644 --- a/docs/source/faq/faq.md +++ b/docs/source/faq/faq.md @@ -1,13 +1,12 @@ # Frequently asked questions -The following lists a set of questions that we have been asked about Kedro in the past. If you have a different -question which isn't answered here, check out the [searchable archive from our retired Discord server](https://linen-discord.kedro.org) or post a new query on the [Slack organisation](https://slack.kedro.org/). +The following lists a set of questions that we have been asked about Kedro in the past. If you have a different question which isn't answered here, check out the [searchable archive of Discord discussions](https://linen-discord.kedro.org/)(https://linen-discord.kedro.org) or post a new query on the [Slack organisation](https://slack.kedro.org). ## What is Kedro? Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). -For the source code, take a look at the [Kedro repository on Github](https://github.com/kedro-org/kedro). +For the source code, take a look at the [Kedro repository on GitHub](https://github.com/kedro-org/kedro). ## What are the primary advantages of Kedro? @@ -107,6 +106,16 @@ The data layers don’t have to exist locally in the `data` folder within your p | Model output | Analytics specific data model(s) containing the results generated by the model based on the `model input` data | | Reporting | Reporting data model(s) that are used to combine a set of `primary`, `feature`, `model input` and `model output` data used to drive the dashboard and the views constructed. It encapsulates and removes the need to define any blending or joining of data, improve performance and replacement of presentation layer without having to redefine the data models | +## What best practice should I follow to avoid leaking confidential data? + +* Do not commit data to version control. +* Do not commit notebook output cells (data can easily sneak into notebooks when you don't delete output cells). +* Do not commit credentials in `conf/`. Use only the `conf/local/` folder for sensitive information like access credentials. + +```{note} +By default any file inside the `conf/` folder (and its subfolders) that contains `credentials` in its name will be ignored via `.gitignore`. +``` + ## How do I upgrade Kedro? We use [Semantic Versioning](https://semver.org/). The best way to safely upgrade is to check our [release notes](https://github.com/kedro-org/kedro/blob/main/RELEASE.md) for any notable breaking changes. Follow the steps in the migration guide included for that specific release. @@ -150,7 +159,7 @@ pip install kedro There are a host of articles, podcasts, talks and Kedro showcase projects in the [`kedro-community`](https://github.com/kedro-org/kedro-community) repository. -Our preferred Kedro-community channel for feedback is through [GitHub issues](https://github.com/kedro-org/kedro/issues). We update the codebase regularly; you can find news about updates and features in the [RELEASE.md file on the Github repository](https://github.com/kedro-org/kedro/blob/develop/RELEASE.md). +Our preferred channel for feedback is through [GitHub issues](https://github.com/kedro-org/kedro/issues). We update the codebase regularly; you can find news about updates and features in the [RELEASE.md file on the GitHub repository](https://github.com/kedro-org/kedro/blob/develop/RELEASE.md). ## Who maintains Kedro? @@ -263,4 +272,4 @@ exit ## How can I get my question answered? -If your question isn't answered above, talk to the community on the [Kedro Slack channels](https://slack.kedro.org/). +If your question isn't answered above, talk to the community on the [Kedro Slack organisation](https://slack.kedro.org). diff --git a/docs/source/get_started/example_project.md b/docs/source/get_started/example_project.md deleted file mode 100644 index 6d9b75e831..0000000000 --- a/docs/source/get_started/example_project.md +++ /dev/null @@ -1,127 +0,0 @@ -# Iris dataset example project - -In this chapter, we describe the directory structure of a typical Kedro project. We will use an example based on the familiar [Iris dataset](https://www.kaggle.com/uciml/iris). - -The dataset was generated in 1936 by the British statistician and biologist Ronald Fisher. The dataset contains 150 samples in total, comprising 50 samples of 3 different species of Iris plant (Iris Setosa, Iris Versicolour and Iris Virginica). For each sample, the flower measurements are recorded for the sepal length, sepal width, petal length and petal width: - -![](../meta/images/iris_measurements.png) - -A machine learning model can use the Iris dataset to illustrate classification (a method used to determine the type of an object by comparison with similar objects previously been categorised). Once trained on known data, the machine learning model can make a predictive classification by comparing a test object to the output of its training data. - -## Create the example project - -You must first [create a project](./new_project.md). Feel free to name your project as you like, but here we will assume the project's name is `Get started`. - -```bash -kedro new --starter=pandas-iris -``` - -### Project directory structure - -This example project illustrates a convenient starting point and some best practices. The project follows the default Kedro project template and uses folders to store datasets, notebooks, configuration and source code. When you create your own projects, you can adapt the folder structure if you need to. - -The example project directory is set out as follows: - -``` -get-started # Parent directory of the template -├── conf # Project configuration files -├── data # Local project data (not committed to version control) -├── docs # Project documentation -├── logs # Project output logs (not committed to version control) -├── notebooks # Project related Jupyter notebooks (can be used for experimental code before moving the code to src) -├── README.md # Project README -├── setup.cfg # Configuration options for `pytest` when doing `kedro test` and for the `isort` utility when doing `kedro lint` -└── src # Project source code -``` - -Kedro also creates the following hidden files and folders: - -``` -get-started -├── .coveragerc # Configuration file for the coverage reporting when doing `kedro test` -├── .gitignore # Prevent staging of unnecessary files to `git` -└── pyproject.toml # Identifies the project root and [contains configuration information](../faq/architecture_overview.md#kedro-project) -``` - -#### `conf/` - -The `conf` folder contains two subfolders for storing configuration information: `base` and `local`. - -##### `conf/base/` - -For project-specific settings to share across different installations (for example, with different users), you should use the `base` subfolder of `conf`. - -The folder contains three files for the example, but you can add others as you require: - -- `catalog.yml` - [Configures the Data Catalog](../data/data_catalog.md#use-the-data-catalog-within-kedro-configuration) with the file paths and load/save configuration required for different datasets -- `logging.yml` - Uses Python's default [`logging`](https://docs.python.org/3/library/logging.html) library to set up logging -- `parameters.yml` - Allows you to define parameters for machine learning experiments e.g. train / test split and number of iterations - -##### `conf/local/` - -The `local` subfolder of `conf` is used for **settings that should not be shared**, such as access credentials, custom editor configuration, personal IDE configuration and other sensitive or personal content. It is specific to user and installation. The contents of `conf/local/` is ignored by `git` (through inclusion in `.gitignore`). By default, Kedro creates one file, `credentials.yml`, in `conf/local`. - -#### `data` - -The `data` folder contains a number of subfolders to store project data. We recommend that you put raw data into `raw` and move processed data to other subfolders according to [data engineering convention](../faq/faq.md#what-is-data-engineering-convention). - -The example project has a single file, `iris.csv`, that contains the Iris dataset. The subfolders of `data` are ignored by `git` through inclusion in `.gitignore` since data is more frequently stored elsewhere, such as in an S3 bucket. However, if you are familiar with [`.gitignore`](https://docs.github.com/en/github/using-git/ignoring-files) you can edit it, if you are confident that you need to manage your data in `git`. - -#### `src` - -This subfolder contains the project's source code. The `src` folder contains two subfolders: - -- `get_started/` This is the Python package for your project -- `tests/` The subfolder for unit tests for your project. Projects are preconfigured to run tests using `pytest` when you call `kedro test` from the project's root directory - -### What best practice should I follow to avoid leaking confidential data? - -* Do not commit data to version control. -* Do not commit notebook output cells (data can easily sneak into notebooks when you don't delete output cells). -* Do not commit credentials in `conf/`. Use only the `conf/local/` folder for sensitive information like access credentials. - -```{note} -By default any file inside the `conf/` folder (and its subfolders) that contains `credentials` in its name will be ignored via `.gitignore`. -``` - - -## Run the example project - -Once you have created the project, to run project-specific Kedro commands, you must navigate to the directory in which it has been created. - -Call `pip install -r src/requirements.txt` to install the project's dependencies. Next, call `kedro run`: - -```bash -cd getting-started -pip install -r src/requirements.txt -kedro run -``` - -When the command completes, you should see a log message similar to the following in your console: - -``` -[08/09/22 11:23:30] INFO Model has accuracy of 0.933 on test data. nodes.py:74 - INFO Saving data to 'metrics' (MetricsDataSet)... data_catalog.py:382 - INFO Completed 3 out of 3 tasks sequential_runner.py:85 - INFO Pipeline execution completed successfully. runner.py:89 -``` - -## Under the hood: Pipelines and nodes - -The example project contains a single pipeline: - -- The pipeline (`src/get_started/pipeline.py`) is responsible for splitting the data into training and testing samples, running the 1-nearest neighbour algorithm to make predictions and accuracy-reporting. - - -**Nodes in Pipeline** - -These are the node function within `src/get_started/nodes.py`: - -| Node | Description | Node function name | -| --------------- | ------------------------------------------------------------------------------------------------ | ------------------ | -| Split data | Splits the example [Iris dataset](https://www.kaggle.com/uciml/iris) into train and test samples | `split_data` | -| Make Predictions| Makes class predictions using 1-nearest neighbour classifier and train-test set | `make_predictions` | -| Report accuracy | Reports the accuracy of the predictions performed by the previous node | `report_accuracy` | - - -The file `src/get_started/pipeline_registry.py` creates and collates into a single pipeline, resolving node execution order from the input and output data dependencies between the nodes. diff --git a/docs/source/get_started/hello_kedro.md b/docs/source/get_started/hello_kedro.md deleted file mode 100644 index b8e4c874b4..0000000000 --- a/docs/source/get_started/hello_kedro.md +++ /dev/null @@ -1,124 +0,0 @@ -# A "Hello World" example - -It is time to introduce the most basic elements of Kedro. We have split a small example into sections to discuss each of the concepts with code. - -You can copy the example as one chunk of code from the bottom of this page. - -```{note} -We do not create a Kedro project in this first example, but illustrate the concepts within a single `.py` file. -``` - -## Node - -A `node` is a Kedro concept. It is a wrapper for a Python function that names the inputs and outputs of that function. It is the building block of a pipeline. Nodes can be linked when the output of one node is the input of another. - -Here, the `return_greeting` function is wrapped by a node called `return_greeting_node`, which has no inputs, and names a single output (`my_salutation`): - -```python -from kedro.pipeline import node - - -# Prepare first node -def return_greeting(): - return "Hello" - - -return_greeting_node = node(func=return_greeting, inputs=None, outputs="my_salutation") -``` - -The `join_statements` function is wrapped by a node called `join_statements_node`, which names a single input (`my_salutation`) and a single output (`my_message`): - -```python -# Prepare second node -def join_statements(greeting): - return f"{greeting} Kedro!" - - -join_statements_node = node( - join_statements, inputs="my_salutation", outputs="my_message" -) -``` - -Note that `my_salutation` is the output of `return_greeting_node` and also the input of `join_statements_node`. - -## Pipeline - -A pipeline organises the dependencies and execution order of a collection of nodes, and connects inputs and outputs while keeping your code modular. The pipeline determines the node execution order by resolving dependencies and does *not* necessarily run the nodes in the order in which they are passed in. - -In this example the pipeline executes `return_greeting_node` before it executes `join_statements_node`: - -```python -from kedro.pipeline import pipeline - -# Assemble nodes into a pipeline -greeting_pipeline = pipeline([return_greeting_node, join_statements_node]) -``` - -## DataCatalog - -A `DataCatalog` is a Kedro concept. It is the registry of all data sources that the project can use. It maps the names of node inputs and outputs as keys in a `DataSet`, which is a Kedro class that can be specialised for different types of data storage. Kedro uses a `MemoryDataSet` for data that is simply stored in-memory. - -```python -from kedro.io import DataCatalog, MemoryDataSet - -# Prepare a data catalog -data_catalog = DataCatalog({"my_salutation": MemoryDataSet()}) -``` - -Kedro provides a [number of different built-in datasets](/kedro.extras.datasets) for different file types and file systems so you don’t have to write the logic for reading/writing data. - -## Runner - -The Runner is an object that runs the pipeline. Kedro resolves the order in which the nodes are executed: - -1. Kedro first executes `return_greeting_node`. This runs `return_greeting`, which takes no input but outputs the string "Hello". -2. The output string is stored in the `MemoryDataSet` named `my_salutation`. -3. Kedro then executes the second node, `join_statements_node`. This loads the `my_salutation` dataset and injects it into the `join_statements` function. -4. The function joins the input salutation with "Kedro!" to form the output string "Hello Kedro!" -5. The output of the pipeline is returned in a dictionary with key `my_message`. - -## Hello Kedro! - -It's now time to stitch the code together. Here is the full example: - -```python -"""Contents of hello_kedro.py""" -from kedro.io import DataCatalog, MemoryDataSet -from kedro.pipeline import node, pipeline -from kedro.runner import SequentialRunner - -# Prepare a data catalog -data_catalog = DataCatalog({"my_salutation": MemoryDataSet()}) - -# Prepare first node -def return_greeting(): - return "Hello" - - -return_greeting_node = node(return_greeting, inputs=None, outputs="my_salutation") - -# Prepare second node -def join_statements(greeting): - return f"{greeting} Kedro!" - - -join_statements_node = node( - join_statements, inputs="my_salutation", outputs="my_message" -) - -# Assemble nodes into a pipeline -greeting_pipeline = pipeline([return_greeting_node, join_statements_node]) - -# Create a runner to run the pipeline -runner = SequentialRunner() - -# Run the pipeline -print(runner.run(greeting_pipeline, data_catalog)) -``` -Then open a terminal and run the following command: - -```bash -python hello_kedro.py -``` - -You should see `{'my_message': 'Hello Kedro!'}` printed to the console. diff --git a/docs/source/get_started/install.md b/docs/source/get_started/install.md index 385d75bc24..247f4bbae3 100644 --- a/docs/source/get_started/install.md +++ b/docs/source/get_started/install.md @@ -1,18 +1,89 @@ # Install Kedro -To install Kedro from the Python Package Index (PyPI), simply run: +If you encounter any problems as you install Kedro, you can ask for help on Kedro's [Slack organisation](https://slack.kedro.org) or [search the archives for a solution](https://linen-discord.kedro.org). + + +## Installation prerequisites + +### Python +Kedro supports macOS, Linux, and Windows and is built for Python 3.7+. + +To confirm that a valid version of Python is installed, type the following in your terminal (macOS and Linux): ```bash -pip install kedro +python3 --version +``` +On Windows, type the following into the command prompt: + +```bash +python --version +``` + +You should see the version of Python installed on your machine: + +```bash +Python 3.8.13 +``` + +If you see an error message or need to install a later version of Python, you can download it from the [official Python website](https://www.python.org/downloads/). + +### `git` +You will need to install `git` onto your machine if you do not already have it. To check if it is installed: + +```bash +git -v +``` + +You should see the version of `git` available or an error message if it is not installed. You can download it from the official [`git`](https://git-scm.com/) website. + +### Virtual environment manager +We suggest you create a new Python virtual environment for *each* new Kedro project you work on to isolate its dependencies from those of other projects. We strongly recommend [installing `conda`](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) if you don't already use it. + +``` {note} +[Read more about Python virtual environments](https://realpython.com/python-virtual-environments-a-primer/) or [watch an explainer video about them](https://youtu.be/YKfAwIItO7M). +``` + +Depending on your preferred Python installation, you can alternatively create virtual environments to work with Kedro using `venv` or `pipenv` instead of `conda`, as described in the [FAQ](../faq/faq.md) + +#### Create a new Python virtual environment using `conda` + +To create a new virtual environment called `kedro-environment` using `conda`: + +```bash +conda create --name kedro-environment python=3.10 -y +``` + +In this example, we use Python 3.10, but you can opt for a different version if you need it for your particular project. + +To activate the new environment: + +```bash +conda activate kedro-environment ``` ```{note} -It is also possible to install Kedro using `conda install -c conda-forge kedro` but we recommend you use `pip` at this point to eliminate any potential dependency issues: +The `conda` virtual environment is not dependent on your current working directory and can be activated from any directory. +``` + +To exit `kedro-environment`: + +```bash +conda deactivate ``` -Both `pip` and `conda` install the core Kedro module, which includes the CLI tool, project template, pipeline abstraction, framework, and support for configuration. +## Install Kedro using `pip` or `conda` + +To install Kedro from the Python Package Index (PyPI): + +```bash +pip install kedro +``` + +```{note} +It is also possible to install Kedro using `conda install -c conda-forge kedro`, but we recommend you use `pip` at this point to eliminate any potential dependency issues: +``` -## Verify a successful installation +### Verify a successful installation To check that Kedro is installed: @@ -24,8 +95,8 @@ You should see an ASCII art graphic and the Kedro version number: for example, ![](../meta/images/kedro_graphic.png) -If you do not see the graphic displayed, or have any issues with your installation, see the [frequently asked questions](../faq/faq.md), check out the [searchable archive from our retired Discord server](https://linen-discord.kedro.org) or post a new query on the [Slack organisation](https://slack.kedro.org/). +If you do not see the graphic displayed, or have any issues with your installation, see the [frequently asked questions](../faq/faq.md), check out the [searchable archive from our retired Discord server](https://linen-discord.kedro.org), or post a new query on the [Slack organisation](https://slack.kedro.org). ## Install a development version -To try out a development version of Kedro direct from the [Kedro Github repository](https://github.com/kedro-org/kedro), follow [these steps](../faq/faq.md#how-can-i-use-a-development-version-of-kedro). +To try out a development version of Kedro direct from the [Kedro GitHub repository](https://github.com/kedro-org/kedro), follow [these steps](../faq/faq.md#how-can-i-use-a-development-version-of-kedro). diff --git a/docs/source/get_started/kedro_concepts.md b/docs/source/get_started/kedro_concepts.md new file mode 100644 index 0000000000..dd01b24723 --- /dev/null +++ b/docs/source/get_started/kedro_concepts.md @@ -0,0 +1,97 @@ +# Kedro concepts + +It is time to introduce the most basic elements of Kedro. You can find further information about these and more advanced Kedro concepts in the [Kedro glossary](../resources/glossary.md). +## Node + +In Kedro, a node is a wrapper for a [pure Python function](../resources/glossary.md#node) that names the inputs and outputs of that function. Nodes are the building block of a pipeline, and the output of one node can be the input of another. + +Here are two simple nodes as an example: + +```python +from kedro.pipeline import node + +# First node +def return_greeting(): + return "Hello" + + +return_greeting_node = node(func=return_greeting, inputs=None, outputs="my_salutation") + +# Second node +def join_statements(greeting): + return f"{greeting} Kedro!" + + +join_statements_node = node( + join_statements, inputs="my_salutation", outputs="my_message" +) +``` + +## Pipeline + +A pipeline organises the dependencies and execution order of a collection of nodes and connects inputs and outputs while keeping your code modular. The pipeline determines the **node execution order** by resolving dependencies and does *not* necessarily run the nodes in the order in which they are passed in. + +Here is a pipeline comprised of the nodes shown above: + +```python +from kedro.pipeline import pipeline + +# Assemble nodes into a pipeline +greeting_pipeline = pipeline([return_greeting_node, join_statements_node]) +``` + +## Data Catalog + +The Kedro Data Catalog is the registry of all data sources that the project can use to manage loading and saving data. It maps the names of node inputs and outputs as keys in a `DataCatalog`, a Kedro class that can be specialised for different types of data storage. + +[Kedro provides numerous different built-in datasets](/kedro.extras.datasets) for various file types and file systems, so you don’t have to write the logic for reading/writing data. + +## Kedro project directory structure + +Kedro projects follow a default template that uses specific folders to store datasets, notebooks, configuration and source code. We advise you to retain the structure to make it easy to share your projects with other Kedro users, but you can adapt the folder structure if you need to. + +A standard Kedro project structure is as follows: + +``` +project-dir # Parent directory of the template +├── .gitignore # Hidden file that prevents staging of unnecessary files to `git` +├── conf # Project configuration files +├── data # Local project data (not committed to version control) +├── docs # Project documentation +├── logs # Project output logs (not committed to version control) +├── notebooks # Project-related Jupyter notebooks (can be used for experimental code before moving the code to src) +├── pyproject.toml # Identifies the project root and [contains configuration information](../faq/architecture_overview.md#kedro-project) +├── README.md # Project README +├── setup.cfg # Configuration options for `pytest` when doing `kedro test` and for the `isort` utility when doing `kedro lint` +└── src # Project source code +``` + +### `conf` + +The `conf` folder contains two subfolders for storing configuration information: `base` and `local`. + +#### `conf/base` + +Use the `base` subfolder for project-specific settings to share across different installations (for example, with other users). + +The folder contains three files for the example, but you can add others as you require: + +- `catalog.yml` - [Configures the Data Catalog](../data/data_catalog.md#use-the-data-catalog-within-kedro-configuration) with the file paths and load/save configuration needed for different datasets +- `logging.yml` - Uses Python's default [`logging`](https://docs.python.org/3/library/logging.html) library to set up logging +- `parameters.yml` - Allows you to define parameters for machine learning experiments, for example, train/test split and the number of iterations + +#### `conf/local` + +The `local` subfolder is specific to each user and installation and its contents is ignored by `git` (through inclusion in `.gitignore`). + +Use the `local` subfolder for **settings that should not be shared**, such as access credentials, custom editor configuration, personal IDE configuration and other sensitive or personal content. + +By default, Kedro creates one file, `credentials.yml`, in `conf/local`. + +### `data` + +The `data` folder contains multiple subfolders to store project data. We recommend you put raw data into `raw` and move processed data to other subfolders according to the [data engineering convention](../faq/faq.md#what-is-data-engineering-convention). + +### `src` + +This subfolder contains the project's source code in one subfolder and another folder that you can use to add unit tests for your project. Projects are preconfigured to run tests using `pytest` when you call `kedro test` from the project's root directory. diff --git a/docs/source/get_started/new_project.md b/docs/source/get_started/new_project.md index 9487db3679..d5d6faac96 100644 --- a/docs/source/get_started/new_project.md +++ b/docs/source/get_started/new_project.md @@ -1,31 +1,33 @@ -# Create a new project +# Create a new Kedro project -Once you have [installed Kedro](./install.md), to create a new, empty project, you can answer a series of questions, or use settings recorded in a configuration file. +There are a few ways to create a new project once you have [installed Kedro](install.md). For example, you can create a basic Kedro project set up with the project directories and basic code, but empty to extend as you need. Alternatively, you can create a Kedro project populated with template code that acts as a starter example. -If you want to create a Kedro project that is populated with some template or example code, you can specify the `--starter` flag to use Kedro starters. Read the guide to [creating new projects with Kedro Starters](./starters.md) for more information. +## Create a new empty project -## Create a new project interactively - -Create a new project in your current working directory: +The simplest way to create a default Kedro project is to navigate to your preferred directory and type: ```bash kedro new ``` -You will be asked to enter the `project_name`. The `project_name` must be at least two characters long, and only contain alphanumeric symbols, spaces, underscores and hyphens. The `project_name` is used to automatically generate the `repo_name` and `python_package`. +You will be asked to enter a name for your project, which can be human-readable and may contain alphanumeric symbols, spaces, underscores and hyphens. It must be at least two characters long. + +Your choice is set as the value of `project_name` and is used to generate the `repo_name` and `python_package` automatically. + +So, if you enter "Get Started", the directory name for the project (`repo_name`) is automatically set to be `get-started`, and the Python package name (`python_package`) for your project is set to be `get_started`. -| Option | Example | Description | -| ---------------- | ------------- | ------------------------------------------------------------------------- | -| `project_name` | `Get Started` | A human-readable name for your new project | -| `repo_name` | `get-started` | Directory that holds your project repository | -| `python_package` | `get_started` | A name for the Python package name in your project (short, all-lowercase) | +| Description | Setting | Example | +| --------------------------------------------------------------- | ---------------- | ------------- | +| A human-readable name for your new project | `project_name` | `Get Started` | +| Local directory to store your project | `repo_name` | `get-started` | +| The Python package name for your project (short, all-lowercase) | `python_package` | `get_started` | -The output lists the directory in which to find the project. +The output of `kedro new` is a directory containing all the project files and subdirectories required for a basic Kedro project, ready to extend with your own code. -## Create a new project from a configuration file +### Create a new project from a configuration file -You can create a new project from a configuration file if you prefer. The file must contain: +If you prefer to customise your new project's directory and package name, you can instead use a configuration file to specify those values. The configuration file must contain: - `output_dir` The path in which to create the project directory - `project_name` @@ -36,21 +38,92 @@ The `output_dir` can be set to wherever you want to create the project. For exam ```yaml output_dir: ~/code -project_name: Get Started -repo_name: get-started -python_package: get_started +project_name: My First Kedro Project +repo_name: testing-kedro +python_package: test_kedro +``` + +To create this new project: + +```bash +kedro new --config /config.yml +``` + +## Create a new project containing example code + +You can use a [Kedro Starter](../kedro_project_setup/starters.md) to create a project containing template code, to run as-is or to adapt and extend. + +To illustrate, we will create a Kedro project with example code based on the familiar [Iris dataset](https://www.kaggle.com/uciml/iris). + +### Background information for the iris dataset example +The dataset was generated in 1936 by the British statistician and biologist Ronald Fisher. The dataset contains 150 samples in total, comprising 50 samples of 3 different species of Iris plant (Iris Setosa, Iris Versicolour and Iris Virginica). For each sample, the flower measurements are recorded for the sepal length, sepal width, petal length and petal width. + +![](../meta/images/iris_measurements.png) + +A machine learning model can use the Iris dataset to illustrate classification (a method used to determine the type of an object by comparison with similar objects that have previously been categorised). Once trained on known data, the machine learning model can make a predictive classification by comparing a test object to the output of its training data. + +### Create the example project + +The first step is to create the Kedro project using a starter to add the example code and data. Feel free to name your project as you like, but here we will assume the project's name is `get started`. + +```bash +kedro new --starter=pandas-iris +``` + +### Run the example project + +Once you have created the project, to run project-specific Kedro commands, you must navigate to the directory in which it has been created and install the project's dependencies: + +```bash +cd get-started +pip install -r src/requirements.txt ``` -To create the new project: +You are ready to run the project: ```bash -kedro new --config config.yml +kedro run +``` + +```{note} +The first time you type a `kedro` command in your new project, you will be asked whether you wish to opt into [usage analytics](https://github.com/kedro-org/kedro-plugins/tree/main/kedro-telemetry). Your decision is recorded in the `.telemetry` file so that subsequent calls to `kedro` in this project do not ask you again. +``` + +When the command completes, you should see a log message similar to the following in your console: + +``` +[08/09/22 11:23:30] INFO Model has accuracy of 0.933 on test data. nodes.py:74 + INFO Saving data to 'metrics' (MetricsDataSet)... data_catalog.py:382 + INFO Completed 3 out of 3 tasks sequential_runner.py:85 + INFO Pipeline execution completed successfully. runner.py:89 ``` -## Initialise a `git` repository +### Under the hood: Pipelines and nodes -Having created your new project, if you are using `git`, you may want to set up a new repository by calling: +The example project contains a single pipeline stored in `src/get_started/pipeline.py`. The pipeline is comprised of nodes that are responsible for splitting the data into training and testing samples, running the 1-nearest neighbour algorithm to make predictions and accuracy-reporting. + +The nodes are stored in `src/get_started/nodes.py`: + +| Node | Description | Node function name | +| --------------- | ----------------------------------------------------------------------------------- | ------------------ | +| Split data | Splits the example Iris dataset into train and test samples | `split_data` | +| Make Predictions| Makes class predictions (using 1-nearest neighbour classifier and train-test set) | `make_predictions` | +| Report accuracy | Reports the accuracy of the predictions performed by the previous node. | `report_accuracy` | + +### Visualise the project + +This is a swift introduction to show how to visualise the project with Kedro-Viz. See the [visualisation documentation](../visualisation/kedro-viz_visualisation) for more detail. + +In your terminal type the following: ```bash -git init +kedro viz ``` + +This command automatically opens a browser tab to serve the visualisation at `http://127.0.0.1:4141/`. + +You should see the following, which you can explore to learn more about the pipeline, nodes and datasets: + +![](../meta/images/pipeline_visualisation.png) + +To exit the visualisation, close the browser tab. To regain control of the terminal, enter `⌘+c` on Mac or `Ctrl+c` on Windows or Linux machines. diff --git a/docs/source/get_started/prerequisites.md b/docs/source/get_started/prerequisites.md deleted file mode 100644 index daa2bc00a0..0000000000 --- a/docs/source/get_started/prerequisites.md +++ /dev/null @@ -1,51 +0,0 @@ -# Installation prerequisites - -Kedro supports macOS, Linux and Windows. If you encounter any problems on these platforms, please check the [frequently asked questions](../faq/faq.md), the [searchable archive from our retired Discord server](https://linen-discord.kedro.org) or post a new query on the [Slack organisation](https://join.slack.com/t/kedro-org/shared_invite/zt-1eicp0iw6-nkBvDlfAYb1AUJV7DgBIvw). - -If you are a Windows user, you will need to install [`git`](https://git-scm.com/) onto your machine if you do not have it. To confirm whether you have it installed: - -```bash -git -v -``` - -You should see the version of `git` available, or an error message to indicate that it is not installed. - -PySpark users must [install Java](https://www.oracle.com/java/technologies/javase-downloads.html) (if you are working on Windows, you will need admin rights to complete the installation). - -## Virtual environments -We recommend that you create a new Python virtual environment for *each* new Kedro project you create. A virtual environment creates an isolated environment for a Python project to have its own dependencies, regardless of other projects. - -If you don't already have it, you should [download and install Anaconda](https://www.anaconda.com/products/individual#Downloads) (Python 3.x version), which comes bundled with a package and environment manager called `conda`. - -> [Read more about Python virtual environments](https://realpython.com/python-virtual-environments-a-primer/) or [watch an explainer video about them](https://youtu.be/YKfAwIItO7M). - - -Depending on your preferred Python installation, you can also create virtual environments to work with Kedro using `venv` or `pipenv` instead of `conda`. Further information about these can be found in the [FAQ](../faq/faq.md) - -### Create a virtual environment with `conda` - -1. [Install `conda`](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) on your computer. - -2. Create a new Python virtual environment, called `kedro-environment`, using `conda`: - -```bash -conda create --name kedro-environment python=3.8 -y -``` - -This will create an isolated Python 3.8 environment. - -3. Activate the new environment: - -```bash -conda activate kedro-environment -``` - -4. To exit `kedro-environment`: - -```bash -conda deactivate -``` - -```{note} -The `conda` virtual environment is not dependent on your current working directory and can be activated from any directory. -``` diff --git a/docs/source/get_started/standalone_use_of_datacatalog.md b/docs/source/get_started/standalone_use_of_datacatalog.md deleted file mode 100644 index 2bfb588b8b..0000000000 --- a/docs/source/get_started/standalone_use_of_datacatalog.md +++ /dev/null @@ -1,66 +0,0 @@ -# Standalone use of the `DataCatalog` - -## Introduction - -To make it easier to share a Jupyter notebook with others, avoid the use of hard-coded file paths to load or save data. One way to explore data within a shareable Jupyter notebook is to use Kedro's [`DataCatalog`](../data/data_catalog.md), but in the early phases of a project, you might not want to use any other Kedro features. - -The Kedro starter with alias `standalone-datacatalog` (formerly known as `mini-kedro`) provides this minimal functionality. You can use a YAML API to specify the sources required to load and save data, for example, - - ```yaml -# conf/base/catalog.yml -example_dataset_1: - type: pandas.CSVDataSet - filepath: folder/filepath.csv - -example_dataset_2: - type: spark.SparkDataSet - filepath: s3a://your_bucket/data/01_raw/example_dataset_2* - credentials: dev_s3 - file_format: csv - save_args: - if_exists: replace -``` - -This makes it possible to interact with data within your Jupyter notebook, with code much like this: - -```python -df = catalog.load("example_dataset_1") -df_2 = catalog.save("example_dataset_2") -``` - -## Usage - -Use the [`standalone-datacatalog` starter](https://github.com/kedro-org/kedro-starters/tree/main/standalone-datacatalog) to create a new project: - -```bash -$ kedro new --starter=standalone-datacatalog -``` - -## Content - -The starter comprises a minimal setup to use the traditional [Iris dataset](https://www.kaggle.com/uciml/iris) with Kedro's [`DataCatalog`](../data/data_catalog.md). - -The starter contains: - -* A `conf/` directory, which contains an example `DataCatalog` configuration (`catalog.yml`) -* A `data/` directory, which contains an example dataset identical to the one used by the [`pandas-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pandas-iris) starter -* An example notebook, which shows how to instantiate the `DataCatalog` and interact with the example dataset -* A blank `README.md` file, which points to this page of documentation - -## Create a full Kedro project - -When you later want to build a full pipeline, you can use the same configuration, as follows: - -***1. Create a new empty Kedro project in a new directory*** - -Let's assume that the new project is created at `/path/to/your/project`: - -```bash -kedro new -``` - -***2. Copy the `conf/` and `data/` directories from your `standalone-datacatalog` starter project over to your new project*** - -```bash -cp -fR {conf,data} `/path/to/your/project` -``` diff --git a/docs/source/get_started/starters.md b/docs/source/get_started/starters.md deleted file mode 100644 index 8182599b0c..0000000000 --- a/docs/source/get_started/starters.md +++ /dev/null @@ -1,89 +0,0 @@ -# Kedro starters - -Kedro starters are used to create projects that contain code to run as-is, or to adapt and extend. They provide pre-defined example code and configuration that can be reused, for example: - -* As example code for a typical Kedro project -* To add a `docker-compose` setup to launch Kedro next to a monitoring stack -* To add deployment scripts and CI/CD setup for your targeted infrastructure - -A Kedro starter is a [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/) template that contains the boilerplate code for a Kedro project. You can create your own starters for reuse within a project or team, as described in the documentation about [how to create a Kedro starter](../extend_kedro/create_kedro_starters.md). - -## How to use Kedro starters - -To create a Kedro project using a starter, apply the `--starter` flag to `kedro new`: - -```bash -kedro new --starter= -``` - -```{note} -`path-to-starter` could be a local directory or a VCS repository, as long as [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/usage.html) supports it. -``` - -To create a project using the `PySpark` starter: - -```bash -kedro new --starter=pyspark -``` - -If no starter is provided to `kedro new`, the default Kedro template will be used, as documented in ["Creating a new project"](./new_project.md). - -### Starter aliases - -We provide aliases for common starters maintained by the Kedro team so that users don't have to specify the full path. For example, to use the `PySpark` starter to create a project: - -```bash -kedro new --starter=pyspark -``` - -To list all the aliases we support: - -```bash -kedro starter list -``` - -## List of official starters - -The Kedro team maintains the following starters to bootstrap new Kedro projects: - -* [Alias `astro-airflow-iris`](https://github.com/kedro-org/kedro-starters/tree/main/astro-airflow-iris): The [Kedro Iris dataset example project](../get_started/example_project.md) with a minimal setup for deploying the pipeline on Airflow with [Astronomer](https://www.astronomer.io/). -* [Alias `standalone-datacatalog`](https://github.com/kedro-org/kedro-starters/tree/main/standalone-datacatalog): A minimum setup to use the traditional [Iris dataset](https://www.kaggle.com/uciml/iris) with Kedro's [`DataCatalog`](../data/data_catalog.md), which is a core component of Kedro. This starter is of use in the exploratory phase of a project. For more information, read the guide to [standalone use of the `DataCatalog`](../get_started/standalone_use_of_datacatalog.md). This starter was formerly known as `mini-kedro`. -* [Alias `pandas-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pandas-iris): The [Kedro Iris dataset example project](./example_project.md) -* [Alias `pyspark-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pyspark-iris): An alternative Kedro Iris dataset example, using [PySpark](../tools_integration/pyspark.md) -* [Alias `pyspark`](https://github.com/kedro-org/kedro-starters/tree/main/pyspark): The configuration and initialisation code for a [Kedro pipeline using PySpark](../tools_integration/pyspark.md) -* [Alias `spaceflights`](https://github.com/kedro-org/kedro-starters/tree/main/spaceflights): The [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) example code - -## Starter versioning - -By default, Kedro will use the latest version available in the repository, but if you want to use a specific version of a starter, you can pass a `--checkout` argument to the command: - -```bash -kedro new --starter=pyspark --checkout=0.1.0 -``` - -The `--checkout` value points to a branch, tag or commit in the starter repository. - -Under the hood, the value will be passed to the [`--checkout` flag in Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/usage.html#works-directly-with-git-and-hg-mercurial-repos-too). - -## Use a starter in interactive mode - -By default, when you create a new project using a starter, `kedro new` launches [by asking you to enter the `project_name`](./new_project.md#create-a-new-project-interactively). - -* `project_name` - A human readable name for your new project - -Kedro will then automatically generate the following two variables from the entered `project_name`: - -* `repo_name` - A name for the directory that holds your project repository -* `python_package` - A Python package name for your project package (see [Python package naming conventions](https://www.python.org/dev/peps/pep-0008/#package-and-module-names)) - -This mode assumes that the starter requires no additional configuration variables. - -## Use a starter with a configuration file - -Kedro also allows you to [specify a configuration file](./new_project.md#create-a-new-project-from-a-configuration-file) to create a project. Use the `--config` flag alongside the starter: - -```bash -kedro new --config=my_kedro_pyspark_project.yml --starter=pyspark -``` - -This option is useful when the starter requires more configuration than the interactive mode requires. diff --git a/docs/source/get_started/summary.md b/docs/source/get_started/summary.md new file mode 100644 index 0000000000..20e14075dd --- /dev/null +++ b/docs/source/get_started/summary.md @@ -0,0 +1,33 @@ +# TL;DR + +This page summarises what you've learned about Kedro so far. + +## [Logistics](install.md) +* Kedro can be used on Windows, macOS or Linux +* Installation prerequisites include Python 3.7+, `git` and `conda` +* You should install Kedro using `pip install kedro` or `conda install -c conda-forge kedro` + +## [Kedro concepts](kedro_concepts.md) + +* Kedro nodes are the building blocks of pipelines. A node is a wrapper for a Python function that names the inputs and outputs of that function. +* A pipeline organises the dependencies and execution order of a collection of nodes. +* Kedro has a registry of all data sources the project can use called the Data Catalog. There is inbuilt support for various file types and file systems. +* Kedro projects follow a default template that uses specific folders to store datasets, notebooks, configuration and source code. + + +## [Kedro project creation](new_project.md) +* You can create a Kedro project: + * with just the basic code: `kedro new` + * or you can populate a new project with pre-built code, e.g. `kedro new --starter=pandas-iris` from a [range of starter projects](../kedro_project_setup/starters.md#list-of-official-starters) +* Once you've created a project, you need to navigate to its project folder; you can then install its dependencies: `pip install -r src/requirements.txt` +* To run the project: `kedro run` +* To visualise the project: `kedro viz` + +## What's next? +* Next, you should work through the [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) for the hands-on experience. It illustrates how to build a working project, which includes creating nodes, registering pipelines, setting up the Data Catalog and adding dependencies. +* Following the tutorial, you'll learn how to [visualise a Kedro project](../visualisation/kedro-viz_visualisation.md) and learn more about [combining Kedro with a Jupyter notebook](../notebooks_and_ipython/kedro_and_notebooks.md). + +## Useful links + +* [Kedro on GitHub](https://github.com/kedro-org/kedro) +* [Join the Kedro Slack organisation](https://slack.kedro.org) diff --git a/docs/source/index.rst b/docs/source/index.rst index 28d2106a11..2ad887475e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -57,23 +57,14 @@ Welcome to Kedro's documentation! introduction/introduction - .. toctree:: :maxdepth: 2 :caption: Get started - get_started/prerequisites get_started/install - get_started/hello_kedro - -.. toctree:: - :maxdepth: 2 - :caption: Make a project - + get_started/kedro_concepts get_started/new_project - get_started/example_project - get_started/starters - get_started/standalone_use_of_datacatalog + get_started/summary .. toctree:: :maxdepth: 2 @@ -95,11 +86,18 @@ Welcome to Kedro's documentation! visualisation/visualise_charts_with_plotly visualisation/experiment_tracking +.. toctree:: + :maxdepth: 2 + :caption: Notebooks & IPython users + + notebooks_and_ipython/kedro_and_notebooks + notebooks_and_ipython/kedro_as_a_data_registry .. toctree:: :maxdepth: 2 :caption: Kedro project setup + kedro_project_setup/starters kedro_project_setup/dependencies kedro_project_setup/configuration kedro_project_setup/session @@ -131,7 +129,6 @@ Welcome to Kedro's documentation! extend_kedro/common_use_cases extend_kedro/custom_datasets extend_kedro/plugins - extend_kedro/create_kedro_starters .. toctree:: :maxdepth: 2 @@ -179,10 +176,9 @@ Welcome to Kedro's documentation! .. toctree:: :maxdepth: 2 - :caption: Tools integration + :caption: PySpark integration tools_integration/pyspark - tools_integration/ipython .. toctree:: :maxdepth: 2 diff --git a/docs/source/introduction/introduction.md b/docs/source/introduction/introduction.md index f2c6c48ca3..b7d8989ee7 100644 --- a/docs/source/introduction/introduction.md +++ b/docs/source/introduction/introduction.md @@ -1,26 +1,25 @@ # What is Kedro? -Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). +Kedro is an open-source Python framework to create reproducible, maintainable, and modular data science code. It uses software engineering best practices to help you build production-ready data science pipelines. -For the source code, take a look at the [Kedro repository on Github](https://github.com/kedro-org/kedro). +Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/), and you can find the [Kedro source code on GitHub](https://github.com/kedro-org/kedro). ## Learn how to use Kedro -In the next few chapters, you will learn how to [install Kedro](../get_started/prerequisites.md) and set up your own production-ready data pipelines. +In the following few chapters, you will learn [how to install Kedro](../get_started/install.md) and discover the [key Kedro concepts](../get_started/kedro_concepts.md). -Once you are set up, we suggest working through our examples, including: +- The first example illustrates the [basics of a Kedro project](../get_started/new_project.md) using the Iris dataset +- You can then review the [spaceflights tutorial](../tutorial/tutorial_template.md) to build a Kedro project for hands-on experience -- A typical "Hello World" example, for an [entry-level description of the main Kedro concepts](../get_started/hello_kedro.md) -- An [introduction to the project template](../get_started/example_project.md) using the Iris dataset -- A more detailed [spaceflights tutorial](../tutorial/tutorial_template.md) to give you hands-on experience +For new and intermediate Kedro users, there's also a comprehensive section on [how to visualise Kedro projects using Kedro-Viz](../visualisation/kedro-viz_visualisation.md) and [how to work with Kedro and Jupyter notebooks](../notebooks_and_ipython/kedro_and_notebooks). -We also recommend the [frequently asked questions](../faq/faq.md) and the [API reference documentation](/kedro) for additional information. +Use the left-hand table of contents to explore the documentation available for more advanced Kedro usage and deployment. We also recommend the [glossary](../resources/glossary.md) and the [API reference documentation](/kedro) for additional information. ## Assumptions -We have designed the documentation and the [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) for anyone new to Kedro. The more knowledge of Python you have, the easier you will find the learning curve. +We have designed the preliminary documentation and the [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) for anyone new to Kedro. The more knowledge of Python you have, the easier you will find the learning curve. ```{note} -There are a number of excellent online resources for learning Python, but you should choose those that reference Python 3, as Kedro is built for Python 3.7+. There are many curated lists of online resources, such as the [official Python programming language website](https://www.python.org/) and [this list of free programming books and tutorials](https://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books-langs.md#python). +There are many excellent online resources for learning Python, but you should choose those that reference Python 3, as Kedro is built for Python 3.7+. There are plenty of curated lists of online resources, such as the [official Python programming language website](https://www.python.org/) and this list of [free programming books and tutorials](https://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books-langs.md#python). ``` diff --git a/docs/source/kedro_project_setup/dependencies.md b/docs/source/kedro_project_setup/dependencies.md index ccaf48e59f..c24fe5e866 100644 --- a/docs/source/kedro_project_setup/dependencies.md +++ b/docs/source/kedro_project_setup/dependencies.md @@ -1,9 +1,13 @@ # Dependencies +Both `pip install kedro` and `conda install -c conda-forge kedro` install the core Kedro module, which includes the CLI tool, project template, pipeline abstraction, framework, and support for configuration. + +When you create a project, you then introduce additional dependencies for the tasks it performs. + ## Project-specific dependencies -When we introduced Kedro, we touched briefly on how to specify a project's dependencies to make it easier for others to run your project and avoid version conflicts downstream. +You can use Kedro to specify a project's exact dependencies to make it easier for you and others to run your project in the future, and to avoid version conflicts downstream. -You can add or remove dependencies. For a new project, edit the `src/requirements.txt` file, then run the following: +To add or remove dependencies to a project, edit the `src/requirements.txt` file, then run the following: ```bash kedro build-reqs diff --git a/docs/source/extend_kedro/create_kedro_starters.md b/docs/source/kedro_project_setup/starters.md similarity index 57% rename from docs/source/extend_kedro/create_kedro_starters.md rename to docs/source/kedro_project_setup/starters.md index 458e07c3df..0c12f3f349 100644 --- a/docs/source/extend_kedro/create_kedro_starters.md +++ b/docs/source/kedro_project_setup/starters.md @@ -1,11 +1,89 @@ -# Create a Kedro starter +# Kedro starters -Kedro starters are used to create projects that contain code to run as-is, or to adapt and extend. A good example is the Iris dataset example of basic Kedro project layout, configuration and initialisation code. A team may find it useful to build Kedro starters to create reusable projects that bootstrap a common base and can be extended. +A Kedro starter contains code in the form of a [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/) template for a Kedro project. Metaphorically, a starter is similar to using a pre-defined layout when creating a presentation or document. -A Kedro starter is a [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/) template that contains the boilerplate code for a Kedro project. +Kedro starters provide pre-defined example code and configuration that can be reused, for example: + +* As template code for a typical Kedro project +* To add a `docker-compose` setup to launch Kedro next to a monitoring stack +* To add deployment scripts and CI/CD setup for your targeted infrastructure + +You can create your own starters for reuse within a project or team, as described in the documentation about [how to create a Kedro starter](../kedro_project_setup/starters.md#how-to-create-a-kedro-starter). + +## How to use Kedro starters + +To create a Kedro project using a starter, apply the `--starter` flag to `kedro new`: + +```bash +kedro new --starter= +``` + +```{note} +`path-to-starter` could be a local directory or a VCS repository, as long as [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/usage.html) supports it. +``` + +To create a project using the `PySpark` starter: + +```bash +kedro new --starter=pyspark +``` + +## Starter aliases + +We provide aliases for common starters maintained by the Kedro team so that users don't have to specify the full path. For example, to use the `PySpark` starter to create a project: + +```bash +kedro new --starter=pyspark +``` + +To list all the aliases we support: + +```bash +kedro starter list +``` + +## List of official starters + +The Kedro team maintains the following starters for a range of Kedro projects: + +* [`astro-airflow-iris`](https://github.com/kedro-org/kedro-starters/tree/main/astro-airflow-iris): The [Kedro Iris dataset example project](../get_started/new_project.md) with a minimal setup for deploying the pipeline on Airflow with [Astronomer](https://www.astronomer.io/). +* [`standalone-datacatalog`](https://github.com/kedro-org/kedro-starters/tree/main/standalone-datacatalog): A minimum setup to use the traditional [Iris dataset](https://www.kaggle.com/uciml/iris) with Kedro's [`DataCatalog`](../data/data_catalog.md), which is a core component of Kedro. This starter is of use in the exploratory phase of a project. For more information, read the guide to [standalone use of the `DataCatalog`](../notebooks_and_ipython/kedro_and_notebooks.md). This starter was formerly known as `mini-kedro`. +* [`pandas-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pandas-iris): The [Kedro Iris dataset example project](../get_started/new_project.md) +* [`pyspark-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pyspark-iris): An alternative Kedro Iris dataset example, using [PySpark](../tools_integration/pyspark.md) +* [`pyspark`](https://github.com/kedro-org/kedro-starters/tree/main/pyspark): The configuration and initialisation code for a [Kedro pipeline using PySpark](../tools_integration/pyspark.md) +* [`spaceflights`](https://github.com/kedro-org/kedro-starters/tree/main/spaceflights): The [spaceflights tutorial](../tutorial/spaceflights_tutorial.md) example code + +## Starter versioning + +By default, Kedro will use the latest version available in the repository, but if you want to use a specific version of a starter, you can pass a `--checkout` argument to the command: + +```bash +kedro new --starter=pyspark --checkout=0.1.0 +``` + +The `--checkout` value points to a branch, tag or commit in the starter repository. + +Under the hood, the value will be passed to the [`--checkout` flag in Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/usage.html#works-directly-with-git-and-hg-mercurial-repos-too). + + +## Use a starter with a configuration file + +By default, when you create a new project using a starter, `kedro new` asks you to enter the `project_name`, which it uses to set the `repo_name` and `python_package` name. This is the same behavior as when you [create a new empty project](../get_started/new_project.md#create-a-new-empty-project) + +However, Kedro also allows you to [specify a configuration file](../get_started/new_project.md#create-a-new-project-from-a-configuration-file) when you create a project using a Kedro starter. Use the `--config` flag alongside the starter: + +```bash +kedro new --config=my_kedro_pyspark_project.yml --starter=pyspark +``` + +This option is useful when the starter requires more configuration than the default mode requires. ## How to create a Kedro starter +Kedro starters are used to create projects that contain code to run as-is, or to adapt and extend. A good example is the Iris dataset example of basic Kedro project layout, configuration and initialisation code. A team may find it useful to build Kedro starters to create reusable projects that bootstrap a common base and can be extended. + +A Kedro starter is a [Cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/) template that contains the boilerplate code for a Kedro project. + To create a Kedro starter, you need a base project to convert to a `cookiecutter` template, which forms the boilerplate for all projects that use the Kedro starter. Install `cookiecutter` as follows: @@ -19,7 +97,7 @@ You then need to decide which are: * the common, boilerplate parts of the project * the configurable elements, which need to be replaced by `cookiecutter` strings -## Configuration variables +### Configuration variables By default, when you create a new project using a Kedro starter, `kedro new` launches in interactive mode. The user is then prompted for the variables that have been set in `prompts.yml`. @@ -92,5 +170,5 @@ Here is the layout of the project as a Cookiecutter template: ``` ```{note} -You can [add an alias by creating a plugin using `kedro.starters` entry point](./plugins.md#extend-starter-aliases), which will allows you to do `kedro new --starter=your_starters` and shows up on shows up on `kedro starter list`. +You can [add an alias by creating a plugin using `kedro.starters` entry point](../extend_kedro/plugins.md#extend-starter-aliases), which will allows you to do `kedro new --starter=your_starters` and shows up on shows up on `kedro starter list`. ``` diff --git a/docs/source/meta/images/jupyter_new_notebook.png b/docs/source/meta/images/jupyter_new_notebook.png index bed8827d9cdbc22bc6746ec6c8cf38dd02ef1bd6..9f6f57dcf5bf225cfd9ffc7d8533b36acf8c42bf 100644 GIT binary patch literal 159314 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

UYpZ(eW6eq)u7sjQ;H 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

ai+;%;!NO4Iqlj9buXAi=X|N0Y+)9u_QQ%1 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 akTj@biEH(TYU?P#m)r|w>2H!oAN~ihs?UM| delta 9851 zcmbW7RahKP^rmMRTn5+R3BlbZxVu9j5ZnpwGPt`3cXtR7ba3}1xCIaH4m-d9KF{9m z#qLE}pVsQCQ{Q>J=T=dUR3MS6$}$+JB&YxY07FhzQXN)?!%`oNlXP(NBr zNT|w5NKmReJ6KrTnF9c_k*R4&ns`e%VO2iPL4i~XM9x#zfIwpB6!f5SbWSrOC)vFK zrrJ#sENq}TFr5;$mPPDOKt$o+!VI=EN=%@e0eXh2SFD{7#An@SUn{Tu#?39S-R)`J zgz+Q3S90O|(W1uijo@z|z^p+3g+yWz$9b zp*UnI$YQ9FsQTn?&9R$@Y(H|%^&COJCw2YAlFMrguwBh4Ug|sK?Dccw17Oj_c7tUJgaUtm;Gl#YWYAXwh zcZj|#?J66ei#<5K*7XMaz3U2GSL%^~3>vXr6Md0Jf1lM5J3GKP?m6N~JD9|ge3^

2a4br<2&X3OB&K1ss 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�qhUu{=0d5Kb=VoDD9J*>|%e%ABl8TqCrr> zpoj`~_BQDC2_Qu0Plo>E4@7M$vvZbzB7q>3D-2@pCr=pL@O!~CfLh{1M*Os_l$j*{ zZ({)Mh0y=?-_YW{77WDyw$=W~q9o;y5kUZdQeyJp JN)i2l{{tkvtB(Kx diff --git a/docs/source/meta/images/pipeline_visualisation_tutorial.png b/docs/source/meta/images/pipeline_visualisation_tutorial.png new file mode 100644 index 0000000000000000000000000000000000000000..082a2a570019d22b465c1bc04e1269b617ee072a GIT binary patch literal 65114 zcmdSAWmKF&x9`~y5+t}g1PKno-GaNj1$TFM55e8tAz0&(1aI8krGen?OecBIJ!j2) znfWkxt=p@6bv;kjuHE&odhEA%M=HuoAR*u*0000aDM?Xf003$d0C-~o_YSfrH+=#H z06#G!lbPYJ7j zMwg^!{s@CbKpRchf~_hlq&N8%?X8A}&|Hw_cZMjW#~^wHP@CrW{CXUZkX7HywM=&w zs#i{M&TEqYiJ&thU`8=VHRJ6xU@&E8umIXu6FyRk-iJg8fJprVlk5D>iH3@W1v8JO z^+j)O6>4I^Yubx`u3PZ6wtx{8bPo_3qAo?)d9q2;QSu#11vvqPkPF=k#ki-KyFyt+ z!muNpUU5qm&cMv_MCORLD^wprIHtw`I80)N6l6djc2k4X{ecCcGzAEV9;g}QBmm0s zK~o4|$-o&I9Mk{QA55KD_@WFbLrhvM_m50}X}&85-SO$SB~U%!;{@euGLCLB+zZC; z`OCPa7_o%YRA9!_QzPi5@87SE>Y^5yNLhLGQbfPqe%Yp1hUt@MF*wO&8-mU;h;Xu3 z_t>W>jeOGr;^JOOlfni)7gA{fNu|^2%5#YspyEEpgymL3f@7X?Id%SOcL7 z^?a;6CZGWg%T$_zr0e&TfdVR?Z<0FAhhL{^(<)ao$)n(vZ^kk!45&9{`;w@rtuf%9 zpGtjNlY0n)r+PK(y+=Jhn)+Py`3jgovrMPE)ZEge#R#vJ_QKEiTTr`!XE{` z|Nf>1P|YFH!ew5CxBhmDlEtx&I=oNVJ}a&-`OMbr`;qPOF#xx{8>6;2vwiy(-3YzJ zCa4L(rCA_8mBg^k36Qse6*|618l}eoWKaRBBYi^Y-G7DQJ@!DOE51d{dwUgt_6c^* z!guTkkw+mGY%m<^8}y%iKVZq?kW9XyX}(hr{H%z`5onu7c=XQur=J5HA(Y$(4A&dR z0J;sH79`>Ty9rqRfDdQLUxiRZ!pl&Jrh=|MU<@MEhcCoY?VyByR#GHOf-V+8mxN*n zo)hX*gjYpA4z$WA$={y9+ee>)Uk&!kgW6}mf*1dSFcRQusN(T)B#ay4=goNN^k%37 zu`a+qV0eS}j&ubsH?a0c^QPV1TfVP=kguQ6-t^)dl6OhMB!m=wU@>{C9Fjz)Cdoe) z)JV=5Z)bvfAMw+09~ZkHfBPH!uU@0Ow9quHwCgmd5kFb-J;J?@C9td^_ff@0uHV%) zIq7jS1LOu6e_E`06~KO+AYHzR3Afuf8^6Wkc3DqcaAO~p^q`5|#A%tYhD zramo8fsvf#qXETjoS^ayO$w%gG>e$FJf(tIt+Rwjl6*?mvWtz__HA{LTh^Qy zfqG%(V!2qEX=SwrZ=Rb}wE|!nEfsn0be9vl4rio*g)en z=9aIB;>_Eqg~7~4`8AtmXr*1L&Ez_ z5RS*hTEp69|C!A&GeQ=a*_heE$<7+Xsb{@pvSeRk+0Q=ATFL5dANgB+ z{u4OZxM1nHiVk$C$JA2S)Ncr?&Z_QJ=dI>3|6<-U7B^CsF=;ASx2Fl#p4Ylv_+Y!Z1JSQ_e-fAj!pAYP2WjVXEFbJ*RPk9H?tpp7#52( z^w3GrN#t)c4z$a=lzu90lDCyN$kNL)9lIWT!`RPA!-8#q6cLo10peIYg%tBB@NLej{yTlXTH0Ew zHSsm*Q>#;R!uRs;z@*^f*y`93aN4-H0q6Q|SG8Y+L7qXpL3nqYf0cjh>o%Y#;3}Xk zAYZ8TM{!`a@Iqc(-l(vit{!8q&M*;z8@xWT4`T>AI*~H*1;q@DD)tikyYRQ+w(#D# zcIb@o_E7+|l?Vp3Sh7(v9Pt-E0#05hx4xrNB{!wvf~CTP$;(0%(eCK;$VJ>s(m6hL zv}Np4{8T~>f?I(#rY?#uUPH5A7a??!OOac>dlWv(y2`FoXN0fZ%X?Rpyp%W}*VC;z z+|O5JE*rt7qrBV(t^)QilbANrKA^y)@eVkBEPJlxOzm`@-rHS!a5t*QdmzHQ5aM6x zn+kLVb2xQS|t2ouJWIl-SMgbyly>7K_FP|dS8lil_dw1`RI zR5GN{ceV984Yg5@UqD~@X+~**43>Z+UluD&`G>iOZ>s{-i)t)%EF0^;m>T$fd3jMQ zQcJJ&)3R-EGr3-7KeyIKaCv|6-m4q_sia1+SW$hUY0mff#GZLQs{2?I{M~M#tyV0k zV7L$1SKOC7e>rdPGIr8le=5#dWV^qx-{Cm_apmJs32$a6$0?H%-4NXYWEB@X(pg(i z&NVOZ*|)16YPNavTDBW`yK7l!T_SH2WxDw=;v}!voRwRY&6MkE-20V&0mtaAwI90w zK4DyYKJY%jb-#rW`m0!Sg8hL{>G;HS5zqY^Vhgk?D{HUzv9YcqKl6Ya}uyseT>WDFqo{ z8H>dzZYT8Te^gR&cQ$ecpKom2GMq3B_yO-*_d5#y)0sy4u~ee!KhtX3~diaR6pd`#ls4^kJl~FcNi-bgj7b-Aiw)l~xY; zIX>)ahC54av!_~*&g<1SyNn(3x%T|-PtWw@WLnu;Yjfg#asy{C@Vd7rw6~oioZPGr zx7{B4ojk|G-lNo^L=#UECkxDZ>Rwm&)grBqtx|bEdDRF+`d#Fuu0L*Z-rMIsBIGFN zrU*>?t1sKH`x}vd*?73*9)HxAH28{${Zez|y(@E>D)_wlJTRLdlHa9KuTfY#-#zK2 zayfTyyX>%Yw(Y)nD!zu}JMr-SmHg58vGh)1TpZiC-=Fc(=)8E>dT>6xaIvsZIp-^< z00L>*FH1{6M~yIeTNJQA4@Ekfo>n{XHskIiF4bAChtWF{9CLtG2ULUzGc8E~s16TC zO>G7{(&{T`01;u*15)WQBffs0?S4&bcV+Qp^F(&b8qUHiz_<(nrb z^L#A)G3f)P$_BbTDfs~*iAAHCMa$B4b27rZpqeDKTdC>n=3pJVd=D*5sEdDeURuPes zf_$qOJDHl=Ia}Df^!3i>LAsi=RMm9Rl#}H#wzp+8G_f}_W%RIh_+tX#^WcFLZB1Pa zNj+?B?3{T#_{sjZ;DMC?>}Db({oBOFnx9NlPLWi^-pQ1doso_46B$HLQc^xA6EhxV zQStwnL$>(IEL>b1c$k>n-Q5}8SsCq}%$bu`sc)FhE)`ID6W;7(aG(|0KA@V?c2(WRm^ZjlA|ET$IkN+&yoK2lX>}?^2E&~6p z?|+Q{XXXFh@UKg)|8~j6$?`v4{*RjfSn@Ib8TtQE;-Aca_d;|QK;UEgUvnmaV4s!9 z000O9q(p^PJ)n-VVZW&M%?&8HH6WWgo-2J$`+olwCZqv1W|v1ed`U? zzR${iH+Fr=>F56qE^btCZi=N-dWK>yBQb zm7kK5qWtpnjZ0&TD2kSiGd@2x#n^=U(vg1dFrNk)9O9G0o69M8}9q!Z}yE{I5`yNiLMmY^&RS64L|*)TQ7n++(jYUQ)M zj_1dNPwrVCkT52i&|@OL76EO8Bg3^SVCO!4d@_>#k%(o9L^ng;*O!zWZ}@~E5G)k^ zaRYp+aPH`6<6D6}x>zu66gw!xpUNyIt&Oi1*^1+Y4&_U$#G&AJyp-Il9IXVFGX1p$ z%g(~Ivnkbnd$g(KQ`~oQMh0gQFBJa$6T^Wm2kLuhXoh4V%~E;HsV==^A3^cF>w2X< zDQj9f>L6Y`B9B$LA_1sXn#tZ?QQ%Bosa7|x=Bu3Ary7$;y*ABLc-^3Y_wbG2N%MA~ z?QG+>_l5cQd1CQlp&`m&GC4A0D_P0Q=qT~=h>$R9$fZ-SR6UVt7zNhQx_T5)9dMx( z)@snl$muJ7xr9*0S*NKWGWCXJk>(Ll9`-%92YI&g?D5E(bny#%ekZ%OpN%q+0l>g$ zBLucAXwKz6Xn9&&ca>H9^O+O&tdKUrxHKrRg=uVoEQYWTrW<(W@Oh)OVc#iojU(-x z2nt!hEK7D*Yl=~JG)te7`H*|s(cBNBbruRe=m4PXPp}ri!ab%#G8U2K<5?a!r#S_I2dB0q6>{d zE;DC_Y}QLeJHNp)_m3#bQ#quNU`E(*F__Cpj&wQl{;&q5nuhAMNIugQP>5f&d@}6d; zVKvXi60ly6JSx52>1z3tTtu|x%xhVMJll23Z_D9tdRISj)+gHJbnt!G;|2Zhdzf4{CO!qMt$g>cIKr+mf*3Tkc6s8$pQmV*q-@!ug8#s5BQOCT0`(j_cZ(cKukU} z`FK%q`1}3s+U~+*sdmdXauf%bN}384uIlyr7#^VgxCDmy#Ju2(^!igrQcb%L%eCau zFY{-&yzKVdiON$Sp~&p*gZ@g!LJmHSI#%w`9ItcsSrK2mF_9$qGgOT#?tg(7r;uFFM@byZs-ehE2W zL!bJ##gs`O72(E^b=Q1R{?-ALSnf7cx|b4rKW*tSC368L(l{{~LH`T+L{Fk#kQ{Av z9ZVB)5#7g_(#+EFqL)tZiDVqPymW<8jm)lM^S0E{>SzP6l#{IcGA9o6hgIoFkR($i z)^6dYK@pXiY@r{&_r&_|xoKM+vvQI8bzei`zCO|NsQEe(-nMW$9d{0b=XFXPT1whX z(C){mF8+3!T^`d15tmmYm3>w9l6ru(fxf`%>%ufe^v8@sAtcMhekjQD`Iu*CULT8G z{JQE%GSv9Z(4@^(0$r!7rplTMe~Xl8cYf_L!mi~4y>0VQ=72!mXZ^WNwv*AhykU=D zVP4;jdAt>QlO4xj*&_VrkP{Co?94oU*!Q-f)50xeI`{Nci?zL#D!63ygybTQ~jkOWvj)QvBaXhHd#Hb$+`uD4183-9hOiQ4Q|7Y zt<1zZip#EN(by9f^(?s{4EcIuGGh@*xa&;y+%jN6uZOWkO~)CF5EW%X5G&N~E>-q; z|4DFpymOIEAQ#wpRF-jRF%EtLaiGV4K1ok;h~=c=PHyWRsOY}uJM;+y8!f>!slO-O z>7?bTm1c6g&FRGK`Dki z{SFbDAv?gO;m0Hl}*{mD9Ik;UZW(9HMgB zu0n|{DekJcT%9|P&Zil|-Tt$jC%R76Y3{F8S-MM&zEq?B$8x*f9aNhuFB>+q)4so3 zOAn$?{kCR-p%;l_WR3~#@E=I?Orf!=TvR*jMJRX&1{}cGqUKA=&NUw_%AMc6wOJBZ zbIPPF+)GGcndQFOUWL;4`Bp6q`bNAv)|ysgU98%5$=jdM#FUEA$|{h|0J)k)NTwNG zCn!}^eIi~c#bGdbuB~hMDCm9Gy4Yf!c2&otapM5;4FE=^ISW2r=p;NBkg)T{1O!2&ruYsPOG_TEaQfJ|+2(%Eiw zL0=liNh;?QV;Qp#a%ko!gCxu^^3O!gb9mAO^e#jS*Q(dsV#H%`#ZMcCH21`?{cqUq zmm~AwjmOkGb(Fr3D&^6BQoktfyB?j35r-Cp+^N9LtVMcX431@#MR02X+XsDn$x@PW%M#)9B-W$>yRcrq&RQFtOkw1}L6KU4 zD`hH}E#j+aChM)ot=xRM_e;vtMW!~$?o8q-MJex!rIY)sbZg8n==im=UWt`RNuS7CGIEwo9&0naz#3mg!_;R=72ephHAgK+rtq4gqT)(VB~Ql3 zf$nEdJO=G2$Hd5s&1=IuZn$7))qLu z*)zV@$WigFis|y8jkX&1$x!rU*^_?GW)G+Fp~f#-+5nUIn5(<63uU*(6Qei=UiWD- zeVCn*X(`djsK|bo;@S`LjL)e!^pwXIezkMOj^Z0_6sR*b3}RvDW#eJ|I|ZNYyKWF% zLo=WX(ww_DF`|2|c7eaLcU8NL8?zWRy>M2kCrJeWq{_${!2Dmh2+@X=Icc`KAEvyM zS}_i6t)v%{yf-Ec2^;guWra=f$tOA`P%bt&elCqQ{j@(Y8Lsf{iSq4nc7M{CGgYmh zw7RX)J4x#>E0yAuRvmPalcgZZ@&1(EVb8(N#g!gF@39s7PKuWqfgcY!$0AwCT40nu zDi)@XfiVRf2TO9CPOHK}Ntwdyw9TnNf9OhB$9fjUSB-DDsX_9@?7 z5(xwb7{i-flu6&HsTVr0Qt#sf*@)-_#UJaP@qHES1rMborT0?KlpU3daymex9^=Jp zENjFE$-YK80$o18&`59{zaJQn9ie@E0zgTiE+l5@wp-0wpp=mRvMl!l!Cg_)O*E=% zX3AbFYB(44N2bcOwf7EOk_*81f+$b=Uk;8NuB7=FU{X@zg(a9d3!0DIm#^HmjG30t z`O4{qdY9n!_kI*Q*Rc_8$UFJj)hzF|Gr&(*qq7UWM?wLMWZn}>s~0(Wv<;khCWNh@ z*TO@oXR*9`rYSHlrDoe+kaqCIj33+yM`;DhNDdQRmnZ4TS<@0*++wL zRHOP?!&qH+yjYk_%8k*&={X+^6~HT<#hbsnJLlYq{t%N_eGk~7VI^ew?X#_NP?J-qoC^42Yai!JEouBB-oph17{d)N zHY&esn8|I!AbLYO>J_6+6->_4Uf0XGn+U?mufD)J9F#GnVD&sy}8 zYX30>K>wfX7=Ntr@X!ir09olD6Z!uJQp~w7uS9RSf?0q4g)i3ddC9;O!j*q|@8>}D zK8XeZ{s;(w)06>7&uBY2K&JGM+};qm+nAsMfAu5%!T^~J>!F`S|I|K#sD0Q42l#6k z5YPmfi)u<(_kUuy{h8%QG63M;<{V@yn*R4Vts~nY!L{HJ&o}&Fmb?7{vMe4^Ey{8@ zXBb-)Kst8PkQI~SE?oU)e=YM>gGrrJ-<3uz>~rK?a1ayeMi@*{j*KrSwk1lDUVuen zz#kH3!D{soGh0>Otiq*Hl0>9auA+;BfOuA_Ly}c!Kq|=%w;%E2w=-DLQHo}_q*M`{ z<4euyFUWthQprO$QJ;W7S@H7;J#h@>G^>nFMKjQDrA;K5Su6=czK-O+2<7H9Mqrf- z_Z#^0?t+gwefqlb$pOwa{Vbvdl$Tgwkus22&%!JA=H5Zg>aJLo;|>9khdjl zo)D4PlEBO7$ffYYRbQ>UNib+Ul*Gr(y?gV|uz~RO58r`n1WQo11M2H_4ei{VYDc?(DFmR>tH#vaNwJgx_DUEhZgE=TQ*W`Hip;G=nN?L|zbDqW$P!XgLc90+sX4(#`QGpPibAOXbsp_(mm_fE zBOBct#n;SGna-olUDV_`3sFLBBUe|~La1#CR0nJ*1$9VM457@82R?^eTn|rf!B7jm ztZ~8*L4Oxi3p`}8aSlmRy!m^m|G0-Nuk8Q#wc*ucO*pwB3%D8l$MOP#907hhtx*C` zPVmV|DNDoNcWU@e`4uL%7Or{XETTE^#P_y$Fh89Cly5c}*5JyUzdhW%; zQd9CLc0KQM^7x(!xo>`R`E!^^eVMyzFO$(l^u3yO7bPa1Nf#6m`k@BH#*g0VbwNSP zNLM_7-BEPsbGO@EvlZe1IoGiX3DK+gdQ(h2#|nz*xKmh?ibn*k!CQDycs*=DHQMy8 zdySK)mKyM|7KWiXYw?w=IlVz5U|BHTB>!@Z8t0VezCnsvrj*iXO(1*P!8N`w)kEUz z>s#)Bn&ZmkVzXXjN3jkXj}`EHe(N;5Nl`Z$fAwoScBZeo*k>XO9qIjnq=p_}e2K2} z+fdgdq5LPR^~bBDHRZH6JwA=+M-toB)?w2FDFDXr zwzF!v=Dm?t7L=uC4HSg;2YFMN{i!O$23=PInUcGFIfBWBePlg77K;XzmgiuDY1A4Q za4v5G0z$OK=tGREwzjy2K3m{Zi^R>MyWrGe)9<0I_TP-TvbNkJylxf>@AbVC!%&Dm z8;j>i!QKnq#dg1Z15zEAR+pc_*&=MUTS+MK>TDTSshf-|W zye2w{w&{|#?EoPKE(dSH)1F{Njq>}8aD)Bj+*FPC1RDe#ZwMl2)A0s{GS;rHhR)>GcQq(!KccS zf=^pI+V|tyUUzG})PdXDLnCVs8!FoEmeEE^L*`liqApwRbAJ$)H2FC0=hjD*iScfx z()Z%IJ&q(l36ZCleWqp2R_W1!U9ToXCkD#V42_0i=uv?8zyTR^_6qEKHGK8CioON1q?kg|Pa?SeQ zSj|%9R|6I7hnHhJ{A@>!KQVhx*1YevYAWp~Vsr;WVtl%f1GQW?T@l{%M@Cwi?cx=B2E&=J%*T6TPg3Z4n#6ZG$j95NUcRV&Zm9EyL(Pl|L zGb}&(G=m@#MB5HaoH-n`CvFOiAHTRIz_}`+2$92B|Nc4SW`Ejcvt<%GI`Oz~G{g7EwbMUjgNUZ^VB1RXLsR zq{is&?R~T06jt+^2;E$j8i>+T0f7$0&6a^>=grZO#d?Iel$xrbvEszJI&hBOYBP0z zwUIbJaed1tB(vBZCb}i)`J~x)dfw_XnmtY9|0=8&*>JNvMT9b@ZkFCV22UH~^y8s3 zmQVN~ojdDfPFf2mHED`wW%_FC4JG7=kx=M7qh)wGvTl3&bxu1-mE#{;(|s%au+^Tc z`XMF!*XN{%Y*vzDNAR}|waJ%5^&CJ~q{vIr4~5KUnCjK<>3<-Lm#aciOBvk5y56mG z)}A70?J6um1!w%gIY*g%8Eu6bE&ko_!rGLxmD^#L%h}X;PEI)ER%O%OBV)VUiIQ!1 zI*^rYovdv7OI*d>l%nvJu+UO~SQS7FyW<6Dg@Nrj&_omez=U+!Sv7KV0o^xAKBjv8 zAuG8zP$c}|asB0!j(zb96=mtfah2w;R*dyp^Vq~C^nTCKIxwyjsP%4M5 zcB0_?y1U?WP?27X=b=cW@jS8D9|pzW9DUK*zu)0}K%EIR-TS2mm3|-F>SiKzs*l-Y z+n4l6Qc@@p>$vREw&d!#*n6qAe0SCXKJ;Okm!E$wt3%09DR?IU-?3#!$7En%L&!+2 z+L@WP!Uwz_parKdK3ZVKRzP0mbg?!kt@mCTe%{CXisGDPdn-e`Et&VqM~r-j!$z+N zEzK=45_zlb6mgt%C3pMO5B8Vpvzf`nwzYP8mV6pjZ({{Se^w1rAX(4Z=Xnqx`$G5< zyHzsie7j!opqR>RQum}BVqz6azhgA?#F+%y!x?$}5u40HZBg-> zhI7BZkn@HT5IZlxLyi#*+3_4Ys_Xc?f&8tP?iLS^aKA(D3 z#PgK+cy6!Hl?a$p=}w~a4ovTDgBmiX8K&BG$gcO7()GW%`L?-lPkLnW zh3$t3b#JTijINF;gRm1=>>80=wH%~~?gO#PG_6Nwbv#SshK=BLY7!Du)Cfq&5p5&y z%xf55qZ2k{X`zJgO%hq4XyZ{56!rs zAk(ARugJTe+&ZO2{N)u@M!)rr-M4Q?n3-{E>IkOCOO7SUnn{#Ti*1+cc(v-{Z@8=t zazL<=;Sr7SNKMlvh8COckZa#N>U!u?B#uojawCq2jhqrpT0A6tQG{=4D0^K`Jf_b5 zk&?nJ5p}#htoIrtg`0dDbbC|O9L^`Zr^>huo*{T71jSx17y9b*j0`&WoX-~n2>06H z+haZ}M8k$N9o>D?8LG#nUQ92dOp|_xaZTE6?xB&fO??N6*-Xq`ax%xrJuaJ-Ha(h_ z-OAVMRPo5v5!(pKd^SCbI8*|;fwbVSw5E-W{Ck=l+4{ZY`YQ4A;a`oA$U0AcZ5d_o z{D!aC0a1}XnF+8P+~3{>t5|-?)u(W@lBTV!Oj=K%`o$cT>}vPoXEoeu4lltY9G@j` zgwX&#hk;+0TPaT;-*esev8JVeIw6KBQfV^<+f`y-Tr0>}o{T)s zKCSu@3-do+L0>nNw_lD4Y)T_sMzOz6{W8y0y^N0Tz7v0L*#WOhu1Jkb=P+#dke;+` z;bgp6+Gm)amrn!jxjyCM#ViIF zJ0jEj8~M<)Qm87H#$-fsqss~VpweO5V6&vUkHmnX|yoe+-K=^cE~#OyEYkCAwf zc+-=4d2G$00OMel8tHi4y!wy@f7rA@x2*M&l-c0B+dskM`rr~uj*E` zpXpgysJw1_VzpGwP2>U`c_-tblh42_?y=g#q@at(Vt;&z@-;A4$BE%mHD_59fpEv1 z=wZpo`_g)?$6yWY3EiCOBu`~ag*8t<#?`)$_Q7e!PLJ2~nwT{|QKtRp?H9+aW#kM0 zpigUheNXSYdbgoKJoH?nLS%W7;wO7)f+D;KXfB?yob2N9BdiE>|%Jn`%V|wpa94pY+ox9_9pY#k@%oJXNQrS7H zBe|gz%F>Uq1rq06e(u_0j08x?{luKl`4be$SZxjbx$5c&hj0O9<@Ke9lFsqr3Ow6= z81Eq{opMqj6TB*ZvA&Xu&2cc+vbN?s?Mis!r+qPOe|=cp`e}4lY?@_BH5<)eZW(^j zkL-OYBH3|Z<9jkA_R25Tij?lU1Q^cO(rc+r$Wt#7gS_>mpfAVDD6y{tX_0&^NX>Oz z_>aaxY z0Z)h6;-{8vs_Ig1i8ZR} z?YbXWf~5J=_vZ`0P#iAlHoH;K5*<$Zv;^7MYxSt`ri}f>D^(Zgst@hag`K+NpB`sP zz}&U|uAct#?R1G^BPzbkEUAp60jACg7D8ldM#Zd?%dCxKCUnT4G^mxvQ{WIB-~A^? zh5;1^gDkhqX8A zkE}9&YM#N^_&44a&J095{2gzhP$9sN+f?>YQ1tQ756zW`fRGFb4+s$dgZ9{rQ5pWB zy<-f>DE){(g#8;OJ|%=UO@0+_{FhGDr~qM#kDej8|4@QO5`=Myv%Z^z{>KyrAY|bf zjAjJ)4{|9%B*h=a6@C9tq5pFo_js!6=~Ztoe6aebiedrvn|~$JFO-lm)BXI3_g75- zoKR!|;vZfANSpiz+`)hm&2w@FiOn6vasSvrSYPARTtYDKKfPD~=$$FVyzz$R{Dlicak3I* z$>uAAtd{5Vf^qoY4ylh-Ri^8ef6JR<9I-3i2$=kyUO?-y;+;NG?fQBEY^*mUbT1qy z#zZe|#U4%sL-PXdC2WJ1;$maR9f=BnQIeTvLcXZDBxH>oxTwI@1Dk#t-o~SYw)0}Mx$RepZx6;ut6pOrltE#QK<8*@_ zmS{!mb{nmt zPz?VpHs=ucC!>r$TO2;)W zLXDzAg^KtlPj^mageYB_80|z#zUFoz$DrskVWIfFyRKCp-!VL}_Go zRJd}|y&OH}Yg9qrT(z1=v6@gsDhK@FVA;`v5=c^}*&C+V7?K+TTTx#1y?y;;BmXB^ zT%&jM;nNbUoW7r5(n2dM%G07r<@7b+W@mBgxni@N5JkP@8@2U~5xEK?WBjL+U6H^x zm`)uS+CBbP^=fJso~4=tc)Rr+EDLYy3Gp(o2q)v0)iyWV9R@nTEpAPvJYvN>^&id( zRKzwhXFK(C{LD%X@Gg<)NE@N}PPDOUAksf4C(DswZP)~A0q+Q$TA0|4x1#KPu&|av zKODvIQ&HD@qf=g2uJ7Pf)!#v|tdI~WSo7l+20CIa+jXr>k_BR>qi0h#{QNm~h$0mxAb6p@TrntF>-GfKTW^@hgU&*m`IR$d#U zlmtkcEM|-Hg&H_mw%J3SghLS;>QdD43~Mnwrq}2yk-(t;%l17bsSYvEIR~5$Hvau3 zHiEtWgtD?|)FDIcRTU-CuG&ROsN~BotyCbspQjqgF zPvJLTDNDR(pi%PD>5_}|S=b!Bq*nBf+Yp!8X~y!OF6hh6o6>yW{I>n_>?S{(*G)4!2!?|acySK&3ibFR1Q^|R zTI8+)(%UVzWxubI`AT|V3lvli=Xz$m)Bu|cW`&AGK@J~yXQ-0adeDo~ z>v~5j$$bOB;PG_qg(V_hqGI2g1H6b(^~#MI5^-NIL3W|$^-7wvUHSZnV?;%z*z13b z`Bvm@-<5OXxpVF{M8bT7x~|wH()Mq@vV>ME-#$HTyHKQ}DAae{{rG+0s?7H$$h<*#0XPZAiQIS@stT9k#I5 zPv%5Ycuk^9^-`{5zV5k6w<#@6*F@!$`9!?R>S3-?v>_Uw8;Dj9EhGoDG4~0g1&fQt z$rbR@$1>cgM)$g{PupshUc<9_BE++pMLQGwT}|!}{i*2&xE~D(V$z8GvLLB?jc(J} z+I_o2q~zSyJ@N#yP%qWguRnyn{3dx_re{+p1-hJ$!y%-rV{W7SoLOmwhF-BULM&ia1L=*XNPnR$*&)*$rF3Pb|4f7KuiwbS(1Sc@Wv+qiHnEyLXDX8Vh5( zj)-K10OsQ;$v#WzFl1t(;rS;S|5_b|R9RdJ^6;Fsq(toVb{wX+_5%`Ac#yLm)oklR zy)lmOSs!QPH@d{ionaEc{5Rpq+!P*6H)@!X>|~(%xivX z3vU%8>eOM4>imX9dTz&~vXZQsXMJsTaT1?m%lwdZ-Qd|L?VEWk?Wgkk^b}fg>hjZLHey`R@osS2pE~~qVmS+K7jn22kUdO8_QV3g( zI`#z?H6!8N$nGO)a)0t{=M5a;n>MAt2YP!#n05pst}k-7`xu<-*v>MEul$sCR}wGu zUy9wayNw%ePw(4CH8odc@^Bcwr1Jr>TaU{QF=q442?|RvBqSn#jo(K|a}a%qDgV3K zX8SUFS;a;b#`k%<_G)xoMlH+RAyx&SGV&IZg!w}UeQP$m)YhZ>bZiIH>#%Qrzft93 zIvGb^vC!A@ivc7Xaw)q$wWiC1jKSxXoX4w5_a1AYbMa4H~aa$-Gmy>=b^3BFekhbq9Et+T;W`&*fq9sZi`&fw z#5eOlT#=@d*Oeji+QvyMtmp9Y58UJQ+Rk`0305vq8>7e#+kGU7Gs5?`l*u4J)Lhu( zayV<3S1YJ@5K-4!)HW1&IOJU#iH>-1d>56Jlr(kt%JE&fbJ9rHsinat7I&hQ%66eX z8`@;tu=LY|>%Bo^Jl5be>uIURnpV|F2kU949?c}G0H*&3PIYhA`u&)Dg(*(KXRn0z zduL+hy{V%WK5ed3X7!9pEv@Xnl6>E*{ioEV1oUEt&Yv{XBn6MBX`f4-L~t?ihDwrr z+H&ae9-9H>@@=!^v+Y2QI+q+4A(|Z#`vvqV@P~CIv8A_fW{sq(UmG$zz*i7zSZ?yW_$_~uuwbMlkL`_ zndGpMk~9*#-+#hUQ|L4pC$?hqUry1gAnSbm#ite@x~nAc$#1R$oQ&t(JMp1H811zf zF^kiNn(|mG|Gu_c%%0vO!SCL)0F1N*G9@I;Lr)>w;}d^`*CpIgeWD&M!*6P#<}nG-j#p>vB6z;2T*u7{o9r;C_gn(37}>HH$sjM33D zs(g^hTe(sbw{rBI)HWl7mFarxQl-M7!Poo#cTjU>af7dWFnZR1NRp?-b6E}d%+V;+CBYVn2va| zQ32c7<@}9b8BYLFOMc2^p(YEWQOyxZPO_bggooAK5;wK>MT5QnLJyQNk_bNMF3zR* z3FNR@6=v!D^d;%LUE$iUbtN(y^;yL6xSP+ok;T@%H5)iF;c*`PV%juh zMwy-JFVtzrxW0p^r37ShVE#YSW$XA=d3V|v;N%sal8BAR;}{DrDnmX#xp`9I<#t~ zm!9g9gKUa5DJO3PJflBaOg#Tg#XuJ=!LWVjmZeyXx(i!QTJNQ_GMH6~K+Zqcr7V~#@d28q7 zvflFgf-ah6u91ELnbSpC-sv=qhVDr2+jNN&!E)UU-`2ozqZ9_SVbDM=e{E7u63H|l zj(&ad?<c7Yr__DD-o2R#gStL zxsu=A928^PzENU(T!;%d^S9Z_C$#zC>F&h39#Qztug&X16zC&Mp@l@$ON1h`_c^9B zfhHq$&1d{hsdF3>N1&fzju;urunrcTjM~DCG}}{tEs}!+hgwW=CnKAS+<$CGGWoyA zd#k9pqIGL9Kw$|kA-KB*cMI+sToT+RxI+@$q0qwJ-95OwdvJGxLvPNxcXYr0Z{4HE z;B8A)t@W)>=bS9<@}|$>b~~TsHLMBIR*cLR)C8u=#1MSEz(Y{nwNl89qj$brl4a&S zFiW0`i76Sq!9J`du4d+`96bY=7M2^?f8BRIjB;V3pdRZ)zxkjic zjBO&)5eKj;7#vBXxgu*_yQ{lNj*!sqc_GF;U=SbAll{CR>w9+qI~0;6E1p%VS(DI{ zO8S0UQ*du>73p-*{fdt@k*2MA-F@?giRdJPm_sGP%Ou?j%b@X55F*$6+MD4mKgl1& z;xF$uJIf*ShiDW1EcNj;3zW_U?s|Hj5{frmZ)FTw9n~NgPu`0r%F|}Q9)hOZ)z2-m zUagWH?QR`3o&MQHeq8?B)^h_r^0lM(e39C{M>k7?KmQc(!3P%-M;#%M$l4f0_W{Gh z=|JvQt|{^(KX2R_3mNZ~+JOm|V1JeM4qfwBpw+(NY27dZpt51x@si>J@ExB5(}!^( zlzEiM&nx?mOwd~tVz`FXhyXrN zL3L3jae!KVkQZT5{Tix4#L<0ifrJ%}g|Ve;Vy>EsP=qnW@iyd#$o^s*{#VCto3fD< zm&EE0SyXvE8jE)(A&&>GpT#}0sz>xb{#g)h9vD#S!kUg2F`m)+1Bi;a(;Yym53=R-sg8(DL2RV9 zU5kP-(nTm*`=-9Tjh~;ba_RNw?>*OUC$1m%DnFGIj?Na|;r9=3%&l~=-ddG*j^xdz z^3{yHRcxlusFg6Eole#i$U~k@GP1*w@^oz%lXFqt#q{ZNz7DJXqUp`AZ%mS(zX;mB zY^}Nll1!tsAv+b*Jbt`ANmW~<4$n)3yo~|$p}~6FBNbgQe%OJJ*86E zzCmtl#{50mixw2u6Q!`W{tARAX~X>E!pgO zR}5+9i&Vx8?)-SoXI1WfQPwZk+IA*bwupR=H>2zZqdSnK+lV}1og#kqlvJ@mEIf?~ z0uRi#cx~@SueC&9lJl#w?(m;%jt!dHr02eyOQ-T-?0|N&e1|6R2S0HZ(G)6@{5mpyH^UO>_~_7kC5I~e;0!dh&y<-%c;hWr2P3+o z1bQllC5_d_d%LmM3_$ad14=#f5tS%6r}YF7Ps$fNIPf?(WUZT7U`lT;pq?rmtPK>v zam&p+jmK7a@=auyJxx}&jV{I`vL9@pvF3A5IEm;n$*YSVR~p@m2k6cwp3oprim0$e zW{~@JwNQl%v7O@z=fCo6C$_sDsywOhj4WX?ScUACw4QkDL&kFsn5eE7UK({t`+s#V z6#rKXAWI5Dk{6XB&LyR_9G67_m`MuM-KS4{zQJzV^&Sa}T;XAo4C)&3iT2n!u0w-n-I-Y|*Tnt>o zG8BZOgyH7AoC47pIC+VnE+MORK@Q&oBqW>r&{_qr@j?dS>j_#sTzY;br2ykp@Cbw8FH<9O+y&RiT|B;2Np(Mxp+Gzc=P1W?W)dKOm_0aMW@!$7Q z@o3B8*?Te=S}?(~oJiO=fno0Q7%uCj>M~~1hV!hcm8Ka=x${tVFK1*)$AwzH@CN=? zf^V-BAvEaU5jl7*;P8ipjMd6zmGCrd)mkGh6X7a-?b@}6U z&XZC6cl63&O4NVZPGZ9{pfVBPLV zL6bad^ol@+ZTCG(>WBvj-D=XSbh~b7pM+S|RWKj}xJ@?4X zO2YK9Zm&d*%*wK>xOAzAgk#`ofl}Va!4zckZT5wQNzFZ)zT)5`!^mg=y=+a2wv@#v{T%ckf=1vK4UZ!+@@Y)x zBPI+7fvgxZFbgXOxsm^PEx(|+AKSR$TpUT zqQ>~VNeCG$NQz$3{xiyTBYJLkVI$m(7|51dhJ&}@uMZ{yCS7%)T%QafV?SPd@0~!K zIS&|D1*&(HhsGOoAnH(dMpq&E&9 zg%&1bM2BILGWvBkpR`!`il8GO%*JPn@=iSH(Sm&|GhurOlmW7dd9Yt9sz9y=+06lg zyp`*5mVAo}z6bU=$A9@LMoiiki%nq9Mn5=8stGZo_;N*=JY z$3bz)vMleAebJV5hev5Byd$rEV@2p_N^@&_fYoi5L~z~V&4nA>Lf;=1Vp)8Ic#;CM z)+OqV!3JpL!vx`H%&q;7G}>BHTJgsi2_*ct-5|lUd5x}OHlUsI54mtU%@nMqCl8Wu zEmHF-)m=uHJQf!22N{xgYx(!7;?Apv3$Esn2#3^fdu_Me=Hj#jjkbEX^b`e19=V?6 zfk#pkQt5gKK`W8MC4TDcjXGwb$Y%p-t8KMx9Ni~Vh4UbhkYOWbH%f}M;;7udSwXXmzIB~ zmh?Y^BlLh-^b&S~3x7#@sfy=VY|W1%gG9{~{vQZ7t8pR_m8pYIcKd;Vbu1+MW%$zL zbvl=EL2S9G3#LOy`HG-FJRg71`qeHHV)-d%AHz`XIg-xaO!jb)yA zP95VSJwZb~V{E`|^&XNRq5mVK%dF6Nk`1~Wu?iLh#_5OT8M6lx9ao5wtcuf#p2KP6 z-7}lyJe>eJn&cayKNAajsjyLDc5$e>jdb>PD*qAx&ytS-*`~JFG|d?uCy&;*&24Nq zTrdRuX*$H^bTnIzVD1~CQsWdQlold$+9anxR54r1Z+At#1Q=;{aG^qt{z%iH_2vm7 zj(9ixb*`6SBF>OnK>*ZXeUk9e9F*mx()_*x|5>uc@SIK7P^e7U>X!H|IdFJ<+$|kK zhoXp7gE*{Zhl>m38VXDedD?riF0z>r+}xBp${j3Y^m*;R#<-7nWgF^I5QbQ%0w9tt zFQ;WA+FO-QmTl`sVzmNY>$x} zxG8I;{6T)RrKmkQW+Df?@mpgW6K!SvNk4jiIH+5Si4Z%jgETZz(vzig!6T=oKg-=f zgawY=3>cw(I%caMA^$wJD0R?t@_gFdQ3j6kZ>u60g%E9jf+^{t@-jROA?t)T`5MO# zoo`5$7>L`Fz@r4%{HmaTCqiPE^T~-9w|`BZ+V14m2rU-5`SEwU84+s{->VJPn0c`e zHv3h)JS9eAB{rI9$Iv{Y10*G&F?K^6P@xsqQC<}@6ZiUXp4__Zrh_!1Gd6rFs@b#o zdEv!tDmt8hr}O}P%r8jsLd@G!GD}MG?TxS^OY@gdoP~ zc)w+>gcY42)j8a+L#tR-eaz>UzEk5Vs&D7Fc?fvR!@`aaC*wv)vzI zU`m_)J5mU8W1kzVi8?T?FiYgqkZ6;lVH0K7mw@0Orq%V?f8TqRZOaWu!Gq0*$3;hT zg?A-(DyY{@9eC+g7c<*^H0X9VSPe(FW7f!~szh~&-20T&%srQemcJ%E_xE3aAFo*p z^%tG~KzXRt`f#o5aep}2NlAV{5m}Mq10zi^>hQq z*F+haAzd^~(81}On-B=nOKK+s>Tw~KtDyr)R)glWhCbos=Fh4t{N}_4#CScxpBS?ayL=o6vmCW9kG9$!eDMlLi}7Q8WkM#z++z4H zCwWsUNsFl|IJO@(z0|0gRP_q|6mcFLyIqF5RvT>-x|bACz=ic!{U?SRy{^pVyERhY zI`SKi{XD#5#+-431O;UVKyREm z9ex)e3`DS$xW##X`}Pi5sbYze*8d1Og*fTexu(lWpQ$1;XXY1yY#8J98ewp88Mk zH(;i=cms;Z0*GY8sH38OAf2oVS^+-4bgJR3R0ttoo zC~jImeIowonR;oSIgvl|>Dc27K%l*`N_w4={Ifq|wlWm&sjr`2`$Zysp*%Y(+|Iw~ zH-?RWa()5L@O{f=V(0Rw2iJ(aH7};K{B0+hUKzOt2DmAUSWkgp?td1W(`do5AuyY( ztU0SR%1YU`;N;U(EajBT#7{VR;3AqCXXzsD?KOE;fz-V}o>$pf2!cm0W*#Wdt)}G6 zc*QPpGo-kua=?nGInEBAAQ7;FQ`n`sP7*jQe}DlqD|!QV)JXk8eewRh}@iS zz5Egza?WzLczLNj&Ju_*>v-C*Q9JyF{2tSU_xl3LQXld;=h~%`Q*JJ7fsByy?Y|4t zurK^KM;Nlntz?gU`t0B^cg1I{cU&^G;6i+pe4@B)FzvdD2XBThoBMY3)(|_UB%)>G z=j#Iu$<=$8_?(>`pvhv>*rV6&9#F_355yk}2{+LrklU&CXadDjE43c2Y7>iu+%KK` ziNN;+l!eJFA5bkS>KX4nJf{-`a2M)xlT$^+{?~iVVnOi?yxi77Xu&uINE=6$R3+~9 z41%jvzbuRG!I>qj^dy}bV~6X%c+ZQ}ez0&}c7NsZwju91_J}b8LL(;NVO@vhbMuJ&Ymap~ z*5@dxRBTqxNQc0qt)6Zu*qfTrh?8kES_AO!BhPymUcdcGG;-*6#Q}g^&ZJ(T69VXL z_8rB@X#4>k!{%Nml@HNVj+d#JP=o;(=yNfA3@kHDG=2$J7ZD2{xj7^A7Ajd{&M6lj za{m-K_f8E>=pvpf+gCM{C1}`;Q0%Jw79=vgmpNw=QDuXVu)g@(t%?sGd^%Z{z$({y z4@EPX5UUzopocJ^mj`h@%S*%MnMsU4*jIg2##<*M_mo2=psSVr1aw9}BH!%LA8+He zoOsn=z;~2WG`SH%Lwf)Yx;Qaag7*kL8kXtx0(L{XUosyj-I?x0Zg^Mpl&vW9T&m6W zq8ABDQBjbARDpKfT9EPZN@!l``}eA3oC^fd3IxE~dG0Z*%!B+lH&yET*+V4r+qQBn zs*hQA&}V&HRI2)GpJ62(tiM%KIr-_vbn&t0^-04vGv=YJ*1mOlH5K1jV@5K_RGD zfDRzedTYYSXgZ|w0Hh*us<3^l5c^2)}zrK zQft+dVP_5DC^i*X!6i&Vw&MlQjbFAss@uIzR!}${hJ6$n@P3Fhk;pN=p%QI^K~Ng5%>p z2FS3*A-WXZmCN?fHVb&5AKl8;UYakua{jDh(xfXMEP`7Tw>KUWXjsqqqOl7H zRN7%BN9KXmff@$VOYJ^HJO55;ka4fA$C?jb&wRQ3Ci+VLHv7^*0cjl;W`!NS5HBT5 zdUL--v0K<69*}iT@B^zlx)snMl1b#B10)Qy`GnvelDS#=HmH8ubfxJuO^Y&f8eUC9oJ^zTnE}z+)!dYn;8>8o!!7TrYGdR0T zG{t2vmy3d_+J0bpI4q%58y@zM;uN8;4H1Avuib~uH2HOAb&FpwcR*-Zm_jRbj}$zY z8omatwvf;{i=b?l@dyC52xCS&ICpD0@z8Gr24NxOokX?^G@_kwC%E&pmf;~qGEZ=A z&54M3h6GT*U@X&tpIFF(xsN>-Ch~p(KJOSw*v%FItj?U&d_r`hgj&>THXT-2a^0w8 zJ#*QKuN=czZ2kd7fA-5uJUKl4gTrBT%>+3CA-W%rhGcR?ZgZrcH8IbC%&{Ejnaei% zK?Tmi*zzTvFzEJu^s*X{)?80b>*0E)Z6V}(KAi7 zBI$$0s07`26J#hTG<$xikr3W=mM`z1YCtaM@s@8CFYR$AaI$Y_ehcpoh-?w^&~0!u z5*QE!l%c|FU1a9R9(j0val)>HdDA zKoQ1^#mo=ypO08-wlmMzj46Ju>@_F#%H+@*v4gO)OA}h&Mgl;YU_k=7i_^y*8QO)kvSS0GZbvmBg)yB73xHw~ z^6M^G7udgnl=*;wu#DRUk5-x7`KOEQef^h^z>B8VN0hWiq!pow_u|%$$A6&^_7ed| z=yOFxJO9p~O_5km4`cJN*LbCgoQ9p@cglnO8cV`3b-JR6mpYI$33s}KT4^dz2=-uu zqJch1IO4Gx+cD&7cLLxb7By$5mM3|UivJFnQXEcDUA2QpRkku<=Jj1!@aSOlIhB?f z9@)i=_OiI_x$v?V<=Yus@bv<~_4W)<$C%Cx26rgX5g0V|v{`3~Wtl;z%>nPaAw;|}PDI$`9=ZlDl2=(*7neZa&CM$N~CjhGcO#}M#-V!!7KaBq_=H31> zaZzol9PI?LkAcX&`{NOR%({%sFc_NSR!8*o5RkJ6JV(%5;G@xZLxGmZj7Hy!HSpD7 zW_sGc@<7>cVD{Br+OR`zD%nG92eySf{M|?sis*+ZdBoqp1Cj;1Znr?~cRPwho81_e z195UZjQ8G@JH$+%A9ajQ-!&w3P8#*^OZ^GK9@&6~{ztI^aBVpLU8DK<3yXr9si9K~%+Z<&MT z4BwoYYoxSXfk{Qt*=zii!tp$2+SEV%A1FL3 z^rw)eUt~}Ay#BQFy3(|`$=97mj$aqD)!y1SBpcSibzTT}S52}ofTc_mEEHnAFZw5^ zb@AEm6$TKx*e4C7M#xhJJ!6{7S#>A#(rlpajY6^cW|&&+`Vb*VkffJ5qh;%bahP z)Q4K0CiM+ad~A(2|DqRMQ!qRBYwh)p4FIpItU5Xpm$#ZjM-aMyba!)`xb9EScQA|E zDCu8P>PI=T_+w=^g)({uj|y8K)7YdDf9uQr_F z5D>s5H0;>xc=`AhtdWY9-eUsD=Q&7{#>m_i*P0o4$1w@|GQh&ZO#zT7**A>bIN3i+ zX$WzY(*L0J1V*=-HdkpqY03D*iF{8@Y8;yFS3a>Sgf%p9rFrijZ13&K3SB+tXE5H2 zG~o+9SYz+b<*wGAw?!S^&xSCgHn2Zm>PPi3Va-*+04kbOS7B>efcz=N#V58)xn2Ft zJDWZGK%`?ujmw`^C?`MNXVzr`7E>z^#W4(oJO6+tdL2K1bF&kICib~!OmpqMsRh`N z+E?pTH(KpndBOm6d20K@=%BrSZ;HcJq2TEm-klvg7d)^h>yv9#+R2pmIWm9L=jWX5 zf?PH?AV{}go*Y$tTXVZJHSwol!WED~1g{;N8RXjeY88WRr_!;Sjrs`iMni#obOR0( zzjH{~7PIL#hMGozE$F9qgQ;sxQDZJx;b3~%+O4gbT18h4^n6zScn}G{2T-`3JZ`6% z!4OD+pctQP!Ne<5OVZli2BwGY-{r#^F_PcdZBbFEZVe(Ip==;OuHC!KkEvtg6 zv8njDGA=KV#vy=y$}dj4b!nJ~>+CsysOynqT+3}$UEMA!L*EpaBYA#2%Mx(TNR#^4 zDyZZN*rLKhwG2<^BbgJoT;3lG2UsIAEdCmZ#7nhxf7}KU)Ub-Idt;OrtBiII9i5D+ zYyMJRnX{g4kUkjy{ZQ+__0WZXrbJ1+VbJ|bUs1TBT!`u{ADrW9+paGV7KuQe%!Ymc zT+uFF)4osK&njruG;&tLKjwHv{Xe1)#%FB+KFP7-5GAxekTv$jbPH6 z+!|hD4GsMq9l?ga$}4-nU!->JDBa6>=45mnXJmP%umJ0PK8V@(}8UT!+pTHndC1t5A?bUv)rWW7`$7aEC0zjOJA{)0Kw zc!5aN z*JL8Yw<4=&?7~@pDaB_n5!>n|FJN2{Ank@lK{7gY9^eJ;H`r&ZVw&{Pb-Ihg*aiLk z(hxUPZ24dUT#+%OWt+VD1xni$)ztsCbKWZJPt?SGWPEA->xXwIE)o5ee+nFv$;0xj zClSnQh;daG-iLH*EJklC-Cd}-Nm)P@5{%0oE2#`u^lhg>LqhFiaMQUlDL7mV`31i< z#$Kk8jg-s*ldZ64P_3se$t%Ky`K%(IJ>*k?_!KjhDf&fC=$UtXB_;Bdw7HbEd3hNF|4gHF&*Z=snE@1t^I`E>4qn@fVRmhjLGD;IhN&O7uJNDPaO!`UUlVV+mP&UN zL1R~p(ki*z5+ry9`T3Q+6%s(NPx)>xT+C$K0g&u)Iz4AA{H;;V;W1hSGa6>{gP<-U%QL9K%}Ars7Rra1X-KeWIp+6 zwD+AG-`=CVCj*FV1IrLI-pKw%DDm7yeVNqX5cS-^s}s$87CJ`8obG@CwW6#>ivaY^ zEL6Z*xQy&YS1MVqw+py?R8DP6^!<7TsvjQE3C(*xs(HE!etv$ng6z;3HxEG0)SYK% zdq=s5Mh!>m9sQ`n-|ql(R1)}q1lzr#s+V$LP_6^?6i?~jC$%=@mxkzg3k6#ybjRO* ze)>Rtv_x7U?(T9tq0G@m#F5QT`Vmtp#|d?IRBC)EJEynzBVXN4uX?K<1t)I`7zHh$ zh?lSa4xwR%PlYfiJDVIFpA7W+QqG;+S%G*+I*=ZLQ> zPGlZjmg`nsgJH$0*z>ugYu8``QhMt;?_G2!r!nVQmsUoV^@nh2AZQgLzG0E>skF& zkhU2R`-nbtJX{|u_(Q#@si??MwhFOw2z2MW9rQXxSQB1etC+4DuED`TLAjCv5P<4mJh_w-~(e$8vbuMTqGTh`Ek^YzM*(#izj7qai9 z(9^KziV85-A1{bUF}fvV)2V09!5Hm^X+jwb*|LHQae3WlViCVN+p_(r@Ej-lv8}+S zo9f0v$|=FoL!CbJI+N_1*vIYq3gxkJ;eO*gbH%mBFMK=3+WttmWUr$8 z3olTG35e>roaR#kU|B38Z@B7^CP!T)Jq~v=Ksj!Tkj?anCx}6zWhCrWYAK-m69ZKs zjt(?XdozwuDlUHf^ICI2fL~X$?&bG7zUJQ9uT1FcHPceM2BE}}uHUh>Ho}L=$NNkO zE&U>l5KTmqHh~C*q3sv_g#?k&2`R}k^aI>2Q8XbrKRX6qM}}u{DzZb0218XAAgs`K&Ede=XUGAyezu$+JI+DNMd9LSu zCNdzRyA^oYp2!%w4LWO&NO#*6Qd84qbyGNPU?OUFJ6XMjk6L`l>!`^1(nvIVb5n2X zec9}E1QvIowB*6C%k(sE!UNR)*N5@5r#+3M8YL?sk?Ibsp zpFg4H3i_WQU^L0(xG5g*%xp1A-L-(dQl;I30C@!5tEDXJy^$n^E3>@`Vj@q={l5+! z6-GNJdq<+K&zl9;+-H*7>+BDW#@zJg4&JEoox;AChj>2L`|eilj?u#J|4IS#wK*kG z?Y6fxs4~cF0efd~H~YlW>Gn_)Co@Eg10iIW=JlI?cf_n~ziQR`ZkeCF?m>6|Lavh2n4{tE2N6 zvcuEUEDKfY>C+XMP{RaHSv+_9J;I@a4#8V!@7F{6c=*2^8F!ch*W2svt9i_N&KIyx z(f{%QN|Y$1k-v$``U_3am+;K~mw(L77q8{{xLT@(b!}-c*E2%#t%22sJBL#*PZ;V6}iXX)7_B>u2~u@VoFoNcXJIp_U+xvcA@KOSoinXw+m5+{@Mg#JJv4Or zn;Y+11G_q)$Q2|58-*vs8UjZSh4^tCB6~RzAGD`v*P_EijryneYHuoVREIXw=wWVV zmfm)NSG_!&+a&y~NNBCh3w3AXD4XESYo7%}BVEqY<8twJY8rK|gue&VjZ8{TjbimK zY<;rA$BUft8|C@RtA0*uX^~SmV}~l)2LX@qvv?~psCAdCC@f04dx`3!i`iK#8dAZ? zsaTBtl#G|qo6Ml1T;ws;A>92&Ymz8Ij&ejY_rfq#RBQd32=p4^Yy`Dj=f!mrBmU|<7|!ABYl zdR25(1qGAic8v-=RO)fz$)U$95ZRX7J=z2f6C1*|r-puWcw*0E;&Hlpx{%WQ491%5 zc&izA^YtIo&ZVUa`2yCnur*)eaa+jEjw0t%M@zZ)#z(S>j+d}0O;xg4IXy6Sjxctp z*(s8)Pz_~W;a9!3oUc1NUIXUJUt{0ScTt1n=^vvTE|b@oD`NGDfS zhvW%oBNkerkLssTaRYOv&d3p^oh9*}gH9{D2E$DJ38C;oPR9pzHiqeWCM1Li+$lgQ z5YWTN%NJ$$X#5wJJT?TD2K9SP33HQh)w$e|t(c0(MZ_#QD)QqqPWscueWC#>k&efd z*IEokOuO%}-GQfuUb&nf9>4q3u!(hD>&0o%@!G0{o#5>}CIj@&UzZh`=tNlD2720( zOubTs*Qa@36kFtvT})EIv>lOp6VGcSq@bv_RfX1K`=j9rVVcwOvv0mIk!t%bSHnaq z?(}|`JVa96Ze*SOih%7RIL_N8+z544W~C`?cRY(gou3R+f09e*gIGP2Mn7-8T9;_x zQ=Ut;R+OJztc^nZgDT1<@vGVt`SF9#=1WVXUGQZTK_2n*u0p73;vHMmQ;fdnp7)N4 zkY6U+(?6(;6oAL-t;Er^{Zc9utdFS3nALDy0TV%_n zTu0Cgp<)P%JpDRqwezRW)3*Lsd-${Q#j*Ek4)T;5^oJHVuyZicGR7m^aupm+6iN?^qWj(j= zYkyFX2}fH07rVzr)OZi)DwEc*GBYbNaFYN;*|i!2b;Ci-vkhU&SCra*kQGOZ&oW{F zBOe*ka4{@>Upef;7MHQ^R<^0K$3>#u{7ukAK1B>C)p@Cto2p|V*g46SJA-kqWPeeT zI1}IJ-gBw#?A`5X26i4pP0+f|<9(&q=(G8D+0b_SefODd-cmE1iJb1rKQh;~2UQ>c z%gj1_PTCqjMV)H%&yb4;kIz}j%+_M`E!Rmr5#1!;q@XpaEyWw;$ILo|{n*~h_!y-<@d9u?)5 zY6Z3Tql4+i;OBw$^sl;CTk6KCpiL%hjndDYHxc2U!>(1k@?;Dq{4>{vq~3J4Ym*Pl zP7zHV`Hv!(;3&D&58J_Vn^Ro3Q=~VzB^9Ibl>GvCM1xx)@@Q!Glt5*mer+mjUs)Z) zCRA72_+I*ilw{drXJ@H_ii4gH^5A*=VU~vU)tG=i?H5Dvz=vqL9@f3shJw*@w=!#o z`2oxgIyWo!|8aoyo{m%7gD_SH5>?lwBku?M$vf4}k|+EW3U?xcD#OC!Cq6_GnKa;3YK4p*ZW}gTS6NN#!_vXdt81t- zD<&M8xl;BZg1BEC+;=*A*r>sgWFo?<&=YX#n=7r&sg(V>XeZ?>x%x?y39 zu}R$BWilMr(E8E$&DI#p%4U>wjvBuxV<2!xze}g#>@2S+%Hj=qMHIJ$X{%z6sryZI z+{Z{mx9K2<-JibrtZ%;^9NPefnoRejQA!?A|8bo3FCYtqW{&|C9smy^<$g|NSfb3}!`Kryuca_Ju+dmY&^ej#4n;;%5tDh6FYh`a#>Uk`Ok~eJVy!t-joauVE-aKt|jNVR%v>!~9}GEFL1Z zHAkkX6_`b%nC?u^qJfWxU!+cz%Dr4RlwfZx1`2TS`i5v>UQBMKcD-E4b<#P?kV;YM zLl18johL;|5Qqj1eF_YT)sBev;A=PE?;4XLFVjyt^EaN6AhGTF8yi$O^=7jZ?i^0Qe4QR{>U~l%29E zzWd)cTlpIZEZ+0hZFwom&Ud$a*;FK4x-;zd?l;i7+K&R_)ysp}4IT$agNnNij0r_w zQ92i^6OzBMJ})dV`q6dyP;o5j*oP;Kj^wh_sL0=0rUC!S6hWI@;)Uef8xjgq ziF=lvJ@x*@)Rnef}sD8kV2TuRu5Cw3kK3tEpCMD>5)D2;JsQ zun))=yX)3g1R2eJ0an&Y6xd=ey}zxY;7W123^gM9Q90S%+B+KF&V+->YMH&S?(2Z8Sl zeQ~BVk*?WBpn6eOX=rP)%!bf*_#HAllmLbwWpTg0!;iH0k?}EJ#_|UvgGJ!Dm@n{m zw|{b49XP3)xbs|lFpw{AU1b(&0P4hlSrpbQFX0R!F;U^k3W|!#-~$nttKBMA8@nL! z?E(DUum;l)hOTe$0$~Ht#@MWe?|wC>JU>d}xb50dplN6nQV#Z&8K9_z%2D5-iZl0_ zH+P(hsxMYE$7Hq+g%&jc*i6kgPz0-jR4-_0;eo#oGaBXUcg}vLk~WJS+`S`rvy02c z5KpiRDAq7%pu785XtL1T#|Z(k{AL;_ut=Kv?7gbWS5bF<1w2e58AmoYH&Z*L8;1{v z?u$rb-p~#)=ucgnqT)#`WrDif2+%ITK&B2Ry~SW@^rJbVq+l$I3TK?Tr401waJtwU zpgg6#F4e)z1>18DvP$l%!2EOksS%?=F^k~_MQ*CP~ z%0=ngMCUtR?^C4rn;onzSXKl!9nwF4LDN!Fh5m>lNdcc=IZz@LD!!A|oiPg~NcIz( zTXe|ubJ-!zTa26DFO4%*#%^&#O;l47L4*^m_#SY;R-3|wqYSGD^=D7oA8Su8m0^L>0}S}t?>JQz^or}?7~H}X9o_M zB&MW0g=fmp-cjbel-N&-vOidh0Ho3iIVC|$1JZ8^(uqZ$O2QP>7N-{U4MVIi+#u*N zQoj)KvA>Zj$$leCWu;{W&!zk(!D=qi$$T7X1H*B6OG`yK%Rb(Y8RtK;QU@&vx*Ng9 z7U*yLPYn7Na+pKB((6A@@@ zQ`75r2zmR&=C@A_vlXT+C7tMEbET~P=A(rj01G<_jp9K}OjvYGMjkr%m6F#B+TGJb z#a+IwgcJP)8mb%pJaeDD$AC?@A*)Li@$Ni5KY0+5osv=?mrh_LF4|b#4kxOlIo3F@ zK*>!C&1NZWPiFLsj&SD$u=;q-k4o;O6a7qM#m#U-TQ~W7{DHhIEP)@5<+C&2`5u1L zs3@`iMAYT~)Qcyeq8$5&4B5KqmX>yKTHEAN`}1BM(Q90% z4p)of+Q6?ODhA@${L60`aI(%#Oya+O3&RFsgUA2D1hDharkh?~Cb<(JOV2@0d3D8} zt=sVAmlg#GJIk%!U}`=HooOW*?ZWcxBoo~&18SiqiHQU3SC`Q}g$UYz@B`s%tZLiy zzJ@^Oid3Z-(^?suDahmjVtxew56e>e0FTD4t}cDK=<`{#N?}}&9g^Z+cEGuITRZiR zP2VINEX1G;zd}m`4Pu~vCp+^)UFv`gM1iM*+XBd|JLB!26#%Qw;wjM9T9`1Od8lP7 zC$r`E+&eQrU$AGHZA-Gj32gLge#ztnCW8IOYk8O8Vz zx4DWJta#8~qGp%g0?Ntn(;fgq1P9gVm?lDKav14np>79+e3QH%8;`0A*>v?XCKxJh zk)^81Sx09_vWzqNe1U~%2#w^x0d+lgu3cn+!o`n|^34=7p`@NFswq%L*2#l+cMm7( zljn1Dv>ln?SoY?If<~c!=UUz!lOs%y7LDB9J4;{VLHP0T-*^f)a!x|KlOWh?wL%*=^|n0}2@ggT;Wal&Q?E*di!{QZ7CLDMo;{F{18@@m?JOCp4+5K9ZMXg$l2h^Yn`nqrilRiaIZ{j zr;GB2_j}Vh-MfXd{Pr1oQ$}FKDEEfZ20ZW=ws#i4=MO%wo89!>KNNW#Ogw^~(;X5M z9DMl?U*0m9kLaB}WMQ94(GgOmGIO(2wlN1q{ubm@Ovpq|>!^H{Y~qj9*4A>|gry@m z;1=Z52q=w)1#Ia(uuEV4f*DpI!ZzOIHk;$8Ph=@WI@M`{c5w95+DjU4;l*l1Eyo)- zSw8J|W=CtT1lkqU(CHqyjQOA374zc=s=yyR^N3T}T=URey5TBo4lm1@^` zaND<|N~-^S%V~ZAIgQ{0RGmF3bhcc_nrF1WnaSZFRSRaV_UMmt8QG-*bq&d@1WN1u z_z8t=1P%fSg#ZsijWKor9wdQgZf>2A%=d3PMSfYDbEZ8!{@{Ahf?P%Gwx%VBQQ1y2 zdrn!@5^W;#oxVk#QCO;oFzL6@pI`!FQJ&T@b`H)^7b4y-CY%ha=&t2lD@~0x!opm@ z4|kr%E(|Wgq}lDfxEz#I%*tb{**6zQKH*lAs_sqBn}U~}QBjkEheja<%tiEb4jS5B zU?)_1-Q(^9*-tZ7%hz17KM_LK#moU(Oq|~c)5~S=G zj{@}4SDV@^#rlnZ$B}H%01-WsEaHdoHv;I<(XwmKsQC06^Lh-K3Ej)JcEQW)i5n{> zR06mJ#qc0#Dw3R;BZ>zFX!B1F zJYd+r8PNYme&J39Xebd88I&|aJ+<{28FWlI!_y&$>82R*BtAh_LLXpaX#SQM;+GF# zgG#9;)|O;kS1!rLzYlGbBC-p4N^q8GSEX*RjB@F+$t9sr0j5>mjSh-t+C?FmrUdZe6Up{v)|~$WT*>dYWuTg^p_%Ps{t>Uf@u0 zzBQ_G37J4pHVCCYr?jC_xSG3{QHlBmX8K;vm6=sz$W&c#3bH}yeth%a3zgA;d~M^5 zxjmo4+RCl~XI-D|I2*W0HkcTA8(;>MhiD@-AiyP_zbr8qwic)8yIDnS_7QsQXzm5( zce?_w>PG`!#geKV+6Vg5-A&8OsTglSWf^zY}Iycu2|iD_V*OXjPx zBHAa3cgm$fe>+jhF%iyh@&qGyx86@JElKDT5#^lDvCi?3*RR6xO?|3bR@&PF%+`Uv z5zAk2O&`gS0b2iee{_`xQXQepJELq-iw(a2z%GHbQv^tL-fK#|{}1@#9rPR47bVaC z4EPyuf8SsMH$(r8l=gpaM*`%3dBJe)z$O8Q^{tomnQ;tw{7?`yrK-B00BM)RwHUk} zY-T>_yrh=Z~1l&C2);_lK4IY zEbeHkkgoMoUi0J4VYup~@m_|cepc4izqSTij<5OT@*ileBq>-q?avn{%R|EuO!1tC z%nDdIUB=7{CL-6K6DZxu6w$vy0}n`cg?YG-4!zcXCD{BBt6XcgO6Rf$N3~{ZWLm7^ zqL<0{9`-KocntD%WJ`Uo(+aWTG9RN0A3ld%W!puSSjy}IV2P@ZTYJ-VG4bu~Wk89h zbMe50IFL56D%fU~r(mK7;*Sg|Vi2K^CMSp}v)0wR{!zdiOO>AYK4L;bLCPk4bT}X$ z?~saKzUD42x0SWoBVE?@znIth>|Vl*k($lDJe`tfIXpsJ!FB0djqv<;!>R zwfX+$asO2JFTj-$+rx)RaPQo@4+U|xBZ+Cw0XAHc1${y zlmtqxw<_@MfN3KN4@(q`}MZ#BHnFC3|pNfkXO$phvMQDIc@pbeZOxiJz=^ zP%O#tF<-c?wG|uh)bB~~!Qu#&OG{1o%mmBb?a+SAo5E(bIJClD)t6E zdlutmkdw3jA5_Bk6wGe6I&yHej^$fWeroe@VC_n4Zu{JIUF-Iu0*h`iS_2Nj}UGdu0F^0$?dWh?y4DM;RNf zwjO$6&*D5K?6Gk@JF_||@LoiW+ED>65Ds2`HOuSJAiObS81v%#;!DvU024$#+;?pM z;@B}3oZ{#21S9^rV_X7jhS&Rba=Ja8`N27p-0TouUiXzz`=$u(R@>IcFV@S|k*i*(6|Lm` zLh>$~GB`08^2s4r&ze4xYb}Qkko8wO@apOh%;OcqS%RiQ4idSs#Msq2fZR2rpm$Yco|pac&0+jV?$}w<*!2GmI*;wsz_- z6z>UZ>nY~=ZDmC`1Xur z!-_2|ENtX`KwMRKL1AiDX=yMFinjHiJv}^e!j()$!@x%e2Srq_RllV7`e_W!R)spk zxjk}Oc{RLqKiIAswdB+|?(Z1-+-?p^Jl>uVFr&!$|I|V3#GJJp&(uNvVz=d5k=@JF zqCy^|oqzk|DOY-@-W6ztsG+e$H)L68z~gwY05WJOl2GxjRk6<-I?Fnc+LK07@(G8= z!C)_@l8gC4vg_WFq;i3vZeng*!|zI{r~k}y|hBwn__~7!KJ1C zNKM<3e6q#x?~f>TL_pdV#@%I%@R^p;HMu_X?O@smd}a~hBS_!>WkN}pPX_5ZBPtR} zl}25ic_QJ$N76vT5LEGsn;k^5?g9Ia^3cOO3>QD1-#`g=(6n%5IECfvYncX@@5tI; znN4^g?Ct{5omDIX`t3&F!D@lu7QqeO;(z<7asnZ36eH)qcK)hB$UZFQ4R`r(4^|l< zw{q;E0zxSnI`+D386gaTRkVx9(FLz$n|pv&+ze}-oUmKr!Pgg{!2(AT@Y4Z)IUIoa zUQf`DgtabtZJ;HuF73hX@5wv9wJtgu3j(SbcC26^9pHFN4jmhFl+Zc+_>-t6RW3pC zYJO~WwJ3_&tdXPG1aOj9ut^+1f&>i6A;|<49Bdyci2&9jcS|9-Y_uvj9_G6gD1ul@ zL4Kb9!s}#vrl-pgkgSocbG#*}hLN%SopgQ?JseziR!^0Io=8zs@$qg*A3n%IEc7I= zhTDSo;};gNalUt1y#R+dl1vofMOZhI0wSj*esOVh>4@ljp?*+*TYgg$_yz}8(FD}3 zx7fYO^x*NT&t*O41Tr)RG}-8OpMmf7SBXlHe53K3-jyjBZF)bmGRu2-9|PY&NR_$W zSg6mi>>V6#_V<+MtvH*;xf%ga}7ej%dCa5Pb zL+S3}HgPHxm_vDXa`cr^Hd=nX?t*T`mCYt+SVo)W*b7aw=BWNGXY}zB2k##>R%I=v@#6eh);236bDBR;t%NVIwmkcofXfHmW+{MNSnx7yK|!-&h=+vc)~Nf{ zySPlX95qCw1_Lq=<7%9yiuHd<=0|SHk`mH{X*`BBBEhnmVSSW``V^c>!pTHjDxx^0 zMur@t-R5!BGHg($?6%CbifRQy<{R7yYQQRZt5qNZseckDMVb-rY1XEL@yJwc1W#L= z8CQ$`?JhAPyF0CB&U<6!_^yPb(g-D$nU$GNduK5aE$xUQ&TMUB;$VmodCwG+3w>~4 z(C>x@v^p1O1zXv(f#GukV1M}lOe1DJyN|FlBqWm3GReG=l$64ba=!w2Lia;@7d$-N z6=Xz_PIh-_6U5myGww@spS`@z2S=o0`L8iI#Jk@|#rvdh(BfJNNO104u>R1|84}JF zna-!eEoR)CTwRgY#${;1Pv-Lp_}TKtuTM-D>L;zvCLLn4Nbq0ThrT_B-Y$79*V-1gNe)J;5rtW0GHzb@%_$Rn- zYUH~cS|ylT;3RQuD4QrfMzc4}nFm9)T&+;V7+hO$o@CHNd8t;eR{tGi1N#%UI1x|O zV&ADjl?lMiJB4juNSauY$b2Trg!U^kmtYA8n`%2Em#tQUKZ)Td);4}rQ2_b|Kwd?i z2cuHaXvgRuQRO*p6WKDr_MckfUH6D{3`HQSC`}5}mk2NP&)s*1#RLBv)^aB(ee1PxWugxQn0Ls z7Rxt(`eE#pIFL4_2o z$ig}#>*T-#$UsLML`sr`($mYQ`+fE{v($kith0-lOu*H3c^I_%zN?T&r##8e6pLkc zIukmxI4SWM9WN(u9(b7Nb`HUp&t(#z=44Y)mmxz^rkh1_fnvWr)<;12_!ht9JyEY+ zIQ;C0Zn5XBk!*$PgJDRHtM%tf>%i@1_kzYjw)XDexJPT&E_J@B{;UV4squZQn7YDGILHG6lDIIM}2}#YfsE*KRE|i|k8#--no(lH`vmh${gqe5+|@@SZ|c+|s_h6NCRBsz zNEN%J(f6;Lm9hzzYNZ0BVIGa|_oI0XUOy(fx9&UC)VYqd&_$mWRiK;a&wmkB4GjHT z+5ez!KSh_`IJ1pDe=%?q7z8){K_!2|Jai;eO+G&=-T3I}3~1p7E*^P8K|#ti1lNTH z(tzp))14d12qM-<^k9I^iXd|XbDjcyunV>)55JQ^3!h-dAUl%vDq%cTz?x9|Gs{LM zYhqCfTUc@k6S!&}%2-26n+IbMA9Eee{Z2pdE*4#Zfn{kRU{ z52HO}*?cM$6=Ivka_)Z~%K4OXRXjl{m;`08UP+yPcgEHhh|$*Jg1w7MSQJlnZyMz` zSo^jtgb&K;O~+Bo-CdY}4r4zDuS%hQP5MMEeO9`}Bm>$@n`>dhVG?M4jG*?2h4nGp z`o5A4u}~?kTV&j_*O|{W`X3>c5%z``bakh0Lh(RS0hMg1Ed{LeC#lEGNsX9{B^H$ovstc@7svsatUkoq z?+wurOxV*$=+gRz_DTAKSNhRh#LC=1=V;(&fMml|U4rj{nk!v<-vXjYvI+B9Az~MZ zN+5K!WbY?pHB7YCC1uNGuAN%$ih@9?9J`B-^)UY zNo2qm!!b_jK907}3@0;Ic8bTb5F_ZuKs63LgLx};eQm^sB3|XuNYEc}03$^))Ml72 z(RgZpss+n`Hd}v++naJc^Rbw~MbD$?qkhI1VPt!BW3y$Toqk!>S!pn338e8Oic(e~ zFrebU{i&VnFPF_Q6?3}!0e>&0FJbRPJ{$4&|Bpi+EemG0xg!Z9>qj|=m-Q3;j6e^XHJkX1&iZ80w?kk;E&yq0;q?wE*zZ0g8&JkRG zOXMG~>V|7)a(VIuM7{4crt#->-Qe1u21PBbokwmg=VqiMYva_DP3(Vr+OFb`7Cuui z?Ig#WTiwAvaIt3~xdk}(K$N#oCtZo;vL8-~XKWClTou#v^L<@+imt}`tYd%*{4?tRL&_wJw#>MyTrR83R`>ob;*<5ENO3~td6DH@mU&vaX zj}Q83$F)F~4JWMIn1q^(^fm5|lz9pW(eP(Od?rZ?tz=6yRbDlBtKd8plrrm5DR^v} z(&?Doh-U)O%)jTosXEmJ(Q_E8-=>a3NqbO;s6h9Miz4KMqvznX`hudG->IY|B9661 zZSQ;IU2BEs1qk{!Sz=5nWo4qs?61R^R>rqFA|vSywf!C8-ki36M>!N&q>!!(|AM0q zzq+l4uyi*ImOYs5#JabBaj9BjDEL?`br}Y7uCa`ue2xzSF)6a6lH9 zFnYRh6Fi#WKuV0fejdLM^vxFyBuix*+e5}U%yDrXX8!nZGBvbIimnoSEclNm$ixtu zkbllQ4sH(C{e6S;**Td)s{Z^NgjFtE^pqE`sD%#eH$Nifj`?@DKvci);TBnmAtFd7GcKM*Ld1sySUX#qL=I@3a0!JLOJm=wOOeF(2RqzB zk$wm5Ktb|Md8FwE=gi~NdPBBv~sqP6(r2qj}`C0g4?`VH7g;SHg9$v0W0|OF|Z#prPD5=`+%#{aWMtaieyt zQg*FFqQgjhqe2`b8k_=>zRHbm^}(y#!!eb-SI3X?x z8#USDWJ2lebgQ6k7#EYWuHqa>aj3F#a@RK$|8lP$M-_2v9v^u5xbW~xO^m-Z_IyI` z!D-m$h{0)VMkx3LYNe;D&NA1(YUY%IRzFU~uL`QFXk|-HYu{Q{KStK@UI$WGpz&&P zQ~Kd6QcfMTW;s!}*zm1XMGs*lc}nR3{80*;I8#V?xI<{X8T%{%B+Hd z6ZvRLtY}%<%FKjSDI)jg6#ce#C@IH!&xfc@C*f8M?`Mr{p;Z;YU!o54V{Ei6NyKXx zV=8Z?0Y}h&q9^KZJ!62~XA}E=-TjJ@DhGjK{F%$8!(V#1Z zuP4zMI$@@^@=j4rMWFs zlSRKq_)K4tYr6I*l}yi&`uU?Y`F`J`_2WKwYfH4$asbC$n0LHy5kA1Ix4npApq`d4Job%6%~Mo|F8xVlwx4*@UZm^a8-ZA|ck9g0Uw8V&qLy zbqos&wmA=;#DjM%J(SSBJk!paI#7epmcrC~>SqKl#BzP&k!rrGMa)3m=PEZ~2?HHl zcwX1LNx_0#c8aR3C`aPJ-03uI2emx(2-kI|7>qQXMUTDPO=Lg})g-&)0|xllx-qG? zjeT}jmmEeWh_Y;4mXn_!f391k0!6XKh_N=Z?`cdkO`@%?kaJ(8wAU8#uFF_`!+LmGDb2l#Qe=O*wgQTFZ}n^3iOgEw&??89{H z@gQ4Or^pQke-G*7UDNff0Y;hoDfQvO!7c?1);=*~o6LCYU9l#!e9MJ_`>Ne+9;h}g zeN{)p{UrLseWq$^_^10O%%$^6x#r`Uz^lpK6>_Wsk|;6&3bHTNE+?-F(b0Hr&*ooR zTsr7&m~Ye~NLwM%r?KkA#F?uUoIS!&HP9TFbe=mI$q|_@_?^K=`Kib?F(Lyie*Z4w zx4{Q!2#JM0`#)scvMv~(4>I-Xn0eGzf!}o$tnxS>oXh)e^yI(KLVn~XQ-|iTe-vYV zgLx^{uH%XdDj46x!=5h{@!g;M1Zs$z^a;~&s0gmCtQ?w*hYvkIJaF8(e64f1s~_9i zsyxIsFtyPV>*(ZPO$)+jwv?6iVN~WE_yzF7jC08+{rt&XR9voxd!?6G7bL8$t!IXP zuPM`)U*7G~Mzq}%-N;q>r&Iz%mjroOb-5vR`mQP#daPAL{xweL`H7bF7n~D<3zdAZ zo{QC&_9waM@X#!hmtk3_ovhQY*UCp_pGNL%8DSj!R6$yRON`YbSd4HtGq<54eSE@KY0Uc5;$?e`#%NuT$wltdit_2A^s| z>i8;o9pQjB47c$N@=m7eP;eaaXux^ygzAR{2;Q7Cm+r{aI<6)yO~ zmKwf{2-VdU|0k(XP3TEB=|O#?G5tIaphNJeyR)7Xg#$!bRBHnR2c|#=^vm{k9f;n} zK^WpFNrn}=S4I>3Zx0<{Bh2HFt)zRTmQT3m{1{UO1 z0FZ0FvEEC1*nOiyGVWy%J)5A#h<;j1uE21~@th!t3zAw)| zoAl7cwF0-=X^cgOPeV-1EzTjN9v1zlj%NGf-qn0A zvEA2iF5TiHWczxGh^2TKz6hvyPp^?ZW;HV!%KH41O=Af)ij7`mVr7owy<*Bg7WG<~ zIz2kgzDrU=GBhr(pP6Ns$Loh@+f1;vsF~p6qmnN}1l$<62jk%TcC;3*jj20UiNYcf z3MN7jBr86$r|~S4hXB#+lwnf`NA(6JcKJSb$3pAx;PB+%A?>ekxAA?%>Q!gu)Sked1vNQpJmgvlS16-IPE_`VAZgD8LT zc)~C5TeD47FF5YnotpZF@3#Uc+MpzgJw-cY3b$ui#t1P?yPJ_qKIZ9XFt{QDDjdvc zcxC~T)+XzPn4A(Z=|X4YLs_e=S*mCo(ZR<4Lju=@-VAKIJMI@ts>q9KK=jx=9nhxM zULToohUh6Y^>t%ycP|nxiKWE<=jSQ)TMn+|qB%k3I{NYIwQFf;H zZnYt6yX!mbG7Ng^j)=qDJP;Si8l8-a*%LdZ;Nh?pyyJ~ro}qSDxaY7Z^I-$c>JW{B?&Y{Yku;;C_%(U(Mt5q zRD<$O+f@7Yj6_*^-fR($o;mS=x|*nBv=2ed{Ail> z?ezff$v{D>j0gF$+i^?|8o_F^${t)wcvswR%qGUEbp^0ep|bxB%@!ikD^Cix_>U4**Xm_vvvzQ1gDe}mj85OLPhk7#do^O@ z;%|n+6cea!&!c@D_bN+u0CS3mTP$Bv`D(+JzsM##6SX7MSAY&qwH&YgUPR1%soXD- zK=V{zQA9X~co#kLq;;g{)5Z3}n!Z&eTk*%`?CN&EY6Yy)BDg7yH)bkGZ%l@v9K<>| z*()qYgQU0|PTD2lHxwX7^s+UmQ?K-TQ}AfEl0S<5*JjuldGGS?eq`71w*Kk=>NoHB zUWBftBLntEyfJ9At0dBXB6jyLE#2gO)Y17|B^FrK%x!xg3UMF}lOzuY>&o0HIU>MC zhx^meFyx*2J|aDw5Wfh&Q5P0{&(HPV`B#U59?mbFN4))*$nMK-`A9k0(yf+TBe|5q zB58B1usFW?(}R={cT97@wibryYZbev8%c%Yv3SWp4!fxid}!*&S17P>|Tt?App(G7kO~9_7+>Nu&1^7L_(v zdkt=k>0TBsWLBA7o)A=O-FEMTVgYE&dE0D!qAkAd63e6gzvFY0#>WrRyH!qn@^UDwmd<*Q|-J}1tISK8QG*0k@Y zVgDYW##%MH>{E0r>a+)~{(WP|^pp~&*wmgum@bxwZ6|KaoBzO^HB8qqcCa14H>~w^ zo4c}VKHNl(cj9zv3z$qtvJywBv@RI3 ztu>f993Ss1nDBc-ID9jz=N6;{Ki4M%$?xd?AIB`bmWSh11s1upganmlz^F>b>{nwq zUCiqRuGy={c66(VDy{cbZ?ipP=q~(lj3LF>3&)TPaR2o6 zibB_R8cP<&rIL3Kb-Mwx@86{Q3g7ZVu+fO4R*t$EzyC;hG=Mo-u90=`lM+_ov7k1_1sGIsBFuLBoiPmC}ke(`%bKCoX6g8s@f6Nn1XLQ9!F z7pi|dOWbH=hwqK&FD%%qI+>js4!8sgOsf zzlmYcX)NEtHV+*oI1Nr_;^*w#&PkXM-Q;hi88r25m|I(=J_9vybvk~a`w>+XT8Zk| ziyb^SN*k!?y3j}YzJs8#IWUXi;Ia9Fl7@-^^6p43V}lJbZIMHHW9=Wd>Kz8sgcm@` zc|3QcfL-8VH}JaX4hf@DsNz@skSxGMKA5CyY)aUKXN^H&7l4G@F+zt|(YxrZOLJ?d zHwSgV z;|GklD*_@E#zP#pT~C5L?YJV`tKs8j&WeVGCPwYj)`X?PFhFs@U;cnSz7Rx02$m+` zd+PrBA*0q%asl!iahHm^;c30OYq)pz<7c|10(DBrx8pkfmLPrB%C&Fa_U6^7xv*YZLwHGIgui(eWR1r^}PuHd!7^YOyy~=&OH+gIhV#Ji$dH z{)C*!^O&yXjS{|)wpYbI|I~%&hYZ!#TwBDL1a$u1!xJTz zlv!qSq(4!_S!U+=Jb;oVJ*3&bHDO|v}UrPF~zRD*nP=`aovPUxl6`Q|!- z@b$j6mZTW_Fm83n*NT)LmjTglDzxiZi-{{YALTb5UpS_X1 z2lBW~{Q5hH9tPtQ_YOZ)Cj0zifVUPV`-FGNI!1qu5rCey zelvu`cRxxut`UdbdWCbq0RuqSbJd>6`a#x3dv5a~tmI2cgOY(>Gqnyp-d@zMuP+zH zdN*DsDhb+Oa7KZIh)2@oBt=uls9q2^{kNxb-;dxihlJ!40}M3pgIM+YSd;xK`|$PF z=!*!Qx`yl2By3r%t(=3JGS9v;XiT*?7h4Y#nGVu)_SN)G!%!w4(~Pw!|mRp4obaLbqy1zfqcWLI{*_(aEH4cFR+Z!Fiv-c=R;mw+V$OG&XIt5~YN`1W0sq^Z%=(otWAU#Z82&F?I!t6v`@-?i|USXvfkylx1zf5~j5R}Wn* z;iu@2HSFhb%1qpZd(MaTI@&`NiEJI40aT*o#wr|V`KLE>#vlIR8JTDEzb|jRu-1;+ zzDYBLdIzZUNe;e;{;G`|WPW}^LucaWU)C34D;;I-KT|WOc6ZZ1T_MTXLVHx;F7s0K zxh@q3+Y70T*wFLfrq~8sdhxgneQ@RZ+V|J!(w)7-(|R{Q92prI$!!x_wk~mj--e<3 z62#e|R=dPu=)~d$NMn@;x5=rd{5&JTD_>l;im63Pc|6>;l<2fvu`d1$+_gzj9`1ZM zDa&oB$VmLYfuDt=d)wkzM|zO!g+|CTz^v)+5R}^7+apbZmd&J+dCfM~M_6)X6j2;Y zPl*q&RIf@vTNR!jmkABYcKLb6O5Yc9iAI>uK(yxiwIXa&XD5+4bal3y(NY6xxk+Pc zr{BMRfy`A5ooZlw&x~ApC}1_M@5gr5(lD|#+GWass7^xxIK)9^**aTld4QhsHnwp< z(@lFj3uci@PBCL}H5W4rq!XgGLIZC4uwq3>#N#xO|L%p-B;f@-piqsAn~ehX;m+*u z>_$^UBAD8eOwqk!^4)5k0Ncr_s{KjcUjn0ie)md8K(*a5@kzx-W5nch***g*x*Z8) zbhe=Z6%9?;%D&ZeIOEED)3c#$U-fUxy;(<57jP%qrNV??z^z}LS#Qlj4%L_<;tRD) zK_O~Ug(Y>yRJUbJ$D0B;%HWjttH@FUy2%*fnP(J=Vg}iQT}o!kXlz^>+smrYVl450 zVLUE0D_~Ld>d3}L{)PtcQ!AD=K`~+EHP;8F5Y#&RC5L^!Z%A2bfgo<^efS;|vt4o= zNewd%W0U3s!=%zT+XOWfkWQbQziVQ=Tbi)tMAnqzGrYJ=+8%5i!JVM1MtPo|hlyfF zA_oh)kUPq%rBy5m8B*s#}C?*>d+*T3I{`!|~j*rsa4YWMP;Dc}t(QOlV^yVED6J|@k z**a+>M~b5&&5=M8i;68fj#q2ssw$-*ReitK0l~P~;J>K8P7y}_Bq#NdPscEGx+Rs? z_CDDy4-j^p`uJha0{(OkyX*$`{pJU;aUoQsU{)BA2r-JQ7JU!Q1Oston3HR}e_iUC z{(T|6O;qPC>T4yO!8es-4=5FVwH37pDf{(ti(xC zfa?zYNx!Kb{Be>2QW?OLYJ7v6UH6S^G5$wliv?iwDSFNoQYCI%djP}h)`CR?`Hg`N zh;6YO{8nIx+*D3;d(@Cn5UaTvjs8PU7X?^k7P+fa=Gv09mQ)pm@nag_ki(P;ynk5$ zRJZ?X2y7CM=9d2|P5=8KQYVIgKbqYv%UW|+B0_*!WSYSew`*kbv6v%?f zK&Z`5fR~>i4Ho@I7OidF!1*7bQ!HMnYcX3i3j2dDn0iB)JEw9jRNwTGt!DJ%`r5>m zflj{WryVrxAMtkyg;*Oc4wJn*%C!%}CqqFScy!5P_|%By%UaS)yMG1dTR2I$--KDd zz_xom540o68M{G^wV!Ic?>94-p`-`sMNd!O+WFp579r6Mc+S^XT*VymF#ngsUt|pn zU`2Ti>{fa2_=q*?jDF;O`4*r|;=O=*;!k0L!%PkbCH6*O#x`eXEb!|W=ezg7+aaRP z+Nr5A$I#4Q<CCo?dlTmj7l0GA&W0P}p%ZCnYWZ^HRTX@N+Q z3k9|J#z{hTZD5!+0-u_eI7y5tX$%?Wy_70_$$1knY)E%tSm`@)aUemDy>S$^UTm~I zbT+;lm(C1N$1&(M|IE*)XkkTjj08CKc~N5wjs^Cg0a{fkY^4maMC4iIB_#>GtGpSF z$-ho47hwU^lGu7;y4;5#%5_ee&J6lV8@234Vt)R_H<4tu=5mF?`(ER#xrefusW}0> z3$=sNqJvX-{dio@8t9W>(1d{>Q2l=XKmf?CVtkpnQkg9!;q9xQKf_8a%%TjyqLbx+ zMacaKmX&*uPJkzyKNV|1dGkAem$q%A9A7rO9mniWn#N`N2?s1TJtibFvpjWZLnR(h zMTyg--H_7-M+%gU{kVo#iktV&F+40+aPt=M(yIC8i%NEx zAw=QgWDvRkTN6rGfM4}Zx2f!!$+U%G$BtJ4tI^q$eQ}EP2Oeq<<0r)-&kfarDD>&} zCXTC(qGe8Gt{px=Eu90VR~==<6D!#|DuWInQ#`&A=p)HQ0g4?+nQ~13<9eu-n{hz<50EihZBMsDPw5(aL~WrmSj@OUlYBy1^6ZM+aKH%C0M{393Y&O*B}vt+SZNJcz{JFT$-T zYx|E2g&vk`%6)m0^(5?n`+T>-02>8Xo_hVUDjrF1U2Aaw&1K%F1i8MQR=#|G77p!B zD=Co?Fy_~LYbJofe?HxYV71^HqVxDfi-dSpAnDdpS9*oL@(!J1arV7yxeXUA4wRof zpaJDZ!v5^Q2#pdsdc3(JeK2^z;>l#&fQu)>jf%^)(o0a-=%^psJiih$_bC!!TjyMV zJS@TY69n{Ya}V@N(-Ts7ke(d(1)xg5Bv}LL1DqxVj=F)V^lgI&f#Z$4rFfBJ*M{-i zm~qJgZF;FxDyLg;pHwB^Jk(yMD4)*$09Y+Zp4dpx32%^MJoZ!*4peg4;|9>O!nIZk zk+=~6sF9G6oTvhzB(YDmf(6C&N%Sayai#V9(&ULTK+gfPwf$Gj@{nzONyv49AgQ%{ zq$6Y*De(>~JYvDNunq>X_M9o{n)_z5Czm6In<6dNkj$K0mZ!LE+NH({v3??uf&ul| z9Q!@=9M;eO@JcuGVWZ-eCNv4^<%Aq*wRByjt6e0s@5i0TSvJ5FeB} zyaQ4We)BWRUd7bqS+ZFd+!fk!Szdfb+WO{i5l&ozfzx%YRX0e=hc5Sq{x$Q&q^6?( z{&`~w&~w95;F|RYwNkpfPG+$eA~az!!e?^BTKW0Cp+90NXHYvhkwLeh;V9TEql}KH z2w$|WEY7t;$I|~h#)-qk8ODQ#cEMQBf&x_k{Homb0}Ij!GpsC=Vy&j;j+*fO8);&3 z3YaH0P3+OZ_0CRrd1Vw{}FzDuoFhY~7lH@7P@=!Uivs8)8FKaKU~40}Z8#P+MO={k7HfKp@Jc z)?n2sHKF^%+w5BGUR$(m)zTVlY|gW`_AN;xI@PKR1zsA5j9$MVbg{|pDJQb&m8vxHAXLq70#GC`j~ZY;j|LDkxc?l$7x z0jzgS!o*lEL@n(>Jt?KM#~v*Px$ND6bq)kG{&n6}3`!QNpSyN;K~=(=yDq@B$T1ds zTH2vuc`Ng46`vT5Sb%1G`*uWk@1aw$?jl@&4T^_k{r*i-W9)vJL=|7C&QqMWZ@QCB zXK%mp6B!cw^TK)7CK(IBG={Z6J-XW74g6NfL{QCCzd3_=a=}_fLf&Bd!|9Vy#T1SjKF?$m{ikH9T7y+XO z>*kfvcXU5)a2m^h(O=(w7eT)O*{-Z|biMv}KW{n{Cu_ z*bXHM63_bPW^TNM!s3RJ$`SM%+mEOKul)qE_3q}A#^thNt<#GYQtCIq)kmkaZ2r9M zj`~80uF+( zs94GGaGx5ttA#|fvo0Z)>NKA5Kq8>Q`C_B<9^&5B(x)TKIbf%abatN8Erj3@rme8} z<%l;G|AMcVwRMnC%58thGb)o(q=`4?rLh~h|a0E8^zsd1{G6gg*?+SU=0!g_@=hBiYJIbLR z#V4$dY(~1zW8XsPCsl~Jewqn&I_qB6Z3Joo`b(_{euC&wne`QCEqUmFNXl%kXMe*B zRi2S4igDDpfs|bj0ooumsBu4OztfFMt4U)u1nBKHC9(?S^37l6)Yl4UzB4UfYc+q@ z$0}^DQor@q+eQ)${nT_T_a=&MLA-L%S||>p46_%Y_=H0QQtsEqJcbMWAPOWqTr{|! zfzBRwfPP`t8T-gTF5IA7uqZ_ron#TC^H}TTAE{{?Mp8_g1YWu~obv3<#1gTWAb6IQ ztK>`Z7GU;Phf?eIfNhFXA<^XX(*9YvJNgrlApNSKR#eNT#JoG2f))1r;q+KR#Xt#E zSu%uxdZ9<64dW+MLcgJAxRlPNsrySS71bCsBD69;=-F0o{ZNajkMH;WIvW_r7VI-AN!aWbRIZj&Rq7ViEUpJ_zcbefF1e?NlYA54bS}UO>+c## zXU(4Z@~D9?w3;}lnW%qi>n9AYbUbk8QBr86Xw^A2EMM_zRNGxWi#|U;?dKH`lgXlF z|9HNP;Zsl&ZnQX=5E4~(j$~kM5~sxJ!km2>1KJv_fG!KL-_xrMLR-18+(<|^Nz9k1HBJH9?R1_YmElXgr)b=+*1}Dg42J~cXDxYAK-n!{VOj+SMxHlG$4{T9rIvjum1Yc{d^4qk z4Q~--Nm_FQuL$|nZ)#^OHbPJh@3VP<^zH;d2lgwLxU95^h{wpL#uY@z2=l5v6>nqM zH73o|(fsy>XXg$uP8E<{_Qlg~h0r0H1Trh6XlUT{Dmj(@QozI%O((i(Ni<9e%S-Xy zrqT=`niRSpHUEUM2>EuoQRJItxYXcifP~Kx-XCc z6|86SdjJ-dQ#3BRvLH!9l`%EGMQ*P6hp_i4fIV*9LN|R;VQx@9ZY+Qspl9!ORazl3TfgO;u&d&VumwyWR9%N>J?s%(PS zR<)31xv6|2+$=yHy1G^*H*>&&g63dJt?KSRt#Nwb*95wYbGpR*8blLhEaD3II7&j~ zMV51PbQ0PMZmw?Zh@P$t4-DC>sAd@IBS5qzRMbDBXo`!eBZe8MD>9i>>_QPQgpWmU z;{9ZCIaddU?h?39bJEjwc9LGHu2p4{?sa7|X6D0%@B1&@ssV#-+F3WQ?ha26kHY49 znWAvDn`2rf2Wr3sv+k%P7mZJ|;EC-aid&4f*nD9`DxC$V&u|&VMEu~<4&+654dGQ% zSFAV-YZgDr6xPlqn~a!5q)TTHCZ?=YQO}N@-aTpACrY<}Tx=mm9d4{DN=C)So+5T@ ztxX`V&bBgeds3vuz=PQO-Uu1%&a%&Y38%GUZ`DNVPSUgMi0x(A(*&Noog`}3(W4ClpORG?(x1Y$wmxaTmf$lki6#yf0jzyD{XvJi09~ zY5tF_-@a8o76-Pvy80j8QJp)Vys`fnjO+AQE9$|!!aCA8Q=?WpmLpK9lDrv{yU-5< z-Y5zt{DHOCRP|Z|b+#(cIn0=+Hn(ID8sEA!>99%<5}}9Gm_(b$0w$q5Pe{W9$S8b{ ze8ozg2qWC#1BRrM)}oMz)`-EEXl#8T^JjxpF055&6j}|f?Ek_aHKBEW5_ZsHq5s2{ ztn=tJ?Iz*ux|;a-Y7Z55_U_%c2?=2VB~4ShEIyy!nXzEa6m7pUjl9Dj?u^Gr^+u4*sx42PIx?k0|HlbhrHq|HU zUKK)Ige_toonJ3~{V6$XBpa;WNNH~L{$+pd)%bz)a4iN&2{SUEf2WZZNondxJ&e|J zA27p-ADJ@))H&%T9)c^B)wHSxJA!`cKSgU`fTCWONZ%N#T<_^pxchRozv0#kBpu!v zgX}gLPuCt7HBT$K(P=(|*wupYgCa*q?KTm0-k%8UE$Yc%X0i6#AzN=HrYKgB!#k*| zkT<_;kAG0cSqSqKl|TsvWEjW-oZC@x!5_1;fWszsm*IAX^_pqOLoeHXDnT}Pctw9791PZ0R3?$5e(SLZ${mFLpD2Ke;m459??7bVc5BWS zzh+QWh#Od&55B=An)OuHF82Wh0rPog=s@W}1Jd8OQAV zH8C1$_EK}RUN5jHDitTmfqcdpfyME|%1ZD;S!$N9rPHT=&C^X|Y53@fHX{i_(g9;~ z;3yv>{H7Ls2OEU`&wD?lTHn>A`9<*4LnX3n-$m8L7v(-xc+78oAx$uTnN;2w=j-2` zV4!xdlo@CG+7L=tnu8g5oxjx8x&Dp-ABvb%8rZI@jf#PWt`#U6O5lOcCeBUvpO&XA z++ja&)grO7lKP#N+j!g#pE%)&!DzJUmoRKj{G2;K}?kl_Eh_-Ekbb`ADC%C)2H15G6xVwAMV8Pv;;1=A2y9IZ5x8U}QbMAO= z+`sS`{iO$0)w`;;tUcG7bC%3A|L#l4#oO*qj1Ef?!p?S#o5r+IRD{U%z2aNy+pdRZ z!aADaMKa2h?~Cph*7p;lJI8e#<1T^-8Hb&@h{LW1tJ7yr;8lh2Ry2ecDHIs4f$`yH zEOeMOm=X?%;Q)Iez$Ww(b`Z;GT;-Qj4TX|l2cvhhm%hT{rBwum762N|#xY#I`|L?U zjeq@xwq!>E?Yr>%$?wExBhETA#!QAe7|kWxN1PT2y77f_qCa%`ws|C@S-AnKNpZxu4WWQ|)vEm_ zj$%$jr_%*{!_Ds>v_H50)7zOq?uSFz%ePsrGi$;FHdQ??I5Y^rD^h`C zkx$E<6y3jU+Hd#}#K!z3*wf4Fu&2sRN$@S`^SdnPJq1$-8;3YQ`YK z`*0ma*XU%m-$t7`HLHXe*Z^oVCAO}6>UeY2Z1>VTE*R~M=cz)_@|P$DEiA&`-BE0B?6d> zC9_jc=Y7bUH0FE-hMG7T6En3g&RhBBLL*Tc&Rbob4kN&&1z7Fk6j3Hlf=E<97Ez@B-z-uSJf!A2_1Q9& z?w=aZZH}_l#%%{rm(yg7aTB4~D2ZY2{akQn4?zKtaB70^uj}P%iCL|vkE9QKYG`g& zjaO^G=;8^3&xQ~yh1Gdt2|}xnCaQd&W0awsSXj-0WW`e5Ig`z*ucQ;)o2MB)xp>fY z4fiw~BmBqzM;-_6kF3_NuO1g0rxHvQ7uiTa&ggqZZc<1w6(MC2MT52*AqsK)U;GJp zt@f@D0rGa!Ct&ke-%Trlg538Z68h26KlWKb3C1NPPkFAu=<~&q_SN zdlH7B%jAz_nMN~buX=F~hGI9MVW`ThX#U8SygG!k|E{m&LzMFgXbKMnajl&?U5XT7 zVe)S+dATI+4#K73g!_9SA3qRYThmS~DF- zm6ZHPC<74rn&DniqWRB}DI^~%3_dQ+%;ZgLz506XLlVup?7ro%!Iu{2hM~xPmgOAt zb6{-hbva!a58zCfGmLXNaW{HWcvir_bCJo2Y`yGXSm@_yiv9ds4podzN-`&a2CY~I zM&&L8nl#veE$ynX{Xxg~qRnGB>3r7A=RCvfyt$}sc37D3wp!Z_Evb#GBAYl*UNk!3 z9pwn~Yvf$@z9HcmN;i8WwPRG$>yS~kD;^GI$L)&G7Qep2BO5^X3+2h;mVQShn4wrc z+*Q)5pJAGkktkh(4{N^s`h!7@^}38S zHp0^5#qz6l-2?Kbyef5zM~~vTn8>L7&|x3` z2!RP8aK!vN6+r>Bs+mBwQG<(qu*3 z{+2_LrTQ_n*zAT=>(~&)ki{NZsnMqYTkVSUb?2Ngr&9juM21@H+vH14>=PRd z-&NB)HO~YKV=o=jHve?g#Z^qY*E@U>LgZ<75ILBPB5Y7gjUvH;gX45$p%nR z&JYLc2iha`dSmb;j7y6`OhjSTLveHj>S%| zv7LM>burR8>|ZT1AR&=SI-giRg#;;q-r(U7$nuTtWh z5sVLy<@T`OoUGcv{wWd#r0m8;!Syrg=HX(XZgKF`-~!jx^>zL$AjoI1iXn`%K_sLg zvxd*<>ZeEXYgboyZD!n1OIv;5$?TTrqnPYBd@%{J*sqLd=#^>CQC>HQtT$6eOG6?w zvR(?AHMG+XsU>XS_iBA4geHj`hY;6< zMr4oL+4;3ec~uD-0ySr6Yr4M64u7Au=QJ^88L9FEA0J`vp(GzM6LQ3b!;j=9#&iX} z1Amj+#k9KjYiznwibq@#X-tu!s7p!`;xc5{u0D(j&Y=ALLdBZ?nq>=TihaG{uuT=H zQ|c;bU2kF%U6^t}g_TS=23!35*vKxVj^1y+FlubPP*QiwIC^FnJv@)J`y`hAicJK9 z#1aH2ZxP>V{<;ab3Bx`!f2?aOOz9e;anwzlsK?hUT_+jl0`t zb7IC!FvM^i_=_yRalx@Bk`k*=2y7#4K3R*R6mGw1>PAisRf?zXG|$0Rw#Fh(C-~@4 z&CEtZAwFw4*qb}4sae!FjSf=DChW)h)+{$wR*Q9z;V;Jm!#B!4w%!Uw zQch+YmPU8y)E_-~<^&R_M!r8-kt3g5>thf-0TFNe%V#e%t z_ge;k=nK&Gk-8#8GQ@~8d~*U8f{sybMI?kwkEws?NzX|BJRvddXrUMoq~B!il#NG6 zqx0z9Y5x)y%44QhKNM#1FRw~`Imp!CPlPyD$3&OKe^8tdePB1^wQK)7ZWQO&m+Ebf zy@Rai@VKAkv5M8ND1$uwxnegQZ-v1u$YwI`C8LtoJvW%v#yb!jZi z%4{k<0pG;TBmdAPgsD*k;ylxUZksa+;=l?;HGy;rR2>#yq*aHWdOkw;GudH!-mAmK zj<&rl!G#7_@{WYwYcf)8Fk38rmA|fTzoDp>&%TZGP+K?^8JRg#viw@?Zu;2zbeY}T z`3AQeSB&NsD&L0|wV>gw2C$76w^A-HVf;t%j8V(dH7@Re42&^8pfS-9F{4zs^~cNn zc$|MY+L5{{Ibn!h^ZRQQUR8nK%d&#`E-Rxup@waBufT;#_`p&pOiwBu|FH-O4zIoeOPLf}_0Ow}XaQRoxhLEr2p}nZp zN`>dKwaJ$}GtCW2BM_7aRKzGvJ;zuUhnRK$W!kS#cnLd0qahtY#yQr(yUOmEx z-pJP{jIN^?8i~Y}`gUUX=Ys5%mX2_g!ENR9?)?E1Bh6EI*de0=zdWE9s7|-w!CEwl z=c~t>GC{F6tr|eWcYB;Y?fZ5^Z)s~q&}Mq14>soF|9Aa#uxBF3>5@Ka^>RXi499nz z#^D){L-~V=cOF6dXcY=oHJaSf@e7oI_34FqF%7%tEo0R*ohy29UHImwksWFFdfnm4v>#tM*tE9g=r0g9?kDXCuD0dFhqS0o>$&OWCujA-7$S5BQK@ zUOv=?==t?}*>?px^wea>#LF4r)4h#hXXjDsc_zYzBOlkW9V;gpE~cU7lO8VL%4^ql zU7Mo$g{Hy6H8x{I!ai5T1=nC|Nv&TrrTcj9sPAdx=Ce+DG#Ddm=P4gr9ku@>|pokcoBeC*%onhgm>Vd=u4K`PGb_Pp*BxYu&?W#ne}}~cz7)}H}Ic~ zbZAi(hmXX=6Vd_aM7fcbTg&C%A5=mAdZXEv;ULFlV?LF28`{%E=1HWeCDw0`Pn5?8 z^=5B_c#du?KjeB=<%7LVBVMBTy{MCQUPjcOlRV4ABCXOx`v)R6GX3NyVOf_1t$#TD z&;%w>Q-f}~GjSnT6QxlCOq$m#^yt{pe){d7Vut?1JD5F-Ernr2hR2L_Y=L_d8S;0P z?xD|%(uA3@;vL^yqYdf9`>2d8whX`7Pa;Sg8}QD}$m*Cikd3VCNqWJDMF>#xR+cYc z(6?XQld34`jG*VN8I?J5u68^VK0cK(Ui79DB}ge5)l7Lj+gHSyS@fX}4-NlPTgxje zEsXlJ-q53R6R8`YjPdiMm0X+<#1>KmyA)B|O}Fy9ow&(2w%5^K5{G)^{qe+_WnLb0 z-i|>03c$na=A|9ygnm`GD2z)Nwx`{&*W=!xoUdGP)(jNL2A8?SL$Bxs_c~c=oRs z|KYN{yfW7h!nZ+9#$s&0h_dZqUdJb;ufqI3gKpp5X4bOhX)gU>>Z8+PP)EDi8^F)O z7-87xs4lqaDmwO_{c zZ<==SRsO5#;lZz}gX-L4+ojB7qwH$L}oL(z=iIiJVX-G|b;^oH0 z=ar^qZz>31I(p!GA;8AcLiJn2-Kq;7eY+zp<~6veJFbV#>@jG6*X|59Hgiwynqv9$ z-eQjp7Al8mD*_S0GlMrP3x!s-$jxfAVPx9zIKk-X=m)2T#(KBk19@R<9)~!d0Rv!o zq@za5?Xq8k;B)cd%*Tv8vBq z2=sZQd;Lx3@$jg0nJcO$;ShKE zmwcLXlJ}TX>nq(^eXJjH5Lm#}h|nD$^es+^QsMK@@aS!b{W&>`Z2?{u73Fcx?ar%Z&O-s*2}yBabdQpL%dC3ZFP{+OH=P_; z{~}Ut%~+9<#MI{%=s`1LnN@?dE9$`HRq?B<7^tX2@g3#Ic+~;(4(o%XTZ(7c4!OgZ z*x%0%1v~mztYM^z*EN0^IW3HkCjBW6HCgL2BP&kpike23=q@ra-yM!H|6YVXp%icW zt)VgL^rx?UVZSP0>DiU|rX~cPvh6_FlV~$(EoUMTg@O!PPK#U?WR&f5u?zPL)8=(C zMqp=K<|sV6Wy<^uad&Ux0QDK8gaB&y+31vBB+MAyA5vGI)OI*H|ELN6$(^n#*WWCz z#%n=&8Uh(P6uCiKm&#gFQ;M{tr2dB`-niS_atu8o`ww7*AxJj$wZmp?RaDbhSxWv~ zEPXa_cJsh)fyAgR%RIK`BaLp{78<H`iBm{ zZUIb!N5G)8UjQ!u+e4SL`e`I}rh>~6FATzTA4%-fKD!(-6}8xoUf*uEPYG@&N8!_X-W~x}nsHMwmskm+W;<7*9C8Xa=={U=0Etx2Zb_u z9kUTAfgVF7m<8TGAp5dx3>~!!J)8M*bl|#B&xhsp0;6D=kO(O0Pof&sHTM27`eQjW z%M^`~rHIjshlO8R$=Vipjzs2{iis2$nJ3hV;UBm_rJU?Ah6L&r<}-RW=iRY>qZ=rs zobDoJpRprr%YTuPfaQTgQ6hl-{$4chmyUu$%f`Txahs^tA{AM$Ef-qs`h-RQ0VvR< zf~*#SA1N!Dhup5j6)V=NCC)3&1&b5w^ZVOIiQ(;>n|Xh7pE80uC|8WgZWT`!1?%J! zDZ(QIb;DEg{%x7+7*`O)l3>(>g~v%#@dSP6O5*T4-0Yz?J3}v(OGb>E#&bA zDPR*rpt|_KTU7~VcXBRYS)AvRI`@?iu{mvhj>_3-ezG}oy4=|=SCYcO!IkxZwqEBL zi|1a-KSfdUQWVP~)+hDP3<^02xACHK1%q^W&1lFSjS0vm$Ts?Nk&29qCU3iYvS2&= zv;l?kYi?bJaR`$>L_FfmjGdh}oI581!kKm3?wU>K0zoenR{^n>Q=2 zhDPIZ$O~^cp(lY=$xcs|<}Ue}p!ZdHRwCMi7;(b9rYf6}zRkXEYfi$LWd77CwD|ZI z(ee}2K59&4a>u6c;Sj8|f&3@ALCIWtzQtdWtKO1JB)`oq8A5K$zBn9{HZuS~^?zIT zIZlY%&bK~Er;Qy^&iUqqdf2^$sQVMr(8wx-?B`5ze@Gv`RG3-^o%VC$yvjAvVj>s> zF@1eMKrZ1>V*NBHGzO)`pbH^wuW;EDaTct=CrH8)Q5Ze;t1Unj{8FQd7e|YJksC8O z@U1zZ7!T;17EtZ{?JDD}oL1>tRLneKg;&V-f*wjnGUys*l!qADb)?O!)`iL02yJpBM_7t3NVWE&(q)&Bqa=oA`}$zpa_*|D~oGLIQg~^ zpyEBa!vPQIQ=0BHMYD^>LfOz__L&O=m?kF3)N0zd{$B-DA~c4cIpt~e>6X})?4=Y2 zghiJl6TrFw*%JwXgsa81imE8T1N}5|uIywz;TXel#EjfEWg*Wol+{$tq&S-9AwdC) z1$@ay+qT1udHs88&r7r(1CasQ_KuFi80&A9O;2?m0Mho2yDU+r95fv8)r|^_K8Rn5JkjBWZ zpD}=YsVQ#&6%7&aY)&YjP^TQMkZk6(g8)AEUET`*QqNPr+6=ynJh@^i4X|q{)dy1$ zZ>)ic3!_du!YTF?z09z8YdIl?+F^mG*!rgEg`$|)sc5LBs3yjKGoVU8qRg6}k}2;H zyZP@hNhd2zNcl84)UuR!@-yI<;g_2-T)4pkX`vv+&Cb?PtQ-oxNAmPzm?htZE~oqR z(98QpJCG-#P=4bg*I%&~r;w!ZfEF$t zNYp`rPNX{(WvjMM=Pfm18fsHqU9)~$Eou#}j0~jj*@N>$@##wg&A_AuS9_Mz4SW^d&LoUnLPBx# z1Dt?70R`+quk+X*UlpDbC}K6@_S)oqp+OfP~ktF(0uqp-yU0 z6gx+43I{FTk7yZ%!l8U+>Z;<(wg z#-G&3M*n3lKVU_V`$?pfe-8YFl*n6wtoYjq7$pQfI0b%w5@<0tb31xSb_kWr%%*~N zLuvz1`Lk?q-LTGEvVOi54XCF)G7u!5NgtyC-2DW+L2L)b@a8yR{5P)zJ<$)5cVTRK zR4Jw|fx^U0(b@g8_ic|nJv+P&voKJyF5B5f{$3gYdqT^Q@7A#*JCMG7ur;)8v03*G z4i5HfBMRkiQW9Gn!>Clzm=}CW$b2A)$0tYth5yH@1q)Rv>X+;}s9Tur@T>v5VE?jm z$o6yotLMXglRN=^xsUPFILjYPy5t=Bm6_b@Y zK9XwqgqIm7^yJZ)V(9wRqMgR?fB;aSlr2muT2%>d>fbR;aX%n<7wY7Is;D5Sdwt4G z$l{AD{4JJ7Z>Xhp$dRrpvmh$ikk{y_??E;}3W0jlCLj?m+({0bpiV^oz-i!&JC+vX zEiS9$MNtJ~?)aU}`}M=^Czl~X8fXU``rpUAyKkn?JfelZi-!3@adH%ux$MaR}@CM_y$#B9qE&-C!}XR zQbg4tUX{)pNmkri8xLb{q|J+&MCjnEs`w`!R$q2zh`?_P$Oi>e5~D`#=*jm}t*!8c z#BJwUKr_b2(l6p?)+onQ2Mq`d?hYwR0`?^sz8`=AV=KC$uSxD*;{k1_eIzHdNHZoY zjOjZxuRW)qujRXtIqO zeNd1|KeTn0pWb%GaV>Gz-XyXGhm^CC9Ec2-D@FT+J8OYwJwHjge!9_K3GH6)Tw3#z z#tsH_h{rtX___T_xLA}36(~fYAPIo}69p0g?qwxPh;g7e@u$QCIp%vj;S34g)To}8 zz%7lcn92=AK|JqcjMQHN=%bC~_6L%PvzNge^AqXv%(0tw22X^l%Pb76iA$~WhCggn zODsuQfg;EMOh|lLezN~Oyk5lNkp2~YY+Fs!l9~$)!_+zmX7-*n^!px60f9=8hFJN| z|NG*v0K^T}U@j?10rs!A#o*FyKRB&5$#01AS!vMV8D%fR(@&6y=o+;acqUh`S(Y#s z;)eJH8>=QULY<$1n_;Hmf(CMFb0D&$Q*{q7b89U$@?LSx)udndpUHz6MV>Sx6|a#+ z!0hXN=EN}W6#g7*7upRf>DE0FI@P9lX-jxAzw@-V}*sm)V4k7>H?vc$e2xLl3+L` zUog-&jaqOKKSEBB{p}_BY}4oS3#gi$8L|?6^7P_I$NyhH*NO@Q2dh-NGBqijOBdQg zw(m0UyziX-I4|-8syI?iB{|qr+>IbROA5$SrM^U|{qWm^l^r9Ha59s_vn~qVcp332 z|K8zx36;j@u;MY_!oxc>Q{M$`4*_KcbFV15W0V6Z;6p%Zkt%BH$S}UX8o-%co}8cN zV&1LFknc)R+07Hu>{{9JKS3WEsM|QZ!>oD@(APOEBk`!HIoxU~Fb4f*f4t6KVRx6a ziug;o3`^`Kr@43@9!1GwbFv|%-bw3nUz$0`$=XydXhcBfk9u5 zWXfJGb{A&quWjf4{&e*@ z=QKPDowB^el#P{B@bLIljwDZV4~YKLCg9ux{7hjG{@qv<(wm2dfi%Febfgf5NtfNL zz&m*VFiAp?@PtA^|Ib%_9H8TwwApjMlVO1m0)W>d<#j^-&sV?CG zhn~X^(#Hf9sqFOmy^b(=69VXjJ6!;pp35pg8Wid*fDHsePrD@Rh@AU0B?-K4StVD} z(m+GqzFRfv8pkrim}hjJSSSO@nZYkmo=-RPQ*!Eh2B?!M#i$9X9K(5LGc6BSLDv=! znT@z(3{1p+YfsnLJ2oMmpK4Z@Gg8g&6xp>PGgJ}*PMN9$2`kE90e>056ul|MJgu*C zIoK%D`3Z5JCQ`TFv|<&P2p?ZkU{wHXSI}e&l*YlG{Q7pi|0%hV3Z2#tD;Gm%RpaW4 z1Q!*@_9Sj>-}ron_zfccTKLodef|(IO#VP72*1|{L)(KIf2KXwaUfc?34t>2_4U>H zj-HdITTR6=Mb~3nr{%nInabA}5^$x-JbRwJnVDJ=7xwqBvp=JQgSjYT#Zr;=b?3ddTd_TWt_E4P)9;=^F`=|TlXxTQ9$hOd5hC| zcPsqxN({cZx;a%>yFLx5(1pHc=ewUi_Yr-0c}d7%igP{X6=GIWN=VC)d`DiZ+v3sD z5607zzM6W{yyqm|QwR^&QA}@-jE#R0u+AW`YUp|0Xcu+cjVHNx=ZJVsHC8;<&Ezv> z8|mA{tJR*kz}q8sZK6P8iR~ufr?mEm4<8P$tKOvayjxSn$;qeMSLRM4*n(E)2wIz0 z_iN91Jg(Xt?Ymt80_4&-3O5k!pt|3j-kI-CGg8^;_HE~OXg&m9*>S-%Z}(GSom}a? zsi8I=(s8KPyRfCwi%YRGw)qXy&|*%0dp!=}o)D~tzq@j(xdBY2nhvOTGl1ISzASF6 z+*w~!U_-U$?i)$s_YTwdvOG_+tN*Pc^v<|)JufIrqT{2~>tU=ufqPB)=+tNAni^;3dQA$^2$HW9k{7u#H+EVE0>9s`Y49t#R&OP}^c_Cp? z-{BZljNoM-y}JQ3C;*&ILSZ2~C8;Mmjd2zOS&m48OsNUMR~Rt~@vr=?0i1TL^6I}~ z0xw6`Kn--rgf#hLPG-~W$@GPUYv;=S-)`bV^ReH|QX=@L=a&cOb|74w1h$=OsM*L; zvcCWO(x-KNz}3p#XrSA2J_cC%M9`mdtj+F#=cP)^>~e|+VRj#wH4ldaX{yhpX`>Y7 z)hL3T@Orz?&dv%U8Pumz$`QgxW)m4b!ehcdwxpN|Jv}`rc}lZjVk9%A>jIIyV)^#T zsI%6~kcCxy_Jbr#zvuKEpU&L93J}7nh@}j|f%t+te>reFZ-KGlHyvuzzv*}-++tu% zPFFo6|NMOP_4D~Yw_Cq6jXvbj>1jdwg5kI8#pHk9Yx0i=k?MmopHL@$jgK?H?LYO+ z9&dZQM$9a*l88W_%q5Vi8PSGshDi|av(PPfiJv9YNM;tyv3x1ct4aI1P(WLGK<4@o z#>1igxEgP)kr89>i(5+ni9ab3Qyg&{V3vJcX13#a=B>q5(fJWYq53L+CHB zNL5>^#03lF1nBZwI0oem3BoZ;edWi~d$i7`$p!a36N26}yxY$(1VVsC#`&{Q6Hsv} z#1^~S7+rafOvC?Gip9dDXOCVDsMg@?QaiAhqRes3&Se_p7KKc7>d!*Wor5jjH|tGwrrb|~IBoAT-68lzKt467jCXz*>UE{8>hKTlO9BTDOKfWI zi})EwNPX;p{V)`O$J6@-X$yCr!fIIj48v>*oDUh_fq-9Lzzl;Cvwcg}uY>#zjx=QU zKqIk4LuLr@>xa>x&cn_3+d~irmS50k^rC9{84&(ApaAzjq7=$N_+5Cg0n}OjXBAEX zAUAeM=wx7-egAY~0E;v=PZL1t{?8�qhUu{=0d5Kb=VoDD9J*>|%e%ABl8TqCrr> zpoj`~_BQDC2_Qu0Plo>E4@7M$vvZbzB7q>3D-2@pCr=pL@O!~CfLh{1M*Os_l$j*{ zZ({)Mh0y=?-_YW{77WDyw$=W~q9o;y5kUZdQeyJp JN)i2l{{tkvtB(Kx literal 0 HcmV?d00001 diff --git a/docs/source/notebooks_and_ipython/kedro_and_notebooks.md b/docs/source/notebooks_and_ipython/kedro_and_notebooks.md new file mode 100644 index 0000000000..98f56c71b2 --- /dev/null +++ b/docs/source/notebooks_and_ipython/kedro_and_notebooks.md @@ -0,0 +1,288 @@ +# Kedro and Jupyter Notebooks + +You can take advantage of a Jupyter Notebook's liberal development environment for exploratory data analysis and experimentation from within a Kedro project. Later, when you need to follow software best practices as the project complexity increases, or as you scale into production, you can transfer code from the Notebook into Kedro to benefit from its opinionated project framework. + +This page explains how best to combine Kedro and Jupyter Notebook development and illustrates with an example Notebook that has access to the `catalog`, `context`, `pipelines` and `session` variables for a Kedro project. + +## A custom Kedro kernel + +Kedro offers a command (`kedro jupyter notebook`) to create a Jupyter kernel named `kedro_` that is almost identical to the [default IPython kernel](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) but with a slightly customised [kernel specification](https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs). + +The custom kernel automatically loads `kedro.ipython`, which is an [IPython extension](https://ipython.readthedocs.io/en/stable/config/extensions/) that launches a [Kedro session](../kedro_project_setup/session.md) and makes the following Kedro variables available: + +* `catalog` (type `DataCatalog`): [Data Catalog](../data/data_catalog.md) instance that contains all defined datasets; this is a shortcut for `context.catalog` +* `context` (type `KedroContext`): Kedro project context that provides access to Kedro's library components +* `pipelines` (type `Dict[str, Pipeline]`): Pipelines defined in your [pipeline registry](../nodes_and_pipelines/run_a_pipeline.md#run-a-pipeline-by-name) +* `session` (type `KedroSession`): [Kedro session](../kedro_project_setup/session.md) that orchestrates a pipeline run + + +## Iris dataset example + +Create a sample Kedro project with the [`pandas-iris` starter](https://github.com/kedro-org/kedro-starters/tree/main/pandas-iris) as we showed in the [get started documentation](../get_started/new_project.md#create-the-example-project): + +```bash +kedro new --starter=pandas-iris +``` + +We will assume you call the project `iris`, but you can call it whatever you choose. + +Navigate to the project directory and issue the following command in the terminal to launch Jupyter: + +```bash +kedro jupyter notebook +``` + +Your browser window will open, and you can then create a new Notebook using the dropdown and selecting the `Kedro ()` kernel. + +![Create a new Notebook with Kedro (iris) kernel](../meta/images/jupyter_new_notebook.png) + +We recommend that you store your Notebooks in the `notebooks` folder of your Kedro project. + +We will now give some examples of how to work with the Kedro variables. To explore the full range of attributes and methods available, you might like to consult the relevant [API documentation](/kedro) or use the [Python `dir` function](https://docs.python.org/3/library/functions.html#dir) (e.g. `dir(catalog)`). + +``` {note} +If the Kedro variables are not available within your Notebook, you could have a malformed configuration file or missing dependencies. The full error message is shown on the terminal used to launch `kedro jupyter notebook`. +``` + +### `catalog` + +`catalog` can be used to explore your [Data Catalog](../data/data_catalog.md), including parameters. Useful methods include `catalog.list`, `catalog.load` and `catalog.save`. For example, add the following to a cell in your Notebook: + +```ipython +catalog.list() +``` + +When you run the cell: + +```ipython +['example_iris_data', + 'parameters', + 'params:example_test_data_ratio', + 'params:example_num_train_iter', + 'params:example_learning_rate' +] +``` +Next try the following: + +```ipython +catalog.load("example_iris_data") +``` + +The output: + +```ipython +INFO Loading data from 'example_iris_data' (CSVDataSet)... + + sepal_length sepal_width petal_length petal_width species +0 5.1 3.5 1.4 0.2 setosa +1 4.9 3.0 1.4 0.2 setosa +2 4.7 3.2 1.3 0.2 setosa +3 4.6 3.1 1.5 0.2 setosa +4 5.0 3.6 1.4 0.2 setosa +.. ... ... ... ... ... +145 6.7 3.0 5.2 2.3 virginica +146 6.3 2.5 5.0 1.9 virginica +147 6.5 3.0 5.2 2.0 virginica +148 6.2 3.4 5.4 2.3 virginica +149 5.9 3.0 5.1 1.8 virginica +``` + +Finally, try the following: + +```ipython +catalog.load("parameters") +``` +You should see the following: + +```ipython +INFO Loading data from 'parameters' (MemoryDataSet)... + +{'example_test_data_ratio': 0.2, + 'example_num_train_iter': 10000, + 'example_learning_rate': 0.01} +``` + +```{note} +If you enable [versioning](../data/data_catalog.md#version-datasets-and-ml-models) you can load a particular version of a dataset, e.g. `catalog.load("example_train_x", version="2021-12-13T15.08.09.255Z")`. +``` + +### `context` + +`context` enables you to access Kedro's library components and project metadata. For example, if you add the following to a cell and run it: + +```ipython +context.project_path +``` +You should see output similar to the following, according to your username and path: + +```ipython +PosixPath('/Users/username/kedro_projects/iris') +``` + +You can find out more about the `context` in the [API documentation](/kedro.framework.context.KedroContext). + +### `pipelines` + +`pipelines` is a dictionary containing your project's [registered pipelines](../nodes_and_pipelines/run_a_pipeline.md#run-a-pipeline-by-name): + +```ipython +pipelines +``` + +The output will be a listing as follows: + +```ipython +{'__default__': Pipeline([ +Node(split_data, ['example_iris_data', 'parameters'], ['X_train', 'X_test', 'y_train', 'y_test'], 'split'), +Node(make_predictions, ['X_train', 'X_test', 'y_train'], 'y_pred', 'make_predictions'), +Node(report_accuracy, ['y_pred', 'y_test'], None, 'report_accuracy') +])} +``` + +You can use this to explore your pipelines and the nodes they contain: + +```ipython +pipelines["__default__"].all_outputs() +``` +Should give the output: + +```ipython +{'y_pred', 'X_test', 'y_train', 'X_train', 'y_test'} +``` + +### `session` + +`session.run` allows you to run a pipeline. With no arguments, this will run your `__default__` project pipeline sequentially, much as a call to `kedro run` from the terminal: + +```ipython +session.run() +``` + +```{note} +You can only execute one *successful* run per session, as there's a one-to-one mapping between a session and a run. If you wish to do multiple runs, you'll have to run `%reload_kedro` to obtain a new `session` (see below). +``` + +You can also specify the following optional arguments for `session.run`: + +| Argument name | Accepted types | Description | +| --------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tags` | `Iterable[str]` | Construct the pipeline using only nodes which have this tag attached. A node is included in the resulting pipeline if it contains any of those tags | +| `runner` | `AbstractRunner` | An instance of Kedro [AbstractRunner](/kedro.runner.AbstractRunner). Can be an instance of a [ParallelRunner](/kedro.runner.ParallelRunner) | +| `node_names` | `Iterable[str]` | Run only nodes with specified names | +| `from_nodes` | `Iterable[str]` | A list of node names which should be used as a starting point | +| `to_nodes` | `Iterable[str]` | A list of node names which should be used as an end point | +| `from_inputs` | `Iterable[str]` | A list of dataset names which should be used as a starting point | +| `to_outputs` | `Iterable[str]` | A list of dataset names which should be used as an end point | +| `load_versions` | `Dict[str, str]` | A mapping of a dataset name to a specific dataset version (timestamp) for loading. Applies to versioned datasets only | +| `pipeline_name` | `str` | Name of the modular pipeline to run. Must be one of those returned by the `register_pipelines` function in `src//pipeline_registry.py` | + +## `%reload_kedro` line magic + +You can use `%reload_kedro` [line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) within your Notebook to reload the Kedro variables (for example, if you need to update `catalog` following changes to your Data Catalog). + +You don't need to restart the kernel to reload the Kedro IPython extension and refresh the `catalog`, `context`, `pipelines` and `session` variables. + +`%reload_kedro` accepts optional keyword arguments `env` and `params`. For example, to use configuration environment `prod`: + +```ipython +%reload_kedro --env=prod` +``` + +For more details, run `%reload_kedro?`. + +## `%run_viz` line magic + +If you have [Kedro-Viz](https://github.com/kedro-org/kedro-viz) installed for the project you can display an interactive visualisation of your pipeline directly in your Notebook using the [line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) `%run_viz`. + + +## Convert functions from Jupyter Notebooks into Kedro nodes + +If you are writing experimental code in your Notebook and later want to convert functions you've written to Kedro nodes, you can do this using tags. + +Say you have the following code in your Notebook: + +```ipython +def some_action(): + print("This function came from `notebooks/my_notebook.ipynb`") +``` + +1. Enable tags toolbar: `View` menu -> `Cell Toolbar` -> `Tags` +![Enable the tags toolbar graphic](../meta/images/jupyter_notebook_workflow_activating_tags.png) + +2. Add the `node` tag to the cell containing your function +![Add the node tag graphic](../meta/images/jupyter_notebook_workflow_tagging_nodes.png) + +```{note} +The Notebook can contain multiple functions tagged as `node`, each of them will be exported into the resulting Python file +``` + +3. Save your Jupyter Notebook to `notebooks/my_notebook.ipynb` +4. From your terminal, run `kedro jupyter convert notebooks/my_notebook.ipynb` from the Kedro project directory. The output is a Python file `src//nodes/my_notebook.py` containing the `some_action` function definition +5. The `some_action` function can now be used in your Kedro pipelines + +## Useful to know... +Each Kedro project has its own Jupyter kernel so you can switch between multiple Kedro projects from a single Jupyter instance simply by selecting the appropriate kernel. + +If a Jupyter kernel with the name `kedro_` already exists then it is replaced. This ensures that the kernel always points to the correct Python executable. For example, if you change conda environment in a Kedro project then you should re-run `kedro jupyter notebook` to replace the kernel specification with one that points to the new environment. + +You can use the `jupyter kernelspec` set of commands to manage your Jupyter kernels. For example, to remove a kernel, run `jupyter kernelspec remove `. + +### Managed services + +If you work within a managed Jupyter service such as a Databricks Notebook you may be unable to execute `kedro jupyter notebook`. You can explicitly load the Kedro IPython extension with the `%load_ext` line magic: + +```ipython +In [1]: %load_ext kedro.ipython +``` + +If you launch your Jupyter instance from outside your Kedro project, you will need to run a second line magic to set the project path so that Kedro can load the `catalog`, `context`, `pipelines` and `session` variables: + +```ipython +In [2]: %reload_kedro +``` +The Kedro IPython extension remembers the project path so that subsequent calls to `%reload_kedro` do not need to specify it: + +```ipython +In [1]: %load_ext kedro.ipython +In [2]: %reload_kedro +In [3]: %reload_kedro +``` + +### IPython, JupyterLab and other Jupyter clients + +You can also connect an IPython shell to a Kedro project kernel as follows: + +```bash +kedro ipython +``` + +The command launches an IPython shell with the extension already loaded and is equivalent to the command `ipython --ext kedro.ipython`. You first saw this in action in the [spaceflights tutorial](../tutorial/set_up_data.md#test-that-kedro-can-load-the-csv-data). + + +Similarly, the following creates a custom Jupyter kernel that automatically loads the extension and launches JupyterLab with this kernel selected: + +```bash +kedro jupyter lab +``` + +You can use any other Jupyter client to connect to a Kedro project kernel such as the [Qt Console](https://qtconsole.readthedocs.io/), which can be launched using the `kedro_iris` kernel as follows: + +```bash +jupyter qtconsole --kernel=kedro_iris +``` + +This will automatically load the Kedro IPython in a console that supports graphical features such as embedded figures: +![Plot of example iris data in a Qt Console](../meta/images/jupyter_qtconsole.png) + + +## Find out more + +We recommend the following: + +* [Power is nothing without control: Don’t break up with Jupyter Notebooks. Just use Kedro too!](https://towardsdatascience.com/power-is-nothing-without-control-aa43523745b6) + +* [Two Tricks to Optimize your Kedro Jupyter Flow](https://youtu.be/ZHIqXJEp0-w) + +* [Handling Custom Jupyter Data Sources](https://youtu.be/dRnCovp1GRQ) + +* [Why transition from vanilla Jupyter Notebooks to Kedro?](https://www.youtube.com/watch?v=JLTYNPoK7nw&ab_channel=PyConUS) diff --git a/docs/source/notebooks_and_ipython/kedro_as_a_data_registry.md b/docs/source/notebooks_and_ipython/kedro_as_a_data_registry.md new file mode 100644 index 0000000000..ac53c9e1ec --- /dev/null +++ b/docs/source/notebooks_and_ipython/kedro_as_a_data_registry.md @@ -0,0 +1,45 @@ +# Kedro as a data registry + +In some projects you may want to share a Jupyter Notebook with others so you need to avoid using hard-coded file paths for data access. + +One solution is to set up a lightweight Kedro project that uses the Kedro [`DataCatalog`](../data/data_catalog.md) as a registry for the data, without using any of the other features of Kedro. + +The Kedro starter with alias `standalone-datacatalog` (formerly known as `mini-kedro`) provides this kind of minimal functionality. + +## Usage + +Use the [`standalone-datacatalog` starter](https://github.com/kedro-org/kedro-starters/tree/main/standalone-datacatalog) to create a new project: + +```bash +kedro new --starter=standalone-datacatalog +``` + +The starter comprises a minimal setup to use the traditional [Iris dataset](https://www.kaggle.com/uciml/iris) with Kedro's [`DataCatalog`](../data/data_catalog.md). + +The starter contains: + +* A `conf` directory, which contains an example `DataCatalog` configuration (`catalog.yml`): + + ```yaml +# conf/base/catalog.yml +example_dataset_1: + type: pandas.CSVDataSet + filepath: folder/filepath.csv + +example_dataset_2: + type: spark.SparkDataSet + filepath: s3a://your_bucket/data/01_raw/example_dataset_2* + credentials: dev_s3 + file_format: csv + save_args: + if_exists: replace +``` + +* A `data` directory, which contains an example dataset identical to the one used by the [`pandas-iris`](https://github.com/kedro-org/kedro-starters/tree/main/pandas-iris) starter + +* An example Jupyter Notebook, which shows how to instantiate the `DataCatalog` and interact with the example dataset: + +```python +df = catalog.load("example_dataset_1") +df_2 = catalog.save("example_dataset_2") +``` diff --git a/docs/source/resources/glossary.md b/docs/source/resources/glossary.md index c87ce56383..2bdeb059eb 100644 --- a/docs/source/resources/glossary.md +++ b/docs/source/resources/glossary.md @@ -48,7 +48,11 @@ In many typical Kedro projects, a single (“main”) pipeline increases in comp [Further information about modular pipelines](../nodes_and_pipelines/modular_pipelines.md) ## Node -A Kedro node is a wrapper for a Python function that names the inputs and outputs of that function. It is the building block of a pipeline. Nodes can be linked when the output of one node is the input of another. +A Kedro node is a wrapper for a pure Python function that names the inputs and outputs of that function. + +(A [pure function](https://realpython.com/python-functional-programming/#what-is-functional-programming) is a one whose output value follows solely from its input values, without any observable side effects such as changes to state or mutable data). + +Nodes are the building block of a pipeline. Nodes can be linked when the output of one node is the input of another. [Further information about nodes](../nodes_and_pipelines/nodes.md) @@ -85,7 +89,7 @@ Runners are different execution mechanisms to run pipelines with the specified d ## Starters Kedro starters are used to create projects that contain code to run as-is, or to adapt and extend. They provide pre-defined example code and configuration that can be reused. A Kedro starter is a [Cookiecutter template](https://cookiecutter.readthedocs.io/) that contains the boilerplate code for a Kedro project. -[Further information about Kedro starters](../get_started/starters.md) +[Further information about Kedro starters](../kedro_project_setup/starters.md) ## Tags You can apply tags to nodes or pipelines as a means of filtering which are executed. diff --git a/docs/source/tools_integration/ipython.md b/docs/source/tools_integration/ipython.md deleted file mode 100644 index 1c45033e92..0000000000 --- a/docs/source/tools_integration/ipython.md +++ /dev/null @@ -1,266 +0,0 @@ -# Use Kedro with IPython and Jupyter - -This page demonstrates how to use Kedro with IPython, Jupyter Notebook and JupyterLab. We also recommend [a video by Data Engineer One](https://www.youtube.com/watch?v=dRnCovp1GRQ&t=50s&ab_channel=DataEngineerOne) and [a PyCon presentation by Yetunde Dada](https://www.youtube.com/watch?v=JLTYNPoK7nw&ab_channel=PyConUS) that explain the transition from the use of vanilla Jupyter Notebooks to Kedro. - - - -## Why use a Notebook? -There are reasons why you may want to use a Notebook, although in general, the principles behind Kedro would discourage their use because they have some [drawbacks when used to create production or reproducible code](https://towardsdatascience.com/5-reasons-why-you-should-switch-from-jupyter-notebook-to-scripts-cb3535ba9c95). However, there are occasions when you'd want to put some code into a Notebook, for example: - -* To conduct exploratory data analysis -* For experimentation as you create new Python functions (that could become Kedro nodes) -* As a tool for reporting and presentations - -## Kedro IPython extension - -The recommended way to interact with Kedro in IPython and Jupyter is through the Kedro [IPython extension](https://ipython.readthedocs.io/en/stable/config/extensions/index.html), `kedro.ipython`. An [IPython extension](https://ipython.readthedocs.io/en/stable/config/extensions/) is an importable Python module that has a couple of special functions to load and unload it. - -The Kedro IPython extension launches a [Kedro session](../kedro_project_setup/session.md) and makes available the useful Kedro variables `catalog`, `context`, `pipelines` and `session`. It also provides the `%reload_kedro` [line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) that reloads these variables (for example, if you need to update `catalog` following changes to your Data Catalog). - -The simplest way to make use of the Kedro IPython extension is through the following commands: -* `kedro ipython`. This launches an IPython shell with the extension already loaded and is equivalent to the command `ipython --ext kedro.ipython`. -* `kedro jupyter notebook`. This creates a custom Jupyter kernel that automatically loads the extension and launches Jupyter Notebook with this kernel selected. -* `kedro jupyter lab`. This creates a custom Jupyter kernel that automatically loads the extension and launches JupyterLab with this kernel selected. - -Running any of the above from within your Kedro project will make the `catalog`, `context`, `pipelines` and `session` variables immediately accessible to you. - -```{note} -If these variables are not available then Kedro has not been able to load your project. This could be, for example, due to a malformed configuration file or missing dependencies. The full error message is shown on the terminal used to launch `kedro ipython`, `kedro jupyter notebook` or `kedro jupyter lab`. Alternatively, it can be accessed inside the IPython or Jupyter session directly with `%reload_kedro`. -``` - -### Managed Jupyter instances - -If the above commands are not available to you (e.g. you work in a managed Jupyter service such as a Databricks Notebook) then equivalent behaviour can be achieved by explicitly loading the Kedro IPython extension with the `%load_ext` line magic: -```ipython -In [1]: %load_ext kedro.ipython -``` - -If your IPython or Jupyter instance was launched from outside your Kedro project then you will need to run a second line magic to set the project path so that Kedro can load the `catalog`, `context`, `pipelines` and `session` variables: -```ipython -In [2]: %reload_kedro -``` -The Kedro IPython extension remembers the project path so that subsequent calls to `%reload_kedro` do not need to specify it: - -```ipython -In [1]: %load_ext kedro.ipython -In [2]: %reload_kedro -In [3]: %reload_kedro -``` - -```{note} -`%reload_kedro` accepts optional keyword arguments `env` and `params`. For example, to use configuration environment `prod` you should run `%reload_kedro --env=prod`. For more details, run `%reload_kedro?`. -``` - -## Kedro variables: `catalog`, `context`, `pipelines` and `session` - -The Kedro IPython extension makes the following variables available in your IPython or Jupyter session: - -* `catalog` (type `DataCatalog`): [Data Catalog](../data/data_catalog.md) instance that contains all defined datasets; this is a shortcut for `context.catalog` -* `context` (type `KedroContext`): Kedro project context that provides access to Kedro's library components -* `pipelines` (type `Dict[str, Pipeline]`): Pipelines defined in your [pipeline registry](../nodes_and_pipelines/run_a_pipeline.md#run-a-pipeline-by-name) -* `session` (type `KedroSession`): [Kedro session](../kedro_project_setup/session.md) that orchestrates a pipeline run - -We will now give some examples of how these variables can be used in the [Iris example project](../get_started/example_project.md). To explore the full range of attributes and methods available, you might like to consult the relevant [API documentation](/kedro) or use the [Python `dir` function](https://docs.python.org/3/library/functions.html#dir) (e.g. `dir(catalog)`). - -### `catalog` - -`catalog` can be used to explore your [Data Catalog](../data/data_catalog.md), including parameters. Useful methods include `catalog.list`, `catalog.load` and `catalog.save`. For example: - -```ipython -In [1]: catalog.list() -Out[1]: -['example_iris_data', - 'parameters', - 'params:example_test_data_ratio', - 'params:example_num_train_iter', - 'params:example_learning_rate'] -``` - -```ipython -In [2]: catalog.load("example_iris_data") -Out[2]: - sepal_length sepal_width petal_length petal_width species -0 5.1 3.5 1.4 0.2 setosa -1 4.9 3.0 1.4 0.2 setosa -2 4.7 3.2 1.3 0.2 setosa -3 4.6 3.1 1.5 0.2 setosa -4 5.0 3.6 1.4 0.2 setosa -.. ... ... ... ... ... -145 6.7 3.0 5.2 2.3 virginica -146 6.3 2.5 5.0 1.9 virginica -147 6.5 3.0 5.2 2.0 virginica -148 6.2 3.4 5.4 2.3 virginica -149 5.9 3.0 5.1 1.8 virginica -``` - -```ipython -In [3]: catalog.load("parameters") -Out[3]: -{'example_test_data_ratio': 0.2, - 'example_num_train_iter': 10000, - 'example_learning_rate': 0.01} -``` - -```{note} -If you enable [versioning](../data/data_catalog.md#version-datasets-and-ml-models) then you can load a particular version of a dataset, e.g. `catalog.load("example_train_x", version="2021-12-13T15.08.09.255Z")`. -``` - -### `context` - -`context` enables you to access Kedro's library components and project metadata. For example: - -```ipython -In [1]: context.project_path -Out[1]: PosixPath('/Users/username/kedro_projects/iris') -``` - -### `pipelines` - -`pipelines` is a dictionary containing your project's [registered pipelines](../nodes_and_pipelines/run_a_pipeline.md#run-a-pipeline-by-name): - -```ipython -In [1]: pipelines -Out[1]: -{'de': Pipeline([ -Node(split_data, ['example_iris_data', 'params:example_test_data_ratio'], {'train_x': 'example_train_x', 'train_y': 'example_train_y', 'test_x': 'example_test_x', 'test_y': 'example_test_y'}, 'split') -]), 'ds': Pipeline([ -Node(train_model, ['example_train_x', 'example_train_y', 'parameters'], 'example_model', 'train'), -Node(predict, {'model': 'example_model', 'test_x': 'example_test_x'}, 'example_predictions', 'predict'), -Node(report_accuracy, ['example_predictions', 'example_test_y'], None, 'report') -]), '__default__': Pipeline([ -Node(split_data, ['example_iris_data', 'params:example_test_data_ratio'], {'train_x': 'example_train_x', 'train_y': 'example_train_y', 'test_x': 'example_test_x', 'test_y': 'example_test_y'}, 'split'), -Node(train_model, ['example_train_x', 'example_train_y', 'parameters'], 'example_model', 'train'), -Node(predict, {'model': 'example_model', 'test_x': 'example_test_x'}, 'example_predictions', 'predict'), -Node(report_accuracy, ['example_predictions', 'example_test_y'], None, 'report') -])} -``` - -This can be very useful for exploring your pipelines and the nodes they contain: - -```ipython -In [2]: pipelines["__default__"].all_outputs() -Out[2]: -{'example_model', - 'example_predictions', - 'example_test_x', - 'example_test_y', - 'example_train_x', - 'example_train_y'} - -In [3]: [node.name for node in pipelines["__default__"].nodes] -Out[3]: ['split', 'train', 'predict', 'report'] -``` - -### `session` - -`session.run` allows you to run a pipeline. With no arguments, this will run your `__default__` project pipeline in a sequential manner: - -``` -In [1]: session.run() -2022-03-25 11:20:48,900 - kedro.framework.session.session - INFO - ** Kedro project iris -2022-03-25 11:20:48,911 - kedro.io.data_catalog - INFO - Loading data from `example_iris_data` (CSVDataSet)... -2022-03-25 11:20:48,915 - kedro.io.data_catalog - INFO - Loading data from `params:example_test_data_ratio` (MemoryDataSet)... -2022-03-25 11:20:48,915 - kedro.pipeline.node - INFO - Running node: split: split_data([example_iris_data,params:example_test_data_ratio]) -> [example_train_x,example_train_y,example_test_x,example_test_y] -... -2022-03-25 11:20:49,314 - kedro.runner.sequential_runner - INFO - Completed 4 out of 4 tasks -2022-03-25 11:20:49,314 - kedro.runner.sequential_runner - INFO - Pipeline execution completed successfully. -Out[1]: {} -``` - -```{note} -You can only execute one *successful* run per session, as there's a one-to-one mapping between a session and a run. If you wish to do multiple runs, you'll have to run `%reload_kedro` to obtain a new `session`. -``` - -You can also specify the following optional arguments for `session.run`: - -| Argument name | Accepted types | Description | -| --------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tags` | `Iterable[str]` | Construct the pipeline using only nodes which have this tag attached. A node is included in the resulting pipeline if it contains any of those tags | -| `runner` | `AbstractRunner` | An instance of Kedro [AbstractRunner](/kedro.runner.AbstractRunner). Can be an instance of a [ParallelRunner](/kedro.runner.ParallelRunner) | -| `node_names` | `Iterable[str]` | Run only nodes with specified names | -| `from_nodes` | `Iterable[str]` | A list of node names which should be used as a starting point | -| `to_nodes` | `Iterable[str]` | A list of node names which should be used as an end point | -| `from_inputs` | `Iterable[str]` | A list of dataset names which should be used as a starting point | -| `to_outputs` | `Iterable[str]` | A list of dataset names which should be used as an end point | -| `load_versions` | `Dict[str, str]` | A mapping of a dataset name to a specific dataset version (timestamp) for loading. Applies to versioned datasets only | -| `pipeline_name` | `str` | Name of the modular pipeline to run. Must be one of those returned by the `register_pipelines` function in `src//pipeline_registry.py` | - -## Kedro and Jupyter - -We recommend that you store your Jupyter Notebooks in the `notebooks` folder of your Kedro project. If you are using `kedro jupyter notebook` or `kedro jupyter lab` then you should use the default kernel selected for you, which is listed as `Kedro ()`. This will run the Kedro IPython extension automatically when the kernel is started, so that the `catalog`, `context`, `pipelines` and `session` variables are available immediately to you. - -```{note} -Restarting the kernel will reload the Kedro IPython extension and hence refresh the `catalog`, `context`, `pipelines` and `session` variables. -``` -For example, to create a new Notebook in the Iris example project use the following button: - -![Make a new Notebook using the Kedro (iris) kernel](../meta/images/jupyter_new_notebook.png) - -From inside a Notebook, the kernel selected appears as follows: - -![Select the Kedro (iris) kernel inside a Notebook](../meta/images/jupyter_select_kernel.png) - -If you are not able to execute `kedro jupyter notebook` or `kedro jupyter lab` then follow the [instructions on managed Jupyter instances](#managed-jupyter-instances) to manually load the Kedro IPython extension. - -### Manage Jupyter kernels - -Behind the scenes, the `kedro jupyter notebook` and `kedro jupyter lab` commands create a Jupyter kernel named `kedro_`. This kernel is identical to the [default IPython kernel](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) but with a slightly customised [kernel specification](https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs) that automatically loads `kedro.ipython` when the kernel is started. The kernel specification is installed at a user level rather than system-wide. - -```{note} -If a Jupyter kernel with the name `kedro_` already exists then it is replaced. This ensures that the kernel always points to the correct Python executable. For example, if you change conda environment in a Kedro project then you should re-run `kedro jupyter notebook/lab` to replace the kernel specification with one that points to the new environment. -``` - -As each Kedro project has its own Jupyter kernel, you can switch between multiple Kedro projects from a single Jupyter instance simply by selecting the appropriate kernel. - -You can use the `jupyter kernelspec` set of commands to manage your Jupyter kernels. For example, to remove the kernel created as part of the Iris example project, you would run `jupyter kernelspec remove kedro_iris`. - -### Use an alternative Jupyter client - -In addition to Jupyter Notebook and JupyterLab, you can use any other Jupyter client to connect to a Kedro project kernel. For example, the [Qt Console](https://qtconsole.readthedocs.io/) can be launched using the `kedro_iris` kernel as follows: - -```bash -jupyter qtconsole --kernel=kedro_iris -``` - -This will automatically load the Kedro IPython in a console that supports graphical features such as embedded figures: -![Plot of example iris data in a Qt Console](../meta/images/jupyter_qtconsole.png) - -### Convert functions from Jupyter Notebooks into Kedro nodes - -Built into the Kedro Jupyter workflow is the ability to convert multiple functions defined in the Jupyter Notebook(s) into Kedro nodes. You need a single CLI command. - -Here is how it works: - -* Start a Jupyter Notebook session: `kedro jupyter notebook` -* Create a new Notebook and paste the following code into the first cell: - -```python -def some_action(): - print("This function came from `notebooks/my_notebook.ipynb`") -``` - -* Enable tags toolbar: `View` menu -> `Cell Toolbar` -> `Tags` -![Enable the tags toolbar graphic](../meta/images/jupyter_notebook_workflow_activating_tags.png) - -* Add the `node` tag to the cell containing your function -![Add the node tag graphic](../meta/images/jupyter_notebook_workflow_tagging_nodes.png) - -```{note} -The Notebook can contain multiple functions tagged as `node`, each of them will be exported into the resulting Python file -``` - -* Save your Jupyter Notebook to `notebooks/my_notebook.ipynb` -* Run `kedro jupyter convert notebooks/my_notebook.ipynb` from the terminal to create a Python file `src//nodes/my_notebook.py` containing `some_action` function definition - - -```{note} -You can also convert all your Notebooks at once by calling `kedro jupyter convert --all`. -``` - -* The `some_action` function can now be used in your Kedro pipelines - -### Kedro-Viz line magic - -If you have [Kedro-Viz](https://github.com/kedro-org/kedro-viz) installed then you can display an interactive visualisation of your pipeline directly in your Notebook using the [line magic](https://ipython.readthedocs.io/en/stable/interactive/magics.html) `%run_viz`. You should see a visualisation like the following: - -![`%run_viz` line magic in a Notebook](../meta/images/jupyter_notebook_kedro_viz.png) diff --git a/docs/source/tutorial/add_another_pipeline.md b/docs/source/tutorial/add_another_pipeline.md index 1d9e9283f0..0b4d565950 100644 --- a/docs/source/tutorial/add_another_pipeline.md +++ b/docs/source/tutorial/add_another_pipeline.md @@ -8,7 +8,6 @@ This section explains the following: * How to add a second Kedro pipeline for data science code that extends the default project pipeline * How to 'slice' the project and run just part of the default pipeline -* How to visualise the default project pipeline * (Optional) How to make a [modular pipeline](../nodes_and_pipelines/modular_pipelines.md) * (Optional) How to specify the way the pipeline nodes are run: sequentially or in parallel @@ -255,26 +254,6 @@ This will only work if you have persisted the input to the `data_science` pipeli There are a range of options to run sections of the default pipeline as described in the [pipeline slicing documentation](../nodes_and_pipelines/slice_a_pipeline.md) and the ``kedro run`` [CLI documentation](../development/commands_reference.md#modifying-a-kedro-run). - -## Visualise the project - -The documentation on [visualisation with Kedro-Viz](../visualisation/kedro-viz_visualisation) discusses this topic in greater detail, so this is a swift introduction on how to use Kedro-Viz to visualise the project. - -In your terminal type the following: - -```bash -kedro viz -``` - -This command automatically opens a browser tab to serve the visualisation at `http://127.0.0.1:4141/`. - -You should see the following: - -![](../meta/images/pipeline_visualisation.png) - -To exit the visualisation, close the browser tab. To regain control of the terminal, enter `⌘+c` on Mac or `Ctrl+c` on Windows or Linux machines. - - ## Optional: modular pipelines In many typical Kedro projects, a single (“main”) pipeline increases in complexity as the project evolves. To keep your project fit for purpose, we recommend that you create [modular pipelines](../nodes_and_pipelines/modular_pipelines.md), which are logically isolated and can be reused. You can instantiate a modular pipeline multiple times as a "template" pipeline that can run with different inputs/outputs/parameters. diff --git a/docs/source/tutorial/set_up_data.md b/docs/source/tutorial/set_up_data.md index 9e53d71775..6eca212332 100644 --- a/docs/source/tutorial/set_up_data.md +++ b/docs/source/tutorial/set_up_data.md @@ -125,7 +125,7 @@ When you have finished, close `ipython` session with `exit()`. ### Custom data -[Kedro supports a number of datasets](/kedro.extras.datasets) out of the box, but you can also add support for any proprietary data format or filesystem in your pipeline. +[Kedro supports numerous datasets](/kedro.extras.datasets) out of the box, but you can also add support for any proprietary data format or filesystem in your pipeline. You can find further information about [how to add support for custom datasets](../extend_kedro/custom_datasets.md) in specific documentation covering advanced usage. diff --git a/docs/source/tutorial/spaceflights_tutorial.md b/docs/source/tutorial/spaceflights_tutorial.md index 76dffb4dcf..b890693a3a 100644 --- a/docs/source/tutorial/spaceflights_tutorial.md +++ b/docs/source/tutorial/spaceflights_tutorial.md @@ -5,7 +5,7 @@ In this tutorial, we construct nodes and pipelines for a price-prediction model In the text, we assume you have started with an empty Kedro project and we show the steps necessary to convert it into a working project. The tutorial guides you to copy and paste example code into the Kedro project. It takes approximately **one hour** to complete. ```{note} -You may prefer to get up and running more swiftly. We also provide the example as a [Kedro starter](../get_started/starters.md) so you can follow along without copy/pasting. +You may prefer to get up and running more swiftly. We also provide the example as a [Kedro starter](../kedro_project_setup/starters.md) so you can follow along without copy/pasting. ``` ## Scenario @@ -27,8 +27,9 @@ Things you can do: * check the [spaceflights tutorial FAQ](spaceflights_tutorial_faqs.md) to see if we have answered the question already * use the spaceflights starter to [create a new, separate project which contains working example code](./tutorial_template.md#create-a-new-project), and compare that project with your own +* use [Kedro-Viz](../visualisation/kedro-viz_visualisation) to visualise your project to better understand how the datasets, nodes and pipelines fit together * use the [#questions channel](https://slack.kedro.org/) on our Slack channel (which replaces our Discord server) to ask the community for help -* search the [archive of Discord discussions](https://linen-discord.kedro.org/) +* search the [searchable archive of Discord discussions](https://linen-discord.kedro.org/) ## Terminology @@ -67,6 +68,10 @@ When you build a Kedro project, you will typically follow a [standard developmen You don't need to do this section for the tutorial, but you may want to familiarise yourself with the use of `git` for source control. +``` {note} +For further information about this topic, check out [this post about version control for data scientists](https://flatironschool.com/blog/version-control-for-data-scientists/) +``` +

Click to expand diff --git a/docs/source/tutorial/tutorial_template.md b/docs/source/tutorial/tutorial_template.md index 4b75b44caa..f089a9361d 100644 --- a/docs/source/tutorial/tutorial_template.md +++ b/docs/source/tutorial/tutorial_template.md @@ -14,7 +14,7 @@ Don't forget to check the [tutorial FAQ](spaceflights_tutorial_faqs.md) if you r ## Create a new project -If you have not yet set up Kedro, please do so by following the guidelines to [set up a virtual environment with `conda`](../get_started/prerequisites.md#create-a-virtual-environment-with-conda) and [install Kedro](../get_started/install.md). +If you have not yet set up Kedro, do so by [following the guidelines to install Kedro](../get_started/install.md). ```{important} We recommend that you use the same version of Kedro that was most recently used to test this tutorial (0.18.3). @@ -38,10 +38,6 @@ For either option, when prompted for a project name, enter `Kedro Tutorial`. Whe cd kedro-tutorial ``` -```{note} -The first time you type a `kedro` command in your new project, you will be asked whether you wish to opt into [usage analytics](https://github.com/kedro-org/kedro-plugins/tree/main/kedro-telemetry). Your decision is recorded in the `.telemetry` file so that subsequent calls to `kedro` in this project do not ask you again. -``` - ## Project dependencies Kedro projects have a `requirements.txt` file to specify their dependencies and enable sharable projects by ensuring consistency across Python packages and versions. diff --git a/docs/source/visualisation/kedro-viz_visualisation.md b/docs/source/visualisation/kedro-viz_visualisation.md index f0a8e28a16..01eba1ffd9 100644 --- a/docs/source/visualisation/kedro-viz_visualisation.md +++ b/docs/source/visualisation/kedro-viz_visualisation.md @@ -1,60 +1,68 @@ # Get started with Kedro-Viz -This page assumes you are familiar with the basic Kedro concepts described in the [Spaceflights tutorial](../tutorial/spaceflights_tutorial.md). If you have not yet worked through the tutorial, you can generate the project with all the code in place by using the [Kedro starter for the spaceflights tutorial](https://github.com/kedro-org/kedro-starters/tree/main/spaceflights): +[Kedro-Viz](https://github.com/kedro-org/kedro-viz) is a key part of Kedro. It displays data and nodes, and the connections between them, to visualise the structure of the pipelines in a Kedro project. -``` -kedro new --starter=spaceflights -``` +This section assumes you are familiar with the basic Kedro concepts described in the [spaceflights tutorial](../tutorial/spaceflights_tutorial.md). If you have not yet worked through the tutorial, you can still follow this example. -When prompted for a project name, you can enter any name, but we will assume `Kedro Tutorial` throughout this documentation. When your project is ready, navigate to the root directory of the project. +Generate a copy of the spaceflights tutorial project with all the code in place by using the [Kedro starter for the spaceflights tutorial](https://github.com/kedro-org/kedro-starters/tree/main/spaceflights): +```bash +kedro new --starter=spaceflights +``` -## Install Kedro-Viz and visualise the project - -[Kedro-Viz](https://github.com/kedro-org/kedro-viz) displays data and machine-learning pipelines in an informative way, emphasising the connections between datasets and nodes. It shows the structure of your Kedro pipeline. +When prompted for a project name, you can enter any name, but we will assume `Kedro Tutorial` throughout. -To install the dependencies for the project, including Kedro-Viz, type the following in your terminal, from the root of the project directory: +When your project is ready, navigate to the root directory of the project and install the dependencies for the project, which include Kedro-Viz: ```bash pip install -r src/requirements.txt ``` -Next, type the following to run Kedro-Viz: +## Visualise the spaceflights project + +To run Kedro-Viz, type the following into your terminal from the project directory: ```bash kedro viz ``` -This command automatically opens a browser tab to serve the visualisation at http://127.0.0.1:4141/. +The command automatically opens a browser tab to serve the visualisation at http://127.0.0.1:4141/. You should see the following: ![](../meta/images/pipeline_visualisation.png) -If a visualisation panel opens up and a pipeline is not visible, then please check that your [pipeline definition](../tutorial/create_a_pipeline.md) is complete. All other errors can be logged as GitHub Issues on the [Kedro-Viz repository](https://github.com/kedro-org/kedro-viz). +If a visualisation panel opens up and a pipeline is not visible, then please check that your tutorial project code is complete if you've not generated it from the starter template. -### Exit an open visualisation -To exit the visualisation, close the browser tab. To regain control of the terminal, enter `Ctrl+C` or `Cmd+C`. +### Need help? -## Automatic visualisation updates +If you still can't see the visualisation, the Kedro community can help! -You can use the `--autoreload` flag to autoreload Kedro-Viz when a `Python` or `YAML` file changes in the project. +* use the [#questions channel](https://slack.kedro.org/) on our Slack channel (which replaces our Discord server) to ask the community for help +* search the [searchable archive of Discord discussions](https://linen-discord.kedro.org/) -![](../meta/images/kedro_viz_autoreload.gif) -Add the flag to the command you use to start Kedro-Viz: +### Exit an open visualisation + +To exit the visualisation, close the browser tab. To regain control of the terminal, enter `⌘+c` on Mac or `Ctrl+c` on Windows or Linux machines. + +## Automatic visualisation updates + +You can use the `--autoreload` flag to autoreload Kedro-Viz when a `Python` or `YAML` file changes in the project. Add the flag to the command you use to start Kedro-Viz: ```bash kedro viz --autoreload ``` +![](../meta/images/kedro_viz_autoreload.gif) + The `autoreload` flag reflects changes to the project as they happen. For example, commenting out `create_model_input_table_node` in `pipeline.py` will trigger a re-render of the pipeline: ![autoreload](../meta/images/autoreload.gif) ## Visualise layers -By convention, a [pipeline can be broken up into different layers](../resources/glossary.md#layers-data-engineering-convention) according to how data is processed, which makes it easier to collaborate. +By convention, a [pipeline can be defined as having different layers](../resources/glossary.md#layers-data-engineering-convention) according to how data is processed, which makes it easier to collaborate. For example, the [data engineering convention](../faq/faq.md#what-is-data-engineering-convention) labels datasets according to the stage of the pipeline (e.g. whether the data has been cleaned). @@ -100,13 +108,13 @@ regressor: layer: models ``` -Run Kedro-Viz again and observe how your visualisation has changed to include the layers: +The visualisation now includes the layers: ![](../meta/images/pipeline_visualisation_with_layers.png) -## Share a pipeline +## Share a pipeline visualisation -You can share a Kedro-Viz visualisation as a JSON file: +You can share a Kedro-Viz visualisation as a JSON file from the terminal: ```bash kedro viz --save-file my_shareable_pipeline.json @@ -114,7 +122,7 @@ kedro viz --save-file my_shareable_pipeline.json This command will save a visualisation of the `__default__` pipeline as a JSON file called `my_shareable_pipeline.json`. -To visualise the JSON file: +To visualise the JSON file, type the following to load it from the terminal: ```bash kedro viz --load-file my_shareable_pipeline.json