A simple Python API for the WWLLN
Project description
⚡️ aiowwlln: A simple Python3 wrapper for WWLLN
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.5
- Python 3.6
- Python 3.7
However, running the test suite currently requires Python 3.6 or higher; tests run on Python 3.5 will fail.
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
- Check for open features/bugs or initiate a discussion on one.
- Fork the repository.
- Install the dev environment:
make init
. - Enter the virtual environment:
pipenv shell
- Code your new feature or bug fix.
- Write a test that covers your new functionality.
- Run tests and ensure 100% code coverage:
make coverage
- Add yourself to
AUTHORS.md
. - Submit a pull request!
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
aiowwlln-1.0.0.tar.gz
(6.1 kB
view details)
Built Distribution
File details
Details for the file aiowwlln-1.0.0.tar.gz
.
File metadata
- Download URL: aiowwlln-1.0.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 992b6639e399abb9429da309ebb38a5f8eddacf1f45d8ad992c79671430f4156 |
|
MD5 | 8a99979b635720427aaf495cc206ee71 |
|
BLAKE2b-256 | bd51d9b5d840caa89876d8d9dd5462bac68808340b831c660dd2475856b0692f |
File details
Details for the file aiowwlln-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: aiowwlln-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f9d5aaad49da13cf5431b17d9a77ca9fd826a6ed5bdfcd49502523046f362bd |
|
MD5 | b6d01595e777bcfb961b6aeb847d26c7 |
|
BLAKE2b-256 | 5af9deda751235a7c02775eea37869c0c957d732f2ab0fb0ccd1080046cc6827 |