(ext_name, configs = [])
Load extension by name, then return the module.

    The extension name may contain arguments as part of the string in the
    following format: "extname(key1=value1,key2=value2)"
Load extension by name, then return the module.
Load extension by name then return the module .
def load_extension(ext_name, configs = []):
    """Load extension by name, then return the module.

    The extension name may contain arguments as part of the string in the
    following format: "extname(key1=value1,key2=value2)"

    """

    # Parse extensions config params (ignore the order)
    configs = dict(configs)
    pos = ext_name.find("(") # find the first "("
    if pos > 0:
        ext_args = ext_name[pos+1:-1]
        ext_name = ext_name[:pos]
        pairs = [x.split("=") for x in ext_args.split(",")]
        configs.update([(x.strip(), y.strip()) for (x, y) in pairs])

    # Setup the module names
    ext_module = 'markdown.extensions'
    module_name_new_style = '.'.join([ext_module, ext_name])
    module_name_old_style = '_'.join(['mdx', ext_name])

    # Try loading the extention first from one place, then another
    try: # New style (markdown.extensons.<extension>)
        module = __import__(module_name_new_style, {}, {}, [ext_module])
    except ImportError:
        try: # Old style (mdx.<extension>)
            module = __import__(module_name_old_style)
        except ImportError:
           message(WARN, "Failed loading extension '%s' from '%s' or '%s'"
               % (ext_name, module_name_new_style, module_name_old_style))
           # Return None so we don't try to initiate none-existant extension
           return None

    # If the module is loaded successfully, we expect it to define a
    # function called makeExtension()
    try:
        return module.makeExtension(configs.items())
    except AttributeError:
        message(CRITICAL, "Failed to initiate extension '%s'" % ext_name)
def load_extension ( ext_name , configs = [ ] ) : # Parse extensions config params (ignore the order) configs = dict ( configs ) pos = ext_name . find ( "(" ) # find the first "(" if pos > 0 : ext_args = ext_name [ pos + 1 : - 1 ] ext_name = ext_name [ : pos ] pairs = [ x . split ( "=" ) for x in ext_args . split ( "," ) ] configs . update ( [ ( x . strip ( ) , y . strip ( ) ) for ( x , y ) in pairs ] ) # Setup the module names ext_module = 'markdown.extensions' module_name_new_style = '.' . join ( [ ext_module , ext_name ] ) module_name_old_style = '_' . join ( [ 'mdx' , ext_name ] ) # Try loading the extention first from one place, then another try : # New style (markdown.extensons.<extension>) module = __import__ ( module_name_new_style , { } , { } , [ ext_module ] ) except ImportError : try : # Old style (mdx.<extension>) module = __import__ ( module_name_old_style ) except ImportError : message ( WARN , "Failed loading extension '%s' from '%s' or '%s'" % ( ext_name , module_name_new_style , module_name_old_style ) ) # Return None so we don't try to initiate none-existant extension return None # If the module is loaded successfully, we expect it to define a # function called makeExtension() try : return module . makeExtension ( configs . items ( ) ) except AttributeError : message ( CRITICAL , "Failed to initiate extension '%s'" % ext_name )