parameters: (klass, arg)
docstring: Used to convert the items in the .compile() classmethod's
          preprocessors argument into real source preprocessors.  This permits the
          use of several shortcut forms for defining preprocessors.
docstring_summary: Used to convert the items in the .compile() classmethod's
          preprocessors argument into real source preprocessors.  This permits the
          use of several shortcut forms for defining preprocessors.
docstring_tokens: Used to convert the items in the . compile () classmethod s preprocessors argument into real source preprocessors . This permits the use of several shortcut forms for defining preprocessors .
function: def _normalizePreprocessorArg(klass, arg):
          """Used to convert the items in the .compile() classmethod's
          preprocessors argument into real source preprocessors.  This permits the
          use of several shortcut forms for defining preprocessors.
          """
          
          if hasattr(arg, 'preprocess'):
              return arg
          elif hasattr(arg, '__call__'):
              class WrapperPreprocessor:
                  def preprocess(self, source, file):
                      return arg(source, file)
              return WrapperPreprocessor()
          else:
              class Settings(object):
                  placeholderToken = None
                  directiveToken = None
              settings = Settings()
              if isinstance(arg, str) or isinstance(arg, (list, tuple)):
                  settings.tokens = arg
              elif isinstance(arg, dict):
                  for k, v in arg.items():
                      setattr(settings, k, v)   
              else:
                  settings = arg
  
              settings = klass._normalizePreprocessorSettings(settings)
              return klass._CHEETAH_defaultPreprocessorClass(settings)
function_tokens: def _normalizePreprocessorArg ( klass , arg ) : if hasattr ( arg , 'preprocess' ) : return arg elif hasattr ( arg , '__call__' ) : class WrapperPreprocessor : def preprocess ( self , source , file ) : return arg ( source , file ) return WrapperPreprocessor ( ) else : class Settings ( object ) : placeholderToken = None directiveToken = None settings = Settings ( ) if isinstance ( arg , str ) or isinstance ( arg , ( list , tuple ) ) : settings . tokens = arg elif isinstance ( arg , dict ) : for k , v in arg . items ( ) : setattr ( settings , k , v ) else : settings = arg settings = klass . _normalizePreprocessorSettings ( settings ) return klass . _CHEETAH_defaultPreprocessorClass ( settings )