(
segments: Iterable["Segment"],
environment_id: int,
latest_environment_feature_version_uuids: Iterable[UUID],
)
| 529 | |
| 530 | |
| 531 | def _get_segment_feature_states( |
| 532 | segments: Iterable["Segment"], |
| 533 | environment_id: int, |
| 534 | latest_environment_feature_version_uuids: Iterable[UUID], |
| 535 | ) -> Dict[int, List["FeatureState"]]: |
| 536 | feature_states_by_segment_id = {} # type: ignore[var-annotated] |
| 537 | |
| 538 | for segment in segments: |
| 539 | segment_feature_states = feature_states_by_segment_id.setdefault(segment.pk, []) |
| 540 | |
| 541 | for feature_segment in segment.feature_segments.all(): |
| 542 | if feature_segment.environment_id != environment_id: |
| 543 | continue |
| 544 | |
| 545 | if ( |
| 546 | latest_environment_feature_version_uuids |
| 547 | and feature_segment.environment_feature_version_id # type: ignore[operator] |
| 548 | not in latest_environment_feature_version_uuids |
| 549 | ): |
| 550 | continue |
| 551 | |
| 552 | segment_feature_states += _get_prioritised_feature_states( |
| 553 | feature_segment.feature_states.all() |
| 554 | ) |
| 555 | |
| 556 | return feature_states_by_segment_id |
no test coverage detected
searching dependent graphs…