parameters: (s)
return_statement: return words
docstring: Split a string up according to Unix shell-like rules for quotes and
      backslashes.  In short: words are delimited by spaces, as long as those
      spaces are not escaped by a backslash, or inside a quoted string.
      Single and double quotes are equivalent, and the quote characters can
      be backslash-escaped.  The backslash is stripped from any two-character
      escape sequence, leaving only the escaped character.  The quote
      characters are stripped from any quoted string.  Returns a list of
      words.
docstring_summary: Split a string up according to Unix shell-like rules for quotes and
      backslashes.  In short: words are delimited by spaces, as long as those
      spaces are not escaped by a backslash, or inside a quoted string.
      Single and double quotes are equivalent, and the quote characters can
      be backslash-escaped.  The backslash is stripped from any two-character
      escape sequence, leaving only the escaped character.  The quote
      characters are stripped from any quoted string.  Returns a list of
      words.
docstring_tokens: Split a string up according to Unix shell - like rules for quotes and backslashes . In short : words are delimited by spaces as long as those spaces are not escaped by a backslash or inside a quoted string . Single and double quotes are equivalent and the quote characters can be backslash - escaped . The backslash is stripped from any two - character escape sequence leaving only the escaped character . The quote characters are stripped from any quoted string . Returns a list of words .
function: def split_quoted (s):
      """Split a string up according to Unix shell-like rules for quotes and
      backslashes.  In short: words are delimited by spaces, as long as those
      spaces are not escaped by a backslash, or inside a quoted string.
      Single and double quotes are equivalent, and the quote characters can
      be backslash-escaped.  The backslash is stripped from any two-character
      escape sequence, leaving only the escaped character.  The quote
      characters are stripped from any quoted string.  Returns a list of
      words.
      """
  
      # This is a nice algorithm for splitting up a single string, since it
      # doesn't require character-by-character examination.  It was a little
      # bit of a brain-bender to get it working right, though...
      if _wordchars_re is None: _init_regex()
  
      s = string.strip(s)
      words = []
      pos = 0
  
      while s:
          m = _wordchars_re.match(s, pos)
          end = m.end()
          if end == len(s):
              words.append(s[:end])
              break
  
          if s[end] in string.whitespace: # unescaped, unquoted whitespace: now
              words.append(s[:end])       # we definitely have a word delimiter
              s = string.lstrip(s[end:])
              pos = 0
  
          elif s[end] == '\\':            # preserve whatever is being escaped;
                                          # will become part of the current word
              s = s[:end] + s[end+1:]
              pos = end+1
  
          else:
              if s[end] == "'":           # slurp singly-quoted string
                  m = _squote_re.match(s, end)
              elif s[end] == '"':         # slurp doubly-quoted string
                  m = _dquote_re.match(s, end)
              else:
                  raise RuntimeError, \
                        "this can't happen (bad char '%c')" % s[end]
  
              if m is None:
                  raise ValueError, \
                        "bad string (mismatched %s quotes?)" % s[end]
  
              (beg, end) = m.span()
              s = s[:beg] + s[beg+1:end-1] + s[end:]
              pos = m.end() - 2
  
          if pos >= len(s):
              words.append(s)
              break
  
      return words
function_tokens: def split_quoted ( s ) : # This is a nice algorithm for splitting up a single string, since it # doesn't require character-by-character examination.  It was a little # bit of a brain-bender to get it working right, though... if _wordchars_re is None : _init_regex ( ) s = string . strip ( s ) words = [ ] pos = 0 while s : m = _wordchars_re . match ( s , pos ) end = m . end ( ) if end == len ( s ) : words . append ( s [ : end ] ) break if s [ end ] in string . whitespace : # unescaped, unquoted whitespace: now words . append ( s [ : end ] ) # we definitely have a word delimiter s = string . lstrip ( s [ end : ] ) pos = 0 elif s [ end ] == '\\' : # preserve whatever is being escaped; # will become part of the current word s = s [ : end ] + s [ end + 1 : ] pos = end + 1 else : if s [ end ] == "'" : # slurp singly-quoted string m = _squote_re . match ( s , end ) elif s [ end ] == '"' : # slurp doubly-quoted string m = _dquote_re . match ( s , end ) else : raise RuntimeError , "this can't happen (bad char '%c')" % s [ end ] if m is None : raise ValueError , "bad string (mismatched %s quotes?)" % s [ end ] ( beg , end ) = m . span ( ) s = s [ : beg ] + s [ beg + 1 : end - 1 ] + s [ end : ] pos = m . end ( ) - 2 if pos >= len ( s ) : words . append ( s ) break return words