Coverage for gws-app/gws/plugin/alkis/data/types.py: 0%
373 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-16 23:09 +0200
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-16 23:09 +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 """Name of the street."""
17 gemarkung: EnumPair
18 """Gemarkung (district) of the street."""
19 gemeinde: EnumPair
20 """Gemeinde (municipality) of the street."""
23class Object:
24 uid: str
25 isHistoric: bool
27 def __init__(self, **kwargs):
28 self.isHistoric = False
29 self.__dict__.update(kwargs)
32def _getattr(self, item):
33 if item.startswith('_'):
34 raise AttributeError()
35 return None
38setattr(Object, '__getattr__', _getattr)
41class Record(Object):
42 anlass: str
43 beginnt: str
44 endet: str
47class Entity(Object):
48 recs: list['Record']
51class Adresse(Object):
52 land: EnumPair
53 regierungsbezirk: EnumPair
54 kreis: EnumPair
55 gemeinde: EnumPair
56 gemarkung: EnumPair
58 strasse: str
59 hausnummer: str
61 x: float
62 y: float
63 shape: gws.Shape
66class FlurstueckRecord(Record):
67 flurnummer: str
68 zaehler: str
69 nenner: str
70 flurstuecksfolge: str
71 flurstueckskennzeichen: str
73 land: EnumPair
74 regierungsbezirk: EnumPair
75 kreis: EnumPair
76 gemeinde: EnumPair
77 gemarkung: EnumPair
79 amtlicheFlaeche: float
81 geom: str
82 geomFlaeche: float
83 x: float
84 y: float
86 abweichenderRechtszustand: bool
87 rechtsbehelfsverfahren: bool
88 zeitpunktDerEntstehung: str
89 zustaendigeStelle: list[EnumPair]
90 zweifelhafterFlurstuecksnachweis: bool
91 nachfolgerFlurstueckskennzeichen: list[str]
92 vorgaengerFlurstueckskennzeichen: list[str]
95class BuchungsstelleReference(Object):
96 buchungsstelle: 'Buchungsstelle'
99class Buchung(Entity):
100 recs: list['BuchungsstelleReference']
101 buchungsblattUid: str
102 buchungsblatt: 'Buchungsblatt'
105class Flurstueck(Entity):
106 recs: list[FlurstueckRecord]
108 flurstueckskennzeichen: str
109 fsnummer: str
111 buchungList: list['Buchung']
112 lageList: list['Lage']
114 gebaeudeList: list['Gebaeude']
115 gebaeudeAmtlicheFlaeche: float
116 gebaeudeGeomFlaeche: float
118 nutzungList: list['Part']
119 festlegungList: list['Part']
120 bewertungList: list['Part']
122 geom: Any
123 x: float
124 y: float
125 shape: gws.Shape
128class BuchungsblattRecord(Record):
129 blattart: EnumPair
130 buchungsart: str
131 buchungsblattbezirk: EnumPair
132 buchungsblattkennzeichen: str
133 buchungsblattnummerMitBuchstabenerweiterung: str
136class Buchungsblatt(Entity):
137 recs: list[BuchungsblattRecord]
138 buchungsstelleList: list['Buchungsstelle']
139 namensnummerList: list['Namensnummer']
140 buchungsblattkennzeichen: str
143class BuchungsstelleRecord(Record):
144 anteil: str
145 beschreibungDesSondereigentums: str
146 beschreibungDesUmfangsDerBuchung: str
147 buchungsart: EnumPair
148 buchungstext: str
149 laufendeNummer: str
152class Buchungsstelle(Entity):
153 recs: list[BuchungsstelleRecord]
154 buchungsblattUids: list[str]
155 buchungsblattkennzeichenList: list[str]
156 parentUids: list[str]
157 childUids: list[str]
158 fsUids: list[str]
159 parentkennzeichenList: list[str]
160 flurstueckskennzeichenList: list[str]
161 laufendeNummer: str
164class NamensnummerRecord(Record):
165 anteil: str
166 artDerRechtsgemeinschaft: EnumPair
167 beschriebDerRechtsgemeinschaft: str
168 eigentuemerart: EnumPair
169 laufendeNummerNachDIN1421: str
170 nummer: str
171 strichblattnummer: int
174class Namensnummer(Entity):
175 recs: list[NamensnummerRecord]
176 buchungsblattUids: list[str]
177 buchungsblattkennzeichenList: list[str]
178 personList: list['Person']
179 laufendeNummer: str
182class PersonRecord(Record):
183 akademischerGrad: str
184 anrede: str
185 geburtsdatum: str
186 geburtsname: str
187 nachnameOderFirma: str
188 vorname: str
191class Person(Entity):
192 recs: list[PersonRecord]
193 anschriftList: list['Anschrift']
196class AnschriftRecord(Record):
197 hausnummer: str
198 ort: str
199 plz: str
200 strasse: str
201 telefon: str
204class Anschrift(Entity):
205 recs: list[AnschriftRecord]
208class LageRecord(Record):
209 hausnummer: str
210 laufendeNummer: str
211 ortsteil: str
212 pseudonummer: str
213 strasse: str
216class Lage(Entity):
217 recs: list['LageRecord']
218 gebaeudeList: list['Gebaeude']
219 x: float
220 y: float
223class GebaeudeRecord(Record):
224 amtlicheFlaeche: float
225 gebaeudekennzeichen: int
226 geom: str
227 geomFlaeche: float
228 props: 'GebaeudeProps'
231class Gebaeude(Entity):
232 recs: list[GebaeudeRecord]
235PART_NUTZUNG = 1
236PART_BEWERTUNG = 2
237PART_FESTLEGUNG = 3
240class PartRecord(Record):
241 amtlicheFlaeche: float # corrected
242 geom: str
243 geomFlaeche: float
244 props: 'PartProps'
247class Part(Entity):
248 KIND = {
249 PART_NUTZUNG: [
250 'Tatsächliche Nutzung',
251 'tatsaechliche_nutzung',
252 ],
253 PART_BEWERTUNG: [
254 'Bodenschätzung, Bewertung',
255 'gesetzliche_festlegungen_gebietseinheiten_kataloge/bodenschaetzung_bewertung',
256 ],
257 PART_FESTLEGUNG: [
258 'Öffentlich-rechtliche und sonstige Festlegungen',
259 'gesetzliche_festlegungen_gebietseinheiten_kataloge/oeffentlich_rechtliche_und_sonstige_festlegungen',
260 ],
261 }
263 recs: list['PartRecord']
264 fs: str
265 kind: int
266 name: EnumPair
267 amtlicheFlaeche: float
268 geomFlaeche: float
269 geom: str
272class PlaceKind(gws.Enum):
273 land = 'land'
274 regierungsbezirk = 'regierungsbezirk'
275 kreis = 'kreis'
276 gemeinde = 'gemeinde'
277 gemarkung = 'gemarkung'
278 buchungsblattbezirk = 'buchungsblattbezirk'
279 dienststelle = 'dienststelle'
282class Place(Record):
283 kind: str
284 land: EnumPair
285 regierungsbezirk: EnumPair
286 kreis: EnumPair
287 gemeinde: EnumPair
288 gemarkung: EnumPair
289 buchungsblattbezirk: EnumPair
290 dienststelle: EnumPair
293##
296class GebaeudeProps(Object):
297 anzahlDerOberirdischenGeschosse: int
298 anzahlDerUnterirdischenGeschosse: int
299 art: EnumPair
300 bauart: EnumPair
301 baujahr: list[int]
302 bauweise: EnumPair
303 beschaffenheit: list[EnumPair]
304 dachart: str
305 dachform: EnumPair
306 dachgeschossausbau: EnumPair
307 durchfahrtshoehe: int
308 gebaeudefunktion: EnumPair
309 gebaeudekennzeichen: str
310 geschossflaeche: float
311 grundflaeche: float
312 hochhaus: bool
313 lageZurErdoberflaeche: EnumPair
314 name: list[str]
315 objekthoehe: int
316 punktkennung: str
317 sonstigeEigenschaft: list[str]
318 umbauterRaum: float
319 weitereGebaeudefunktion: list[EnumPair]
320 zustand: EnumPair
323class PartProps(Object):
324 abbaugut: EnumPair
325 ackerzahlOderGruenlandzahl: str
326 anzahlDerFahrstreifen: int
327 anzahlDerStreckengleise: EnumPair
328 art: EnumPair
329 artDerBebauung: EnumPair
330 artDerFestlegung: EnumPair
331 bahnkategorie: list[EnumPair]
332 bedeutung: list[EnumPair]
333 befestigung: EnumPair
334 besondereFahrstreifen: EnumPair
335 besondereFunktion: EnumPair
336 bodenart: EnumPair
337 bodenzahlOderGruenlandgrundzahl: str
338 breiteDerFahrbahn: int
339 breiteDesGewaessers: int
340 breiteDesVerkehrsweges: int
341 datumAbgabe: str
342 datumAnordnung: str
343 datumBesitzeinweisung: str
344 datumrechtskraeftig: str
345 elektrifizierung: EnumPair
346 entstehungsartOderKlimastufeWasserverhaeltnisse: list[EnumPair]
347 fahrbahntrennung: EnumPair
348 fliessrichtung: bool
349 foerdergut: EnumPair
350 funktion: EnumPair
351 gewaesserkennzahl: str
352 gewaesserkennziffer: str
353 hydrologischesMerkmal: EnumPair
354 identnummer: str
355 internationaleBedeutung: EnumPair
356 jahreszahl: int
357 klassifizierung: EnumPair
358 kulturart: EnumPair
359 lagergut: EnumPair
360 markierung: EnumPair
361 merkmal: EnumPair
362 nummer: str
363 nummerDerSchutzzone: str
364 nummerDesSchutzgebietes: str
365 oberflaechenmaterial: EnumPair
366 primaerenergie: EnumPair
367 rechtszustand: EnumPair
368 schifffahrtskategorie: EnumPair
369 sonstigeAngaben: list[EnumPair]
370 spurweite: EnumPair
371 tagesabschnittsnummer: str
372 tidemerkmal: EnumPair
373 vegetationsmerkmal: EnumPair
374 veraenderungOhneRuecksprache: bool
375 verkehrsbedeutungInneroertlich: EnumPair
376 verkehrsbedeutungUeberoertlich: EnumPair
377 widmung: EnumPair
378 zone: EnumPair
379 zustand: EnumPair
380 zustandsstufeOderBodenstufe: EnumPair
383PROPS = {
384 'abbaugut': 'Abbaugut',
385 'ackerzahlOderGruenlandzahl': 'Ackerzahl oder Grünlandzahl',
386 'anzahlDerFahrstreifen': 'Anzahl der Fahrstreifen',
387 'anzahlDerOberirdischenGeschosse': 'Anzahl der oberirdischen Geschosse',
388 'anzahlDerStreckengleise': 'Anzahl der Streckengleise',
389 'anzahlDerUnterirdischenGeschosse': 'Anzahl der unterirdischen Geschosse',
390 'art': 'Art',
391 'artDerBebauung': 'Art der Bebauung',
392 'artDerFestlegung': 'Art der Festlegung',
393 'bahnkategorie': 'Bahnkategorie',
394 'bauart': 'Bauart',
395 'baujahr': 'Baujahr',
396 'bauweise': 'Bauweise',
397 'bedeutung': 'Bedeutung',
398 'befestigung': 'Befestigung',
399 'beschaffenheit': 'Beschaffenheit',
400 'besondereFahrstreifen': 'Besondere Fahrstreifen',
401 'besondereFunktion': 'Besondere Funktion',
402 'bodenart': 'Bodenart',
403 'bodenzahlOderGruenlandgrundzahl': 'Bodenzahl oder Grünlandgrundzahl',
404 'breiteDerFahrbahn': 'Breite der Fahrbahn',
405 'breiteDesGewaessers': 'Breite des Gewässers',
406 'breiteDesVerkehrsweges': 'Breite des Verkehrsweges',
407 'dachart': 'Dachart',
408 'dachform': 'Dachform',
409 'dachgeschossausbau': 'Dachgeschossausbau',
410 'datumAbgabe': 'Datum-Abgabe',
411 'datumAnordnung': 'Datum-Anordnung',
412 'datumBesitzeinweisung': 'Datum-Besitzeinweisung',
413 'datumrechtskraeftig': 'Datum-rechtskräftig',
414 'durchfahrtshoehe': 'Durchfahrtshöhe',
415 'elektrifizierung': 'Elektrifizierung',
416 'entstehungsartOderKlimastufeWasserverhaeltnisse': 'Entstehungsart oder Klimastufe/Wasserverhältnisse',
417 'fahrbahntrennung': 'Fahrbahntrennung',
418 'fliessrichtung': 'Fließrichtung',
419 'foerdergut': 'Fördergut',
420 'funktion': 'Funktion',
421 'gebaeudefunktion': 'Gebäudefunktion',
422 'gebaeudekennzeichen': 'Gebäudekennzeichen',
423 'geschossflaeche': 'Geschossfläche',
424 'gewaesserkennzahl': 'Gewässerkennzahl',
425 'gewaesserkennziffer': 'Gewässerkennziffer',
426 'grundflaeche': 'Grundfläche',
427 'hochhaus': 'Hochhaus',
428 'hydrologischesMerkmal': 'Hydrologisches Merkmal',
429 'identnummer': 'Identnummer',
430 'internationaleBedeutung': 'Internationale Bedeutung',
431 'jahreszahl': 'Jahreszahl',
432 'klassifizierung': 'Klassifizierung',
433 'kulturart': 'Kulturart',
434 'lageZurErdoberflaeche': 'Lage zur Erdoberfläche',
435 'lagergut': 'Lagergut',
436 'markierung': 'Markierung',
437 'merkmal': 'Merkmal',
438 'name': 'Name',
439 'nummer': 'Nummer',
440 'nummerDerSchutzzone': 'Nummer der Schutzzone',
441 'nummerDesSchutzgebietes': 'Nummer des Schutzgebietes',
442 'oberflaechenmaterial': 'Oberflächenmaterial',
443 'objekthoehe': 'Objekthöhe',
444 'primaerenergie': 'Primärenergie',
445 'punktkennung': 'Punktkennung',
446 'rechtszustand': 'Rechtszustand',
447 'schifffahrtskategorie': 'Schifffahrtskategorie',
448 'sonstigeAngaben': 'Sonstige Angaben',
449 'sonstigeEigenschaft': 'Sonstige Eigenschaft',
450 'spurweite': 'Spurweite',
451 'tagesabschnittsnummer': 'Tagesabschnittsnummer',
452 'tidemerkmal': 'Tidemerkmal',
453 'umbauterRaum': 'Umbauter Raum',
454 'vegetationsmerkmal': 'Vegetationsmerkmal',
455 'veraenderungOhneRuecksprache': 'Veränderung ohne Rücksprache',
456 'verkehrsbedeutungInneroertlich': 'Verkehrsbedeutung innerörtlich',
457 'verkehrsbedeutungUeberoertlich': 'Verkehrsbedeutung überörtlich',
458 'weitereGebaeudefunktion': 'Weitere Gebäudefunktion',
459 'widmung': 'Widmung',
460 'zone': 'Zone',
461 'zustand': 'Zustand',
462 'zustandsstufeOderBodenstufe': 'Zustandsstufe oder Bodenstufe',
463}
465##
468class DisplayTheme(gws.Enum):
469 """Display themes for ALKIS data."""
471 lage = 'lage'
472 """Lage" theme, showing the location of the property."""
473 gebaeude = 'gebaeude'
474 """Gebäude" theme, showing building information."""
475 nutzung = 'nutzung'
476 """Nutzung" theme, showing land use information."""
477 festlegung = 'festlegung'
478 """Festlegung" theme, showing legal and other determinations."""
479 bewertung = 'bewertung'
480 """Bewertung" theme, showing valuation information."""
481 buchung = 'buchung'
482 """Buchung" theme, showing booking information."""
483 eigentuemer = 'eigentuemer'
484 """Eigentümer" theme, showing owner information."""
487EigentuemerAccessRequired = ['personName', 'personVorname']
489BuchungAccessRequired = ['buchungsblattkennzeichenList']
492class FlurstueckQueryOptions(gws.Data):
493 strasseSearchOptions: gws.TextSearchOptions
494 nameSearchOptions: gws.TextSearchOptions
495 buchungsblattSearchOptions: gws.TextSearchOptions
497 limit: int
498 pageSize: int
499 offset: int
500 sort: Optional[list[gws.SortOptions]]
502 displayThemes: list[DisplayTheme]
504 withEigentuemer: bool
505 withBuchung: bool
506 withHistorySearch: bool
507 withHistoryDisplay: bool
510class FlurstueckQuery(gws.Data):
511 flurnummer: str
512 flurstuecksfolge: str
513 zaehler: str
514 nenner: str
515 flurstueckskennzeichen: str
517 flaecheBis: float
518 flaecheVon: float
520 gemarkung: str
521 gemarkungCode: str
522 gemeinde: str
523 gemeindeCode: str
524 kreis: str
525 kreisCode: str
526 land: str
527 landCode: str
528 regierungsbezirk: str
529 regierungsbezirkCode: str
531 strasse: str
532 hausnummer: str
534 buchungsblattkennzeichenList: list[str]
536 personName: str
537 personVorname: str
539 shape: gws.Shape
541 uids: list[str]
543 options: Optional['FlurstueckQueryOptions']
546class AdresseQueryOptions(gws.Data):
547 strasseSearchOptions: gws.TextSearchOptions
549 limit: int
550 pageSize: int
551 offset: int
552 sort: Optional[list[gws.SortOptions]]
554 withHistorySearch: bool
557class AdresseQuery(gws.Data):
558 gemarkung: str
559 gemarkungCode: str
560 gemeinde: str
561 gemeindeCode: str
562 kreis: str
563 kreisCode: str
564 land: str
565 landCode: str
566 regierungsbezirk: str
567 regierungsbezirkCode: str
569 strasse: str
570 hausnummer: str
571 bisHausnummer: str
572 hausnummerNotNull: bool
574 options: Optional['AdresseQueryOptions']
577class IndexStatus(gws.Data):
578 """Index status"""
580 complete: bool
581 basic: bool
582 eigentuemer: bool
583 buchung: bool
584 missing: bool
587##
590class Reader:
591 def read_all(self, cls: type, table_name: Optional[str] = None, uids: Optional[list[str]] = None):
592 pass
594 def count(self, cls: type, table_name: Optional[str] = None) -> int:
595 pass
598##