def __init__(self, parser, application): """ parser - экземпляр парсера """ Command.__init__(self, parser) self._application = application self._enabled = True
def __init__ (self, parser): """ parser - экземпляр парсера """ Command.__init__ (self, parser) NameHarvester.counters = set()
def __init__ (self, parser): """ parser - экземпляр парсера """ Command.__init__ (self, parser) self._fileNameFormat = u"__diagram_{}.png" global _ _ = get_()
def __init__ (self, parser): """ parser - экземпляр парсера """ Command.__init__ (self, parser) # Счетчики на странице. # Ключ - имя счетчика, значение - экземпляр класса _Counter self._counters = {}
def __init__ (self, parser, config): """ parser - экземпляр парсера """ Command.__init__ (self, parser) self.__config = SourceConfig (config) # Стили CSS, добавленные в заголовок self.__appendCssClasses = [] global _ _ = get_()
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
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
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()
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)
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")
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)
def execute (self, params, content): """ Запустить команду на выполнение. Метод возвращает текст, который будет вставлен на место команды в вики-нотации """ params_dict = Command.parseParams (params) return u"Plugin Command Result"
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""
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
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)
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
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" тест ')
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
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()
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" тест ')
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
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()
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)
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)
def testParamsParsing8(self): params_text = 'Параметр=Бла_бла_бла' params = Command.parseParams(params_text) self.assertEqual(params["Параметр"], "Бла_бла_бла")
def testParamsParsing5(self): params_text = 'Параметр= -1 ' params = Command.parseParams(params_text) self.assertEqual(params["Параметр"], "-1")
def __init__ (self, parser): """ parser - экземпляр парсера """ Command.__init__ (self, parser) self.__scriptAppend = False
def __init__(self, parser): """ parser - экземпляр парсера """ Command.__init__(self, parser) self.__scriptAppend = False
def __init__ (self, parser): Command.__init__ (self, parser)
def testParamsParsing6 (self): params_text = u'Параметр=Бла-бла-бла' params = Command.parseParams (params_text) self.assertEqual (params[u"Параметр"], u"Бла-бла-бла")
def testParamsParsing5 (self): params_text = u'Параметр= -1 ' params = Command.parseParams (params_text) self.assertEqual (params[u"Параметр"], u"-1")
def testParamsParsing3(self): params_text = """Параметр=-1""" params = Command.parseParams(params_text) self.assertEqual(params["Параметр"], "-1")
def testParamsParsing4(self): params_text = 'Параметр="-1"' params = Command.parseParams(params_text) self.assertEqual(params["Параметр"], "-1")
def testParamsParsing7(self): params_text = u'Параметр= Бла-бла-бла' params = Command.parseParams(params_text) self.assertEqual(params[u"Параметр"], u"Бла-бла-бла")
def __init__ (self, parser): """ parser - экземпляр парсера """ Command.__init__ (self, parser)
def testParamsParsing4(self): params_text = u'Параметр="-1"' params = Command.parseParams(params_text) self.assertEqual(params[u"Параметр"], u"-1")
def __init__(self, parser): """ parser - экземпляр парсера """ Command.__init__(self, parser)
def testParamsParsing3(self): params_text = u"""Параметр=-1""" params = Command.parseParams(params_text) self.assertEqual(params[u"Параметр"], u"-1")
def __init__ (self, application, parser): Command.__init__ (self, parser) self._application = application self._renamer = Renamer(application)
def testParamsParsing2(self): params_text = "" params = Command.parseParams(params_text) self.assertEqual(len(params), 0)
def testParamsParsing2 (self): params_text = u"" params = Command.parseParams (params_text) self.assertEqual (len (params), 0)
def __init__ (self, parser, application): """ parser - экземпляр парсера """ Command.__init__ (self, parser) self._application = application