(self)
step2() maps double suffices to single ones.
        so -ization ( = -ize plus -ation) maps to -ize etc. note that the
        string before the suffix must give m() > 0.
step2() maps double suffices to single ones.
        so -ization ( = -ize plus -ation) maps to -ize etc. note that the
        string before the suffix must give m() > 0.
step2 () maps double suffices to single ones . so - ization ( = - ize plus - ation ) maps to - ize etc . note that the string before the suffix must give m () > 0 .
def step2(self):
        """step2() maps double suffices to single ones.
        so -ization ( = -ize plus -ation) maps to -ize etc. note that the
        string before the suffix must give m() > 0.
        """
        if self.b[self.k - 1] == 'a':
            if self.ends("ational"):   self.r("ate")
            elif self.ends("tional"):  self.r("tion")
        elif self.b[self.k - 1] == 'c':
            if self.ends("enci"):      self.r("ence")
            elif self.ends("anci"):    self.r("ance")
        elif self.b[self.k - 1] == 'e':
            if self.ends("izer"):      self.r("ize")
        elif self.b[self.k - 1] == 'l':
            if self.ends("bli"):       self.r("ble") # --DEPARTURE--
            # To match the published algorithm, replace this phrase with
            #   if self.ends("abli"):      self.r("able")
            elif self.ends("alli"):    self.r("al")
            elif self.ends("entli"):   self.r("ent")
            elif self.ends("eli"):     self.r("e")
            elif self.ends("ousli"):   self.r("ous")
        elif self.b[self.k - 1] == 'o':
            if self.ends("ization"):   self.r("ize")
            elif self.ends("ation"):   self.r("ate")
            elif self.ends("ator"):    self.r("ate")
        elif self.b[self.k - 1] == 's':
            if self.ends("alism"):     self.r("al")
            elif self.ends("iveness"): self.r("ive")
            elif self.ends("fulness"): self.r("ful")
            elif self.ends("ousness"): self.r("ous")
        elif self.b[self.k - 1] == 't':
            if self.ends("aliti"):     self.r("al")
            elif self.ends("iviti"):   self.r("ive")
            elif self.ends("biliti"):  self.r("ble")
        elif self.b[self.k - 1] == 'g': # --DEPARTURE--
            if self.ends("logi"):      self.r("log")
def step2 ( self ) : if self . b [ self . k - 1 ] == 'a' : if self . ends ( "ational" ) : self . r ( "ate" ) elif self . ends ( "tional" ) : self . r ( "tion" ) elif self . b [ self . k - 1 ] == 'c' : if self . ends ( "enci" ) : self . r ( "ence" ) elif self . ends ( "anci" ) : self . r ( "ance" ) elif self . b [ self . k - 1 ] == 'e' : if self . ends ( "izer" ) : self . r ( "ize" ) elif self . b [ self . k - 1 ] == 'l' : if self . ends ( "bli" ) : self . r ( "ble" ) # --DEPARTURE-- # To match the published algorithm, replace this phrase with #   if self.ends("abli"):      self.r("able") elif self . ends ( "alli" ) : self . r ( "al" ) elif self . ends ( "entli" ) : self . r ( "ent" ) elif self . ends ( "eli" ) : self . r ( "e" ) elif self . ends ( "ousli" ) : self . r ( "ous" ) elif self . b [ self . k - 1 ] == 'o' : if self . ends ( "ization" ) : self . r ( "ize" ) elif self . ends ( "ation" ) : self . r ( "ate" ) elif self . ends ( "ator" ) : self . r ( "ate" ) elif self . b [ self . k - 1 ] == 's' : if self . ends ( "alism" ) : self . r ( "al" ) elif self . ends ( "iveness" ) : self . r ( "ive" ) elif self . ends ( "fulness" ) : self . r ( "ful" ) elif self . ends ( "ousness" ) : self . r ( "ous" ) elif self . b [ self . k - 1 ] == 't' : if self . ends ( "aliti" ) : self . r ( "al" ) elif self . ends ( "iviti" ) : self . r ( "ive" ) elif self . ends ( "biliti" ) : self . r ( "ble" ) elif self . b [ self . k - 1 ] == 'g' : # --DEPARTURE-- if self . ends ( "logi" ) : self . r ( "log" )