.gitignore
.pre-commit-config.yaml
CHANGELOG.md
LICENCE.txt
Makefile
README.md
pyproject.toml
requirements-dev.txt
requirements.txt
tox.ini
.github/dependabot.yml
.github/workflows/build-publish.yml
.github/workflows/lint-test.yml
dev/parkapi.py
dev/test-pull-converter.py
dev/test-push-converter.py
dev/transform_utm32_geojson.py
docs/mapping/aalen.md
docs/mapping/basics.md
docs/mapping/bb_parkhaus.md
docs/mapping/bfrk_bw_car.md
docs/mapping/esslingen.md
docs/mapping/freiburg.md
docs/mapping/freiburg_disabled_sensors.md
docs/mapping/freiburg_disabled_static.md
docs/mapping/freiburg_p_r.md
docs/mapping/freiburg_scanner.md
docs/mapping/friedrichshafen_sensors.md
docs/mapping/heidelberg_disabled.md
docs/mapping/heidelberg_easypark.md
docs/mapping/karlsruhe_disabled.md
docs/mapping/keltern.md
docs/mapping/konstanz_disabled.md
docs/mapping/ladenburg_park_raum_check.md
docs/mapping/pum_bw.md
docs/mapping/radolfzell.md
docs/mapping/reutlingen_disabled.md
docs/mapping/ulm_disabled.md
docs/mapping/ulm_sensors.md
src/parkapi_sources/__init__.py
src/parkapi_sources/_version.py
src/parkapi_sources/exceptions.py
src/parkapi_sources/parkapi_sources.py
src/parkapi_sources.egg-info/PKG-INFO
src/parkapi_sources.egg-info/SOURCES.txt
src/parkapi_sources.egg-info/dependency_links.txt
src/parkapi_sources.egg-info/requires.txt
src/parkapi_sources.egg-info/top_level.txt
src/parkapi_sources/converters/__init__.py
src/parkapi_sources/converters/aachen/__init__.py
src/parkapi_sources/converters/aachen/converter.py
src/parkapi_sources/converters/aalen/__init__.py
src/parkapi_sources/converters/aalen/converter.py
src/parkapi_sources/converters/aalen/models.py
src/parkapi_sources/converters/apcoa/__init__.py
src/parkapi_sources/converters/apcoa/converter.py
src/parkapi_sources/converters/apcoa/mapper.py
src/parkapi_sources/converters/apcoa/validators.py
src/parkapi_sources/converters/bahn_v2/__init__.py
src/parkapi_sources/converters/bahn_v2/converter.py
src/parkapi_sources/converters/bahn_v2/mapper.py
src/parkapi_sources/converters/bahn_v2/validators.py
src/parkapi_sources/converters/base_converter/__init__.py
src/parkapi_sources/converters/base_converter/base_converter.py
src/parkapi_sources/converters/base_converter/datex2/__init__.py
src/parkapi_sources/converters/base_converter/datex2/datex2_realtime_mixin.py
src/parkapi_sources/converters/base_converter/datex2/datex2_static_mixin.py
src/parkapi_sources/converters/base_converter/datex2/parking_facility_mixin.py
src/parkapi_sources/converters/base_converter/datex2/parking_facility_validator.py
src/parkapi_sources/converters/base_converter/datex2/parking_record_status_mixin.py
src/parkapi_sources/converters/base_converter/datex2/parking_record_status_validator.py
src/parkapi_sources/converters/base_converter/datex2/urban_parking_site_mixin.py
src/parkapi_sources/converters/base_converter/datex2/urban_parking_site_validator.py
src/parkapi_sources/converters/base_converter/pull/__init__.py
src/parkapi_sources/converters/base_converter/pull/mobilithek_parking_site_pull_converter.py
src/parkapi_sources/converters/base_converter/pull/mobilithek_pull_converter.py
src/parkapi_sources/converters/base_converter/pull/pull_converter.py
src/parkapi_sources/converters/base_converter/pull/pull_scraper_mixin.py
src/parkapi_sources/converters/base_converter/pull/static_geojson_mixin.py
src/parkapi_sources/converters/base_converter/push/__init__.py
src/parkapi_sources/converters/base_converter/push/csv_converter.py
src/parkapi_sources/converters/base_converter/push/json_converter.py
src/parkapi_sources/converters/base_converter/push/normalized_xlsx_converter.py
src/parkapi_sources/converters/base_converter/push/parkapi_json_converter.py
src/parkapi_sources/converters/base_converter/push/push_converter.py
src/parkapi_sources/converters/base_converter/push/xlsx_converter.py
src/parkapi_sources/converters/base_converter/push/xml_converter.py
src/parkapi_sources/converters/bb_parkhaus/__init__.py
src/parkapi_sources/converters/bb_parkhaus/converter.py
src/parkapi_sources/converters/bfrk_bw/__init__.py
src/parkapi_sources/converters/bfrk_bw/base_converter.py
src/parkapi_sources/converters/bfrk_bw/base_models.py
src/parkapi_sources/converters/bfrk_bw/bike_converter.py
src/parkapi_sources/converters/bfrk_bw/bike_models.py
src/parkapi_sources/converters/bfrk_bw/car_converter.py
src/parkapi_sources/converters/bfrk_bw/car_models.py
src/parkapi_sources/converters/bietigheim_bissingen/__init__.py
src/parkapi_sources/converters/bietigheim_bissingen/converter.py
src/parkapi_sources/converters/bietigheim_bissingen/models.py
src/parkapi_sources/converters/ellwangen/__init__.py
src/parkapi_sources/converters/ellwangen/converter.py
src/parkapi_sources/converters/esslingen/__init__.py
src/parkapi_sources/converters/esslingen/converter.py
src/parkapi_sources/converters/esslingen/validator.py
src/parkapi_sources/converters/freiburg/__init__.py
src/parkapi_sources/converters/freiburg/converter.py
src/parkapi_sources/converters/freiburg/models.py
src/parkapi_sources/converters/freiburg_disabled_sensors/__init__.py
src/parkapi_sources/converters/freiburg_disabled_sensors/converter.py
src/parkapi_sources/converters/freiburg_disabled_sensors/models.py
src/parkapi_sources/converters/freiburg_disabled_static/__init__.py
src/parkapi_sources/converters/freiburg_disabled_static/converter.py
src/parkapi_sources/converters/freiburg_disabled_static/models.py
src/parkapi_sources/converters/freiburg_scanner/__init__.py
src/parkapi_sources/converters/freiburg_scanner/converter.py
src/parkapi_sources/converters/freiburg_scanner/validator.py
src/parkapi_sources/converters/friedrichshafen_sensors/__init__.py
src/parkapi_sources/converters/friedrichshafen_sensors/converter.py
src/parkapi_sources/converters/friedrichshafen_sensors/validators.py
src/parkapi_sources/converters/goldbeck/__init__.py
src/parkapi_sources/converters/goldbeck/converter.py
src/parkapi_sources/converters/heidelberg/__init__.py
src/parkapi_sources/converters/heidelberg/converter.py
src/parkapi_sources/converters/heidelberg/models.py
src/parkapi_sources/converters/heidelberg/validators.py
src/parkapi_sources/converters/heidelberg_disabled/__init__.py
src/parkapi_sources/converters/heidelberg_disabled/converter.py
src/parkapi_sources/converters/heidelberg_disabled/validator.py
src/parkapi_sources/converters/heidelberg_easypark/__init__.py
src/parkapi_sources/converters/heidelberg_easypark/converter.py
src/parkapi_sources/converters/heidelberg_easypark/validator.py
src/parkapi_sources/converters/herrenberg/__init__.py
src/parkapi_sources/converters/herrenberg/converter.py
src/parkapi_sources/converters/herrenberg/models.py
src/parkapi_sources/converters/herrenberg_bike/__init__.py
src/parkapi_sources/converters/herrenberg_bike/converter.py
src/parkapi_sources/converters/herrenberg_bike/models.py
src/parkapi_sources/converters/huefner/__init__.py
src/parkapi_sources/converters/huefner/converter.py
src/parkapi_sources/converters/karlsruhe/__init__.py
src/parkapi_sources/converters/karlsruhe/converter.py
src/parkapi_sources/converters/karlsruhe/models.py
src/parkapi_sources/converters/karlsruhe/files/ca.crt.pem
src/parkapi_sources/converters/karlsruhe_disabled/__init__.py
src/parkapi_sources/converters/karlsruhe_disabled/converter.py
src/parkapi_sources/converters/karlsruhe_disabled/models.py
src/parkapi_sources/converters/karlsruhe_disabled/files/ca.crt.pem
src/parkapi_sources/converters/keltern/__init__.py
src/parkapi_sources/converters/keltern/converter.py
src/parkapi_sources/converters/keltern/validator.py
src/parkapi_sources/converters/kienzler/__init__.py
src/parkapi_sources/converters/kienzler/converter.py
src/parkapi_sources/converters/kienzler/models.py
src/parkapi_sources/converters/konstanz/__init__.py
src/parkapi_sources/converters/konstanz/converter.py
src/parkapi_sources/converters/konstanz/models.py
src/parkapi_sources/converters/konstanz/validators.py
src/parkapi_sources/converters/konstanz_bike/__init__.py
src/parkapi_sources/converters/konstanz_bike/converter.py
src/parkapi_sources/converters/konstanz_bike/models.py
src/parkapi_sources/converters/konstanz_disabled/__init__.py
src/parkapi_sources/converters/konstanz_disabled/converter.py
src/parkapi_sources/converters/konstanz_disabled/models.py
src/parkapi_sources/converters/ladenburg_parkraumcheck/__init__.py
src/parkapi_sources/converters/ladenburg_parkraumcheck/converter.py
src/parkapi_sources/converters/ladenburg_parkraumcheck/validator.py
src/parkapi_sources/converters/mannheim_buchen/__init__.py
src/parkapi_sources/converters/mannheim_buchen/converter.py
src/parkapi_sources/converters/neckarsulm/__init__.py
src/parkapi_sources/converters/neckarsulm/converter.py
src/parkapi_sources/converters/neckarsulm/models.py
src/parkapi_sources/converters/neckarsulm_bike/__init__.py
src/parkapi_sources/converters/neckarsulm_bike/converter.py
src/parkapi_sources/converters/opendata_swiss/__init__.py
src/parkapi_sources/converters/opendata_swiss/converter.py
src/parkapi_sources/converters/opendata_swiss/models.py
src/parkapi_sources/converters/p_m_bw/__init__.py
src/parkapi_sources/converters/p_m_bw/converter.py
src/parkapi_sources/converters/p_m_bw/models.py
src/parkapi_sources/converters/pbw/__init__.py
src/parkapi_sources/converters/pbw/converter.py
src/parkapi_sources/converters/pbw/mapper.py
src/parkapi_sources/converters/pbw/validation.py
src/parkapi_sources/converters/pforzheim/__init__.py
src/parkapi_sources/converters/pforzheim/converter.py
src/parkapi_sources/converters/pforzheim/validation.py
src/parkapi_sources/converters/pum_bw/__init__.py
src/parkapi_sources/converters/pum_bw/converter.py
src/parkapi_sources/converters/radolfzell/__init__.py
src/parkapi_sources/converters/radolfzell/converter.py
src/parkapi_sources/converters/radolfzell/validator.py
src/parkapi_sources/converters/radvis_bw/__init__.py
src/parkapi_sources/converters/radvis_bw/converter.py
src/parkapi_sources/converters/radvis_bw/models.py
src/parkapi_sources/converters/reutlingen/__init__.py
src/parkapi_sources/converters/reutlingen/converter.py
src/parkapi_sources/converters/reutlingen/validation.py
src/parkapi_sources/converters/reutlingen_bike/__init__.py
src/parkapi_sources/converters/reutlingen_bike/converter.py
src/parkapi_sources/converters/reutlingen_bike/validation.py
src/parkapi_sources/converters/reutlingen_disabled/__init__.py
src/parkapi_sources/converters/reutlingen_disabled/converter.py
src/parkapi_sources/converters/reutlingen_disabled/validation.py
src/parkapi_sources/converters/stuttgart/__init__.py
src/parkapi_sources/converters/stuttgart/converter.py
src/parkapi_sources/converters/stuttgart/validators.py
src/parkapi_sources/converters/ulm/__init__.py
src/parkapi_sources/converters/ulm/converter.py
src/parkapi_sources/converters/ulm_sensors/__init__.py
src/parkapi_sources/converters/ulm_sensors/converter.py
src/parkapi_sources/converters/ulm_sensors/validators.py
src/parkapi_sources/converters/velobrix/__init__.py
src/parkapi_sources/converters/velobrix/converter.py
src/parkapi_sources/converters/velobrix/models.py
src/parkapi_sources/converters/vrn_p_r/__init__.py
src/parkapi_sources/converters/vrn_p_r/converter.py
src/parkapi_sources/converters/vrn_p_r/models.py
src/parkapi_sources/converters/vrs/__init__.py
src/parkapi_sources/converters/vrs/converter.py
src/parkapi_sources/converters/vrs_p_r/__init__.py
src/parkapi_sources/converters/vrs_p_r/vrs_p_r.py
src/parkapi_sources/models/__init__.py
src/parkapi_sources/models/base_parking_inputs.py
src/parkapi_sources/models/enums.py
src/parkapi_sources/models/geojson_inputs.py
src/parkapi_sources/models/parking_site_inputs.py
src/parkapi_sources/models/parking_spot_inputs.py
src/parkapi_sources/models/shared_inputs.py
src/parkapi_sources/models/source_info.py
src/parkapi_sources/models/xlsx_inputs.py
src/parkapi_sources/scripts/parkapi.py
src/parkapi_sources/util/__init__.py
src/parkapi_sources/util/config_helper.py
src/parkapi_sources/util/encoding.py
src/parkapi_sources/util/helper.py
src/parkapi_sources/util/multi_point_generator.py
src/parkapi_sources/util/request_helper.py
src/parkapi_sources/util/xml_helper.py
src/parkapi_sources/validators/__init__.py
src/parkapi_sources/validators/boolean_validators.py
src/parkapi_sources/validators/comma_separated_list_validator.py
src/parkapi_sources/validators/date_validator.py
src/parkapi_sources/validators/datetime_validator.py
src/parkapi_sources/validators/decimal_validators.py
src/parkapi_sources/validators/float_to_integer_validator.py
src/parkapi_sources/validators/geojson_geometry_validator.py
src/parkapi_sources/validators/integer_validators.py
src/parkapi_sources/validators/iso_duration_validator.py
src/parkapi_sources/validators/list_validator.py
src/parkapi_sources/validators/noneable.py
src/parkapi_sources/validators/string_validators.py
src/parkapi_sources/validators/time_validators.py
tests/conftest.py
tests/converters/aachen_test.py
tests/converters/aalen_test.py
tests/converters/apcoa_test.py
tests/converters/bahn_v2_test.py
tests/converters/bb_parkhaus_test.py
tests/converters/bfrk_bw_test.py
tests/converters/bietigheim_bissingen_test.py
tests/converters/conftest.py
tests/converters/ellwangen_test.py
tests/converters/esslingen_test.py
tests/converters/freiburg_disabled_sensors_test.py
tests/converters/freiburg_disabled_static_test.py
tests/converters/freiburg_p_r_test.py
tests/converters/freiburg_scanner_test.py
tests/converters/freiburg_test.py
tests/converters/friedrichshafen_sensors_test.py
tests/converters/goldbeck_test.py
tests/converters/heidelberg_disabled.py
tests/converters/heidelberg_easypark_test.py
tests/converters/heidelberg_test.py
tests/converters/helper.py
tests/converters/herrenberg_bike_test.py
tests/converters/herrenberg_test.py
tests/converters/huefner_test.py
tests/converters/karlsruhe_bike_test.py
tests/converters/karlsruhe_disabled.py
tests/converters/karlsruhe_test.py
tests/converters/keltern_test.py
tests/converters/kienzler_geojson_test.py
tests/converters/kienzler_ulm_test.py
tests/converters/kienzler_vvs_test.py
tests/converters/konstanz_bike_test.py
tests/converters/konstanz_disabled_test.py
tests/converters/konstanz_test.py
tests/converters/ladenburg_parkraumcheck_test.py
tests/converters/mannheim_buchen_test.py
tests/converters/neckarsulm_bike_test.py
tests/converters/neckarsulm_test.py
tests/converters/opendata_swiss_test.py
tests/converters/p_m_bw_test.py
tests/converters/patching_test.py
tests/converters/pbw_test.py
tests/converters/pforzheim_test.py
tests/converters/pum_bw_test.py
tests/converters/radolfzell_test.py
tests/converters/radvis_bw_test.py
tests/converters/reutlingen_bike_test.py
tests/converters/reutlingen_disabled_test.py
tests/converters/reutlingen_test.py
tests/converters/stuttgart_test.py
tests/converters/ulm_sensors_test.py
tests/converters/ulm_test.py
tests/converters/velobrix_test.py
tests/converters/vrn_p_r_test.py
tests/converters/vrs_p_r_test.py
tests/converters/vrs_test.py
tests/converters/data/aachen-realtime.xml
tests/converters/data/aachen-static.xml
tests/converters/data/aalen.json
tests/converters/data/apcoa.json
tests/converters/data/bahn_v2.json
tests/converters/data/bb_parkhaus.xlsx
tests/converters/data/bfrk_bw_bike.csv
tests/converters/data/bfrk_bw_bike.json
tests/converters/data/bfrk_bw_car.csv
tests/converters/data/bfrk_bw_car.json
tests/converters/data/bietigheim-bissingen.csv
tests/converters/data/ellwangen.xlsx
tests/converters/data/esslingen.geojson
tests/converters/data/freiburg.json
tests/converters/data/freiburg_disabled_sensors.geojson
tests/converters/data/freiburg_disabled_static.geojson
tests/converters/data/freiburg_p_r_sensors.json
tests/converters/data/freiburg_p_r_static.json
tests/converters/data/freiburg_scanner.geojson
tests/converters/data/friedrichshafen-sensors-realtime.xml
tests/converters/data/friedrichshafen-sensors-static.xml
tests/converters/data/goldbeck.xlsx
tests/converters/data/heidelberg.json
tests/converters/data/heidelberg_disabled.geojson
tests/converters/data/heidelberg_easypark.geojson
tests/converters/data/herrenberg.json
tests/converters/data/herrenberg_bike.json
tests/converters/data/huefner.xlsx
tests/converters/data/karlsruhe.json
tests/converters/data/karlsruhe_bike.json
tests/converters/data/karlsruhe_disabled.geojson
tests/converters/data/keltern.xlsx
tests/converters/data/kienzler.geojson
tests/converters/data/kienzler.json
tests/converters/data/kienzler_ulm.json
tests/converters/data/kienzler_vvs.json
tests/converters/data/konstanz.json
tests/converters/data/konstanz_bike.csv
tests/converters/data/konstanz_disabled.geojson
tests/converters/data/ladenburg_parkraumcheck.geojson
tests/converters/data/mannheim.json
tests/converters/data/neckarsulm.csv
tests/converters/data/neckarsulm_bike.csv
tests/converters/data/opendata_swiss.json
tests/converters/data/p_m_bw.json
tests/converters/data/pforzheim.json
tests/converters/data/pum_bw.xlsx
tests/converters/data/radolfzell.geojson
tests/converters/data/radvis_bw.json
tests/converters/data/reutlingen.csv
tests/converters/data/reutlingen_bike.csv
tests/converters/data/reutlingen_disabled.csv
tests/converters/data/stuttgart-realtime.xml
tests/converters/data/stuttgart-static.xml
tests/converters/data/ulm.html
tests/converters/data/velobrix.json
tests/converters/data/vrn_p_r.json
tests/converters/data/vrs_bondorf-realtime.xml
tests/converters/data/vrs_bondorf-static.xml
tests/converters/data/vrs_kirchheim-realtime.xml
tests/converters/data/vrs_kirchheim-static.xml
tests/converters/data/vrs_neustadt-realtime.xml
tests/converters/data/vrs_neustadt-static.xml
tests/converters/data/vrs_p_r.xlsx
tests/converters/data/vrs_vaihingen-realtime.xml
tests/converters/data/vrs_vaihingen-static.xml
tests/converters/data/patches/parking_sites/freiburg.json
tests/converters/data/patches/parking_spots/freiburg_disabled_sensors.json
tests/converters/data/pbw/catalog-city.json
tests/converters/data/pbw/object-by-city-10.json
tests/converters/data/pbw/object-by-city-11.json
tests/converters/data/pbw/object-by-city-12.json
tests/converters/data/pbw/object-by-city-15.json
tests/converters/data/pbw/object-by-city-17.json
tests/converters/data/pbw/object-by-city-18.json
tests/converters/data/pbw/object-by-city-19.json
tests/converters/data/pbw/object-by-city-31.json
tests/converters/data/pbw/object-by-city-32.json
tests/converters/data/pbw/object-by-city-33.json
tests/converters/data/pbw/object-by-city-34.json
tests/converters/data/pbw/object-by-city-4.json
tests/converters/data/pbw/object-by-city-42.json
tests/converters/data/pbw/object-by-city-48.json
tests/converters/data/pbw/object-by-city-49.json
tests/converters/data/pbw/object-by-city-51.json
tests/converters/data/pbw/object-by-city-52.json
tests/converters/data/pbw/object-by-city-60.json
tests/converters/data/pbw/object-by-city-61.json
tests/converters/data/pbw/object-by-city-62.json
tests/converters/data/pbw/object-by-city-7.json
tests/converters/data/pbw/object-by-city-71.json
tests/converters/data/pbw/object-by-city-9.json
tests/converters/data/pbw/object-dynamic-all.json
tests/converters/data/ulm-sensors/realtime-parking-sites.json
tests/converters/data/ulm-sensors/realtime-parking-spots.json
tests/models/xlsx_inputs_test.py
tests/util/data_xml_helper.py
tests/util/encoding_test.py
tests/util/request_helper_test.py
tests/util/xml_helper_test.py
tests/validators/boolean_validators_test.py
tests/validators/date_validators_test.py
tests/validators/datetime_validators_test.py
tests/validators/geojson_geometry_validator_test.py
tests/validators/integer_validators_test.py
tests/validators/noneable_tests.py
tests/validators/string_validators_test.py
tests/validators/time_validators_test.py