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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file nasasync-0.0.2a0.tar.gz.

File metadata

  • Download URL: nasasync-0.0.2a0.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for nasasync-0.0.2a0.tar.gz
Algorithm Hash digest
SHA256 39477ee3fe68923897229b2a18549f988c5a1a6838e95a65fa785c157cebb809
MD5 7db1cc342d71114346791d2aee691cec
BLAKE2b-256 2ab10307e7083043adf9157836813645d20b96bf4fa10723fb2322ac5d819ddd

See more details on using hashes here.

File details

Details for the file nasasync-0.0.2a0-py3-none-any.whl.

File metadata

  • Download URL: nasasync-0.0.2a0-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for nasasync-0.0.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 c401fda32acb4bae8365ab082e4eb7ffeef05175a365256a91c2e6c6b10cece3
MD5 50b86301cbd91022b877c800a369bdf2
BLAKE2b-256 b21125f0bc70f414ee7a662488abc526256d13e134d12049d8c0699d4a9b05f9

See more details on using hashes here.

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