Coverage for gws-app/gws/plugin/alkis/data/types.py: 0%
275 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1from typing import Optional, Any
3import gws
6class EnumPair:
7 def __init__(self, code, text):
8 self.code = code
9 self.text = text
12class Strasse(gws.Data):
13 """Strasse (street) Record"""
15 name: str
16 gemarkung: EnumPair
17 gemeinde: EnumPair
20class Object:
21 uid: str
22 isHistoric: bool
24 def __init__(self, **kwargs):
25 self.isHistoric = False
26 self.__dict__.update(kwargs)
29def _getattr(self, item):
30 if item.startswith('_'):
31 raise AttributeError()
32 return None
35setattr(Object, '__getattr__', _getattr)
38class Record(Object):
39 anlass: str
40 beginnt: str
41 endet: str
44class Entity(Object):
45 recs: list['Record']
48class Adresse(Object):
49 land: EnumPair
50 regierungsbezirk: EnumPair
51 kreis: EnumPair
52 gemeinde: EnumPair
53 gemarkung: EnumPair
55 strasse: str
56 hausnummer: str
58 x: float
59 y: float
60 shape: gws.Shape
63class FlurstueckRecord(Record):
64 flurnummer: str
65 zaehler: str
66 nenner: str
67 flurstuecksfolge: str
68 flurstueckskennzeichen: str
70 land: EnumPair
71 regierungsbezirk: EnumPair
72 kreis: EnumPair
73 gemeinde: EnumPair
74 gemarkung: EnumPair
76 amtlicheFlaeche: float
78 geom: str
79 geomFlaeche: float
80 x: float
81 y: float
83 abweichenderRechtszustand: bool
84 rechtsbehelfsverfahren: bool
85 zeitpunktDerEntstehung: str
86 zustaendigeStelle: list[EnumPair]
87 zweifelhafterFlurstuecksnachweis: bool
88 nachfolgerFlurstueckskennzeichen: list[str]
89 vorgaengerFlurstueckskennzeichen: list[str]
91class BuchungsstelleReference(Object):
92 buchungsstelle: 'Buchungsstelle'
95class Buchung(Entity):
96 recs: list['BuchungsstelleReference']
97 buchungsblattUid: str
98 buchungsblatt: 'Buchungsblatt'
101class Flurstueck(Entity):
102 recs: list[FlurstueckRecord]
104 flurstueckskennzeichen: str
105 fsnummer: str
107 buchungList: list['Buchung']
108 lageList: list['Lage']
110 gebaeudeList: list['Gebaeude']
111 gebaeudeAmtlicheFlaeche: float
112 gebaeudeGeomFlaeche: float
114 nutzungList: list['Part']
115 festlegungList: list['Part']
116 bewertungList: list['Part']
118 geom: Any
119 x: float
120 y: float
121 shape: gws.Shape
124class BuchungsblattRecord(Record):
125 blattart: EnumPair
126 buchungsart: str
127 buchungsblattbezirk: EnumPair
128 buchungsblattkennzeichen: str
129 buchungsblattnummerMitBuchstabenerweiterung: str
132class Buchungsblatt(Entity):
133 recs: list[BuchungsblattRecord]
134 buchungsstelleList: list['Buchungsstelle']
135 namensnummerList: list['Namensnummer']
136 buchungsblattkennzeichen: str
139class BuchungsstelleRecord(Record):
140 anteil: str
141 beschreibungDesSondereigentums: str
142 beschreibungDesUmfangsDerBuchung: str
143 buchungsart: EnumPair
144 buchungstext: str
145 laufendeNummer: str
148class Buchungsstelle(Entity):
149 recs: list[BuchungsstelleRecord]
150 buchungsblattUids: list[str]
151 buchungsblattkennzeichenList: list[str]
152 parentUids: list[str]
153 childUids: list[str]
154 fsUids: list[str]
155 parentkennzeichenList: list[str]
156 flurstueckskennzeichenList: list[str]
157 laufendeNummer: str
160class NamensnummerRecord(Record):
161 anteil: str
162 artDerRechtsgemeinschaft: EnumPair
163 beschriebDerRechtsgemeinschaft: str
164 eigentuemerart: EnumPair
165 laufendeNummerNachDIN1421: str
166 nummer: str
167 strichblattnummer: int
170class Namensnummer(Entity):
171 recs: list[NamensnummerRecord]
172 buchungsblattUids: list[str]
173 buchungsblattkennzeichenList: list[str]
174 personList: list['Person']
175 laufendeNummer: str
178class PersonRecord(Record):
179 akademischerGrad: str
180 anrede: str
181 geburtsdatum: str
182 geburtsname: str
183 nachnameOderFirma: str
184 vorname: str
187class Person(Entity):
188 recs: list[PersonRecord]
189 anschriftList: list['Anschrift']
192class AnschriftRecord(Record):
193 hausnummer: str
194 ort: str
195 plz: str
196 strasse: str
197 telefon: str
200class Anschrift(Entity):
201 recs: list[AnschriftRecord]
204class LageRecord(Record):
205 hausnummer: str
206 laufendeNummer: str
207 ortsteil: str
208 pseudonummer: str
209 strasse: str
212class Lage(Entity):
213 recs: list['LageRecord']
214 gebaeudeList: list['Gebaeude']
215 x: float
216 y: float
219class GebaeudeRecord(Record):
220 gebaeudekennzeichen: int
221 props: list[tuple]
222 geom: str
223 amtlicheFlaeche: float
224 geomFlaeche: float
227class Gebaeude(Entity):
228 PROP_KEYS = {
229 'anzahlDerOberirdischenGeschosse',
230 'anzahlDerUnterirdischenGeschosse',
231 'baujahr',
232 'bauweise',
233 'dachart',
234 'dachform',
235 'dachgeschossausbau',
236 'gebaeudefunktion',
237 'geschossflaeche',
238 'hochhaus',
239 'lageZurErdoberflaeche',
240 'name',
241 'objekthoehe',
242 'weitereGebaeudefunktion',
243 'umbauterRaum',
244 'zustand',
245 }
246 recs: list[GebaeudeRecord]
249PART_NUTZUNG = 1
250PART_BEWERTUNG = 2
251PART_FESTLEGUNG = 3
254class PartRecord(Record):
255 props: list[tuple]
256 amtlicheFlaeche: float # corrected
257 geomFlaeche: float
258 geom: str
261class Part(Entity):
262 KIND = {
263 PART_NUTZUNG: [
264 'Tatsächliche Nutzung',
265 'tatsaechliche_nutzung'
266 ],
267 PART_BEWERTUNG: [
268 'Bodenschätzung, Bewertung',
269 'gesetzliche_festlegungen_gebietseinheiten_kataloge/bodenschaetzung_bewertung'
270 ],
271 PART_FESTLEGUNG: [
272 'Öffentlich-rechtliche und sonstige Festlegungen',
273 'gesetzliche_festlegungen_gebietseinheiten_kataloge/oeffentlich_rechtliche_und_sonstige_festlegungen'
274 ],
275 }
277 PROP_KEYS = {
278 'abbaugut',
279 'ackerzahlOderGruenlandzahl',
280 'anzahlDerFahrstreifen',
281 'anzahlDerStreckengleise',
282 'art',
283 'artDerBebauung',
284 'artDerFestlegung',
285 'artDerGebietsgrenze',
286 'artDerVerbandsgemeinde',
287 'ausfuehrendeStelle',
288 'bahnkategorie',
289 'baublockbezeichnung',
290 'bedeutung',
291 'befestigung',
292 'besondereFahrstreifen',
293 'besondereFunktion',
294 'bezeichnung',
295 'bodenart',
296 'bodenzahlOderGruenlandgrundzahl',
297 'breiteDerFahrbahn',
298 'breiteDesGewaessers',
299 'breiteDesVerkehrsweges',
300 'datumAbgabe',
301 'datumAnordnung',
302 'datumBesitzeinweisung',
303 'datumrechtskraeftig',
304 'einwohnerzahl',
305 'elektrifizierung',
306 'entstehungsartOderKlimastufeWasserverhaeltnisse',
307 'fliessrichtung',
308 'foerdergut',
309 'funktion',
310 'gehoertZu',
311 'gemeindeflaeche',
312 'gewaesserkennziffer',
313 'hydrologischesMerkmal',
314 'jahreszahl',
315 'kennziffer',
316 'klassifizierung',
317 'kulturart',
318 'lagergut',
319 'landschaftstyp',
320 'markierung',
321 'merkmal',
322 'name',
323 'nummer',
324 'nummerDerBahnstrecke',
325 'nummerDerSchutzzone',
326 'nutzung',
327 'oberflaechenmaterial',
328 'primaerenergie',
329 'rechtszustand',
330 'schifffahrtskategorie',
331 'sonstigeAngaben',
332 'spurweite',
333 'tagesabschnittsnummer',
334 'tidemerkmal',
335 'vegetationsmerkmal',
336 'veraenderungOhneRuecksprache',
337 'verkehrsbedeutungInneroertlich',
338 'verkehrsbedeutungUeberoertlich',
339 'verwaltungsgemeinschaft',
340 'widmung',
341 'zone',
342 'zustand',
343 'zustandsstufeOderBodenstufe',
344 'zweitname',
345 }
347 recs: list['PartRecord']
348 fs: str
349 kind: int
350 name: EnumPair
351 amtlicheFlaeche: float
352 geomFlaeche: float
353 geom: str
356class PlaceKind(gws.Enum):
357 land = 'land'
358 regierungsbezirk = 'regierungsbezirk'
359 kreis = 'kreis'
360 gemeinde = 'gemeinde'
361 gemarkung = 'gemarkung'
362 buchungsblattbezirk = 'buchungsblattbezirk'
363 dienststelle = 'dienststelle'
366class Place(Record):
367 kind: str
368 land: EnumPair
369 regierungsbezirk: EnumPair
370 kreis: EnumPair
371 gemeinde: EnumPair
372 gemarkung: EnumPair
373 buchungsblattbezirk: EnumPair
374 dienststelle: EnumPair
377##
379class DisplayTheme(gws.Enum):
380 lage = 'lage'
381 gebaeude = 'gebaeude'
382 nutzung = 'nutzung'
383 festlegung = 'festlegung'
384 bewertung = 'bewertung'
385 buchung = 'buchung'
386 eigentuemer = 'eigentuemer'
389EigentuemerAccessRequired = ['personName', 'personVorname']
391BuchungAccessRequired = ['buchungsblattkennzeichenList']
394class FlurstueckQueryOptions(gws.Data):
395 strasseSearchOptions: gws.TextSearchOptions
396 nameSearchOptions: gws.TextSearchOptions
397 buchungsblattSearchOptions: gws.TextSearchOptions
399 limit: int
400 offset: int
401 hardLimit: int
402 sort: Optional[list[gws.SortOptions]]
404 displayThemes: list[DisplayTheme]
406 withEigentuemer: bool
407 withBuchung: bool
408 withHistorySearch: bool
409 withHistoryDisplay: bool
412class FlurstueckQuery(gws.Data):
413 flurnummer: str
414 flurstuecksfolge: str
415 zaehler: str
416 nenner: str
417 flurstueckskennzeichen: str
419 flaecheBis: float
420 flaecheVon: float
422 gemarkung: str
423 gemarkungCode: str
424 gemeinde: str
425 gemeindeCode: str
426 kreis: str
427 kreisCode: str
428 land: str
429 landCode: str
430 regierungsbezirk: str
431 regierungsbezirkCode: str
433 strasse: str
434 hausnummer: str
436 buchungsblattkennzeichenList: list[str]
438 personName: str
439 personVorname: str
441 shape: gws.Shape
443 uids: list[str]
445 options: Optional['FlurstueckQueryOptions']
448class AdresseQueryOptions(gws.Data):
449 strasseSearchOptions: gws.TextSearchOptions
451 limit: int
452 offset: int
453 hardLimit: int
454 sort: Optional[list[gws.SortOptions]]
456 withHistorySearch: bool
459class AdresseQuery(gws.Data):
460 gemarkung: str
461 gemarkungCode: str
462 gemeinde: str
463 gemeindeCode: str
464 kreis: str
465 kreisCode: str
466 land: str
467 landCode: str
468 regierungsbezirk: str
469 regierungsbezirkCode: str
471 strasse: str
472 hausnummer: str
473 bisHausnummer: str
474 hausnummerNotNull: bool
476 options: Optional['AdresseQueryOptions']
479##
481class Reader:
482 def read_all(self, cls: type, table_name: Optional[str] = None, uids: Optional[list[str]] = None):
483 pass
485 def count(self, cls: type, table_name: Optional[str] = None) -> int:
486 pass
488##