Skip to content

Bump omegaconf from 2.3.1 to 2.4.0 - #294

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/omegaconf-2.4.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/omegaconf-2.4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 13, 2026

Copy link
Copy Markdown
Contributor

Bumps omegaconf from 2.3.1 to 2.4.0.

Release notes

Sourced from omegaconf's releases.

OmegaConf 2.4.0

Introduction

OmegaConf 2.4.0 is the first feature release since 2.3.0 in 2022. Highlights include richer structured config typing with Literal, container unions, and experimental tuples, alongside improvements to interpolation, resolvers, merging, and validation.

Python 3.10 or newer is required. Native tuples now become immutable TupleConfig values, and some implicit conversions during assignment now warn. Review the 2.4 upgrade guide before upgrading. The current documentation is at omegaconf.cli.dev.

Features

  • Add support for the | and |= operators on DictConfig. cfg1 | cfg2 returns a new merged config (equivalent to OmegaConf.merge(cfg1, cfg2)), and cfg1 |= cfg2 merges in place (equivalent to cfg1.merge_with(cfg2)). These operators are not supported on ListConfig and will raise a TypeError. (#1006)
  • OmegaConf.to_yaml() now accepts default_flow_style to control YAML collection flow style. (#1075)
  • Added OmegaConf.can_select() for checking if a select-style key path can produce a value without returning a default or raising. (#1129)
  • The YAML parser will now use yaml.CSafeLoader instead of yaml.SafeLoader whenever possible to speed up parsing (#1150)
  • The YAML dumper will now use yaml.CDumper instead of yaml.Dumper whenever possible to speed up dumping (#1152)
  • Added support for assigning string-valued enums in structured configs from either the enum member name or the enum value. (#1182)
  • When accessing a missing key, OmegaConf now suggests similar key names if any exist (e.g. "Did you mean: 'missing'?"). (#1221)
  • Add support for typing.Literal annotations in structured configs. (#1228)
  • Key paths in OmegaConf.update(), OmegaConf.select(), OmegaConf.from_dotlist(), and OmegaConf.from_cli() now support backslash escaping so that keys whose names contain literal dots, brackets, or equals signs can be addressed (e.g. r"a\.b" selects the key "a.b"). (#1230)
  • Add support for unions of typed container types (e.g. Union[List[int], Dict[str, int]]) in structured configs. Introduce OmegaConf.typed_list() and OmegaConf.typed_dict() for explicit container typing when disambiguating an otherwise ambiguous union assignment. (#1261)
  • Support Literal[...] annotations as members of unions in structured configs. (#1271)
  • Support structured config types as members of unions, with type-driven branch selection and explicit handling for ambiguous mappings. (#1275)
  • Added OmegaConf.structural_equality() for comparing configs by unresolved container structure. (#1326)
  • Add the oc.coerce resolver to explicitly convert values using OmegaConf primitive node types before destination validation. (#1332)
  • Node interpolations can address keys containing literal dots, brackets, colons, or backslashes. (#1335)
  • Support Any in Union annotations and transparent PEP 695 type aliases. (#144)
  • Custom resolvers can now validate runtime arguments and return values against their annotations using explicit "off", "warn", and "error" policies. OmegaConf 2.4 defaults to advisory warnings. (#612)

Bug Fixes

  • Fix merging an interpolation into a structured config field failing with InterpolationKeyError or ValidationError; the interpolation is now kept unresolved and resolved lazily against the merged result. (#1020)
  • Preserve structured list element types when merging a plain list into a missing structured config list field. (#1058)
  • Fixed a crash in OmegaConf.unsafe_merge when merging structured configs containing union types. (#1087)
  • Fix merging enum names into nested lists in structured configs. (#1095)
  • Fixed OmegaConf.merge() and OmegaConf.unsafe_merge() with nested readonly structured configs. (#1102)
  • Fix OmegaConf.missing_keys() raising when an interpolation dereferences a missing value, and add a resolve_custom_resolvers flag to opt into custom resolver evaluation. (#1118)
  • Improved missing-key errors for relative interpolations by showing both the original interpolation key and the resolved lookup path. (#1126)
  • Fixed OmegaConf.select and oc.select to return the provided default when a relative key climbs above the config root. (#1127)
  • OmegaConf.create() now supports collections.OrderedDict as both a top-level input and a nested value. (#1156)
  • Fixed OmegaConf.resolve() raising UnsupportedValueType when a custom resolver returns a dict or list. (#1165)
  • Fixed validation for union-typed values nested in structured config containers during merges and interpolation resolution. (#1166)
  • Fixed structured config support for forward references inside container annotations on Python 3.10 and older. (#1174)
  • Preserve container identity when assigning a config node to itself. (#1177)
  • Fix duplicate key handling during YAML anchor merge operations (#1194)
  • Changed OmegaConf.create(None) to return literal None instead of a DictConfig(None) wrapper. This is a breaking change for code that relied on getting a config object back from create(None). (#1196)
  • Fixed a bug where merging a missing structured config into an unresolved interpolation could replace the interpolation with the structured type's default value instead of preserving the interpolation. (#1205)
  • Fix OmegaConf.resolve() raising RuntimeError on Python 3.12+ when a custom resolver returns a DictConfig. (#1239)
  • OmegaConf.update() now raises a ConfigTypeError with a clear message when navigating through a structured Optional node that is None, instead of an AssertionError. (#1280)
  • Fix OmegaConf exceptions retaining caller frame locals through traceback reference cycles. (#1295, #1314)
  • Fix ListConfig iteration leaking UnionNode wrappers for List[Union[...]]; iteration now yields the selected concrete values, matching indexing. (#1310)
  • OmegaConf.update() now follows intermediate node interpolations whose reference chains end at existing config containers, applying nested updates to the referenced container while preserving the interpolation. (#1329)

... (truncated)

Changelog

Sourced from omegaconf's changelog.

2.4.0 (2026-10-09)

Introduction

OmegaConf 2.4.0 is the first feature release since 2.3.0 in 2022. Highlights include richer structured config typing with Literal, container unions, and experimental tuples, alongside improvements to interpolation, resolvers, merging, and validation.

Python 3.10 or newer is required. Native tuples now become immutable TupleConfig values, and some implicit conversions during assignment now warn. Review the 2.4 upgrade guide before upgrading. The current documentation is at omegaconf.cli.dev.

Features

  • Add support for the | and |= operators on DictConfig. cfg1 | cfg2 returns a new merged config (equivalent to OmegaConf.merge(cfg1, cfg2)), and cfg1 |= cfg2 merges in place (equivalent to cfg1.merge_with(cfg2)). These operators are not supported on ListConfig and will raise a TypeError. (#1006)
  • OmegaConf.to_yaml() now accepts default_flow_style to control YAML collection flow style. (#1075)
  • Added OmegaConf.can_select() for checking if a select-style key path can produce a value without returning a default or raising. (#1129)
  • The YAML parser will now use yaml.CSafeLoader instead of yaml.SafeLoader whenever possible to speed up parsing (#1150)
  • The YAML dumper will now use yaml.CDumper instead of yaml.Dumper whenever possible to speed up dumping (#1152)
  • Added support for assigning string-valued enums in structured configs from either the enum member name or the enum value. (#1182)
  • When accessing a missing key, OmegaConf now suggests similar key names if any exist (e.g. "Did you mean: 'missing'?"). (#1221)
  • Add support for typing.Literal annotations in structured configs. (#1228)
  • Key paths in OmegaConf.update(), OmegaConf.select(), OmegaConf.from_dotlist(), and OmegaConf.from_cli() now support backslash escaping so that keys whose names contain literal dots, brackets, or equals signs can be addressed (e.g. r"a\.b" selects the key "a.b"). (#1230)
  • Add support for unions of typed container types (e.g. Union[List[int], Dict[str, int]]) in structured configs. Introduce OmegaConf.typed_list() and OmegaConf.typed_dict() for explicit container typing when disambiguating an otherwise ambiguous union assignment. (#1261)
  • Support Literal[...] annotations as members of unions in structured configs. (#1271)
  • Support structured config types as members of unions, with type-driven branch selection and explicit handling for ambiguous mappings. (#1275)
  • Added OmegaConf.structural_equality() for comparing configs by unresolved container structure. (#1326)
  • Add the oc.coerce resolver to explicitly convert values using OmegaConf primitive node types before destination validation. (#1332)
  • Node interpolations can address keys containing literal dots, brackets, colons, or backslashes. (#1335)
  • Support Any in Union annotations and transparent PEP 695 type aliases. (#144)
  • Custom resolvers can now validate runtime arguments and return values against their annotations using explicit "off", "warn", and "error" policies. OmegaConf 2.4 defaults to advisory warnings. (#612)

Bug Fixes

  • Fix merging an interpolation into a structured config field failing with InterpolationKeyError or ValidationError; the interpolation is now kept unresolved and resolved lazily against the merged result. (#1020)
  • Preserve structured list element types when merging a plain list into a missing structured config list field. (#1058)
  • Fixed a crash in OmegaConf.unsafe_merge when merging structured configs containing union types. (#1087)
  • Fix merging enum names into nested lists in structured configs. (#1095)
  • Fixed OmegaConf.merge() and OmegaConf.unsafe_merge() with nested readonly structured configs. (#1102)
  • Fix OmegaConf.missing_keys() raising when an interpolation dereferences a missing value, and add a resolve_custom_resolvers flag to opt into custom resolver evaluation. (#1118)
  • Improved missing-key errors for relative interpolations by showing both the original interpolation key and the resolved lookup path. (#1126)
  • Fixed OmegaConf.select and oc.select to return the provided default when a relative key climbs above the config root. (#1127)
  • OmegaConf.create() now supports collections.OrderedDict as both a top-level input and a nested value. (#1156)
  • Fixed OmegaConf.resolve() raising UnsupportedValueType when a custom resolver returns a dict or list. (#1165)
  • Fixed validation for union-typed values nested in structured config containers during merges and interpolation resolution. (#1166)
  • Fixed structured config support for forward references inside container annotations on Python 3.10 and older. (#1174)
  • Preserve container identity when assigning a config node to itself. (#1177)
  • Fix duplicate key handling during YAML anchor merge operations (#1194)
  • Changed OmegaConf.create(None) to return literal None instead of a DictConfig(None) wrapper. This is a breaking change for code that relied on getting a config object back from create(None). (#1196)
  • Fixed a bug where merging a missing structured config into an unresolved interpolation could replace the interpolation with the structured type's default value instead of preserving the interpolation. (#1205)
  • Fix OmegaConf.resolve() raising RuntimeError on Python 3.12+ when a custom resolver returns a DictConfig. (#1239)
  • OmegaConf.update() now raises a ConfigTypeError with a clear message when navigating through a structured Optional node that is None, instead of an AssertionError. (#1280)
  • Fix OmegaConf exceptions retaining caller frame locals through traceback reference cycles. (#1295, #1314)
  • Fix ListConfig iteration leaking UnionNode wrappers for List[Union[...]]; iteration now yields the selected concrete values, matching indexing. (#1310)

... (truncated)

Commits
  • acd8674 Allow release verification to read the unpublished GitHub draft
  • e21e345 Unwrap OmegaConf 2.4.0 release notes
  • 5e8768b Prepare draft releases before publishing to PyPI (#1412)
  • 21d5197 Prepare OmegaConf 2.4.0 release (#1411)
  • 1056760 Move legacy Read the Docs sources under legacy/rtd (#1410)
  • b50b825 Host the legacy documentation banner script on Read the Docs (#1409)
  • 84d421d Make the legacy documentation migration notice prominent (#1407)
  • 436b814 Update documentation links and mark RTD pages as legacy (#1406)
  • 3266168 Use omegaconf.cli.dev for the documentation website
  • c4ebbce Standardize Docusaurus maintenance and run weekly audits (#1403)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [omegaconf](https://github.com/hydra-ecosystem/omegaconf) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/hydra-ecosystem/omegaconf/releases)
- [Changelog](https://github.com/hydra-ecosystem/omegaconf/blob/main/NEWS.md)
- [Commits](hydra-ecosystem/omegaconf@v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: omegaconf
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 13, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants