Skip to content

Commit 0b7a21c

Browse files
authored
Fix: Improve reference resolution and handling of duplicate names (#2602)
1 parent 42de008 commit 0b7a21c

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

src/datamodel_code_generator/reference.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ def is_external_ref(ref: str) -> bool:
617617
@staticmethod
618618
def is_external_root_ref(ref: str) -> bool:
619619
"""Check if a reference points to an external file root."""
620-
return ref[-1] == "#"
620+
return bool(ref) and ref[-1] == "#"
621621

622622
@staticmethod
623623
def join_path(path: Sequence[str]) -> str:
@@ -694,7 +694,7 @@ def add( # noqa: PLR0913
694694
name = get_singular_name(name, singular_name_suffix or self.singular_name_suffix)
695695
elif unique: # pragma: no cover
696696
unique_name = self._get_unique_name(name)
697-
if unique_name == name:
697+
if unique_name != name:
698698
duplicate_name = name
699699
name = unique_name
700700
if reference:
@@ -719,8 +719,9 @@ def get(self, path: Sequence[str] | str) -> Reference | None:
719719

720720
def delete(self, path: Sequence[str] | str) -> None:
721721
"""Delete a reference by path if it exists."""
722-
if self.resolve_ref(path) in self.references:
723-
del self.references[self.resolve_ref(path)]
722+
resolved = self.resolve_ref(path)
723+
if resolved in self.references:
724+
del self.references[resolved]
724725

725726
def default_class_name_generator(self, name: str) -> str:
726727
"""Generate a valid class name from a string."""

0 commit comments

Comments
 (0)