#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.