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. Install the dev environment: make init.
  4. Enter the virtual environment: source .venv/bin/activate
  5. Code your new feature or bug fix.
  6. Write a test that covers your new functionality.
  7. Run tests and ensure 100% code coverage: make coverage
  8. Add yourself to AUTHORS.md.
  9. 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.4.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiowwlln-2.0.4-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aiowwlln-2.0.4.tar.gz
  • Upload date:
  • Size: 5.8 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.4.tar.gz
Algorithm Hash digest
SHA256 df62ab578ffa4afd38dcb97740d73b6bf6eae58b116f78538895e92b57aa6ac3
MD5 eeac6ed8ca9f939f47d015879af4ee75
BLAKE2b-256 8695d33437dc75ca54b626e2455b3d9bfeebbe3c3fa4bf12f3d790bde12b5564

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aiowwlln-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 6.0 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ab438f69556490d3ceda8cfbba806bbbe5ecef193e762d4b20b7a2ef8038a9a3
MD5 b99a49d068325226f57082b5a84f9680
BLAKE2b-256 0d66282c356e16685328ae7da99bf2b15afcb8ab7dce7a93276f77b82c5b3683

See more details on using hashes here.

Supported by

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