parameters: (extra)
return_statement: return re.sub('[^A-Za-z0-9.]+', '_', extra).lower()
docstring: Convert an arbitrary string to a standard 'extra' name
  
      Any runs of non-alphanumeric characters are replaced with a single '_',
      and the result is always lowercased.
docstring_summary: Convert an arbitrary string to a standard 'extra' name
docstring_tokens: Convert an arbitrary string to a standard extra name
function: def safe_extra(extra):
      """Convert an arbitrary string to a standard 'extra' name
  
      Any runs of non-alphanumeric characters are replaced with a single '_',
      and the result is always lowercased.
      """
      return re.sub('[^A-Za-z0-9.]+', '_', extra).lower()
function_tokens: def safe_extra ( extra ) : return re . sub ( '[^A-Za-z0-9.]+' , '_' , extra ) . lower ( )