Small async wrapper for "space-track-api" package.
Project description
AsyncSpaceTrackApi async client
Small async wrapper for “space-track-api” package.
Requirements
Python >= 3.5.0
space-track-api > 1.0.0
aiohttp >= 2.0.7
Installing
pip install aio-space-track-api
Getting started
To retrieve something from Space-Track:
# -*- coding: utf-8 -*-
import asyncio
from pprint import pprint
from aio_space_track_api import AsyncSpaceTrackApi
async def main(loop):
async with AsyncSpaceTrackApi(loop=loop, login='<YOUR_LOGIN>', password='<YOUR_PASSWORD>') as api:
tle_list = await api.tle(EPOCH='>now-3',
NORAD_CAT_ID=(25544, 25541,),
order_by=('EPOCH desc', 'NORAD_CAT_ID',),
predicate=('EPOCH', 'NORAD_CAT_ID', 'TLE_LINE0', 'TLE_LINE1', 'TLE_LINE2',))
pprint(tle_list, indent=2)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
Create simple proxy Space-Track server:
# -*- coding: utf-8 -*-
from aiohttp import web
from aio_space_track_api import AsyncSpaceTrackApi
async def query(request):
params = {mvk: request.query.getall(mvk) for mvk in request.query.keys()}
result = await app['space_track'].query(**params)
if isinstance(result, (dict, list)):
return web.json_response(result)
elif isinstance(result, str):
return web.Response(text=result)
return web.Response(body=result)
async def start_space_track(app):
app['space_track'] = AsyncSpaceTrackApi(loop=app.loop, login='<YOUR_LOGIN>', password='<YOUR_PASSWORD>')
await app['space_track'].login()
async def cleanup_space_track(app):
await app['space_track'].logout()
app['space_track'].session.close()
if __name__ == '__main__':
app = web.Application()
app.on_startup.append(start_space_track)
app.on_cleanup.append(cleanup_space_track)
app.router.add_get('/', query)
web.run_app(app, port=8080)
Retrieve with “httpie” <https://github.com/jakubroztocil/httpie> package:
$ http 'http://localhost:8080/?EPOCH=>now-2&NORAD_CAT_ID=25544&order_by=EPOCH%20desc&order_by=NORAD_CAT_ID&predicate=NORAD_CAT_ID&predicate=EPOCH&NORAD_CAT_ID=25541&predicate=TLE_LINE0&predicate=TLE_LINE1&predicate=TLE_LINE2' HTTP/1.1 200 OK Content-Length: 787 Content-Type: application/json; charset=utf-8 Date: Fri, 19 May 2017 15:36:30 GMT Server: Python/3.6 aiohttp/2.0.7 [ { "EPOCH": "2017-05-18 12:54:34", "NORAD_CAT_ID": "25544", "TLE_LINE0": "0 ISS (ZARYA)", "TLE_LINE1": "1 25544U 98067A 17138.53789694 +.00010471 +00000-0 +16649-3 0 9993", "TLE_LINE2": "2 25544 051.6431 186.1005 0005417 167.7458 303.2068 15.53904648057142" }, { "EPOCH": "2017-05-18 01:38:13", "NORAD_CAT_ID": "25541", "TLE_LINE0": "0 ARIANE 44LP DEB", "TLE_LINE1": "1 25541U 88109H 17138.06821101 +.00000205 +00000-0 +11912-2 0 9995", "TLE_LINE2": "2 25541 006.9551 084.3526 7116887 037.1179 355.1935 02.36325430158541" }, { "EPOCH": "2017-05-17 18:20:34", "NORAD_CAT_ID": "25544", "TLE_LINE0": "0 ISS (ZARYA)", "TLE_LINE1": "1 25544U 98067A 17137.76428422 +.00000891 +00000-0 +20809-4 0 9995", "TLE_LINE2": "2 25544 051.6403 189.9518 0005214 167.7282 292.6823 15.54019900057027" } ]
Source code
The latest developer version is available in a github repository: https://github.com/nkoshell/aio-space-track-api
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file aio-space-track-api-2.1.1.tar.gz
.
File metadata
- Download URL: aio-space-track-api-2.1.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfda8d60a09a0ce594009eba40a4ec8fda620c677578b69e539d8a7bf0ab3999 |
|
MD5 | c64824f46d6a80b46539c462262e7a4f |
|
BLAKE2b-256 | 414aa51c5921c74454b29513a4b3f1c90fc861d1440a8d608445b4bf1d89fbf4 |