<img src="https://docs.geodesk.com/img/github-header.png">
GeoDesk is a fast and storage-efficient geospatial database for OpenStreetMap data.
Also available [for C++](https://github.com/clarisma/libgeodesk) and [for Java](http://www.github.com/clarisma/geodesk).
*This is a pre-release of the upcoming Version 2.0*
## Why GeoDesk?
- **Small storage footprint** — GeoDesk's GOL files are only 20% to 50% larger than the original OSM data in PBF format — that's less than a tenth of the storage consumed by a traditional SQL-based database.
- **Fast queries** — typically 50 times faster than SQL.
- **Fast to get started** — Converting `.osm.pbf` data to a GOL is 20 times faster than an import into an SQL database. Alternatively, download pre-made data tiles for just the regions you need and automatically assemble them into a GOL.
- **Intuitive API** — No need for object-relational mapping; GeoDesk queries return Python objects. Quickly discover tags, way-nodes and relation members. Get a feature's geometry, measure its length/area.
- **Proper handling of relations** — (Traditional geospatial databases deal with geometric shapes and require workarounds to support this unique and powerful aspect of OSM data.)
- **Seamless integration with Shapely** for advanced geometric operations, such as buffer, union, simplify, convex and concave hulls, Voronoi diagrams, and much more.
- **Modest hardware requirements** — If it can run 64-bit Python, it'll run GeoDesk.
## Get Started
### Requirements
- Python 3.9 or above
- Java 16 or above (for the GOL Tool)
### Download
```
pip install geodesk
```
### Create a GOL
Create a Geographic Object Library based on any `.osm.pbf` file, using the
[GOL Tool](https://www.geodesk.com/download) (Requires Java 16+).
For example:
```
gol build switzerland switzerland-latest.osm.pbf
```
### Example Application
Find all the pubs in Zurich (Switzerland) and print their names:
```python
from geodesk import *
# Open switzerland.gol
features = Features("switzerland")
# Get the feature that represents the area of the city of Zurich
zurich = features("a[boundary=adminstrative][admin_level=8][name:en=Zurich]").one
# Define a set that contains nodes and areas that are pubs
pubs = features("na[amenity=pub]")
# Iterate through the pubs that are contained in the area of Zurich
# and print their names
for pub in pubs.within(zurich):
print(pub.name)
```
### More Examples
Find all movie theaters within 500 meters from a given point:
```python
movieTheaters = features("na[amenity=cinema]").around(
meters=500, lat=47.37, lon=8.54)
```
*Remember, OSM uses British English for its terminology.*
Discover the bus routes that traverse a given street:
```python
for route in street.parents("[route=bus]")):
print(f"- {route.ref} from {route.from} to {route.to}")
```
Count the number of entrances of a building:
```python
number_of_entrances = building.nodes("[entrance]").count
```
## Documentation
[GeoDesk Developer's Guide](https://docs.geodesk.com/python)
## Related Repositories
- [geodesk](http://www.github.com/clarisma/geodesk) — GeoDesk for Java
- [libgeodesk](https://github.com/clarisma/libgeodesk) — GeoDesk for C++
- [gol-tool](http://www.github.com/clarisma/gol-tool) — command-line utility for building, maintaining and querying GOL files
Raw data
{
"_id": null,
"home_page": null,
"name": "geodesk2",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "gis, openstreetmap, geospatial, database",
"author": "Clarisma / GeoDesk contributors",
"author_email": null,
"download_url": null,
"platform": null,
"description": "<img src=\"https://docs.geodesk.com/img/github-header.png\">\n\nGeoDesk is a fast and storage-efficient geospatial database for OpenStreetMap data. \nAlso available [for C++](https://github.com/clarisma/libgeodesk) and [for Java](http://www.github.com/clarisma/geodesk).\n\n*This is a pre-release of the upcoming Version 2.0*\n\n## Why GeoDesk?\n\n- **Small storage footprint** — GeoDesk's GOL files are only 20% to 50% larger than the original OSM data in PBF format — that's less than a tenth of the storage consumed by a traditional SQL-based database.\n\n- **Fast queries** — typically 50 times faster than SQL. \n\n- **Fast to get started** — Converting `.osm.pbf` data to a GOL is 20 times faster than an import into an SQL database. Alternatively, download pre-made data tiles for just the regions you need and automatically assemble them into a GOL.\n\n- **Intuitive API** — No need for object-relational mapping; GeoDesk queries return Python objects. Quickly discover tags, way-nodes and relation members. Get a feature's geometry, measure its length/area. \n \n- **Proper handling of relations** — (Traditional geospatial databases deal with geometric shapes and require workarounds to support this unique and powerful aspect of OSM data.)\n\n- **Seamless integration with Shapely** for advanced geometric operations, such as buffer, union, simplify, convex and concave hulls, Voronoi diagrams, and much more.\n\n- **Modest hardware requirements** — If it can run 64-bit Python, it'll run GeoDesk.\n \n## Get Started\n\n### Requirements\n\n- Python 3.9 or above\n- Java 16 or above (for the GOL Tool)\n \n### Download\n\n```\npip install geodesk\n```\n\n### Create a GOL\n\nCreate a Geographic Object Library based on any `.osm.pbf` file, using the \n[GOL Tool](https://www.geodesk.com/download) (Requires Java 16+).\n\nFor example:\n\n```\ngol build switzerland switzerland-latest.osm.pbf\n```\n\n### Example Application\n\nFind all the pubs in Zurich (Switzerland) and print their names:\n\n```python\nfrom geodesk import *\n\n# Open switzerland.gol\nfeatures = Features(\"switzerland\") \n\n# Get the feature that represents the area of the city of Zurich\nzurich = features(\"a[boundary=adminstrative][admin_level=8][name:en=Zurich]\").one\n\n# Define a set that contains nodes and areas that are pubs\npubs = features(\"na[amenity=pub]\")\n\n# Iterate through the pubs that are contained in the area of Zurich\n# and print their names\nfor pub in pubs.within(zurich):\n print(pub.name) \n```\n\n### More Examples\n\nFind all movie theaters within 500 meters from a given point:\n\n```python\nmovieTheaters = features(\"na[amenity=cinema]\").around(\n meters=500, lat=47.37, lon=8.54)\n```\n\n*Remember, OSM uses British English for its terminology.*\n\nDiscover the bus routes that traverse a given street:\n\n```python\nfor route in street.parents(\"[route=bus]\")):\n print(f\"- {route.ref} from {route.from} to {route.to}\")\n```\n\nCount the number of entrances of a building:\n\n```python\nnumber_of_entrances = building.nodes(\"[entrance]\").count\n```\n\n## Documentation\n\n[GeoDesk Developer's Guide](https://docs.geodesk.com/python)\n\n## Related Repositories\n\n- [geodesk](http://www.github.com/clarisma/geodesk) — GeoDesk for Java\n- [libgeodesk](https://github.com/clarisma/libgeodesk) — GeoDesk for C++\n- [gol-tool](http://www.github.com/clarisma/gol-tool) — command-line utility for building, maintaining and querying GOL files\n",
"bugtrack_url": null,
"license": "LGPL-3.0-only",
"summary": "Fast and storage-efficient spatial database engine for OpenStreetMap features",
"version": "2.0.1",
"project_urls": {
"Bug Tracker": "https://github.com/clarisma/geodesk-py/issues",
"Documentation": "https://docs.geodesk.com/python",
"Homepage": "https://www.geodesk.com",
"Repository": "https://github.com/clarisma/geodesk-py"
},
"split_keywords": [
"gis",
" openstreetmap",
" geospatial",
" database"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "224aa204b68f8def0b2f0530f125a2b686f0a7b14e83de44757c07d1c8e34f23",
"md5": "7505610f2a618a8cdcda375e3a246ab9",
"sha256": "ae50746a7e5f7d3ccc264827cb71606c3b48de798791fc5658c4ef15b1cfa4c3"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7505610f2a618a8cdcda375e3a246ab9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1756531,
"upload_time": "2025-07-24T17:31:54",
"upload_time_iso_8601": "2025-07-24T17:31:54.299173Z",
"url": "https://files.pythonhosted.org/packages/22/4a/a204b68f8def0b2f0530f125a2b686f0a7b14e83de44757c07d1c8e34f23/geodesk2-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d9ae1d49d9b3f70dc9faf456adcb7a363ff7df9e2ccdaec1cd56bd752aaf0445",
"md5": "e405e3759209768a254759b0e9b4ccf9",
"sha256": "dd2f6499c3b9c96949aa9a7c523e1706550eea2b67d6be6c589ca3d7f1e770fc"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "e405e3759209768a254759b0e9b4ccf9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2585965,
"upload_time": "2025-07-24T17:31:55",
"upload_time_iso_8601": "2025-07-24T17:31:55.492789Z",
"url": "https://files.pythonhosted.org/packages/d9/ae/1d49d9b3f70dc9faf456adcb7a363ff7df9e2ccdaec1cd56bd752aaf0445/geodesk2-2.0.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "67bf0d4d1463c661442d0b7fb295f6e29e5f71e126808672d891ac730252e121",
"md5": "685d9df9a2e3e092a301c6d92fd39d35",
"sha256": "4c1559173202ed445013cae3e244e0bf98789f733a21c901149382e237fba70a"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "685d9df9a2e3e092a301c6d92fd39d35",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 328288,
"upload_time": "2025-07-24T17:31:57",
"upload_time_iso_8601": "2025-07-24T17:31:57.307579Z",
"url": "https://files.pythonhosted.org/packages/67/bf/0d4d1463c661442d0b7fb295f6e29e5f71e126808672d891ac730252e121/geodesk2-2.0.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e370a559774f22ebc614f43f2e0ed2907c0d84a19ed1f563f03eaabe14b488ea",
"md5": "92933091b4be628f5306d64a0ab3a149",
"sha256": "346db7a721d4c52636dc66461d5e92ec7290a5ad5dd907bff42594dea97aec6d"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "92933091b4be628f5306d64a0ab3a149",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1756491,
"upload_time": "2025-07-24T17:31:58",
"upload_time_iso_8601": "2025-07-24T17:31:58.297105Z",
"url": "https://files.pythonhosted.org/packages/e3/70/a559774f22ebc614f43f2e0ed2907c0d84a19ed1f563f03eaabe14b488ea/geodesk2-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d9a3a86e0f83a3c4b5b3ca8475835ead1d7a629bed606da7d10ff8913fc37e8d",
"md5": "d053f94759f2a8df4d357ddaa368b75e",
"sha256": "568965e99bccd9c9737e6ec91bfd5d194c449be277f1f5a3a7934099bd9aa25d"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "d053f94759f2a8df4d357ddaa368b75e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2585784,
"upload_time": "2025-07-24T17:31:59",
"upload_time_iso_8601": "2025-07-24T17:31:59.412708Z",
"url": "https://files.pythonhosted.org/packages/d9/a3/a86e0f83a3c4b5b3ca8475835ead1d7a629bed606da7d10ff8913fc37e8d/geodesk2-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "81b8ab938ac29464df74152948ccad322ab6600619ed6b1afa2402947ef808cc",
"md5": "31e920d73c098bcf0e3a9dc70034143c",
"sha256": "c0d6ef54c5005e21110770be57e84568cf8419326f7fa7537d3b7028130fbbf6"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "31e920d73c098bcf0e3a9dc70034143c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 328130,
"upload_time": "2025-07-24T17:32:01",
"upload_time_iso_8601": "2025-07-24T17:32:01.250244Z",
"url": "https://files.pythonhosted.org/packages/81/b8/ab938ac29464df74152948ccad322ab6600619ed6b1afa2402947ef808cc/geodesk2-2.0.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "91428f1cc6b132d157b6ac20a9b0ad8690b188d5bd04e7cd81c3f225f2259257",
"md5": "a3ceba57807afe0bc3dd12ed0b7c486d",
"sha256": "b7f29267054d120252c271792ffe12faa803f6ce90f5b6c166b4a47539d6eaaa"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a3ceba57807afe0bc3dd12ed0b7c486d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1756566,
"upload_time": "2025-07-24T17:32:02",
"upload_time_iso_8601": "2025-07-24T17:32:02.926302Z",
"url": "https://files.pythonhosted.org/packages/91/42/8f1cc6b132d157b6ac20a9b0ad8690b188d5bd04e7cd81c3f225f2259257/geodesk2-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "80d9e4646266f11283e2916bbe4629b9f302bd32c03bd64ced87227300f28815",
"md5": "9c2c1dc590318e2c0cb762a0989cc4d6",
"sha256": "45112725319a97c6c3c3bd7601948031f524390d8bb6907d93140d5c0fbc2cc2"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "9c2c1dc590318e2c0cb762a0989cc4d6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2585729,
"upload_time": "2025-07-24T17:32:04",
"upload_time_iso_8601": "2025-07-24T17:32:04.181237Z",
"url": "https://files.pythonhosted.org/packages/80/d9/e4646266f11283e2916bbe4629b9f302bd32c03bd64ced87227300f28815/geodesk2-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc4e7c8e08bca0f11a598a55bba569d437ba27b443964d88bb2bd18e0720f7fc",
"md5": "a20350d595e9ca9dd74600266bbf2113",
"sha256": "e7751705141b2381a2ff1e49bb7f8eb2c9d01fceea279f59eb63deeb3366be23"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "a20350d595e9ca9dd74600266bbf2113",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 328165,
"upload_time": "2025-07-24T17:32:05",
"upload_time_iso_8601": "2025-07-24T17:32:05.454890Z",
"url": "https://files.pythonhosted.org/packages/cc/4e/7c8e08bca0f11a598a55bba569d437ba27b443964d88bb2bd18e0720f7fc/geodesk2-2.0.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ddcb0fd11d9f8eeb61a22f4399d44340caf77e23e7590ad421fba40234fda05b",
"md5": "c26f2c9a111e9e10fa2c612b318e8cb3",
"sha256": "6c1a4cebf150d20577ecaa283e81afae929e8cd65d4831ea010d1bdad9c27cfd"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c26f2c9a111e9e10fa2c612b318e8cb3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1756570,
"upload_time": "2025-07-24T17:32:06",
"upload_time_iso_8601": "2025-07-24T17:32:06.521300Z",
"url": "https://files.pythonhosted.org/packages/dd/cb/0fd11d9f8eeb61a22f4399d44340caf77e23e7590ad421fba40234fda05b/geodesk2-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1a1b9f90374fc2eb0441bb4c605ee6f78d9d410ecb23c4d714340024c2fa9336",
"md5": "c056e71ce59c54fee27296f770d6c607",
"sha256": "8043e25b3ded1ae1f1205e6a4322d98f1f9d49223a382d4f4709d6e0e0b4ccc5"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c056e71ce59c54fee27296f770d6c607",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2585732,
"upload_time": "2025-07-24T17:32:08",
"upload_time_iso_8601": "2025-07-24T17:32:08.216498Z",
"url": "https://files.pythonhosted.org/packages/1a/1b/9f90374fc2eb0441bb4c605ee6f78d9d410ecb23c4d714340024c2fa9336/geodesk2-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0318cfe645e88d749d2bcaaed0ef8032316386364f1298c4d3e60fc3832d538a",
"md5": "0c1239a3f84fb2a5b5dc935f8f6cdf5a",
"sha256": "dafd52a0a7331dd528930d42346c47414e9b8f04340bc32348a4a9e908b23d94"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "0c1239a3f84fb2a5b5dc935f8f6cdf5a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 328172,
"upload_time": "2025-07-24T17:32:09",
"upload_time_iso_8601": "2025-07-24T17:32:09.340069Z",
"url": "https://files.pythonhosted.org/packages/03/18/cfe645e88d749d2bcaaed0ef8032316386364f1298c4d3e60fc3832d538a/geodesk2-2.0.1-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e371d868ed19a6577678931317f8fd414d4f09936fd9b0bbb399379ccb85870b",
"md5": "748642a9ec07c451eb0be1a772be8d36",
"sha256": "67a1b9fd6ed178d713563eba6b569a6b5f8438507e1abc5f07c0d7583683ab0e"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "748642a9ec07c451eb0be1a772be8d36",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 1756606,
"upload_time": "2025-07-24T17:32:11",
"upload_time_iso_8601": "2025-07-24T17:32:11.755749Z",
"url": "https://files.pythonhosted.org/packages/e3/71/d868ed19a6577678931317f8fd414d4f09936fd9b0bbb399379ccb85870b/geodesk2-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "430c8f0a5670397af50be353d03b5bb089b71bd60c2603dd4b6aa3f02bf9021b",
"md5": "ab57a411b55cd7ac2850202f8418158e",
"sha256": "cb83b86c9ddbf36c106b4435f5fbf0ec52b9f97a5baf35dd0d795b4ae1c0b8c9"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "ab57a411b55cd7ac2850202f8418158e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 2585937,
"upload_time": "2025-07-24T17:32:13",
"upload_time_iso_8601": "2025-07-24T17:32:13.200138Z",
"url": "https://files.pythonhosted.org/packages/43/0c/8f0a5670397af50be353d03b5bb089b71bd60c2603dd4b6aa3f02bf9021b/geodesk2-2.0.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4a03557efcf9ea4a64a2fd11f42ec8a8813a78622aaa181f8fb8c126efa30ce5",
"md5": "7ce8815f8882522dd6355fc5e1ff9fbf",
"sha256": "23075777beadb64fa7e824c8ab44de874bec130a5524d7da3de0d6f8a72e8103"
},
"downloads": -1,
"filename": "geodesk2-2.0.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "7ce8815f8882522dd6355fc5e1ff9fbf",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 328382,
"upload_time": "2025-07-24T17:32:14",
"upload_time_iso_8601": "2025-07-24T17:32:14.313569Z",
"url": "https://files.pythonhosted.org/packages/4a/03/557efcf9ea4a64a2fd11f42ec8a8813a78622aaa181f8fb8c126efa30ce5/geodesk2-2.0.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-24 17:31:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "clarisma",
"github_project": "geodesk-py",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "geodesk2"
}