Skip to content

[AI-FSSDK] [FSSDK-12369] Add local holdouts support to Python SDK#510

Open
Mat001 wants to merge 1 commit intomasterfrom
ai/mat001/FSSDK-12369-local-holdouts
Open

[AI-FSSDK] [FSSDK-12369] Add local holdouts support to Python SDK#510
Mat001 wants to merge 1 commit intomasterfrom
ai/mat001/FSSDK-12369-local-holdouts

Conversation

@Mat001
Copy link
Copy Markdown
Contributor

@Mat001 Mat001 commented May 7, 2026

Summary

Adds local holdouts support to the Python SDK. Local holdouts target specific experiment/delivery rules (via a new includedRules field) while global holdouts continue to apply to all rules across all flags. This implements rule-level holdout evaluation as described in the FSSDK-12369 spec.

Changes

  • Add includedRules field and is_global computed property to the Holdout entity in entities.py
  • Add global_holdouts list and rule_holdouts_map dict to ProjectConfig, with get_global_holdouts() and get_holdouts_for_rule() methods
  • Update decision_service.py to evaluate global holdouts at flag level and check local holdouts per-rule before audience/traffic allocation
  • Add includedRules to HoldoutDict type in types.py
  • Add 19 unit tests covering data model, mapping logic, decision flow, backward compatibility, and edge cases

Jira Ticket

FSSDK-12369

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant