# Build a Python Notebook Manually

If you opt for the **'Build Manually'** method, follow these steps:

### **Access the Python Notebook Editor**

When the **"Build Manually"** option is selected, you will be directed to the main Python notebook editor. A default Python code block is automatically created, where you can begin writing and executing Python code to generate outputs.

### **Inserting Code and Text Blocks**

As you navigate through the notebook, you can easily add more content using the following options located in the each code block:

* **+ Python**: Inserts a new Python code block.
* **+ Text**: Adds a text block to include notes or explanations.
* **+ SQL**: Allows you to insert SQL code blocks to query data directly within the notebook.

All changes are saved automatically to ensure no progress is lost during your work.

<figure><img src="/files/efkRQFk2OhrGUXADx8Za" alt=""><figcaption></figcaption></figure>

### **Adding Data Sources**

On the left side of the notebook interface, the **Data Sources** panel is available to import databases or files. You can:

* **+ Add Database**: Connect to an external database.
* **+ Add File**: Upload files from your system. These are the accepted extensions: .csv, .xlsx, .json, .parquet

Upon clicking either option, a data source panel will open, following the same process used in [**Step 1**](/create-your-first-connection/step-1-navigate-to-the-connect-tab.md) of **Creating Your First Connection**.

<figure><img src="/files/a9ayHTJrJ23vINXAcnAN" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/rx62tjXKEcKAp4JMFw5T" alt="" width="375"><figcaption></figcaption></figure>

### **Selecting Data for Import**

From the data source panel, you can select a database or file from your previously connected sources. If connecting to a database, select the appropriate table from the dropdown menu.

<figure><img src="/files/FnIVDABJLYM5a0OA7Q3L" alt="" width="375"><figcaption></figcaption></figure>

### **Importing Data to the Notebook**

Once your database or file is selected, click the **"Import to Notebook"** button. This will automatically create a new Python code block on the right side of the editor, populated with the relevant code to load and work with your selected data.

<figure><img src="/files/ihJDugh8Yz9ed9SzDm35" alt="" width="375"><figcaption></figcaption></figure>

### **Working with Code Blocks**

* Each code block provides options to:
  1. **Run the query**
  2. **Modify variable names**
  3. **Use AI Copilot** for suggestions (pencil icon)
  4. **Hide the Code, move up/down, or delete the step**

<figure><img src="/files/uSkfxuTCEimcFJiVfJOb" alt=""><figcaption></figcaption></figure>

### **Additional Features**

* At the top of the notebook, you'll find CTAs:
  1. **Publish or Share** using the vertical ellipsis menu
  2. **Run all code blocks**
  3. **Save** the notebook (all changes are saved automatically)
  4. **Notebook** tab (default view)
  5. **Storybook** tab: Displays the notebook's analysis in narrative form

<figure><img src="/files/pUCejM3sBmo7MeokbZzk" alt=""><figcaption></figcaption></figure>


---

# 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.autonmis.com/create-and-manage-your-first-python-notebook/build-a-python-notebook-manually.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.
