Metadata-Version: 2.4
Name: aa-routing
Version: 1.0.0
Summary: AllianceAuth Routing and Pathfinding
Keywords: allianceauth,eveonline
Author-email: Joel Falknau <joel.falknau@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Environment :: Web Environment
Classifier: Framework :: Celery
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.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 :: Only
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: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
License-File: LICENSE
Requires-Dist: allianceauth>=4,<6
Requires-Dist: django-eveonline-sde
Requires-Dist: django-solo>=2,<3
Requires-Dist: networkx
Project-URL: Homepage, https://gitlab.com/tactical-supremacy/aa-routing
Project-URL: Source, https://gitlab.com/tactical-supremacy/aa-routing
Project-URL: Tracker, https://gitlab.com/tactical-supremacy/aa-routing/-/issues

# Routing for Alliance Auth

Routing is a pathfinding plugin for [Alliance Auth](https://gitlab.com/allianceauth/allianceauth/).

## Features

- def route_path(source: int, destination: int, mode="p_shortest",  algorithm="astar", edges: list = [], static_cache: bool = False) -> List[int]:
- def route_length(source: int, destination: int, mode="p_shortest",  algorithm="astar", edges: List = [], static_cache: bool = False ) -> int:
- def systems_range(source: int, range: int, mode="p_shortest", edges: list = [], static_cache: bool = False) -> List:

- A pregenerated optional Graph dict, to reduce DB load and processing for mass use, cannot guarantee accuracy without shipping new versions.

## Implementations

### Planned

AA Drifters
AA Incursions

## Installation

Routing is an App for [Alliance Auth](https://gitlab.com/allianceauth/allianceauth/), Please make sure you have this installed. Routing is not a standalone Django Application

### Step 1 - Install app

```shell
pip install aa-routing
```

### Step 2 - Configure Auth settings

Configure your Auth settings (`local.py`) as follows:

- Add `'routing'` to `INSTALLED_APPS`
- Add below lines to your settings file:

### Step 3 - Maintain Alliance Auth

- Run migrations `python manage.py migrate`
- Gather your staticfiles `python manage.py collectstatic`
- Restart your project `supervisorctl restart myauth:`

### Step 4 - Pull Required Data

```bash
python manage.py shell
```

```python
from routing.tasks import import_trig_data

import_trig_data()
```

## Settings

| Name | Description | Default |
| --- | --- | --- |

## Development

Regenerating the static procompute

`python manage.py routing_precompute`
drag from `routing_output.txt` to `static_data.py`

## Contributing

Make sure you have signed the [License Agreement](https://developers.eveonline.com/resource/license-agreement) by logging in at <https://developers.eveonline.com> before submitting any pull requests. All bug fixes or features must not include extra superfluous formatting changes.

