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

# core.options

## Overview

Resolution of the ``class Vueda`` declaration into one normalized options object per model.

## Classes

- [DeclarationProblem](/v3/reference/api/py/vueda.core.options/DeclarationProblem.md)
- [SectionOptions](/v3/reference/api/py/vueda.core.options/SectionOptions.md)
- [VuedaOptions](/v3/reference/api/py/vueda.core.options/VuedaOptions.md)

## `failed_sections` {#failed_sections}

Return the names of sections that ``problems`` shows VUEDA could not resolve.

### Signature {#failed_sections-signature}

`failed_sections(problems)`

#### Parameters {#failed_sections-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="failed_sections-param-problems">problems</span> | `collections.abc.Iterable[vueda.core.options.DeclarationProblem]` | yes |  |  |

#### Returns {#failed_sections-returns}

`set[str]`

### Source {#failed_sections-source}

`server/vueda/core/options.py:269`

## `get_vueda_options` {#get_vueda_options}

Return the normalized feature policy of ``model``, resolving it if it is not resolved yet.

This is the supported way for feature integrations, metadata, schema, and migration code to read
a model's policy.

### Signature {#get_vueda_options-signature}

`get_vueda_options(model)`

#### Parameters {#get_vueda_options-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="get_vueda_options-param-model">model</span> | `type` | yes |  |  |

#### Returns {#get_vueda_options-returns}

`vueda.core.options.VuedaOptions`

### Source {#get_vueda_options-source}

`server/vueda/core/options.py:341`

## `resolve_vueda_options` {#resolve_vueda_options}

Resolve, cache, and return the normalized feature policy of ``model``.

A proxy model shares the sections of its concrete model. History triggers attach to the shared
database table and workflow resolves a proxy to its concrete model, so a separate proxy policy
could not apply consistently, so declaring one is a system-check error rather than a silent no-op.

Resolution never raises. Structural faults become ``problems`` that ``vueda.core.checks``
reports, which keeps a broken declaration from turning into an import error with no context.

### Signature {#resolve_vueda_options-signature}

`resolve_vueda_options(model)`

#### Parameters {#resolve_vueda_options-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="resolve_vueda_options-param-model">model</span> | `type` | yes |  |  |

#### Returns {#resolve_vueda_options-returns}

`vueda.core.options.VuedaOptions`

### Source {#resolve_vueda_options-source}

`server/vueda/core/options.py:274`

## Source

`server/vueda/core/options.py`
