def creditline_from_row(row): t = Template(parse('Credit line\n ')) t.add("DUMMY ", " VALUE\n ") # to set the formatting t.add("Author", wikify(row['realname'])) t.add("Other", Tag('i', wikify(row['title']), wiki_markup="''")) t.add("License", "CC-BY-SA-2.0") t.remove("DUMMY") return t
def update_template(self, template: Template): template.remove('fortnite_id')
def test_remove(self): """test Template.remove()""" node1 = Template(wraptext("foobar")) node2 = Template( wraptext("foo"), [pgenh("1", "bar"), pgens("abc", "def")]) node3 = Template( wraptext("foo"), [pgenh("1", "bar"), pgens("abc", "def")]) node4 = Template( wraptext("foo"), [pgenh("1", "bar"), pgenh("2", "baz")]) node5 = Template(wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node6 = Template(wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node7 = Template( wraptext("foo"), [pgens("1 ", "a"), pgens(" 1", "b"), pgens("2", "c")]) node8 = Template( wraptext("foo"), [pgens("1 ", "a"), pgens(" 1", "b"), pgens("2", "c")]) node9 = Template(wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node10 = Template( wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node11 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node12 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node13 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node14 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node15 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node16 = Template( wraptext("foo"), [pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node17 = Template( wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node18 = Template( wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node19 = Template( wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node20 = Template( wraptext("foo"), [pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node21 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node22 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node23 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node24 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node25 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node26 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b") ]) node27 = Template(wraptext("foo"), [pgenh("1", "bar")]) node28 = Template(wraptext("foo"), [pgenh("1", "bar")]) node2.remove("1") node2.remove("abc") node3.remove(1, keep_field=True) node3.remove("abc", keep_field=True) node4.remove("1", keep_field=False) node5.remove("a", keep_field=False) node6.remove("a", keep_field=True) node7.remove(1, keep_field=True) node8.remove(1, keep_field=False) node9.remove(1, keep_field=True) node10.remove(1, keep_field=False) node11.remove(node11.params[0], keep_field=False) node12.remove(node12.params[0], keep_field=True) node13.remove(node13.params[1], keep_field=False) node14.remove(node14.params[1], keep_field=True) node15.remove(node15.params[2], keep_field=False) node16.remove(node16.params[2], keep_field=True) node17.remove(node17.params[0], keep_field=False) node18.remove(node18.params[0], keep_field=True) node19.remove(node19.params[1], keep_field=False) node20.remove(node20.params[1], keep_field=True) node21.remove("a", keep_field=False) node22.remove("a", keep_field=True) node23.remove(node23.params[0], keep_field=False) node24.remove(node24.params[0], keep_field=True) node25.remove(node25.params[3], keep_field=False) node26.remove(node26.params[3], keep_field=True) self.assertRaises(ValueError, node1.remove, 1) self.assertRaises(ValueError, node1.remove, "a") self.assertRaises(ValueError, node2.remove, "1") self.assertEqual("{{foo}}", node2) self.assertEqual("{{foo||abc=}}", node3) self.assertEqual("{{foo|2=baz}}", node4) self.assertEqual("{{foo|b=c}}", node5) self.assertEqual("{{foo| a=|b=c}}", node6) self.assertEqual("{{foo|1 =|2=c}}", node7) self.assertEqual("{{foo|2=c}}", node8) self.assertEqual("{{foo||c}}", node9) self.assertEqual("{{foo|2=c}}", node10) self.assertEqual("{{foo|b=c|a =d}}", node11) self.assertEqual("{{foo| a=|b=c|a =d}}", node12) self.assertEqual("{{foo| a=b|a =d}}", node13) self.assertEqual("{{foo| a=b|b=|a =d}}", node14) self.assertEqual("{{foo| a=b|b=c}}", node15) self.assertEqual("{{foo| a=b|b=c|a =}}", node16) self.assertEqual("{{foo|b|c}}", node17) self.assertEqual("{{foo|1 =|b|c}}", node18) self.assertEqual("{{foo|1 =a|2=c}}", node19) self.assertEqual("{{foo|1 =a||c}}", node20) self.assertEqual("{{foo|c=d|e=f}}", node21) self.assertEqual("{{foo|a=|c=d|e=f}}", node22) self.assertEqual("{{foo|c=d|e=f|a=b|a=b}}", node23) self.assertEqual("{{foo|a=|c=d|e=f|a=b|a=b}}", node24) self.assertEqual("{{foo|a=b|c=d|e=f|a=b}}", node25) self.assertEqual("{{foo|a=b|c=d|e=f|a=|a=b}}", node26) self.assertRaises(ValueError, node27.remove, node28.get(1))
def test_remove(self): """test Template.remove()""" node1 = Template(wraptext("foobar")) node2 = Template(wraptext("foo"), [pgenh("1", "bar"), pgens("abc", "def")]) node3 = Template(wraptext("foo"), [pgenh("1", "bar"), pgens("abc", "def")]) node4 = Template(wraptext("foo"), [pgenh("1", "bar"), pgenh("2", "baz")]) node5 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node6 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node7 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgens(" 1", "b"), pgens("2", "c")]) node8 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgens(" 1", "b"), pgens("2", "c")]) node9 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node10 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node11 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node12 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node13 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node14 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node15 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node16 = Template(wraptext("foo"), [ pgens(" a", "b"), pgens("b", "c"), pgens("a ", "d")]) node17 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node18 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node19 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node20 = Template(wraptext("foo"), [ pgens("1 ", "a"), pgenh("1", "b"), pgenh("2", "c")]) node21 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node22 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node23 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node24 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node25 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node26 = Template(wraptext("foo"), [ pgens("a", "b"), pgens("c", "d"), pgens("e", "f"), pgens("a", "b"), pgens("a", "b")]) node27 = Template(wraptext("foo"), [pgenh("1", "bar")]) node28 = Template(wraptext("foo"), [pgenh("1", "bar")]) node2.remove("1") node2.remove("abc") node3.remove(1, keep_field=True) node3.remove("abc", keep_field=True) node4.remove("1", keep_field=False) node5.remove("a", keep_field=False) node6.remove("a", keep_field=True) node7.remove(1, keep_field=True) node8.remove(1, keep_field=False) node9.remove(1, keep_field=True) node10.remove(1, keep_field=False) node11.remove(node11.params[0], keep_field=False) node12.remove(node12.params[0], keep_field=True) node13.remove(node13.params[1], keep_field=False) node14.remove(node14.params[1], keep_field=True) node15.remove(node15.params[2], keep_field=False) node16.remove(node16.params[2], keep_field=True) node17.remove(node17.params[0], keep_field=False) node18.remove(node18.params[0], keep_field=True) node19.remove(node19.params[1], keep_field=False) node20.remove(node20.params[1], keep_field=True) node21.remove("a", keep_field=False) node22.remove("a", keep_field=True) node23.remove(node23.params[0], keep_field=False) node24.remove(node24.params[0], keep_field=True) node25.remove(node25.params[3], keep_field=False) node26.remove(node26.params[3], keep_field=True) self.assertRaises(ValueError, node1.remove, 1) self.assertRaises(ValueError, node1.remove, "a") self.assertRaises(ValueError, node2.remove, "1") self.assertEqual("{{foo}}", node2) self.assertEqual("{{foo||abc=}}", node3) self.assertEqual("{{foo||baz}}", node4) self.assertEqual("{{foo|b=c}}", node5) self.assertEqual("{{foo| a=|b=c}}", node6) self.assertEqual("{{foo|1 =|2=c}}", node7) self.assertEqual("{{foo|2=c}}", node8) self.assertEqual("{{foo||c}}", node9) self.assertEqual("{{foo||c}}", node10) self.assertEqual("{{foo|b=c|a =d}}", node11) self.assertEqual("{{foo| a=|b=c|a =d}}", node12) self.assertEqual("{{foo| a=b|a =d}}", node13) self.assertEqual("{{foo| a=b|b=|a =d}}", node14) self.assertEqual("{{foo| a=b|b=c}}", node15) self.assertEqual("{{foo| a=b|b=c|a =}}", node16) self.assertEqual("{{foo|b|c}}", node17) self.assertEqual("{{foo|1 =|b|c}}", node18) self.assertEqual("{{foo|1 =a||c}}", node19) self.assertEqual("{{foo|1 =a||c}}", node20) self.assertEqual("{{foo|c=d|e=f}}", node21) self.assertEqual("{{foo|a=|c=d|e=f}}", node22) self.assertEqual("{{foo|c=d|e=f|a=b|a=b}}", node23) self.assertEqual("{{foo|a=|c=d|e=f|a=b|a=b}}", node24) self.assertEqual("{{foo|a=b|c=d|e=f|a=b}}", node25) self.assertEqual("{{foo|a=b|c=d|e=f|a=|a=b}}", node26) self.assertRaises(ValueError, node27.remove, node28.get(1))
def handle(site, index): src_ns = next(site.results(prop='info', titles=index))['ns'] for page in site.results(generator='allpages', gapprefix=index.split(':')[1] + '/Beispiel ', gaplimit='max', prop='revisions', rvprop='content', gapnamespace=src_ns): orig = page['revisions'][0]['*'] if mwbot.parse_redirect(orig): continue code = mwbot.parse(orig) templates = code.filter_templates( matches=lambda x: x.name.matches('Beispiel')) if len(templates) > 0: template = templates[0] else: template = Template(Wikicode([Text('Beispiel')])) code.insert(0, template) code.insert(1, '\n') # legacy format handling template.name = 'Beispiel' if template.has('1') and not template.get('1').value.startswith('\n'): template.get('1').value.insert(0, '\n') if template.has('status'): if str(template.get('status').value).strip() not in ('extern', 'Datei'): print('unknown status: {}'.format(k)) if template.has('1'): if str(template.get('1').value).strip() == 'teils': template.add('teils', '') template.remove('1') elif str(template.get('1').value).strip() == 'falsch': template.add('falsch', '') template.remove('1') if not template.has('1'): angabe_div = code.filter_tags( matches=lambda x: x.tag.matches('blockquote') or len([ x for x in x.attributes if '{{Angabe}}' in x or '#EFEFEF' in x ])) if angabe_div: template.add('1', '\n' + str(angabe_div[0].contents).strip() + '\n', showkey=True) code.remove(angabe_div[0]) else: angabe_sec = code.get_sections(matches='Angabe|Aufgabe') if angabe_sec: code.remove(angabe_sec[0].nodes[0]) template.add('1', '\n' + str(angabe_sec[0]).strip() + '\n', showkey=True) code.replace(angabe_sec[0], '\n') mwbot.save(site, page['title'], orig, str(code), 'beispiel_fixer.py', strip_consec_nl=True)