Metadata-Version: 2.4
Name: GeoBank
Version: 0.4.1
Summary: A Django package for countries and cities with translations.
Home-page: https://github.com/ali-hv/geobank
Author: Ali Hosseinverdi
Author-email: alihv5000@gmail.com
License: MIT
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Django>=3.2
Requires-Dist: django-modeltranslation>=0.18.0
Requires-Dist: Pillow>=9.0
Requires-Dist: requests
Requires-Dist: tqdm
Provides-Extra: celery
Requires-Dist: celery>=5.0; extra == "celery"
Dynamic: license-file

# GeoBank

A Django package that provides models for Countries and Cities with translation support using `django-modeltranslation`.

## Installation

1. Install the package:
   ```bash
   pip install GeoBank
   ```

2. Add `geobank` and `modeltranslation` to your `INSTALLED_APPS` in `settings.py`. **Note:** `modeltranslation` must be added **before** `django.contrib.admin`.

   ```python
   INSTALLED_APPS = [
       'modeltranslation',
       'django.contrib.admin',
       # ...
       'geobank',
   ]
   ```

3. Configure your languages in `settings.py`:
   ```python
   LANGUAGES = (
       ('en', 'English'),
       ('fa', 'Persian'),
       # ... other languages
   )
   ```

4. Run migrations:
   ```bash
   python manage.py makemigrations
   python manage.py migrate
   ```

5. Populate the database:
   ```bash
   python manage.py populate_geobank
   ```
   
   To run in the background (requires Celery):
   ```bash
   python manage.py populate_geobank --background
   ```

   To choose the cities population:
   ```bash
   python manage.py populate_geobank --population-gte {500, 1000, 5000, 15000}
   ```

## Requirements

- Django >= 3.2
- django-modeltranslation >= 0.18.0
- Pillow >= 9.0
- Celery (optional, for background tasks)
- tqdm (for progress bars)
- requests

## TODO
- [ ] Improve data gathering and population faster using async scrips
- [ ] Add more fields to models
