Skip to main content

A python API wrapper for the NASA API

Project description

nasa.py

GitHub license file GitHub commit activity

Work in progress

to run the docs use

sphinx-autobuild -a docs/source docs/_build/html --watch nasa --open-browser

Demo

APOD image EPIC epic_1b_20230216000831

Installation

Currently the package is not available on pypi, this means that you can't install it using just pip. To install Nasa.py you need to install git and to run this command

.. code-block:: text

pip install git+https://github.com/Snipy7374/nasa.py

Requirements

.. code-block:: text

aiohttp
aiofiles
requests

Basic usage

Create a client object

.. code-block:: python3

import typing as t
from nasa import NasaSyncClient

if t.TYPE_CHECKING:
    from nasa import AstronomyPicture

client = NasaSyncClient(token="TOKEN_HERE")

get the todays astronomy picture

.. code-block:: python3

astronomy_picture: AstronomyPicture = client.get_astronomy_picture()

save an image

.. code-block:: python3

astronomy_picture.image.save("image.png")

This library also supports Async requests

.. code-block:: python3

import typing as t
from nasa import NasaAsyncClient

if t.TYPE_CHECKING:
    from nasa import AstronomyPicture

client = NasaAsyncClient(token="TOKEN_HERE")

async def main():
    async with client:
        astronomy_picture: AstronomyPicture = await client.get_astronomy_picture()
        await astronomy_picture.image.save("image.png")

Currently supported NASA API endpoints

  • APOD (Astronomy picture of the day) - /planetary/apod - (all query parameters)
  • EPIC (Earth Polychromatic Imaging Camera) - /EPIC/api - (all)

TODO

  • Add is_video property on AstronomyPicture (based on media_type)
  • Add support for the count query parameter on /planetary/apod endpoint to get multiple random image
  • Solve typing issues with typing.overloads on client.py
  • Support other endpoints
    • Mars rover photos
    • NASA image and video library
  • Add async client & methods
  • Add logging
  • Add docs :)
  • Add developing tools
    • nox
    • pyright
    • black
    • flake8
    • pre-commit
  • Add workflows on github
    • typing check
    • flake8
    • black
  • Create the first release
    • Add package configuration to publish on pypi (pyproject.toml)
    • Upload the project on PyPi
  • Customize the docs
    • add custom colors
  • Add examples
    • upload on github
  • docs: improve the structure of payloads and add Dev docs
  • docs: add contributing section

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nasasync-0.0.2a0.tar.gz (3.4 MB view hashes)

Uploaded Source

Built Distribution

nasasync-0.0.2a0-py3-none-any.whl (17.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page