# Exclude Nones

This function block removes `None` entries from a provided list. Use it when you need a clean list without empty placeholders before further processing or exporting.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Data List` — Input socket that accepts a list of values. Elements may be of any type and some may be `None`.

## 📤 Outputs <a href="#outputs" id="outputs"></a>

`Filtered Data List` — Output socket that returns the same list order but with all `None` elements removed.

## 🕹️ Controls <a href="#controls" id="controls"></a>

This block has no user-adjustable controls. It runs automatically when the input list is provided.

## 🎯 Features <a href="#features" id="features"></a>

* Simple and fast removal of `None` values while preserving original order.
* Works with mixed-type lists (numbers, strings, images, dictionaries, etc.).
* Useful to sanitize batch or list outputs before downstream processing or exporting.

## ⚙️ Running mechanism <a href="#evaluation" id="evaluation"></a>

On evaluation the block reads the value from the `Data List` input, filters out any elements that are `None`, and emits the cleaned list to `Filtered Data List`. If the input is empty or contains only `None` values, the output will be an empty list.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combine with `Replace None` when you prefer substituting default values instead of removing items.
* Use `Get Element` or `List Operations` after this block to safely access or manipulate list items without checking for `None`.
* Use `Is None` before this block to branch logic (for example, skip processing when many items are `None`).
* For batch workflows, pair with `Batch Processing`, `Debatch`, or `Batch Concatenation` to handle list/batch inputs and outputs cleanly.
* Store cleaned results with `Data Memory` if you need to freeze the filtered list until an update is requested.
* Prepare data for export by piping the output into `Data to JSON`, `CSV Export`, or `Image Logger` (when list contains images).
* Use `Debug Input` to inspect incoming lists if results look unexpected.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* If the output still contains `None`, confirm that the value at `Data List` is truly a list and not a different data type.
* If nothing appears on the output, check upstream blocks with `Debug Input` to ensure they are producing the expected list.


---

# 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.augelab.com/function-blocks/data-logic/data-operations/exclude-nones.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.
