Skip to content

Commit 6e15ba7

Browse files
authored
Merge pull request #50 from alphagov/ACW-80/missing-entity
ACW-80: fixing empty alias in entity nodes
2 parents f7da6b4 + 18b0e01 commit 6e15ba7

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

src/models/graph_models.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
from typing import Any, Dict, List, Literal, Optional
23

34
from pydantic import BaseModel, ConfigDict, Field
@@ -19,6 +20,34 @@ class Entity(BaseModel):
1920

2021
model_config = ConfigDict(extra="allow")
2122

23+
def model_post_init(self, __context: Any) -> None:
24+
if self.label:
25+
new_alias_name = " ".join(
26+
word.lower() for word in re.split(r"(?=[A-Z])", self.label) if word
27+
)
28+
29+
existing_alias = next((a for a in self.aliases if a.name == new_alias_name), None)
30+
31+
if not existing_alias:
32+
source_urls_val = self.properties.get("sourceUrls", "")
33+
if isinstance(source_urls_val, list):
34+
new_urls = [
35+
url.strip()
36+
for url in source_urls_val
37+
if isinstance(url, str) and url.strip()
38+
]
39+
elif isinstance(source_urls_val, str):
40+
new_urls = (
41+
[url.strip() for url in source_urls_val.split(",") if url.strip()]
42+
if source_urls_val
43+
else []
44+
)
45+
else:
46+
new_urls = []
47+
48+
new_alias = Alias(name=new_alias_name, source_files=new_urls)
49+
self.aliases.append(new_alias)
50+
2251

2352
class Relationship(BaseModel):
2453
type: str

0 commit comments

Comments
 (0)