Skip to content

Commit 218f7e8

Browse files
authored
Merge pull request #214 from derek73/fix/pylance-list-argument-fallthrough
Fix list-argument fallthrough in is_conjunction/is_prefix
2 parents b626fc2 + ec13999 commit 218f7e8

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

nameparser/parser.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -570,8 +570,8 @@ def is_conjunction(self, piece: str) -> bool:
570570
for item in piece:
571571
if self.is_conjunction(item):
572572
return True
573-
else:
574-
return piece.lower() in self.C.conjunctions and not self.is_an_initial(piece)
573+
return False
574+
return piece.lower() in self.C.conjunctions and not self.is_an_initial(piece)
575575

576576
def is_prefix(self, piece: str) -> bool:
577577
"""
@@ -582,8 +582,8 @@ def is_prefix(self, piece: str) -> bool:
582582
for item in piece:
583583
if self.is_prefix(item):
584584
return True
585-
else:
586-
return lc(piece) in self.C.prefixes
585+
return False
586+
return lc(piece) in self.C.prefixes
587587

588588
def is_bound_first_name(self, piece: str) -> bool:
589589
"""Lowercased, leading/trailing-periods-stripped version of piece is in :py:attr:`~nameparser.config.Constants.bound_first_names`."""
@@ -641,6 +641,7 @@ def is_suffix(self, piece: str) -> bool:
641641
for item in piece:
642642
if self.is_suffix(item):
643643
return True
644+
return False
644645
else:
645646
return ((lc(piece).replace('.', '') in self.C.suffix_acronyms)
646647
or (lc(piece) in self.C.suffix_not_acronyms)) \
@@ -852,7 +853,7 @@ def fix_phd(self) -> None:
852853

853854
if match := _re.search(self._full_name):
854855
self.suffix_list.extend(match.groups())
855-
self._full_name = _re.sub('', self._full_name)
856+
self._full_name = _re.sub("", self._full_name)
856857

857858
def parse_nicknames(self) -> None:
858859
"""

tests/test_python_api.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,12 +286,30 @@ def test_is_prefix_with_list(self) -> None:
286286
self.assertTrue(hn.is_prefix(items))
287287
self.assertTrue(hn.is_prefix(items[1:]))
288288

289+
def test_is_prefix_with_list_no_match(self) -> None:
290+
hn = HumanName()
291+
self.assertFalse(hn.is_prefix(['firstname', 'lastname']))
292+
289293
def test_is_conjunction_with_list(self) -> None:
290294
hn = HumanName()
291295
items = ['firstname', 'lastname', 'and']
292296
self.assertTrue(hn.is_conjunction(items))
293297
self.assertTrue(hn.is_conjunction(items[1:]))
294298

299+
def test_is_conjunction_with_list_no_match(self) -> None:
300+
hn = HumanName()
301+
self.assertFalse(hn.is_conjunction(['firstname', 'lastname']))
302+
303+
def test_is_suffix_with_list(self) -> None:
304+
hn = HumanName()
305+
items = ['firstname', 'lastname', 'jr']
306+
self.assertTrue(hn.is_suffix(items))
307+
self.assertTrue(hn.is_suffix(items[1:]))
308+
309+
def test_is_suffix_with_list_no_match(self) -> None:
310+
hn = HumanName()
311+
self.assertFalse(hn.is_suffix(['firstname', 'lastname']))
312+
295313
def test_override_constants(self) -> None:
296314
C = Constants()
297315
hn = HumanName(constants=C)

0 commit comments

Comments
 (0)