Metadata-Version: 2.1
Name: jinete
Version: 0.1.0
Summary: High Performance solving suite for the Pickup and Delivery Problem and its related extensions.
Home-page: https://github.com/garciparedes/jinete
Author: Sergio García Prado
Author-email: sergio@garciparedes.me
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: cached-property (>=1.5.1)
Requires-Dist: networkx (>=2.3)
Requires-Dist: matplotlib (>=3.1.1)
Requires-Dist: seaborn (>=0.9.0)
Requires-Dist: PuLP (>=1.6.10)
Provides-Extra: all
Requires-Dist: sphinx (<3.0.0) ; extra == 'all'
Requires-Dist: sphinx-rtd-theme ; extra == 'all'
Requires-Dist: sphinxcontrib-apidoc ; extra == 'all'
Requires-Dist: sphinxcontrib-plantuml ; extra == 'all'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'all'
Requires-Dist: m2r ; extra == 'all'
Requires-Dist: coverage ; extra == 'all'
Requires-Dist: codecov ; extra == 'all'
Requires-Dist: flake8 ; extra == 'all'
Requires-Dist: mypy ; extra == 'all'
Requires-Dist: coloredlogs ; extra == 'all'
Provides-Extra: docs
Requires-Dist: sphinx (<3.0.0) ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-apidoc ; extra == 'docs'
Requires-Dist: sphinxcontrib-plantuml ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
Requires-Dist: m2r ; extra == 'docs'
Provides-Extra: logs
Requires-Dist: coloredlogs ; extra == 'logs'
Provides-Extra: syntax
Requires-Dist: flake8 ; extra == 'syntax'
Requires-Dist: mypy ; extra == 'syntax'
Provides-Extra: tests
Requires-Dist: coverage ; extra == 'tests'
Requires-Dist: codecov ; extra == 'tests'


# jinete

<img align="right" width="15%" src="https://raw.githubusercontent.com/garciparedes/jinete/master/res/images/jinete.svg?sanitize=true" alt="jinete">

[![PyPI](https://img.shields.io/pypi/v/jinete.svg)](https://pypi.org/project/jinete)
[![Documentation](https://img.shields.io/website?down_color=red&down_message=broken&label=docs&up_color=success&up_message=passing&url=https%3A%2F%2Fgarciparedes.me%2Fjinete%2F)](https://garciparedes.me/jinete)
[![Travis (.org) branch](https://img.shields.io/travis/garciparedes/jinete/master.svg)](https://travis-ci.org/garciparedes/jinete/branches)
[![Codecov](https://img.shields.io/codecov/c/github/garciparedes/jinete.svg)](https://codecov.io/gh/garciparedes/jinete)
[![GitHub](https://img.shields.io/github/license/garciparedes/jinete.svg)](https://github.com/garciparedes/jinete/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/garciparedes/jinete.svg)](https://github.com/garciparedes/jinete)

## Description 

High Performance solving suite for the Pickup and Delivery Problem and its related extensions. 

*IMPORTANT*: This project is still under its early stage of development. So it's not recommended yet to use on real world projects. 

This library has been inspired (and created) by a Final Degree Project, which you can read at: https://github.com/garciparedes/tfg-pickup-and-delivery


## Getting Started

### Prerequisites
* `python>=3.7`

### Installation
```bash
pip install jinete
```

Here is a simple example about how to run `jinete` to solve a HashCode 2018 Online Qualification instance. 
```python
import jinete as jit

file_path = './res/datasets/hashcode/a_example.in'

solver = jit.Solver(
    loader=jit.FileLoader,
    loader_kwargs={
        'file_path': file_path,
        'formatter_cls': jit.HashCodeLoaderFormatter
    },
    algorithm=jit.InsertionAlgorithm,
)
result = solver.solve()
# ...

```

## Documentation
You can find the documentation at: https://garciparedes.me/jinete


## Development

First of all, you need to create a `virtualenv`:

```bash
python -m venv venv
source venv/bin/activate
```

Then install the library and all its extra dependencies (with the `all` option):

```bash
pip intall -e .[all]
```

To run code style checks you can simply type:
```bash
flake8
```

To perform the tests with coverage you can need to type:

```bash
coverage run -m unittest discover tests
```

## LICENSE
This project is licensed under [MIT](LICENSE) license.


