Optimized django.utils.text.capfirst().

Unconditionally coercing to str type twice is expensive.
This commit is contained in:
Nick Pope 2021-03-23 09:45:58 +00:00 committed by GitHub
parent 2cd4026334
commit 6efc35b4fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -12,7 +12,11 @@ from django.utils.translation import gettext as _, gettext_lazy, pgettext
@keep_lazy_text
def capfirst(x):
"""Capitalize the first letter of a string."""
return x and str(x)[0].upper() + str(x)[1:]
if not x:
return x
if not isinstance(x, str):
x = str(x)
return x[0].upper() + x[1:]
# Set up regular expressions