[TWEAK] Added missing files

This commit is contained in:
2026-07-03 20:43:04 +02:00
parent fe08201250
commit 51e1a6da0b
4 changed files with 38 additions and 3 deletions
@@ -18,7 +18,7 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
@@ -18,7 +18,7 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic import BaseModel, ConfigDict, Field, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -18,7 +18,7 @@ import re # noqa: F401
import json
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
from typing import Optional, Set
from typing_extensions import Self
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env python3
"""
Works around an openapi-generator python codegen bug where generated models
that use @field_validator don't import it from pydantic. Run after regenerating
generated/immich.
"""
import re
import pathlib
import sys
MODELS_DIR = pathlib.Path(__file__).resolve().parent.parent / "generated/immich/openapi_client/models"
def main():
fixed = 0
for f in MODELS_DIR.glob("*.py"):
text = f.read_text()
if "@field_validator" not in text:
continue
m = re.search(r"^from pydantic import (.*)$", text, re.M)
if not m:
continue
names = [n.strip() for n in m.group(1).split(",")]
if "field_validator" in names:
continue
names.append("field_validator")
new_line = "from pydantic import " + ", ".join(names)
text = text[: m.start()] + new_line + text[m.end() :]
f.write_text(text)
fixed += 1
print(f"Fixed {fixed} model file(s) missing the field_validator import")
if __name__ == "__main__":
sys.exit(main())