Currently we raise an exception if you pass a single-character string
consisting solely of an apostrophe to engine.plural(), e.g.:
>>> import inflect
>>> p = inflect.engine()
>>> p.plural("'")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mgalgs/src/inflect/inflect/__init__.py", line 2386, in plural
self._pl_special_adjective(word, count)
File "/home/mgalgs/src/inflect/inflect/__init__.py", line 3157, in _pl_special_adjective
pl = self.plural_noun(mo.group(1))
File "/home/mgalgs/src/inflect/inflect/__init__.py", line 2393, in plural_noun
def plural_noun(
File "/home/mgalgs/src/inflect/env/lib/python3.9/site-packages/typeguard/_functions.py", line 136, in check_argument_types
check_type_internal(value, annotation, memo)
File "/home/mgalgs/src/inflect/env/lib/python3.9/site-packages/typeguard/_checkers.py", line 866, in check_type_internal
raise TypeCheckError(f"is not an instance of {qualified_name(origin_type)}")
typeguard.TypeCheckError: argument "text" (str) is not an instance of inflect.Word
Rather than raising an exception, just return the "'" string back to the
caller (since nothing needs to be done to pluralize it).
This is accomplished by modifying the "ends with apostrophe s" regex to
require that there is at least one character present preceding the
apostrophe (rather than "zero or more"), to ensure that the match group
isn't empty for the "'" string.
Currently we raise an exception if you pass a single-character string consisting solely of an apostrophe to
engine.plural()
, e.g.:Rather than raising an exception, just return the
"'"
string back to the caller (since nothing needs to be done to pluralize it).This is accomplished by modifying the "ends with apostrophe s" regex to require that there is at least one character present preceding the apostrophe (rather than "zero or more"), to ensure that the match group isn't empty for the
"'"
string.