示例#1
0
 def __init__(self, parser, application):
     """
     parser - экземпляр парсера
     """
     Command.__init__(self, parser)
     self._application = application
     self._enabled = True
示例#2
0
    def __init__ (self, parser):
        """
        parser - экземпляр парсера
        """
        Command.__init__ (self, parser)

        NameHarvester.counters = set()
示例#3
0
    def __init__ (self, parser):
        """
        parser - экземпляр парсера
        """
        Command.__init__ (self, parser)
        self._fileNameFormat = u"__diagram_{}.png"

        global _
        _ = get_()
示例#4
0
    def __init__ (self, parser):
        """
        parser - экземпляр парсера
        """
        Command.__init__ (self, parser)

        # Счетчики на странице.
        # Ключ - имя счетчика, значение - экземпляр класса _Counter
        self._counters = {}
示例#5
0
    def __init__ (self, parser, config):
        """
        parser - экземпляр парсера
        """
        Command.__init__ (self, parser)
        self.__config = SourceConfig (config)

        # Стили CSS, добавленные в заголовок
        self.__appendCssClasses = []

        global _
        _ = get_()
示例#6
0
    def parseGraphParams(params):
        """
        Parse params string into parts: key - value. Key may contain a dot.
        Sample params:
            param1
            Параметр2.subparam = 111
            Параметр3 = " bla bla bla"
            param4.sub.param2 = "111"
            param5 =' 222 '
            param7 = " sample 'bla bla bla' example"
            param8 = ' test "bla-bla-bla" test '
        """
        pattern = r"""((?P<name>[\w.]+)
   (\s*=\s*(?P<param>([-_\w.]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)"""

        result = {}

        regex = re.compile(
            pattern,
            re.IGNORECASE | re.MULTILINE | re.DOTALL | re.VERBOSE
        )
        matches = regex.finditer(params)

        for match in matches:
            name = match.group("name")
            param = match.group("param")
            if param is None:
                param = u""

            result[name] = Command.removeQuotes(param)

        return result
示例#7
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение.
        Оформление исходных текстов
        """
        params_dict = Command.parseParams (params)

        try:
            sourceText = self.__getContentFromFile (params_dict)

        except KeyError:
            sourceText = content

        except IOError:
            return _(u"<B>Source plugin: File '{0}' not found</B>").format (getFileName (params_dict[FILE_PARAM_NAME]))

        except UnicodeDecodeError:
            return _(u"<B>Source plugin: Encoding error</B>")

        except LookupError:
            return _(u"<B>Source plugin: Unknown encoding</B>")

        tabwidth = self.__getTabWidth (params_dict)

        newcontent = sourceText.replace ("\t", " " * tabwidth)
        colortext = self.__colorize (params_dict, newcontent)

        return colortext
示例#8
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение. 
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        params_dict = Command.parseParams (params)

        name = self._getNameParam (params_dict)
        start = self._getStartParam (params_dict)
        step = self._getStepParam (params_dict)
        parent = self._getParentParam (params_dict)
        hide = self._getHideParam (params_dict)
        separator = self._getSeparatorParam (params_dict)

        if name not in self._counters:
            self._counters[name] = _Counter()

        counter = self._counters[name]

        if start != None:
            counter.reset (start, parent, separator)
        else:
            counter.next(step, parent, separator)

        return u"" if hide else counter.toString() 
示例#9
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        params_dict = Command.parseParams (params)
        date = None
        if DATE_ORG_PARAM_NANE in params_dict:
            try:
                date = datetime.strptime (params_dict[DATE_ORG_PARAM_NANE], self._dateFormat)
            except ValueError:
                pass

        dayDescription = DayDescription (date)
        self._fillDayDescription (dayDescription, content)

        if HTML_STYLES_COMMENT_START not in self.parser.head:
            self.parser.appendToHead (HTML_STYLES_COMMENT_START)
            self.parser.appendToHead (u'<style>')
            self.parser.appendToHead (self._htmlGenerator.getStyles())
            self.parser.appendToHead (u'</style>')
            self.parser.appendToHead (HTML_STYLES_COMMENT_END)

        self._addTagsToPage (dayDescription)
        return self._htmlGenerator.getHTML (dayDescription)
示例#10
0
    def testParamsParsing1 (self):
        params_text = u"""Параметр1
