Get the number of identity / segment overrides in a given environment for each feature in the project. :param environment: the environment to get the overrides data for :return OverridesData: dictionary of {feature_id: EnvironmentFeatureOverridesData}
(
environment: "Environment",
*,
skip_identity_overrides: bool = False,
)
| 45 | |
| 46 | |
| 47 | def get_core_overrides_data( |
| 48 | environment: "Environment", |
| 49 | *, |
| 50 | skip_identity_overrides: bool = False, |
| 51 | ) -> OverridesData: |
| 52 | """ |
| 53 | Get the number of identity / segment overrides in a given environment for each feature in the |
| 54 | project. |
| 55 | |
| 56 | :param environment: the environment to get the overrides data for |
| 57 | :return OverridesData: dictionary of {feature_id: EnvironmentFeatureOverridesData} |
| 58 | """ |
| 59 | environment_feature_states_list = get_environment_flags_list(environment) |
| 60 | all_overrides_data: OverridesData = {} |
| 61 | |
| 62 | for feature_state in environment_feature_states_list: |
| 63 | env_feature_overrides_data = all_overrides_data.setdefault( |
| 64 | feature_state.feature_id, EnvironmentFeatureOverridesData() |
| 65 | ) |
| 66 | if feature_state.feature_segment_id: |
| 67 | env_feature_overrides_data.num_segment_overrides += 1 |
| 68 | elif skip_identity_overrides: |
| 69 | continue |
| 70 | elif feature_state.identity_id: |
| 71 | env_feature_overrides_data.add_identity_override() # type: ignore[no-untyped-call] |
| 72 | |
| 73 | return all_overrides_data |
| 74 | |
| 75 | |
| 76 | def get_edge_overrides_data(environment: "Environment") -> OverridesData: |
searching dependent graphs…