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

1from typing import Optional, Any 

2 

3import gws 

4 

5 

6class EnumPair: 

7 def __init__(self, code, text): 

8 self.code = code 

9 self.text = text 

10 

11 

12class Strasse(gws.Data): 

13 """Strasse (street) Record""" 

14 

15 name: str 

16 gemarkung: EnumPair 

17 gemeinde: EnumPair 

18 

19 

20class Object: 

21 uid: str 

22 isHistoric: bool 

23 

24 def __init__(self, **kwargs): 

25 self.isHistoric = False 

26 self.__dict__.update(kwargs) 

27 

28 

29def _getattr(self, item): 

30 if item.startswith('_'): 

31 raise AttributeError() 

32 return None 

33 

34 

35setattr(Object, '__getattr__', _getattr) 

36 

37 

38class Record(Object): 

39 anlass: str 

40 beginnt: str 

41 endet: str 

42 

43 

44class Entity(Object): 

45 recs: list['Record'] 

46 

47 

48class Adresse(Object): 

49 land: EnumPair 

50 regierungsbezirk: EnumPair 

51 kreis: EnumPair 

52 gemeinde: EnumPair 

53 gemarkung: EnumPair 

54 

55 strasse: str 

56 hausnummer: str 

57 

58 x: float 

59 y: float 

60 shape: gws.Shape 

61 

62 

63class FlurstueckRecord(Record): 

64 flurnummer: str 

65 zaehler: str 

66 nenner: str 

67 flurstuecksfolge: str 

68 flurstueckskennzeichen: str 

69 

70 land: EnumPair 

71 regierungsbezirk: EnumPair 

72 kreis: EnumPair 

73 gemeinde: EnumPair 

74 gemarkung: EnumPair 

75 

76 amtlicheFlaeche: float 

77 

78 geom: str 

79 geomFlaeche: float 

80 x: float 

81 y: float 

82 

83 abweichenderRechtszustand: bool 

84 rechtsbehelfsverfahren: bool 

85 zeitpunktDerEntstehung: str 

86 zustaendigeStelle: list[EnumPair] 

87 zweifelhafterFlurstuecksnachweis: bool 

88 nachfolgerFlurstueckskennzeichen: list[str] 

89 vorgaengerFlurstueckskennzeichen: list[str] 

90 

91class BuchungsstelleReference(Object): 

92 buchungsstelle: 'Buchungsstelle' 

93 

94 

95class Buchung(Entity): 

96 recs: list['BuchungsstelleReference'] 

97 buchungsblattUid: str 

98 buchungsblatt: 'Buchungsblatt' 

99 

100 

101class Flurstueck(Entity): 

102 recs: list[FlurstueckRecord] 

103 

104 flurstueckskennzeichen: str 

105 fsnummer: str 

106 

107 buchungList: list['Buchung'] 

108 lageList: list['Lage'] 

109 

110 gebaeudeList: list['Gebaeude'] 

111 gebaeudeAmtlicheFlaeche: float 

112 gebaeudeGeomFlaeche: float 

113 

114 nutzungList: list['Part'] 

115 festlegungList: list['Part'] 

116 bewertungList: list['Part'] 

117 

118 geom: Any 

119 x: float 

120 y: float 

121 shape: gws.Shape 

122 

123 

124class BuchungsblattRecord(Record): 

125 blattart: EnumPair 

126 buchungsart: str 

127 buchungsblattbezirk: EnumPair 

128 buchungsblattkennzeichen: str 

129 buchungsblattnummerMitBuchstabenerweiterung: str 

130 

131 

132class Buchungsblatt(Entity): 

133 recs: list[BuchungsblattRecord] 

134 buchungsstelleList: list['Buchungsstelle'] 

135 namensnummerList: list['Namensnummer'] 

136 buchungsblattkennzeichen: str 

137 

138 

139class BuchungsstelleRecord(Record): 

140 anteil: str 

141 beschreibungDesSondereigentums: str 

142 beschreibungDesUmfangsDerBuchung: str 

143 buchungsart: EnumPair 

144 buchungstext: str 

145 laufendeNummer: str 

146 

147 

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 

158 

159 

160class NamensnummerRecord(Record): 

161 anteil: str 

162 artDerRechtsgemeinschaft: EnumPair 

163 beschriebDerRechtsgemeinschaft: str 

164 eigentuemerart: EnumPair 

165 laufendeNummerNachDIN1421: str 

166 nummer: str 

