---
url: "https://vueda.dev/v3/reference/api/py/vueda.core.features.md"
title: "core.features"
---

# core.features

## Overview

Registry of the ``class Vueda`` model feature sections that optional feature apps provide.

## Classes

- [FeatureOption](/v3/reference/api/py/vueda.core.features/FeatureOption.md)
- [FeatureSection](/v3/reference/api/py/vueda.core.features/FeatureSection.md)

## `get_feature_section` {#get_feature_section}

Return the registered section called ``name``, or ``None`` when no app registered it.

### Signature {#get_feature_section-signature}

`get_feature_section(name)`

#### Parameters {#get_feature_section-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="get_feature_section-param-name">name</span> | `str` | yes |  |  |

#### Returns {#get_feature_section-returns}

`vueda.core.features.FeatureSection | None`

### Source {#get_feature_section-source}

`server/vueda/core/features.py:95`

## `get_feature_sections` {#get_feature_sections}

Return every registered section, keyed by name, in section-name order.

### Signature {#get_feature_sections-signature}

`get_feature_sections()`

#### Returns {#get_feature_sections-returns}

`dict[str, vueda.core.features.FeatureSection]`

### Source {#get_feature_sections-source}

`server/vueda/core/features.py:100`

## `register_feature_section` {#register_feature_section}

Register ``section`` so ``class Vueda`` accepts it.

Call this while the owning app's ``apps`` module is imported, not from ``AppConfig.ready()``.
Django imports every application configuration before it imports any models module, so
registration at that point is ready before Django constructs the first model, whatever order
``INSTALLED_APPS`` uses.

Re-registering the same name from the same app replaces the previous definition, which keeps a
reimported module working. A different app claiming a registered name is a configuration error.

### Signature {#register_feature_section-signature}

`register_feature_section(section)`

#### Parameters {#register_feature_section-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="register_feature_section-param-section">section</span> | `vueda.core.features.FeatureSection` | yes |  |  |

#### Returns {#register_feature_section-returns}

`vueda.core.features.FeatureSection`

### Source {#register_feature_section-source}

`server/vueda/core/features.py:74`

## Source

`server/vueda/core/features.py`
