[Django] #35443: Support negative numbers for ordinals

5 views
Skip to first unread message

Django

unread,
May 10, 2024, 11:39:08 PM5/10/24
to django-...@googlegroups.com
#35443: Support negative numbers for ordinals
-------------------------------------+-------------------------------------
Reporter: Siburg | Owner: nobody
Type: Bug | Status: new
Component: | Version: 5.0
contrib.humanize |
Severity: Normal | Keywords: humanize ordinal
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
The `ordinal` template tag in `/contrib/humanize/templatetags/humanize.py`
returns strange results for negative numbers. For example:
-1 becomes -1th
-9 becomes -9st
-8 becomes -8nd
-7 becomes -7rd

I think that can be regarded as a bug. I can think of following approaches
for dealing with it.

0) The null option. Won't fix. Assume ordinals are not supposed to support
negative numbers. I can live with that; I don't have a use case for them
either. I only discovered this anomaly while running a unit test with a -1
input. But it does feel weird to knowingly have this issue.

1) Treat it as invalid input and just return the original input; similar
to a `ValueError`.

2) Treat it as a positive number, and return the ordinal for its absolute
value.

3) Treat it as valid input, and return the ordinal for its absolute value
with a minus sign in front of it. I assume that will work for non-English
languages too.

I suggest doing 3). Either way, if a decision or recommendation is made to
do anything about it I can prepare a PR.
--
Ticket URL: <https://code.djangoproject.com/ticket/35443>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Reply all
Reply to author
Forward
0 new messages