annotate flys-artifacts/contrib/check-i18n-properties.py @ 5509:627584bc0586

Datacage: Added <dc:filter> element. This allows cleaner way to narrow the datasets. Example: <dc:context> <dc:statement> SELECT DISTINCT name AS hws_name, official AS hws_official, kind_id AS hws_kind FROM hws_lines WHERE river_id = ${river_id} </dc:statement> <dc:if test="dc:has-result()"> <lines> <dc:macro name="hws-lines"> <dc:elements> <hws factory="hwsfactory" name="{$hws_name}"/> </dc:elements> </dc:macro> <dc:filter expr="$hws_official=1"> <dc:if test="dc:has-result()"> <official> <dc:filter expr="$hws_kind=1"> <dc:if test="dc:has-result()"> <Durchlass><dc:call-macro name="hws-lines"></Durchlass> </dc:if> </dc:filter> <dc:filter expr="$hws_kind=2"> <dc:if test="dc:has-result()"> <Damm><dc:call-macro name="hws-lines"></Damm> </dc:if> </dc:filter> <dc:filter expr="$hws_kind=3"> <dc:if test="dc:has-result()"> <Graben><dc:call-macro name="hws-lines"></Graben> </dc:if> </dc:filter> </official> </dc:if> </dc:filter> </lines> </dc:if> </dc:context>
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 28 Mar 2013 16:51:15 +0100
parents daf413420cf7
children
rev   line source
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 #!/usr/bin/env python
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import sys
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import re
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 SPLIT_RE = re.compile(r"^\s*([^=]+)=\s*(.*)\s*")
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 def load_properties_file(filename):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 props = {}
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 with open(filename, "r") as f:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 while True:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 line = f.readline()
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 if not line: break
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 m = SPLIT_RE.match(line)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 if not m: continue
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 k = m.group(1).strip()
2627
daf413420cf7 check-i18n-properties.py: Checked in unsaved version.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2625
diff changeset
17 v = m.group(2).strip()
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 if k in props:
2627
daf413420cf7 check-i18n-properties.py: Checked in unsaved version.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2625
diff changeset
19 print >> sys.stderr, "'%s' found more than once in '%s'." % (
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 k, filename)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 else:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 props[k] = v
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 return props
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 def main():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 props = [(arg, load_properties_file(arg)) for arg in sys.argv[1:]]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 l = len(props)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 for i in range(0, l):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 a = props[i][1]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 for j in range(i+1, l):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 b = props[j][1]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 for k in a.iterkeys():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 if k not in b:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 k, props[i][0], props[j][0])
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 for k in b.iterkeys():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 if k not in a:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 k, props[j][0], props[i][0])
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 if __name__ == '__main__':
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 main()

http://dive4elements.wald.intevation.org