# _collections

URL: /kida/api/environment/filters/_collections/
Section: filters
Description: Collection and sequence filters for Kida templates.

---

> For a complete page index, fetch /kida/llms.txt.

Open LLM text
(/kida/api/environment/filters/_collections/index.txt)

Share with AI

Ask Claude
(https://claude.ai/new?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Fenvironment%2Ffilters%2F_collections%2Findex.txt)

Ask ChatGPT
(https://chatgpt.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Fenvironment%2Ffilters%2F_collections%2Findex.txt)

Ask Gemini
(https://gemini.google.com/app?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Fenvironment%2Ffilters%2F_collections%2Findex.txt)

Ask Copilot
(https://copilot.microsoft.com/?q=Please%20help%20me%20understand%20this%20documentation%3A%20%2Fkida%2Fapi%2Fenvironment%2Ffilters%2F_collections%2Findex.txt)

Module

#
`environment.filters._collections`

Collection and sequence filters for Kida templates.

22Functions

## Functions

`_make_sort_key_numeric`

1

`tuple[int, int, int | fl…`

▼

Create sort key for numeric value.

`def _make_sort_key_numeric(value: int | float) -> tuple[int, int, int | float]`

##### Parameters

Name
Type
Description

`value`
`int | float`

##### Returns

`tuple[int, int, int | float]`

`_make_sort_key_string`

1

`tuple[int, int, str]`

▼

Create sort key for string value.

`def _make_sort_key_string(value: str) -> tuple[int, int, str]`

##### Parameters

Name
Type
Description

`value`
`str`

##### Returns

`tuple[int, int, str]`

`_filter_attr`

2

`Any`

▼

Get attribute from object or dictionary key.

Returns "" for None/missing value…

`def _filter_attr(value: Any, name: str) -> Any`

Get attribute from object or dictionary key.

Returns "" for None/missing values (None-resilient, like Hugo).

##### Parameters

Name
Type
Description

`value`
`Any`

`name`
`str`

##### Returns

`Any`

`_filter_first`

1

`Any`

▼

Return first item of sequence.

`def _filter_first(value: Any) -> Any`

##### Parameters

Name
Type
Description

`value`
`Any`

##### Returns

`Any`

`_filter_last`

1

`Any`

▼

Return last item of sequence.

Uses deque(maxlen=1) for O(1) space on iterators…

`def _filter_last(value: Any) -> Any`

Return last item of sequence.

Uses deque(maxlen=1) for O(1) space on iterators; avoids materializing
entire sequence.

##### Parameters

Name
Type
Description

`value`
`Any`

##### Returns

`Any`

`_filter_length`

1

`int`

▼

Return length of sequence.

`def _filter_length(value: Any) -> int`

##### Parameters

Name
Type
Description

`value`
`Any`

##### Returns

`int`

`_filter_join`

2

`str`

▼

Join sequence with separator.

`def _filter_join(value: Any, separator: str = '') -> str`

##### Parameters

Name
Type
Description

`value`
`Any`

`separator`
`str`

Default:`''`

##### Returns

`str`

`_filter_reverse`

1

`list[Any]`

▼

Reverse sequence.

`def _filter_reverse(value: Any) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

##### Returns

`list[Any]`

`_filter_batch`

3

`list[list[Any]]`

▼

Batch items into groups of linecount.

`def _filter_batch(value: Any, linecount: int, fill_with: Any = None) -> list[list[Any]]`

##### Parameters

Name
Type
Description

`value`
`Any`

`linecount`
`int`

`fill_with`
`Any`

Default:`None`

##### Returns

`list[list[Any]]`

`_filter_slice`

3

`list[list[Any]]`

▼

Slice items into number of groups.

`def _filter_slice(value: Any, slices: int, fill_with: Any = None) -> list[list[Any]]`

##### Parameters

Name
Type
Description

`value`
`Any`

`slices`
`int`

`fill_with`
`Any`

Default:`None`

##### Returns

`list[list[Any]]`

`_filter_take`

2

`list[Any]`

▼

Take the first N items from a sequence.

Kida-native filter for readable pipeli…

`def _filter_take(value: Any, count: int) -> list[Any]`

Take the first N items from a sequence.

Kida-native filter for readable pipeline operations.

##### Parameters

Name
Type
Description

`value`
`Any`

Sequence to take from

`count`
`int`

Number of items to take

##### Returns

`list[Any]`

`_filter_skip`

2

`list[Any]`

▼

Skip the first N items from a sequence.

Kida-native filter for readable pipeli…

`def _filter_skip(value: Any, count: int) -> list[Any]`

Skip the first N items from a sequence.

Kida-native filter for readable pipeline operations.

##### Parameters

Name
Type
Description

`value`
`Any`

Sequence to skip from

`count`
`int`

Number of items to skip

##### Returns

`list[Any]`

`_filter_compact`

2

`list[Any]`

▼

Remove None values (and optionally all falsy values) from a sequence.

Enables …

`def _filter_compact(value: Any, *, truthy: bool = True) -> list[Any]`

Remove None values (and optionally all falsy values) from a sequence.

Enables declarative list building with conditional items, replacing
imperative {% do %} patterns.

##### Parameters

Name
Type
Description

`value`
`Any`

Sequence to compact

`truthy`
`bool`

If True (default), remove all falsy values. If False, remove only None values.

Default:`True`

##### Returns

`list[Any]`

`_filter_map`

3

`list[Any]`

▼

Map an attribute or method from a sequence.

`def _filter_map(value: Any, *args: Any, attribute: str | None = None) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`*args`
`Any`

`attribute`
`str | None`

Default:`None`

##### Returns

`list[Any]`

`_filter_selectattr`

3

`list[Any]`

▼

Select items where attribute passes test.

`def _filter_selectattr(value: Any, attr: str, *args: Any) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`attr`
`str`

`*args`
`Any`

##### Returns

`list[Any]`

`_filter_rejectattr`

3

`list[Any]`

▼

Reject items where attribute passes test.

`def _filter_rejectattr(value: Any, attr: str, *args: Any) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`attr`
`str`

`*args`
`Any`

##### Returns

`list[Any]`

`_filter_select`

3

`list[Any]`

▼

Select items that pass a test.

`def _filter_select(value: Any, test_name: str | None = None, *args: Any) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`test_name`
`str | None`

Default:`None`

`*args`
`Any`

##### Returns

`list[Any]`

`_filter_reject`

3

`list[Any]`

▼

Reject items that pass a test.

`def _filter_reject(value: Any, test_name: str | None = None, *args: Any) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`test_name`
`str | None`

Default:`None`

`*args`
`Any`

##### Returns

`list[Any]`

`_filter_groupby`

2

`list[dict[str, Any]]`

▼

Group items by attribute with None-safe sorting.

Items with None/empty values …

`def _filter_groupby(value: Any, attribute: str) -> list[dict[str, Any]]`

Group items by attribute with None-safe sorting.

Items with None/empty values for the attribute are grouped together
and sorted last.

##### Parameters

Name
Type
Description

`value`
`Any`

`attribute`
`str`

##### Returns

`list[dict[str, Any]]`

`_filter_sort`

4

`list[Any]`

▼

Sort sequence with improved error handling for None values.

When sorting fails…

`def _filter_sort(value: Any, reverse: bool = False, case_sensitive: bool = False, attribute: str | None = None) -> list[Any]`

Sort sequence with improved error handling for None values.

When sorting fails due to None comparisons, provides detailed error
showing which items have None values for the sort attribute.

##### Parameters

Name
Type
Description

`value`
`Any`

`reverse`
`bool`

Default:`False`

`case_sensitive`
`bool`

Default:`False`

`attribute`
`str | None`

Default:`None`

##### Returns

`list[Any]`

`_filter_unique`

3

`list[Any]`

▼

Return unique items.

`def _filter_unique(value: Any, case_sensitive: bool = False, attribute: str | None = None) -> list[Any]`

##### Parameters

Name
Type
Description

`value`
`Any`

`case_sensitive`
`bool`

Default:`False`

`attribute`
`str | None`

Default:`None`

##### Returns

`list[Any]`

`_filter_dictsort`

4

`list[tuple[str, Any]]`

▼

Sort a dict and return list of (key, value) pairs.

`def _filter_dictsort(value: dict[str, Any], case_sensitive: bool = False, by: str = 'key', reverse: bool = False) -> list[tuple[str, Any]]`

##### Parameters

Name
Type
Description

`value`
`dict[str, Any]`

`case_sensitive`
`bool`

Default:`False`

`by`
`str`

Default:`'key'`

`reverse`
`bool`

Default:`False`

##### Returns

`list[tuple[str, Any]]`
