jaraco/inflect

p.singular_noun("pair_of_scissors") raises a TypeError

Opened this issue · 0 comments

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