[PATCH 2/4] Move upcase_first_letter function to iutil

David Shea dshea at redhat.com
Fri Sep 13 13:05:00 UTC 2013


On 09/13/2013 06:59 AM, Vratislav Podzimek wrote:
> This function may come handy in various module, not only in the localization
> module.
>
> Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
> ---
>   pyanaconda/iutil.py        | 21 +++++++++++++++++++++
>   pyanaconda/localization.py | 27 ++++-----------------------
>   2 files changed, 25 insertions(+), 23 deletions(-)
>
> diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
> index 4e362ff..020f15d 100644
> --- a/pyanaconda/iutil.py
> +++ b/pyanaconda/iutil.py
> @@ -742,3 +742,24 @@ def lowerASCII(s):
>       locale-independent.
>       """
>       return string.translate(_toASCII(s), _ASCIIlower_table)
> +
> +def upcase_first_letter(string):
> +    """
> +    Helper function that upcases the first letter of the string. Python's
> +    standard string.capitalize() not only upcases the first letter but also
> +    lowercases all the others. string.title() capitalizes all words in the
> +    string.
> +
> +    :type string: either a str or unicode object
> +    :return: the given string with the first letter upcased
> +    :rtype: str or unicode (depends on the input)
> +
> +    """
> +
> +    if not string:
> +        # cannot change anything
> +        return string
> +    elif len(string) == 1:
> +        return string.upper()
> +    else:
> +        return string[0].upper() + string[1:]
> diff --git a/pyanaconda/localization.py b/pyanaconda/localization.py
> index f9469d8..7e473dd 100644
> --- a/pyanaconda/localization.py
> +++ b/pyanaconda/localization.py
> @@ -26,6 +26,8 @@ import re
>   import langtable
>   import glob
>   
> +from pyanaconda.iutil import upcase_first_letter
> +
>   import logging
>   log = logging.getLogger("anaconda")
>   
> @@ -47,27 +49,6 @@ class InvalidLocaleSpec(LocalizationConfigError):
>   
>       pass
>   
> -def _upcase_first_letter(string):
> -    """
> -    Helper function that upcases the first letter of the string. Python's
> -    standard string.capitalize() not only upcases the first letter but also
> -    lowercases all the others. string.title() capitalizes all words in the
> -    string.
> -
> -    :type string: either a str or unicode object
> -    :return: the given string with the first letter upcased
> -    :rtype: str or unicode (depends on the input)
> -
> -    """
> -
> -    if not string:
> -        # cannot change anything
> -        return string
> -    elif len(string) == 1:
> -        return string.upper()
> -    else:
> -        return string[0].upper() + string[1:]
> -
>   def parse_langcode(langcode):
>       """
>       For a given langcode (e.g. 'SR_RS.UTF-8 at latin') returns a dictionary
> @@ -237,7 +218,7 @@ def get_english_name(locale):
>                                      scriptId=parts.get("script", ""),
>                                      languageIdQuery="en")
>   
> -    return _upcase_first_letter(name)
> +    return upcase_first_letter(name)
>   
>   def get_native_name(locale):
>       """
> @@ -261,7 +242,7 @@ def get_native_name(locale):
>                                      languageIdQuery=parts["language"],
>                                      scriptIdQuery=parts.get("script", ""))
>   
> -    return _upcase_first_letter(name)
> +    return upcase_first_letter(name)
>   
>   def get_available_translations(localedir=None):
>       """
"string" isn't the best parameter name, since it conflicts with the 
string module, which is imported in iutil. Also need to change the use 
of _upcase_first_letter in tests/pyanaconda/localization_test.py


More information about the anaconda-patches mailing list