#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.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107018f65bb9785-cdd8e238-c06a-46bb-88fc-d0077a33bada-000000%40eu-central-1.amazonses.com.