Next / Previous / Contents / TCC Help System / NM Tech homepage

14.14. PickList.__lowerize(): Convert intercapitalized names to lowercase

This method converts an intercapitalized name such as “DarkSlateGray” to its lowercased, space-embedded form such as “dark slate gray”.

huey
# - - -   P i c k L i s t . _ _ l o w e r i z e

    def __lowerize ( self, name ):
        """Convert an intercapitalized color name to lowercase form.

          [ name is a string ->
              return name with all letters lowercased, and single
              spaces inserted at each lowercase->uppercase transition ]
        """

First we break the name up into a list of individual characters. Then we work through the gaps between characters, adding a space after that gap if there was a lowercase-uppercase transition there. Finally, the str.join() method reassembles the pieces into a string.

huey
        #-- 1 --
        # [ letters  :=  a list of the characters in name ]
        letters  =  list ( name )

        #-- 2 --
        # [ letters  :=  letters with a space prefixed to any
        #       uppercase letter preceded by a lowercase letter ]
        for  i in range ( 1, len ( letters ) ):
            if  ( letters[i-1].islower() and
                  letters[i].isupper() ):
                letters[i]  =  " " + letters[i]

        #-- 3 --
        return  "".join ( letters )