Параметр2 = 111
Параметр3 = " бла бла бла"
Параметр4
Параметр5="111"
Параметр6=' 222 '
Параметр7 = " проверка 'бла бла бла' проверка"
Параметр8 = ' проверка "bla-bla-bla" тест '
Параметр9 = -1
Параметр10 = -10.5
Параметр11 = 12.5
"""

        params = Command.parseParams (params_text)

        self.assertEqual (len (params), 11, params)
        self.assertEqual (params[u"Параметр1"], u"")
        self.assertEqual (params[u"Параметр2"], u"111")
        self.assertEqual (params[u"Параметр3"], u" бла бла бла")
        self.assertEqual (params[u"Параметр4"], u"")
        self.assertEqual (params[u"Параметр5"], u"111")
        self.assertEqual (params[u"Параметр6"], u" 222 ")
        self.assertEqual (params[u"Параметр7"], u" проверка 'бла бла бла' проверка")
        self.assertEqual (params[u"Параметр8"], u' проверка "bla-bla-bla" тест ')
        self.assertEqual (params[u"Параметр9"], u"-1")
        self.assertEqual (params[u"Параметр10"], u"-10.5")
        self.assertEqual (params[u"Параметр11"], u"12.5")
示例#11
0
    def execute (self, params, content):
        params_dict = Command.parseParams (params)

        children = self.parser.page.children
        self._sortChildren (children, params_dict)

        return SimpleView.make (children, self.parser, params)
示例#12
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        params_dict = Command.parseParams (params)

        return u"Plugin Command Result"
示例#13
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение. 
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        params_dict = Command.parseParams (params)

        name = self._getNameParam (params_dict)
        if len (name) != 0:
            NameHarvester.counters.add (name)

        return u""
示例#14
0
    def __init__ (self, parser, name, lang):
        """
        parser - экземпляр парсера
        """
        Command.__init__ (self, parser)
        global _
        _ = lang

        self.__name = name

        self.__style1 = u"""<STYLE>div.spoiler_style1 {
    padding: 3px; 
    border: 1px solid #d8d8d8; 
    }</STYLE>"""

        self.__style2 = u"""<STYLE>div.spoiler_style2 {
    text-transform: uppercase; 
    border-bottom: 1px solid #CCCCCC; 
    margin-bottom: 3px; 
    font-size: 0.8em; 
    font-weight: bold; 
    display: block;
    }</STYLE>"""

        self.__blockTemplate = ur"""
        <div class="spoiler_style1"><div class="spoiler_style2"><span onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') {  this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerHTML = '<b></b><a href=\'#\' onClick=\'return false;\'>{collapsetext}</a>'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerHTML = '<b></b><a href=\'#\' onClick=\'return false;\'>{expandtext}</a>'; }" /><b></b><a href="#" onClick="return false;">{expandtext}</a></span></div><div class="spoiler_quotecontent"><div style="display: none;">{content}</div></div></div>"""

        self.__inlineTemplate = ur"""<span><span onClick="this.parentNode.getElementsByTagName('span')[1].style.display = ''; this.style.display = 'none';"><a href="#">{expandtext}</a></span><span style="display: none;" onClick="this.parentNode.getElementsByTagName('span')[0].style.display = ''; this.style.display = 'none';">{content}</span></span>"""
    
        self.__expandParam = u"expandtext"
        self.__collapseParam = u"collapsetext"
        self.__inlineParam = u"inline"

        # Надписи по умолчанию
        self.__expandTextDefault = _(u"Expand")
        self.__collapseTextDefault = _(u"Collapse")

        # Добавлены ли стили в заголовок
        self.__styleAppend = False
示例#15
0
    def execute (self, params, content):
        params_dict = Command.parseParams (params)
        attach = Attachment (self.parser.page)

        attachlist = attach.getAttachRelative ()
        attachpath = attach.getAttachPath()

        (dirs, files) = self.separateDirFiles (attachlist, attachpath)

        self._sortFiles (dirs, params_dict)
        self._sortFiles (files, params_dict)

        return SimpleView.make (dirs + files, attachpath)
示例#16
0
    def execute(self, params, content):
        """
        Run command.
        The method returns link which will replace the command notation
        """
        paramsDict = Command.parseParams(params)

        commandParser = CommandExecParser(self.parser.page)
        commandsList = commandParser.parse(content)

        htmlMaker = self._createHtmlMaker(paramsDict)
        html = htmlMaker.createHtml(commandsList, paramsDict)

        return html