167 strichblattnummer: int 

168 

169 

170class Namensnummer(Entity): 

171 recs: list[NamensnummerRecord] 

172 buchungsblattUids: list[str] 

173 buchungsblattkennzeichenList: list[str] 

174 personList: list['Person'] 

175 laufendeNummer: str 

176 

177 

178class PersonRecord(Record): 

179 akademischerGrad: str 

180 anrede: str 

181 geburtsdatum: str 

182 geburtsname: str 

183 nachnameOderFirma: str 

184 vorname: str 

185 

186 

187class Person(Entity): 

188 recs: list[PersonRecord] 

189 anschriftList: list['Anschrift'] 

190 

191 

192class AnschriftRecord(Record): 

193 hausnummer: str 

194 ort: str 

195 plz: str 

196 strasse: str 

197 telefon: str 

198 

199 

200class Anschrift(Entity): 

201 recs: list[AnschriftRecord] 

202 

203 

204class LageRecord(Record): 

205 hausnummer: str 

206 laufendeNummer: str 

207 ortsteil: str 

208 pseudonummer: str 

209 strasse: str 

210 

211 

212class Lage(Entity): 

213 recs: list['LageRecord'] 

214 gebaeudeList: list['Gebaeude'] 

215 x: float 

216 y: float 

217 

218 

219class GebaeudeRecord(Record): 

220 gebaeudekennzeichen: int 

221 props: list[tuple] 

222 geom: str 

223 amtlicheFlaeche: float 

224 geomFlaeche: float 

225 

226 

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] 

247 

248 

249PART_NUTZUNG = 1 

250PART_BEWERTUNG = 2 

251PART_FESTLEGUNG = 3 

252 

253 

254class PartRecord(Record): 

255 props: list[tuple] 

256 amtlicheFlaeche: float # corrected 

257 geomFlaeche: float 

258 geom: str 

259 

260 

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 } 

276 

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 } 

346 

347 recs: list['PartRecord'] 

348 fs: str 

349 kind: int 

350 name: EnumPair 

351 amtlicheFlaeche: float 

352 geomFlaeche: float 

353 geom: str 

354 

355 

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' 

364 

365 

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 

375 

376 

377## 

378 

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' 

387 

388 

389EigentuemerAccessRequired = ['personName', 'personVorname'] 

390 

391BuchungAccessRequired = ['buchungsblattkennzeichenList'] 

392 

393 

394class FlurstueckQueryOptions(gws.Data): 

395 strasseSearchOptions: gws.TextSearchOptions 

396 nameSearchOptions: gws.TextSearchOptions 

397 buchungsblattSearchOptions: gws.TextSearchOptions 

398 

399 limit: int 

400 offset: int 

401 hardLimit: int 

402 sort: Optional[list[gws.SortOptions]] 

403 

404 displayThemes: list[DisplayTheme] 

405 

406 withEigentuemer: bool 

407 withBuchung: bool 

408 withHistorySearch: bool 

409 withHistoryDisplay: bool 

410 

411 

412class FlurstueckQuery(gws.Data): 

413 flurnummer: str 

414 flurstuecksfolge: str 

415 zaehler: str 

416 nenner: str 

417 flurstueckskennzeichen: str 

418 

419 flaecheBis: float 

420 flaecheVon: float 

421 

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 

432 

433 strasse: str 

434 hausnummer: str 

435 

436 buchungsblattkennzeichenList: list[str] 

437 

438 personName: str 

439 personVorname: str 

440 

441 shape: gws.Shape 

442 

443 uids: list[str] 

444 

445 options: Optional['FlurstueckQueryOptions'] 

446 

447 

448class AdresseQueryOptions(gws.Data): 

449 strasseSearchOptions: gws.TextSearchOptions 

450 

451 limit: int 

452 offset: int 

453 hardLimit: int 

454 sort: Optional[list[gws.SortOptions]] 

455 

456 withHistorySearch: bool 

457 

458 

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 

470 

471 strasse: str 

472 hausnummer: str 

473 bisHausnummer: str 

474 hausnummerNotNull: bool 

475 

476 options: Optional['AdresseQueryOptions'] 

477 

478 

479## 

480 

481class Reader: 

482 def read_all(self, cls: type, table_name: Optional[str] = None, uids: Optional[list[str]] = None): 

483 pass 

484 

485 def count(self, cls: type, table_name: Optional[str] = None) -> int: 

486 pass 

487 

488##