Skip to main content

AsyncIO Python wrapper to News API

Project description

asyncnewsapi

License Build Status PyPI version Code Coverage Join the chat at https://gitter.im/pkpintoHUB/asyncnewsapi

An asyncio Python library to perform request against News API. It provides direct access to the endpoints defined in the documentation.

Two classes are implemented, returning async iterators for the request results. Session will return an iterator through the results of a single request. Alternatively, Stream will return an infinite iterator, performing successive requests and continuing to iterate through the results. A minimal implementation can be as simple as:

import asyncio

from asyncnewsapi import Session

async def main():
    async with Session() as api:
        async for article in api.top_headlines(language='en'):
            print(article['title'])

if __name__ == '__main__':
    asyncio.run(main())

The API key should be provided as an environment variable named NEWSAPI_KEY:

export NEWSAPI_KEY="..."

Go to the NewsAPI website to create a free API key.

This library is loosely based on / inspired by newsapi-python, a requests based library by Matt Lisivick.

Installation

Use pip to install this package, either directly from pypi:

pip install asyncnewsapi

or after cloning from github:

pip install .

Tests

Unit tests have been implemented using pytest. To run them, additional dependencies need be installed:

pip install ".[test]"

The tests can then be run using:

python -m pytest -v tests/

from the root of the repo (running it explicitly on the tests/ directory avoids interference with the venv folders).

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

asyncnewsapi-0.2.1.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

asyncnewsapi-0.2.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file asyncnewsapi-0.2.1.tar.gz.

File metadata

  • Download URL: asyncnewsapi-0.2.1.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for asyncnewsapi-0.2.1.tar.gz
Algorithm Hash digest
SHA256 9986573b7fb062dab7e27a4e0a07d610e60218fcc337ab217a0bb7104c18039c
MD5 a03f0bfa3c4d8761d07db714ddc0e2a3
BLAKE2b-256 efeed32348fb48b16a746b6d9f50c06665a5cc00ee877f72b4a1be5db93d7ed9

See more details on using hashes here.

File details

Details for the file asyncnewsapi-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: asyncnewsapi-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for asyncnewsapi-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 54abb36ddd9548b011e0ae8ec885002be469c9f0c8bc38ca771f2d74e1f97366
MD5 5d8604fe86823fc613dc886bfd6d63bd
BLAKE2b-256 42d60ce0c053427d0d0f2bfc107cabb0ce7a19d9343f23dabed701be54d1ba99

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