Scalable and efficient approach for reverse geocoding using Uber H3
- Clone this repository
git clone https://github.com/a1d4r/reverse-geocoding-uber-h3.git
cd reverse-geocoding-uber-h3 - If you don't have
Poetryinstalled run:
make poetry-download- Install dependencies:
make installInstall pre-commit hooks:
make pre-commit-installFormat source code:
make formatCheck codestyle and run static linters:
make lintRun tests:
make testOr everything in one command:
make format lint test
Makefile contains a lot of functions for faster development.
1. Download and remove Poetry
To download and install Poetry run:
make poetry-downloadTo uninstall
make poetry-remove2. Install all dependencies and pre-commit hooks
Install requirements:
make installPre-commit hooks coulb be installed after git init via
make pre-commit-install3. Codestyle
Automatic formatting uses pyupgrade, isort and black.
make codestyle
# or use synonym
make formatCodestyle checks only, without rewriting files:
make check-codestyleNote:
check-codestyleusesisort,blackanddarglintlibrary
Update all dev libraries to the latest version using one comand
make update-dev-deps4. Code security
make check-securityThis command identifies security issues with Safety and Bandit.
make check-securityTo validate pyproject.toml use
make check-poetry5. Linting and type checks
Run static linting with pylint and mypy:
make static-lint6. Tests
Run pytest
make test7. All linters
Of course there is a command to rule run all linters in one:
make lintthe same as:
make format lint test8. Cleanup
Delete pycache files
make pycache-removeRemove package build
make build-removeDelete .DS_STORE files
make dsstore-removeRemove .mypycache
make mypycache-removeOr to remove all above run:
make cleanupThis project is licensed under the terms of the MIT license. See LICENSE for more details.
@misc{geocoding,
author = {a1d4r},
title = {Reverse geocoding algorithm based on Uber H3},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/a1d4r/thesis-project}}
}This project was generated with python-package-template