Skip to main content

# Introduction
**************

[![Build Status](https://travis-ci.org/kriberg/esy.svg?branch=master)](https://travis-ci.org/kriberg/esy)
[![Coverage Status](https://coveralls.io/repos/github/kriberg/esy/badge.svg?branch=master)](https://coveralls.io/github/kriberg/esy?branch=master)
[![Documentation Status](https://readthedocs.org/projects/esy/badge/?version=latest)](https://esy.readthedocs.io/en/latest/?badge=latest)

There are many options for consuming the ESI web services. ESY aims to be an easy-to-use library with the nuts and
bolts of dealing with an OpenAPI interface abstracted away. ESY was created to have an interface reminscient of Entity's
gloriously pythonic [eveapi](https://github.com/ntt/eveapi/) library and to

## Installation

The latest stable version of ESY is available from PyPI:
```bash
$ pip install esy
```

## Documentation

Documentation is available at [esy.readthedocs.io](https://esy.readthedocs.io/en/latest/).

For documentation of the various ESI routes, ESY also provides a
[terse list](https://esy.readthedocs.io/en/latest/source/esi.html) of their parameters and return types. Further
information can be explored at the main [ESI documentation site](https://esi.evetech.net/ui)

## Usage

To use ESI, first initialize a client:

```python
from esy.client import ESIClient
client = ESIClient.get_client('my-user-agent')
```

The client can take a second or two to initialize, as the swagger specification is downloaded and parsed. To speed this
up, you can download the specification locally:

```bash
$ curl https://esi.evetech.net/latest/swagger.json -o swagger.json
```

Then initialize the client using the local file:

```python
import json
from esy.client import ESIClient

with open('swagger.json', 'r') as spec_file:
spec = json.load(spec_file)
client = ESIClient.get_client('my-user-agent', spec=spec)
```

For production instances, keeping the spec in [Redis](https://redis.io) or some other cache is highly recommended.

Once your client is initialized, you can fetch data:

```python
from esy.client import ESIClient
client = ESIClient.get_client('my-user-agent')

# Get list of alliances
alliances = client.Alliance.get_alliances()

# Get info on a corporation
evolution = client.Corporation.get_corporations_corporation_id(corporation_id=144749962)
print(evolution)

{'alliance_id': 1727758877,
'ceo_id': 144509256,
'creator_id': 144509256,
'date_founded': datetime.datetime(2003, 7, 30, 8, 33, tzinfo=tzutc()),
'description': 'Those who cannot adapt become victims of Evolution.',
'home_station_id': 60013843,
'member_count': 316,
'name': 'Evolution',
'shares': 1000,
'tax_rate': 0.5,
'ticker': 'EVOL',
'url': 'http://www.eve-evol.com',
'faction_id': None}


# Get paginated asset list
swag = client.Corporation.get_corporations_corporation_id_assets(corporation_id=144749962,
_token='esi token')
# Loop through the asset pages
for page in swag:
for asset in page:
print(asset.get('type_id'),
asset.get('location_id'))
# 22457
# 16074150552
```



## Development

ESY uses the [Bravado](https://github.com/Yelp/bravado-core) OpenAPI library to parse the ESI swagger schema and create
an usable interface. The purpose of creating a custom wrapper of Bravado for ESI, is to make the interface a bit more
user friendly. Pagination is handled automatically by returning generators for any route which accepts a page
parameter, while non-paginated data is handled in their native data type. Tokens can be set per-call, instead of
per-client, allowing for using headers and still getting data for many tokens without the ned to reinitialize the client.


Release files for esy 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esy 1.0.0
File Size Uploaded
esy-1.0.0.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for esy 1.0.0
File Interpreter ABI Platform
esy-1.0.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 20.6 kB

Release files / esy-1.0.0.tar.gz

Download URL esy-1.0.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
872adf4d926a9bb0e25629a94bc4c9dbbf27350194b6526557093da939fa83e7
BLAKE2b-256 checksum
How to use checksums
3b0e71de6ebdcfc92c147baf6750ca9ab35e1694c0d9730687892cdc910ab3d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / esy-1.0.0-py2.py3-none-any.whl

Download URL esy-1.0.0-py2.py3-none-any.whl
Size 10.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
9407d19f42fe5eaa0ff5fa8a63ae611218e80fc853478fce97dd2f773275163c
BLAKE2b-256 checksum
How to use checksums
ddc882e41d56c8e932d1086580ae8f32f950a97391ade69c3107f8a2a205dc62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page