(self, plan: list[PlanStep])
| 340 | return plan |
| 341 | |
| 342 | def _dedupe_plan(self, plan: list[PlanStep]) -> list[PlanStep]: |
| 343 | deduped: list[PlanStep] = [] |
| 344 | seen: dict[MigrationKey, bool] = {} |
| 345 | for step in plan: |
| 346 | key = MigrationKey(app_label=step.migration.app_label, name=step.migration.name) |
| 347 | if key in seen: |
| 348 | if seen[key] != step.backward: |
| 349 | raise ValueError(f"Conflicting migration directions for {key}") |
| 350 | continue |
| 351 | seen[key] = step.backward |
| 352 | deduped.append(step) |
| 353 | return deduped |
| 354 | |
| 355 | @staticmethod |
| 356 | def _validate_plan_direction(plan: list[PlanStep], direction: str) -> None: |
no test coverage detected