Package: odp-amsterdam
Asynchronous Python client for the open datasets of Amsterdam (The Netherlands).AboutA python package with which you can retrieve data from the Open Data Platform of Amsterdam viatheir API. This package was initially created to only retrieve parking data from the API, but the code base is made in such a way that it is easy to extend for other datasets from the same platform.Installationpipinstallodp-amsterdamDatasetsYou can read the following datasets with this package:Parking garages occupancy / Garages parkeerbezetting(53 garages)Parking locations / ParkeervakkenClick here to get more detailsParking garagesRead the occupancy of a garage in Amsterdam (The Netherlands), both for day visitors (short-term parking) and season ticket holders (long-term parking). The dataset gives garages for 🚲 bicycles (we ❤️ bikes) and for 🚗 carsNOTE: Not all garages have data for long-term parking.You can use the following parameters in your request:vehicle- Filter based on the type of vehicle that can park in the garage (car,bicycleortouringcar).category- Filter based on the category of the garage (garageorpark_and_ride).VariableTypeDescriptiongarage_idstringThe id of the garagegarage_namestringThe name of the garagevehiclestringThe type of vehicle that can park in the garagecategorystringThe category of the garage (garageorpark_and_ride)statestringThe state of the garage (okorproblem)free_space_shortintegerThe number of free spaces for day visitorsfree_space_longinteger (or None)The number of free spaces for season ticket holdersshort_capacityintegerThe total capacity of the garage for day visitorslong_capacityinteger (or None)The total capacity of the garage for season ticket holdersavailability_pctfloatThe percentage of free parking spaceslongitudefloatThe longitude of the garagelatitudefloatThe latitude of the garageupdated_atdatetimeThe last time the data was updatedParking locationsYou can use the following parameters in your request:limit(default: 10) - How many results you want to retrieve.parking_type(default: "") - Filter based on theeTypefrom the geojson data.VariableTypeDescriptionspot_idstringThe id of the locationspot_typestring (or None)The type of the location (e.g.E6a)spot_descriptionstring (or None)The description of the location typestreetstring (or None)The street name of the locationnumberinteger (or None)How many parking spots there are on this locationorientationstring (or None)The parking orientation of the location (visgraag,langsorfile)coordinateslist[float]The coordinates of the locationUsageimportasynciofromodp_amsterdamimportODPAmsterdamasyncdefmain():"""Show example on using the ODP Amsterdam API client."""asyncwithODPAmsterdam()asclient:# Parking locationslocations:list[ParkingSpot]=awaitclient.location(limit=5,parking_type="E6a")# Garagesall_garages:list[Garage]=awaitclient.all_garages()garage:Garage=awaitclient.garage(garage_id="ID_OF_GARAGE")print(locations)print(all_garages)print(garage)if__name__=="__main__":asyncio.run(main())Use casesNIPKaart.nlA website that provides insight into where disabled parking spaces are, based on data from users and municipalities. Operates mainly in the Netherlands, but also has plans to process data from abroad.ContributingThis is an active open-source project. We are always open to people who want to
use the code or contribute to it.We've set up a separate document for ourcontribution guidelines.Thank you for being involved! :heart_eyes:Setting up development environmentThe simplest way to begin is by utilizing theDev Containerfeature of Visual Studio Code or by opening a CodeSpace directly on GitHub.
By clicking the button below you immediately start a Dev Container in Visual Studio Code.This Python project relies onPoetryas its dependency manager,
providing comprehensive management and control over project dependencies.You need at least:Python 3.11+PoetryInstall all packages, including all development requirements:poetryinstallPoetry creates by default an virtual environment where it installs all
necessary pip packages, to enter or exit the venv run the following commands:poetryshellexitSetup the pre-commit check, you must run this inside the virtual environment:pre-commitinstallNow you're all set to get started!As this repository uses thepre-commitframework, all changes
are linted and tested with each commit. You can run all checks and tests
manually, using the following command:poetryrunpre-commitrun--all-filesTo run just the Python tests:poetryrunpytestLicenseMIT LicenseCopyright (c) 2020-2024 Klaas SchoutePermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.