-
Notifications
You must be signed in to change notification settings - Fork 114
/
Josm_religion.py
120 lines (94 loc) · 4.26 KB
/
Josm_religion.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#-*- coding: utf-8 -*-
import modules.mapcss_lib as mapcss
import regex as re # noqa
from plugins.Plugin import with_options # noqa
from plugins.PluginMapCSS import PluginMapCSS
class Josm_religion(PluginMapCSS):
MAPCSS_URL = 'https://josm.openstreetmap.de/browser/josm/trunk/resources/data/validator/religion.mapcss'
def init(self, logger):
super().init(logger)
tags = capture_tags = {} # noqa
self.errors[9008005] = self.def_class(item = 9008, level = 3, tags = ["tag"], title = mapcss.tr('{0}', mapcss._tag_uncapture(capture_tags, '{0.tag}')))
def node(self, data, tags):
capture_tags = {}
keys = tags.keys()
err = []
# *[religion=catholic]
if ('religion' in keys):
match = False
if not match:
capture_tags = {}
try: match = ((mapcss._tag_capture(capture_tags, 0, tags, 'religion') == mapcss._value_capture(capture_tags, 0, 'catholic')))
except mapcss.RuleAbort: pass
if match:
# throwWarning:tr("{0}","{0.tag}")
# suggestAlternative:"religion=christian + denomination=catholic"
# fixChangeKey:"religion => denomination"
# fixAdd:"religion=christian"
err.append({'class': 9008005, 'subclass': 97466527, 'text': mapcss.tr('{0}', mapcss._tag_uncapture(capture_tags, '{0.tag}')), 'allow_fix_override': True, 'fix': {
'+': dict([
['denomination', mapcss.tag(tags, 'religion')],
['religion','christian']]),
'-': ([
'religion'])
}})
return err
def way(self, data, tags, nds):
capture_tags = {}
keys = tags.keys()
err = []
# *[religion=catholic]
if ('religion' in keys):
match = False
if not match:
capture_tags = {}
try: match = ((mapcss._tag_capture(capture_tags, 0, tags, 'religion') == mapcss._value_capture(capture_tags, 0, 'catholic')))
except mapcss.RuleAbort: pass
if match:
# throwWarning:tr("{0}","{0.tag}")
# suggestAlternative:"religion=christian + denomination=catholic"
# fixChangeKey:"religion => denomination"
# fixAdd:"religion=christian"
err.append({'class': 9008005, 'subclass': 97466527, 'text': mapcss.tr('{0}', mapcss._tag_uncapture(capture_tags, '{0.tag}')), 'allow_fix_override': True, 'fix': {
'+': dict([
['denomination', mapcss.tag(tags, 'religion')],
['religion','christian']]),
'-': ([
'religion'])
}})
return err
def relation(self, data, tags, members):
capture_tags = {}
keys = tags.keys()
err = []
# *[religion=catholic]
if ('religion' in keys):
match = False
if not match:
capture_tags = {}
try: match = ((mapcss._tag_capture(capture_tags, 0, tags, 'religion') == mapcss._value_capture(capture_tags, 0, 'catholic')))
except mapcss.RuleAbort: pass
if match:
# throwWarning:tr("{0}","{0.tag}")
# suggestAlternative:"religion=christian + denomination=catholic"
# fixChangeKey:"religion => denomination"
# fixAdd:"religion=christian"
err.append({'class': 9008005, 'subclass': 97466527, 'text': mapcss.tr('{0}', mapcss._tag_uncapture(capture_tags, '{0.tag}')), 'allow_fix_override': True, 'fix': {
'+': dict([
['denomination', mapcss.tag(tags, 'religion')],
['religion','christian']]),
'-': ([
'religion'])
}})
return err
from plugins.PluginMapCSS import TestPluginMapcss
class Test(TestPluginMapcss):
def test(self):
n = Josm_religion(None)
class _config:
options = {"country": None, "language": None}
class father:
config = _config()
n.father = father()
n.init(None)
data = {'id': 0, 'lat': 0, 'lon': 0}