Skip to main content

A simple Python API for the WWLLN

Project description

⚡️ aiowwlln: A simple Python3 wrapper for WWLLN

CI PyPi Version License codecov Maintainability Say Thanks

aiowwlln is a simple, asyncio-driven Python library for retrieving information on lightning strikes from the World Wide Lightning Location Network (WWLLNN).

NOTE: This library is built on an unofficial API; therefore, it may stop working at any time.

Installation

pip install aiowwlln

Python Versions

aiowwlln is currently supported on:

  • Python 3.6
  • Python 3.7
  • Python 3.8

Usage

aiowwlln starts within an aiohttp ClientSession:

import asyncio

from aiohttp import ClientSession

from aiowwlln import Client


async def main() -> None:
    """Create the aiohttp session and run the example."""
    async with ClientSession() as websession:
        # YOUR CODE HERE


asyncio.get_event_loop().run_until_complete(main())

Create a client, initialize it, then get to it:

import asyncio
from datetime import datetime

from aiohttp import ClientSession

from aiowwlln import Client


async def main() -> None:
    """Create the aiohttp session and run the example."""
    async with ClientSession() as websession:
        client = aiowwlln.Client(websession)

        # Create a client and get all strike data – by default, data is cached for
        # 60 seconds (be a responsible data citizen!):
        client = Client(websession)
        await client.dump()

        # If you want to increase the cache to 24 hours, go for it:
        client = Client(websession, cache_seconds=60*60*24)
        await client.dump()

        # Get strike data within a 50 km radius around a set of coordinates (note that
        # the cache still applies):
        await client.within_radius(
            56.1621538, 92.2333561, 50, unit="metric"
        )

        # Get strike data within a 10 mile radius around a set of coordinates (note that
        # the cache still applies):
        await client.within_radius(
            56.1621538, 92.2333561, 10, unit="imperial"
        )

        # Get strike data within a 50 km radius around a set of coordinates _and_
        # within the last 10 minutes:
        await client.within_radius(
            56.1621538, 92.2333561, 50, unit="metric", window=timedelta(minutes=10)
        )


asyncio.get_event_loop().run_until_complete(main())

Contributing

  1. Check for open features/bugs or initiate a discussion on one.
  2. Fork the repository.
  3. (optional, but highly recommended) Create a virtual environment: python3 -m venv .venv
  4. (optional, but highly recommended) Enter the virtual environment: source ./venv/bin/activate
  5. Install the dev environment: script/setup
  6. Code your new feature or bug fix.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: script/test
  9. Update README.md with any new documentation.
  10. Add yourself to AUTHORS.md.
  11. Submit a pull request!

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

aiowwlln-2.0.5.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

aiowwlln-2.0.5-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file aiowwlln-2.0.5.tar.gz.

File metadata

  • Download URL: aiowwlln-2.0.5.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.7.6 Linux/5.0.0-1028-azure

File hashes

Hashes for aiowwlln-2.0.5.tar.gz
Algorithm Hash digest
SHA256 985be3f952c131c339ae85ca5200251d7f2e7b8bbe3103c7adfd8655b48fdb03
MD5 bfe56f16db834eac5a54d1c0689196e2
BLAKE2b-256 75faad44bb0abf988911b3d38df9cd8e5451b1d9435aeed99c8fb8697d98e879

See more details on using hashes here.

File details

Details for the file aiowwlln-2.0.5-py3-none-any.whl.

File metadata

  • Download URL: aiowwlln-2.0.5-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.7.6 Linux/5.0.0-1028-azure

File hashes

Hashes for aiowwlln-2.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ed159d07805424c15e9109c144918e6ed17d32f703b0ee83a44a338e8313e2ff
MD5 598e02000f575d7c4ae63edc295d9b28
BLAKE2b-256 6a6ec374eed0fd7fa74ce216d8226a8eb715e91ebc5be3ba774e736b5c678204

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