code: def rl_cleanspaces(x):
      
      patterns = (
          # arguments for re.sub: pattern and repl
          # удаляем пробел перед знаками препинания
          (r' +([\.,?!\)]+)', r'\1'),
          # добавляем пробел после знака препинания, если только за ним нет другого
          (r'([\.,?!\)]+)([^\.!,?\)]+)', r'\1 \2'),
          # убираем пробел после открывающей скобки
          (r'(\S+)\s*(\()\s*(\S+)', r'\1 (\3'),
      )
      # удаляем двойные, начальные и конечные пробелы
      return os.linesep.join(
          ' '.join(part for part in line.split(' ') if part)
          for line in _sub_patterns(patterns, x).split(os.linesep)
      )
docs: Clean double spaces, trailing spaces, heading spaces,
      spaces before punctuations