{ "info": { "author": "Flying Kiwi", "author_email": "github@flyingkiwibird.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "# EsiPysi\n\nEsiPysi (pronounced like \"Easy Peasy\") is a utility for accessing the Eve api called Esi. The goal of this project is \nto create a lightweight and fast tool which makes devloping with Esi easier.\n\n## Features\n\n* Auth storage and auto refreshing\n * If your access token expires, EsiPysi will acquire a new one\n* Fast API calling and JSON parsing using [aiohttp](https://aiohttp.readthedocs.io/en/stable/)\n * Uses asyncio and event loops so that the API calls are non-blocking\n* Light input validation\n * Only validates that the parameters are in the Esi Swagger Spec, does not validate types/values\n* Caching using Redis\n* Automatic retries for certain error codes\n * Typically those pesky 501s\n\n## Install\n\nInstall with pip:\n\n```\npip install EsiPysi\n```\n\nRequires python 3.5+\n\n## How to use\n\nGet familliar with the [ESI reference](https://esi.evetech.net/latest/#/) and [Eve SSO](http://eveonline-third-party-documentation.readthedocs.io/en/latest/sso/authentication.html)\n\nstart with an EsiPysi object, this will keep track of global settings like which Esi version to use (_latest is reccomended)\n\n```python\nfrom esipysi import EsiPysi\n\nesi = EsiPysi(\"https://esi.evetech.net/_latest/swagger.json?datasource=tranquility\", user_agent=\"Your User Agent Here\")\n```\n\nNow from that object you can create operations, pass the operation ID to the get_operation function\n\n```python\nop = esi.get_operation(\"get_search\")\n```\n\nIf it requires authorization you can use EsiAuth\n\nYou can either get one from your client info, access token, refresh token, and expire datetime (in UTC)\n```python\nfrom esipysi import EsiAuth\n\nauth = EsiAuth(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN, REFRESH_TOKEN, EXPIRES_AT)\nop.set_auth(auth)\n```\n\nOr you can get it from less data such as an authorization code you got back from the callback or just a refresh token:\n```python\nfrom esipysi import EsiAuth\n\nauth = await EsiAuth.from_authorization_code(CLIENT_ID, CLIENT_SECRET, AUTHORIZATION_CODE)\nauth = await EsiAuth.from_refresh_token(CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN)\nop.set_auth(auth)\n```\n\nAnd then you can execute that operation with parameters\n\n```python\nresult = await op.execute(categories=\"character\", search=\"Flying Kiwi Sertan\")\n```\n\n### Response Object\n\nEsiPysi returns a response object called EsiResponse, it contains the following:\n\n* `response.text` - The plain text of the body of the response\n* `resonse.json()` - The text decoded as json into a python Dict\n* `response.status` - The HTTP status code (likely 200)\n* `response.headers` - a [CIMultiDict](https://multidict.readthedocs.io/en/stable/multidict.html#cimultidict) which is a special dict cabable of holding multiple of the same key because headers are funky. They act just like a `Dict` with some extras.\n\n### Caching\n\nEsiPysi has caching provided by redis. First create a redis client.\n\nExample from [redis-py](https://github.com/andymccurdy/redis-py)\n\n```python\nimport redis\nr = redis.StrictRedis(host='localhost', port=6379, db=0)\n```\n\nNow create a RedisCache object and pass it to the EsiPysi object\n\n```python\nfrom esipysy import EsiPysi\nfrom esipysy.cache import RedisCache\ncache = RedisCache(r)\nesi = EsiPysi(\"https://esi.evetech.net/_latest/swagger.json?datasource=tranquility\", user_agent=\"Your User Agent Here\", cache=cache)\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/FlyingKiwiBird/EsiPysi", "keywords": "Esi Eve Python Api", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "EsiPysi", "package_url": "https://pypi.org/project/EsiPysi/", "platform": "", "project_url": "https://pypi.org/project/EsiPysi/", "project_urls": { "Homepage": "https://github.com/FlyingKiwiBird/EsiPysi" }, "release_url": "https://pypi.org/project/EsiPysi/0.8.3/", "requires_dist": null, "requires_python": "", "summary": "A client for ESI, the API for Eve Online", "version": "0.8.3" }, "last_serial": 5867111, "releases": { "0.3.4": [ { "comment_text": "", "digests": { "md5": "c2a3f9b7f21563a6b0f75b8f6b64d995", "sha256": "33a08179d058aa17d679001f0c82ac331f1963c04f206250ac0a016ac02c6df8" }, "downloads": -1, "filename": "EsiPysi-0.3.4.tar.gz", "has_sig": false, "md5_digest": "c2a3f9b7f21563a6b0f75b8f6b64d995", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6808, "upload_time": "2018-05-03T00:01:16", "url": "https://files.pythonhosted.org/packages/a4/9f/66a3aa1f18e91e9150f1cebb666da945738ce2dbe9a7e829c26fe4758f9b/EsiPysi-0.3.4.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "94b56bdf2f2120fb3d8a80e24a09c936", "sha256": "4da4c412650ba7f88d481e828a996cde5daf56fde1fdc6d784044184dbf7359c" }, "downloads": -1, "filename": "EsiPysi-0.4.0.tar.gz", "has_sig": false, "md5_digest": "94b56bdf2f2120fb3d8a80e24a09c936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7158, "upload_time": "2018-05-17T23:21:42", "url": "https://files.pythonhosted.org/packages/06/84/d5facf2d0643befc2c2dc9d5f63451d82c3db1bbc92720c631c57a673e34/EsiPysi-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "fd05a2c3f81fc5ed7fe8bf8f0cb20aa3", "sha256": "9571b4222eb846003dc439ed2ef7b9c7c994729add10c0f199ad5b9448718c01" }, "downloads": -1, "filename": "EsiPysi-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fd05a2c3f81fc5ed7fe8bf8f0cb20aa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10071, "upload_time": "2018-09-03T05:05:24", "url": "https://files.pythonhosted.org/packages/9b/44/3e476285309f690f76d86713bbfc34c0b5cc75f5490dd37348c041817213/EsiPysi-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56214a4cc8169ff3b546d55cc7bacd00", "sha256": "71e74d5089d24b9d0d4f4ecb06da52276244d293086a09a6eeb79fc64f1284f9" }, "downloads": -1, "filename": "EsiPysi-0.5.0.tar.gz", "has_sig": false, "md5_digest": "56214a4cc8169ff3b546d55cc7bacd00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7612, "upload_time": "2018-09-03T05:05:25", "url": "https://files.pythonhosted.org/packages/00/91/ca955512b6dc1b77c4d42f8e537ffa30f0364bb2aedbbcb383a1f905b8fd/EsiPysi-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "92e7152c7639bf3c046ecdf62242c3ca", "sha256": "db5f9374a3bdb201f1a4948d429cbd18f1fcac2dd726bc6a12e012cce46ba0c4" }, "downloads": -1, "filename": "EsiPysi-0.5.1.tar.gz", "has_sig": false, "md5_digest": "92e7152c7639bf3c046ecdf62242c3ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8032, "upload_time": "2018-10-10T20:36:37", "url": "https://files.pythonhosted.org/packages/36/ea/1d365683825c24e5ebf2d8700618f75c93e930849450b89de09d009c7288/EsiPysi-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "097b095566c516cce275e67c63a17770", "sha256": "c1003f90778fe1ce5e8e7a2607bb9c42d48aa7e6eb1a0e77b29a1eb238f36a0e" }, "downloads": -1, "filename": "EsiPysi-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "097b095566c516cce275e67c63a17770", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10490, "upload_time": "2018-10-13T15:53:11", "url": "https://files.pythonhosted.org/packages/50/96/8a4cdf3a29d46fc50b8896a039841b28f328bd046a6730ba021877cbbf86/EsiPysi-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "513efcc7b4f24ff84bff618250d970af", "sha256": "037d205051d47734925e79fe41cbb00b3058f0e9edd84add631a6dd761ca0e6f" }, "downloads": -1, "filename": "EsiPysi-0.5.2.tar.gz", "has_sig": false, "md5_digest": "513efcc7b4f24ff84bff618250d970af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8004, "upload_time": "2018-10-13T15:53:14", "url": "https://files.pythonhosted.org/packages/b0/a4/dee3ae81577bbdb7195703eebf44b282ee6030eddab025a912170c1e9a50/EsiPysi-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "173614812734aaccdb5f67eec9183aeb", "sha256": "14e7e9c57909ff469e801ef281cf3f785ee4b0dcbbf2feb1388e5eb87bbf589d" }, "downloads": -1, "filename": "EsiPysi-0.6.0.tar.gz", "has_sig": false, "md5_digest": "173614812734aaccdb5f67eec9183aeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8260, "upload_time": "2018-11-23T17:36:33", "url": "https://files.pythonhosted.org/packages/6a/c1/0d0dc3231e11ef8e0048bb7290af2aaac14b92197dd07b4713fdf04f7263/EsiPysi-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f19dd97a920f872fb1e072a0c9672012", "sha256": "d65423b2cdaa41fb8cf39f01b1e614c9e8a9ea3f55e504a007d22e7f4cf11991" }, "downloads": -1, "filename": "EsiPysi-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f19dd97a920f872fb1e072a0c9672012", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8415, "upload_time": "2018-11-23T19:11:08", "url": "https://files.pythonhosted.org/packages/6e/dd/980d070ff5470f42df6dd45c7bb6cc86447966b0d83fb46dc342ba22a716/EsiPysi-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "cd02bb01b0807543814b1ad08231cde1", "sha256": "7ceea89c0e1c840f2debee7087a9af108384f223881823db9a6878122b8c8d3d" }, "downloads": -1, "filename": "EsiPysi-0.7.0.tar.gz", "has_sig": false, "md5_digest": "cd02bb01b0807543814b1ad08231cde1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8458, "upload_time": "2018-11-24T18:09:58", "url": "https://files.pythonhosted.org/packages/9d/d8/0bce1374289b5edff41b282252bc488b5026b4c36fd5cf77303a3f2173ba/EsiPysi-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "4b4dd625b9d531d1140fa2d90be0187d", "sha256": "6e121315a4aaf447968d0541d31eee92ee8d94e0f794544f6518b7e871fabf22" }, "downloads": -1, "filename": "EsiPysi-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4b4dd625b9d531d1140fa2d90be0187d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13043, "upload_time": "2019-05-16T19:39:24", "url": "https://files.pythonhosted.org/packages/88/23/8f377a75ced4fab79508e5f54259bb33de81f2c2cff27755042206154b9e/EsiPysi-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23c5dfdc7d6ef20bc1e663ea846780f8", "sha256": "880609b349a581ab5ea3a05d1f47782f672ef0acf70986d192a96e91f5dc8b40" }, "downloads": -1, "filename": "EsiPysi-0.8.0.tar.gz", "has_sig": false, "md5_digest": "23c5dfdc7d6ef20bc1e663ea846780f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8805, "upload_time": "2019-05-16T19:39:25", "url": "https://files.pythonhosted.org/packages/21/14/fc91a3f567b5cd0577b89ba63103d7adfa74064c7c5623bacd365863fb20/EsiPysi-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "96758e5292a2b0f00bae1ea1cb60dc78", "sha256": "8f9f90ecb840f488fc7e7a08dd60657c4d8f15b0b170c5fec394bbe3982155a7" }, "downloads": -1, "filename": "EsiPysi-0.8.1.tar.gz", "has_sig": false, "md5_digest": "96758e5292a2b0f00bae1ea1cb60dc78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8931, "upload_time": "2019-05-16T20:04:59", "url": "https://files.pythonhosted.org/packages/bd/dc/e825a77db4e11cf5ad106286ac3688624993fa79b68d917fdd079b509d3d/EsiPysi-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "0aab7fe9c122604d703bc4d7aa2c321a", "sha256": "8f884db45dd3eb133ca48415bde36c690aabb583e093ba07c67b8bb38d5281d5" }, "downloads": -1, "filename": "EsiPysi-0.8.2.tar.gz", "has_sig": false, "md5_digest": "0aab7fe9c122604d703bc4d7aa2c321a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8950, "upload_time": "2019-08-02T01:10:21", "url": "https://files.pythonhosted.org/packages/f3/72/ac5944027901911085aec13e0c76d804bb0100550c2cdd11f3dfee54443a/EsiPysi-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "479bf547aa4027c415eb1b92e37187f9", "sha256": "cf56c2a8ac1862d743a4feefb2e6fb56a143c3ac88066952b5ee3b4d847fe803" }, "downloads": -1, "filename": "EsiPysi-0.8.3.tar.gz", "has_sig": false, "md5_digest": "479bf547aa4027c415eb1b92e37187f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8957, "upload_time": "2019-09-21T20:28:55", "url": "https://files.pythonhosted.org/packages/a4/4f/c639d6ae3000aa5e70dcc0f2450962e3d14f1a5ef7213862990d4c9c1f42/EsiPysi-0.8.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "479bf547aa4027c415eb1b92e37187f9", "sha256": "cf56c2a8ac1862d743a4feefb2e6fb56a143c3ac88066952b5ee3b4d847fe803" }, "downloads": -1, "filename": "EsiPysi-0.8.3.tar.gz", "has_sig": false, "md5_digest": "479bf547aa4027c415eb1b92e37187f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8957, "upload_time": "2019-09-21T20:28:55", "url": "https://files.pythonhosted.org/packages/a4/4f/c639d6ae3000aa5e70dcc0f2450962e3d14f1a5ef7213862990d4c9c1f42/EsiPysi-0.8.3.tar.gz" } ] }