404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.116.61.213: ~ $
"""
Extensions
-----------------------------------------------------------------------------
"""

from __future__ import unicode_literals
from ..util import parseBoolValue
import warnings


class Extension(object):
    """ Base class for extensions to subclass. """

    # Default config -- to be overriden by a subclass
    # Must be of the following format:
    #     {
    #       'key': ['value', 'description']
    #     }
    # Note that Extension.setConfig will raise a KeyError
    # if a default is not set here.
    config = {}

    def __init__(self, *args, **kwargs):
        """ Initiate Extension and set up configs. """

        # check for configs arg for backward compat.
        # (there only ever used to be one so we use arg[0])
        if len(args):
            if args[0] is not None:
                self.setConfigs(args[0])
            warnings.warn('Extension classes accepting positional args is '
                          'pending Deprecation. Each setting should be '
                          'passed into the Class as a keyword. Positional '
                          'args are deprecated and will raise '
                          'an error in version 2.7. See the Release Notes for '
                          'Python-Markdown version 2.6 for more info.',
                          DeprecationWarning)
        # check for configs kwarg for backward compat.
        if 'configs' in kwargs.keys():
            if kwargs['configs'] is not None:
                self.setConfigs(kwargs.pop('configs', {}))
            warnings.warn('Extension classes accepting a dict on the single '
                          'keyword "config" is pending Deprecation. Each '
                          'setting should be passed into the Class as a '
                          'keyword directly. The "config" keyword is '
                          'deprecated and raise an error in '
                          'version 2.7. See the Release Notes for '
                          'Python-Markdown version 2.6 for more info.',
                          DeprecationWarning)
        # finally, use kwargs
        self.setConfigs(kwargs)

    def getConfig(self, key, default=''):
        """ Return a setting for the given key or an empty string. """
        if key in self.config:
            return self.config[key][0]
        else:
            return default

    def getConfigs(self):
        """ Return all configs settings as a dict. """
        return dict([(key, self.getConfig(key)) for key in self.config.keys()])

    def getConfigInfo(self):
        """ Return all config descriptions as a list of tuples. """
        return [(key, self.config[key][1]) for key in self.config.keys()]

    def setConfig(self, key, value):
        """ Set a config setting for `key` with the given `value`. """
        if isinstance(self.config[key][0], bool):
            value = parseBoolValue(value)
        if self.config[key][0] is None:
            value = parseBoolValue(value, preserve_none=True)
        self.config[key][0] = value

    def setConfigs(self, items):
        """ Set multiple config settings given a dict or list of tuples. """
        if hasattr(items, 'items'):
            # it's a dict
            items = items.items()
        for key, value in items:
            self.setConfig(key, value)

    def extendMarkdown(self, md, md_globals):
        """
        Add the various proccesors and patterns to the Markdown Instance.

        This method must be overriden by every extension.

        Keyword arguments:

        * md: The Markdown instance.

        * md_globals: Global variables in the markdown module namespace.

        """
        raise NotImplementedError(
            'Extension "%s.%s" must define an "extendMarkdown"'
            'method.' % (self.__class__.__module__, self.__class__.__name__)
        )

Filemanager

Name Type Size Permission Actions
__init__.py File 3.76 KB 0644
__init__.pyc File 4 KB 0644
abbr.py File 2.67 KB 0644
abbr.pyc File 4.14 KB 0644
admonition.py File 3.09 KB 0644
admonition.pyc File 3.66 KB 0644
attr_list.py File 6.12 KB 0644
attr_list.pyc File 6.21 KB 0644
codehilite.py File 9.54 KB 0644
codehilite.pyc File 9.3 KB 0644
def_list.py File 3.66 KB 0644
def_list.pyc File 4.31 KB 0644
extra.py File 5.42 KB 0644
extra.pyc File 5.57 KB 0644
fenced_code.py File 4.01 KB 0644
fenced_code.pyc File 4.45 KB 0644
footnotes.py File 14.57 KB 0644
footnotes.pyc File 14.79 KB 0644
headerid.py File 3.24 KB 0644
headerid.pyc File 4.23 KB 0644
meta.py File 2.34 KB 0644
meta.pyc File 2.95 KB 0644
nl2br.py File 859 B 0644
nl2br.pyc File 1.54 KB 0644
sane_lists.py File 1.56 KB 0644
sane_lists.pyc File 2.73 KB 0644
smart_strong.py File 1.17 KB 0644
smart_strong.pyc File 1.81 KB 0644
smarty.py File 10.12 KB 0644
smarty.pyc File 10.23 KB 0644
tables.py File 7.67 KB 0644
tables.pyc File 6.79 KB 0644
toc.py File 10.79 KB 0644
toc.pyc File 10.53 KB 0644
wikilinks.py File 2.8 KB 0644
wikilinks.pyc File 4.02 KB 0644