Skip to content

Scalable and efficient approach for reverse geocoding using Uber H3

License

Notifications You must be signed in to change notification settings

a1d4r/reverse-geocoding-uber-h3

Repository files navigation

Thesis project

Scalable and efficient approach for reverse geocoding using Uber H3

Setup

  1. Clone this repository
git clone https://github.com/a1d4r/reverse-geocoding-uber-h3.git
cd reverse-geocoding-uber-h3 
  1. If you don't have Poetry installed run:
make poetry-download
  1. Install dependencies:
make install

Development

Install pre-commit hooks:

make pre-commit-install

Format source code:

make format

Check codestyle and run static linters:

make lint

Run tests:

make test

Or everything in one command:

make format lint test

Advanced Makefile usage

Makefile contains a lot of functions for faster development.

1. Download and remove Poetry

To download and install Poetry run:

make poetry-download

To uninstall

make poetry-remove

2. Install all dependencies and pre-commit hooks

Install requirements:

make install

Pre-commit hooks coulb be installed after git init via

make pre-commit-install

3. Codestyle

Automatic formatting uses pyupgrade, isort and black.

make codestyle

# or use synonym
make format

Codestyle checks only, without rewriting files:

make check-codestyle

Note: check-codestyle uses isort, black and darglint library

Update all dev libraries to the latest version using one comand

make update-dev-deps

4. Code security

make check-security

This command identifies security issues with Safety and Bandit.

make check-security

To validate pyproject.toml use

make check-poetry

5. Linting and type checks

Run static linting with pylint and mypy:

make static-lint

6. Tests

Run pytest

make test

7. All linters

Of course there is a command to rule run all linters in one:

make lint

the same as:

make format lint test

8. Cleanup

Delete pycache files

make pycache-remove

Remove package build

make build-remove

Delete .DS_STORE files

make dsstore-remove

Remove .mypycache

make mypycache-remove

Or to remove all above run:

make cleanup

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@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}}
}

Credits 🚀 Your next Python package needs a bleeding-edge project structure.

This project was generated with python-package-template