Fix: Album.album akzeptiert null-Werte vom LLM
Wenn das LLM keinen Albumtitel erkennt (z.B. nur Ensemblename auf dem Backcover), gibt es "album": null zurück. Statt mit ValidationError abzubrechen, wird null jetzt in "" konvertiert. Der Nutzer kann den leeren Titel in album.json manuell ergänzen. Geändert: - Album.album: str = "" (statt str ohne Default) - field_validator mode="before", None → "" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
795be8609a
commit
db47aa4456
1 changed files with 11 additions and 5 deletions
|
|
@ -21,15 +21,21 @@ class Disc(BaseModel):
|
|||
|
||||
class Album(BaseModel):
|
||||
artist: str
|
||||
album: str
|
||||
album: str = ""
|
||||
year: int | None = None
|
||||
discs: list[Disc]
|
||||
|
||||
@field_validator("album", "artist")
|
||||
@field_validator("album", "artist", mode="before")
|
||||
@classmethod
|
||||
def sanitize_name(cls, v: str) -> str:
|
||||
"""Entfernt Zeichen, die in Dateinamen problematisch sind."""
|
||||
return re.sub(r'[<>:"/\\|?*]', "_", v).strip()
|
||||
def sanitize_name(cls, v: object) -> str:
|
||||
"""Entfernt Zeichen, die in Dateinamen problematisch sind.
|
||||
|
||||
None wird zu "" konvertiert (LLM-Ausgabe kann null enthalten, wenn
|
||||
kein Album-Titel auf dem Cover erkennbar ist).
|
||||
"""
|
||||
if v is None:
|
||||
return ""
|
||||
return re.sub(r'[<>:"/\\|?*]', "_", str(v)).strip()
|
||||
|
||||
@property
|
||||
def folder_name(self) -> str:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue