jaraco/inflect

p.singular_noun("pair_of_scissors") raises a TypeError

Open

#222 opened on Oct 30, 2024

 (8 comments) (0 reactions) (0 assignees)Python (125 forks)github user discovery
bughelp wanted

Repository metrics

Stars
 (1,082 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

This seems to be a regression sometime between v6.0.4 and 7.4.0 with a simple repro step.

Reproed on MacOS Python 3.11, 3.9, confirms v6.0.4 works as expected, as long as pydantic dependency is <v2.

import inflect
p = inflect.engine()
p.singular_noun("pair of scissors")

Expected behaviour: Returns "pair of scissors"

Actual behaviour: TypeError: sequence item 0: expected str instance, bool found

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/paulannetts/.pyenv/versions/3.9.18-test/lib/python3.9/site-packages/inflect/__init__.py", line 2597, in singular_noun
    sing = self._sinoun(word, count=count, gender=gender)
  File "/Users/paulannetts/.pyenv/versions/3.9.18-test/lib/python3.9/site-packages/inflect/__init__.py", line 3233, in _sinoun
    return self._handle_long_compounds(words, count=1) or word
  File "/Users/paulannetts/.pyenv/versions/3.9.18-test/lib/python3.9/site-packages/inflect/__init__.py", line 3037, in _handle_long_compounds
    return next(solutions, None)
  File "/Users/paulannetts/.pyenv/versions/3.9.18-test/lib/python3.9/site-packages/inflect/__init__.py", line 3027, in <genexpr>
    " ".join(
TypeError: sequence item 0: expected str instance, bool found

Contributor guide