Skip to content

Refine generated models: additional mixins and optional field review #1

@BenjaminWatts

Description

@BenjaminWatts

Overview

While we've made significant improvements to the generated models, there are opportunities for further refinement.

Current State

Completed:

  • 22 enum types with 210 values
  • 18 field mixins (629 fields eliminated, 52.9% reduction)
  • 29 method mixins (~141 helper methods)
  • 894 required fields (64%)
  • 100% snake_case with aliases

Areas for Further Refinement

1. Additional Field Mixins

Candidate fields for new mixins:

  • time field (8 models)
  • id field (5 models)
  • metadata field (55 wrapper models)
  • data field (130 wrapper models)
  • margin, surplus fields

Impact: Could eliminate another ~100-150 field definitions

2. Optional Field Review

Some fields marked as Optional might be required. Use tools/infer_required_fields.py to test actual API responses.

3. Optimize Wrapper Models

Many *_DatasetResponse models are similar - could use generics or shared base class.

Success Metrics

  • Field mixin coverage: 50% → 60%+
  • Required fields: 64% → 70%+
  • Field definitions eliminated: 629 → 750+

Files

  • elexon_bmrs/generated_models.py
  • elexon_bmrs/field_mixins.py
  • tools/generate_models.py
  • See TODO.md for detailed plan

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions