Skip to content

[0.11.0] refactor(data_operations): migrate PROPERTY_MAPPING declarations to typed specs #325

Description

@TKaltofen

Summary

Migrate all 17 data-operation PROPERTY_MAPPING declarations and their authoring guides from legacy raw dictionaries to the typed PropertySpec/property_spec() surface before raising the mloda dependency cap above 0.10.x.

Motivation

The registry is protected today by mloda>=0.10.0,<0.11.0, added in #322, because mloda core now rejects raw-dict PROPERTY_MAPPING entries. Every current declaration in the data-operations family is still a raw dict. The guides mix raw schema dictionaries with property_spec() examples and still describe the builder result as a plain dict, so shipped code and authoring guidance both lag the core contract.

This is the downstream migration tracked by mloda-ai/mloda#762 and mloda-ai/mloda#761. The mloda cooldown exemption can remain because the explicit minor-version cap is now the compatibility boundary; the cap must not be raised until this migration and the relevant core release are available.

Code pointers

  • mloda/community/feature_groups/data_operations/**/base.py (17 raw PROPERTY_MAPPING declarations)
  • docs/guides/feature-group-patterns/03-chained-features.md
  • docs/guides/feature-group-patterns/11-options.md
  • docs/guides/feature-group-patterns/14-feature-matching.md
  • config/shared.toml:19
  • pyproject.toml:12,97

Definition of done

  • Every shipped data-operation mapping entry is a PropertySpec, preferably authored through property_spec() where it improves readability
  • Migration preserves required/default/context/group/strict-validator/guard semantics for each plugin
  • Raw dict authoring examples and claims that property_spec() returns a dict are replaced with the current typed API
  • A repository check prevents new raw-dict PROPERTY_MAPPING entries from being added
  • The mloda <0.11.0 cap is raised only after the compatible core release exists and all registry packages pass against it
  • Release notes link the raw-dict-to-typed-spec migration
  • tox passes

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedBlocked on external dependency

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions