This script produces the wikitext for adjective forms (-ος -η -ο).
We need:
- a source file with the stems of the adjectives. Each stem must be in a separate line.
- python
- pywikipedia (pagefromfile.py) to upload the output of this script.
Run with: cat source.text | generateforms.py > output.txt
Then: python pagefromfile.py -start:xxxx -end:yyyy -file:output.txt -notitle
source.text
editάγον άδηλ άζυμ άθε
generateforms.py
edit#!/usr/bin/python # -*- coding: utf-8 -*- import sys, re reload(sys) sys.setdefaultencoding('utf8') fin = sys.stdin ch_apo = u'γγ γχ γξ αυγ αυδ αυλ αυμ αυν αυρ αύγ αύδ αύζ αύλ αύμ αύν αύρ αυ αύ ευβ ευγ ευδ ευζ ευλ ευμ ευν ευρ εύβ εύγ εύδ εύζ εύλ εύμ εύν εύρ ευ εύ ϊ α ά β γ δ ε έ ζ η ή θ ι ί κ λ μ ν ξ ου ού ο π ρ σ ς τ υ ύ ϋ φ χ ψ ω ώ ΐ ΰ' ch_se = u'ng nch nx avg avd avl avm avn avr ávg ávd ávz ávl ávm ávn ávr af áφ ev evg evd evz evl evm evn evr év évg évd évz évl évm évn évr ef éf ï a á v g d e é z i í th i í k l m n x ou οú o p r s s t y ý ÿ f ch ps o ó ḯ ÿ́' trapo = ch_apo.split(u' ') trse = ch_se.split(u' ') kl_apo = u'ς ά ό ί ή έ ώ ύ ϊ ϋ ΐ ΰ' kl_se = u'σ α ο ι η ε ω υ ι υ ι υ' klapo = kl_apo.split(u' ') klse = kl_se.split(u' ') katalixeis = 'ου ο οι ων η ης ες α ε ους' ktlx = katalixeis.split(u' ') hme = len(ktlx) riza = re.compile(u'(.*)') eof=0 s = [[' ' for l1 in range(4)] for l2 in range(hme)] n = [] # ου s[0][0]='|g=m|c=gen|n=s}}' s[0][1]='|g=n|c=gen|n=s}}' n.append(2) # ο s[1][0]='|g=m|c=acc|n=s}}' s[1][1]='|g=n|c=nom|n=s}}' s[1][2]='|g=n|c=acc|n=s}}' s[1][3]='|g=n|c=voc|n=s}}' n.append(4) # οι s[2][0]='|g=m|c=nom|n=p}}' s[2][1]='|g=m|c=voc|n=p}}' n.append(2) # ων s[3][0]='|g=m|c=gen|n=p}}' s[3][1]='|g=f|c=gen|n=p}}' s[3][2]='|g=n|c=gen|n=p}}' n.append(3) # η s[4][0]='|g=f|c=nom|n=s}}' s[4][1]='|g=f|c=acc|n=s}}' s[4][2]='|g=f|c=voc|n=s}}' n.append(3) # ης s[5][0]='|g=f|c=gen|n=s}}' n.append(1) # ες s[6][0]='|g=f|c=nom|n=p}}' s[6][1]='|g=f|c=acc|n=p}}' s[6][2]='|g=f|c=voc|n=p}}' n.append(3) # α s[7][0]='|g=n|c=nom|n=p}}' s[7][1]='|g=n|c=acc|n=p}}' s[7][2]='|g=n|c=voc|n=p}}' n.append(3) # ε s[8][0]='|g=m|c=voc|n=s}}' n.append(1) # ους s[9][0]='|g=m|c=acc|n=p}}' n.append(1) def roman(trnsl): for i in range(len(trapo)): trnsl = trnsl.replace(trapo[i], trse[i]) return trnsl def sortkey(sort): for i in range(len(klapo)): sort = sort.replace(klapo[i], klse[i]) return sort def makeentries(ri): l = [ ] for i in range(hme): l.append(ri+ktlx[i]) print "xxxx" print "'''%s'''" % (l[i]) print "==Greek==\n\n===Adjective===" print "{{el-adj-form|%s}}\n" % (roman(l[i])) for j in range(n[i]): print "# {{el-form-of-nounadj|%sος%s" % (ri,s[i][j]) print "\n{{DEFAULTSORT:%s}}\n" % (sortkey(l[i])) print "{{count page|[[Wiktionary:Page count]]}}\nyyyy" return 1 while not eof: line = fin.readline() if line == "": eof = 1 else: r0 = riza.search(line) r1 = r0.group(1) if r1 != "": makeentries(r1) fin.close()