示例#17
0
    def execute(self, params, content):
        """
        Run command.
        The method returns link which will replace the command notation
        """
        paramsDict = Command.parseParams(params)

        commandParser = CommandExecParser(self.parser.page)
        commandsList = commandParser.parse(content)

        htmlMaker = self._createHtmlMaker(paramsDict)
        html = htmlMaker.createHtml(commandsList, paramsDict)

        return html
示例#18
0
    def testParamsParsing10 (self):
        params_text = u"""Параметр1.Подпараметр
            Пар_аме_тр2 = 111
            Параметр3.Еще.Подпар_аметр
            Пар.ам.етр4 = " проверка 'бла бла бла' проверка"
            Пар.аме.тр5 = ' проверка "bla-bla-bla" тест ' """

        params = Command.parseParams (params_text)

        self.assertEqual (len (params), 5)
        self.assertEqual (params[u"Параметр1.Подпараметр"], u"")
        self.assertEqual (params[u"Пар_аме_тр2"], u"111")
        self.assertEqual (params[u"Параметр3.Еще.Подпар_аметр"], u"")
        self.assertEqual (params[u"Пар.ам.етр4"], u" проверка 'бла бла бла' проверка")
        self.assertEqual (params[u"Пар.аме.тр5"], u' проверка "bla-bla-bla" тест ')
示例#19
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение. 
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        params_dict = Command.parseParams (params)
        template = self.__getTemplate (params_dict)

        parsedcontent = self.parser.parseWikiMarkup (content.strip())
        result = template.replace (u"{expandtext}", self.__getExpandText (params_dict) )
        result = result.replace (u"{collapsetext}", self.__getCollapseText (params_dict) )
        result = result.replace (u"{content}", parsedcontent)

        self.__appendStyles()

        return result
示例#20
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        paramsDict = Command.parseParams (params)
        thumbsize = self._getThumbSize(paramsDict)
        columnsCount = self._getColumnsCount(paramsDict)

        lineItems = self._parseContent (content)

        if columnsCount == 0:
            generator = ThumbStreamGenerator (lineItems, thumbsize, self.parser)
        else:
            generator = ThumbTableGenerator (lineItems, thumbsize, self.parser, columnsCount)

        return generator.generate()
示例#21
0
    def testParamsParsing10(self):
        params_text = """Параметр1.Подпараметр
            Пар_аме_тр2 = 111
            Параметр3.Еще.Подпар_аметр
            Пар.ам.етр4 = " проверка 'бла бла бла' проверка"
            Пар.аме.тр5 = ' проверка "bla-bla-bla" тест ' """

        params = Command.parseParams(params_text)

        self.assertEqual(len(params), 5)
        self.assertEqual(params["Параметр1.Подпараметр"], "")
        self.assertEqual(params["Пар_аме_тр2"], "111")
        self.assertEqual(params["Параметр3.Еще.Подпар_аметр"], "")
        self.assertEqual(params["Пар.ам.етр4"],
                         " проверка 'бла бла бла' проверка")
        self.assertEqual(params["Пар.аме.тр5"],
                         ' проверка "bla-bla-bla" тест ')
