Package schlachtfeld ::
Package amov ::
Module Namensgrammatik
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 """Manage Grammars for Name-Generation.
23
24 This file returns a grammar-object if it is given an ID or tag.
25 Useage:
26
27 >>> grammar = Grammar(ID=None, art=type, tag="tag:1w6.org,2007:Foo")
28 >>> print "The Grammar is:", grammar.grammar
29 The Grammar is: {'nameMiddle': ['<nmCons><nmVowel>'], 'nameStart': ['<nsCons><nmVowel>', '<nsCons><nmVowel>', '<nsCons><nmVowel>', '<nsVowel>'], 'nameMiddle0to2': ['', '<nameMiddle>', '<nameMiddle><nameMiddle>'], 'name': ['<nameStart><nameMiddle0to2><nameEnd>'], 'neVowel': ['e', 'i', 'a', 'au'], 'nmCons': ['l', 'm', 'lm', 'th', 'r', 's', 'ss', 'p', 'f', 'mb', 'b', 'lb', 'd', 'lf'], 'nsVowel': ['A', 'Au', 'Ei'], 'nsCons': ['J', 'M', 'P', 'N', 'Y', 'D', 'F'], 'nmVowel': ['a', 'e', 'i', 'o', 'u', 'au', 'oa', 'ei'], 'neCons': ['r', 'n', 'm', 's', 'y', 'l', 'th', 'b', 'lb', 'f', 'lf'], 'nameEnd': ['<neCons><neVowel>', '<neCons>', '<neCons>']}
30
31
32
33 You need either an ID or a tag. If you use a tag, you must set the ID to None, else teh default ID will be used:
34
35 grammar = Grammar(ID=None, art=type, tag=tag)"""
36
37
38
39
40 import yaml
41
42
43 import Skripte.Kernskripte.Objekt as Objekt
44
45
46 import sys
47
48
49 import os
50
51
52
53 import Versionsverwaltung
54
55
56
57
58
60 - def __init__(self, ID=yaml.load("""ID: tag:1w6.org,2007:Foo
61 Version: 0.15
62 Kategorie: Namensgrammatiken
63 """), art=None, tag="tag:1w6.org,2007:Foo"):
64
65 if ID != None:
66 self.ID = ID
67 else:
68 versionen = Versionsverwaltung.Versionen(tag=tag,kategorie="Namensgrammatiken")
69 self.ID = versionen.neuste
70
71 self.art = art
72
73 self.objekt = Objekt.Objekt(ID=self.ID, template=yaml.load(self.grammar_template_yaml()))
74
75 self.grammar = self.objekt.objekt
76
78 """Return a grammar template."""
79 return """name: [<nameStart><nameMiddle0to2><nameEnd>]
80 nameEnd: [<neCons><neVowel>, <neCons>, <neCons>]
81 nameMiddle: [<nmCons><nmVowel>]
82 nameMiddle0to2: ['', <nameMiddle>, <nameMiddle><nameMiddle>]
83 nameStart: [<nsCons><nmVowel>, <nsCons><nmVowel>, <nsCons><nmVowel>, <nsVowel>]
84 neCons: [r, n, m, s, y, l, th, b, lb, f, lf]
85 neVowel: [e, i, a, au]
86 nmCons: [l, m, lm, th, r, s, ss, p, f, mb, b, lb, d, lf]
87 nmVowel: [a, e, i, o, u, au, oa, ei]
88 nsCons: [J, M, P, N, Y, D, F]
89 nsVowel: [A, Au, Ei]
90 """
91
92
93
94
95
96 if __name__ == '__main__':
97
98
99 grammar = Grammar()
100
101 print grammar.grammar
102
103
104 import doctest
105
106 doctest.testmod()
107
108
109