# Load with Python

In the Load with Python section you’ll find two ways to create a new data source with your own ETL code:

* Quick deploy in the KAWA File Store – just write or paste your load\_data() function through the UI;
* Full DevOps workflow – connect your GitHub/GitLab repo as Source Control, version your scripts in Git, and KAWA will automatically scan the branch and list them under Python tools. Both approaches let you easily manage data updates and set up scheduled runs. You can read more about this in the [Python tools](/09_00_python_integration/09_02_python_tools.md) section. You can find example workbooks and additional documentation here: [KAWA Tools Github Repository](https://github.com/kawa-analytics/kawa-toolkits).

The next step is to create a new data source by running your own Python script in the **Data Source** section, click on **(+ Data Source)** then **(Load with Python)**.

Select Your Python Tool:

* In the DATA IMPORT panel, open the Python tool dropdown.
* Choose your script from the list (e.g. profit).

<div data-with-frame="true"><img src="/files/NYw2G8wjuQIUDUBtXNvy" alt=""></div>

Your script’s code will appear on the right. Click Preview data—KAWA will run your function and display the rows of the resulting data table.

<div data-with-frame="true"><img src="/files/klrNpWAOzRdtALdxD6B0" alt=""></div>

At the bottom, select one of the Feed type options: Reset before insert or Incremental. Then click Next.

On the Configure your data screen, review column names and data types. Toggle Is key on the column you’ll use for incremental updates. Click Save to lock in your schema and finish creating the Data Source.

<div data-with-frame="true"><img src="/files/pZulaEJ18uMBXWH09G2c" alt=""></div>

In the Create new data source dialog, enter:

* Data source name (e.g. profit).
* Description (optional).
* Data source type (usually Classic data source).
* Access Control default permissions. Click Save and run.

<div data-with-frame="true"><img src="/files/L88tMqNBIIPzUk3Qu2rF" alt=""></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kawa.ai/01_00_data_integration/01_04_load_with_python.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