示例#22
0
    def execute(self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место
        команды в вики-нотации
        """
        params_dict = Command.parseParams(params)
        template = self.__getTemplate(params_dict)

        parsedcontent = self.parser.parseWikiMarkup(content.strip())
        result = template.replace(u"{expandtext}",
                                  self.__getExpandText(params_dict))
        result = result.replace(u"{collapsetext}",
                                self.__getCollapseText(params_dict))
        result = result.replace(u"{content}", parsedcontent)

        self.__appendStyles()
        return result
示例#23
0
    def execute(self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        paramsDict = Command.parseParams(params)
        thumbsize = self._getThumbSize(paramsDict)
        columnsCount = self._getColumnsCount(paramsDict)

        lineItems = self._parseContent(content)

        if columnsCount == 0:
            generator = ThumbStreamGenerator(lineItems, thumbsize, self.parser)
        else:
            generator = ThumbTableGenerator(lineItems, thumbsize, self.parser,
                                            columnsCount)

        return generator.generate()
示例#24
0
    def execute (self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        (path, params_tail) = self._getAttach (params)
        if path is None:
            return u""

        params_dict = Command.parseParams (params_tail)
        encoding = self._getEncoding (params_dict)

        try:
            with open (path) as fp:
                # Почему-то в конце всегда оказывается перевод строки
                text = unicode (fp.read (), encoding).rstrip()
        except IOError:
            return _(u"<b>Can't open file %s</b>" % path)
        except Exception:
            return _(u"<b>Encoding error in file %s</b>" % os.path.basename (path))

        return self._postprocessText (text, params_dict)
示例#25
0
    def execute(self, params, content):
        """
        Запустить команду на выполнение.
        Метод возвращает текст, который будет вставлен на место команды в вики-нотации
        """
        (path, params_tail) = self._getAttach(params)
        if path is None:
            return u""

        params_dict = Command.parseParams(params_tail)
        encoding = self._getEncoding(params_dict)

        try:
            with open(path) as fp:
                # Почему-то в конце всегда оказывается перевод строки
                text = unicode(fp.read(), encoding).rstrip()
        except IOError:
            return _(u"<b>Can't open file %s</b>" % path)
        except Exception:
            return _(u"<b>Encoding error in file %s</b>" %
                     os.path.basename(path))

        return self._postprocessText(text, params_dict)
示例#26
0
 def testParamsParsing8(self):
     params_text = 'Параметр=Бла_бла_бла'
     params = Command.parseParams(params_text)
     self.assertEqual(params["Параметр"], "Бла_бла_бла")
示例#27
0
 def testParamsParsing5(self):
     params_text = 'Параметр= -1 '
     params = Command.parseParams(params_text)
     self.assertEqual(params["Параметр"], "-1")
示例#28
0
 def __init__ (self, parser):
     """
     parser - экземпляр парсера
     """
     Command.__init__ (self, parser)
     self.__scriptAppend = False
示例#29
0
 def __init__(self, parser):
     """
     parser - экземпляр парсера
     """
     Command.__init__(self, parser)
     self.__scriptAppend = False
示例#30
0
 def __init__ (self, parser):
     Command.__init__ (self, parser)
示例#31
0
 def testParamsParsing6 (self):
     params_text = u'Параметр=Бла-бла-бла'
     params = Command.parseParams (params_text)
     self.assertEqual (params[u"Параметр"], u"Бла-бла-бла")
示例#32
0
 def testParamsParsing5 (self):
     params_text = u'Параметр= -1 '
     params = Command.parseParams (params_text)
     self.assertEqual (params[u"Параметр"], u"-1")
示例#33
0
 def testParamsParsing3(self):
     params_text = """Параметр=-1"""
     params = Command.parseParams(params_text)
     self.assertEqual(params["Параметр"], "-1")
示例#34
0
 def testParamsParsing4(self):
     params_text = 'Параметр="-1"'
     params = Command.parseParams(params_text)
     self.assertEqual(params["Параметр"], "-1")
示例#35
0
 def testParamsParsing8(self):
     params_text = 'Параметр=Бла_бла_бла'
     params = Command.parseParams(params_text)
     self.assertEqual(params["Параметр"], "Бла_бла_бла")
示例#36
0
 def __init__ (self, parser):
     Command.__init__ (self, parser)
示例#37
0
 def testParamsParsing7(self):
     params_text = u'Параметр= Бла-бла-бла'
     params = Command.parseParams(params_text)
     self.assertEqual(params[u"Параметр"], u"Бла-бла-бла")
示例#38
0
 def __init__ (self, parser):
     """
     parser - экземпляр парсера
     """
     Command.__init__ (self, parser)
示例#39
0
 def testParamsParsing4(self):
     params_text = u'Параметр="-1"'
     params = Command.parseParams(params_text)
     self.assertEqual(params[u"Параметр"], u"-1")
示例#40
0
 def __init__(self, parser):
     """
     parser - экземпляр парсера
     """
     Command.__init__(self, parser)
示例#41
0
 def testParamsParsing3(self):
     params_text = u"""Параметр=-1"""
     params = Command.parseParams(params_text)
     self.assertEqual(params[u"Параметр"], u"-1")
示例#42
0
	def __init__ (self, application, parser):
		Command.__init__ (self, parser)
		self._application = application
		self._renamer = Renamer(application)
示例#43
0
    def testParamsParsing2(self):
        params_text = ""
        params = Command.parseParams(params_text)

        self.assertEqual(len(params), 0)
示例#44
0
    def testParamsParsing2 (self):
        params_text = u""
        params = Command.parseParams (params_text)

        self.assertEqual (len (params), 0)
示例#45
0
 def __init__ (self, parser, application):
     """
     parser - экземпляр парсера
     """
     Command.__init__ (self, parser)
     self._application = application