python-babel / flask-babel

i18n and l10n support for Flask based on Babel and pytz
https://python-babel.github.io/flask-babel/
Other
432 stars 159 forks source link

LazyString.__rmod__ is unused? #234

Open andreymal opened 10 months ago

andreymal commented 10 months ago

It is broken. If you call it directly, you get an incorrect result because of a typo:

>>> lazy_string = lazy_gettext(u'test')
>>> lazy_string.__rmod__('Hello %s!')
'Hello %s!test'

But the test in test_lazy_old_style_formatting is actually passing! I guess this is because Python calls str.__mod__('Hello %s!', lazy_string) instead.

This means that LazyString.__rmod__ is probably never used. Maybe just remove it?

andreymal commented 10 months ago

A way to call it indirectly:

class MyClass:
    def __add__(self, other):
        return "myclass " + other

print(MyClass() % lazy_string)

but I don't know if anyone does that in real code