A clean, async-focused Python3 API for IQVIA data
Project description
🌻 pyiqvia: A clean, async-focused Python3 API for IQVIA™
pyiqvia
is an async-focused Python3 library for allergen, asthma, and disease data from
the IQVIA™ family of websites (such as Pollen.com,
FluStar, and more).
Python Versions
pyiqvia
is currently supported on:
- Python 3.10
- Python 3.11
- Python 3.12
Installation
pip install pyiqvia
Usage
import asyncio
from aiohttp import ClientSession
from pyiqvia import Client
async def main() -> None:
"""Run!"""
# Note that ZIP codes must be provided as strings:
client = Client("80012")
# Get current allergen information:
await client.allergens.current()
# Get more information on the current allergen outlook:
await client.allergens.outlook()
# Get extended forecast allergen information:
await client.allergens.extended()
# Get historic allergen information:
await client.allergens.historic()
# Get current asthma information:
await client.asthma.current()
# Get extended forecast asthma information:
await client.asthma.extended()
# Get historic asthma information:
await client.asthma.historic()
# Get current cold and flu information:
await client.disease.current()
# Get extended forecast cold and flu information:
await client.disease.extended()
# Get historic cold and flu information:
await client.disease.historic()
asyncio.run(main())
Retries
By default, pyiqvia
will retry appropriate errors 4 times (with an exponentially
increasing delay in-between). This logic can be changed by passing a different value for
request_retries
to the Client
constructor:
import asyncio
from pyiqvia import Client
async def main():
client = Client("80012", request_retries=5)
# ...
asyncio.run(main())
Connection Pooling
By default, the library creates a new connection to IQVIA with each coroutine. If you
are calling a large number of coroutines (or merely want to squeeze out every second of
runtime savings possible), an aiohttp
ClientSession
can be used for
connection pooling:
import asyncio
from aiohttp import ClientSession
from pyiqvia import Client
async def main() -> None:
"""Run!"""
async with ClientSession() as session:
client = Client("80012", session=session)
# ...
asyncio.run(main())
Contributing
Thanks to all of our contributors so far!
- Check for open features/bugs or initiate a discussion on one.
- Fork the repository.
- (optional, but highly recommended) Create a virtual environment:
python3 -m venv .venv
- (optional, but highly recommended) Enter the virtual environment:
source ./.venv/bin/activate
- Install the dev environment:
script/setup
- Code your new feature or bug fix on a new branch.
- Write tests that cover your new functionality.
- Run tests and ensure 100% code coverage:
poetry run pytest --cov pyiqvia tests
- Update
README.md
with any new documentation. - 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
Built Distribution
File details
Details for the file pyiqvia-2023.12.0.tar.gz
.
File metadata
- Download URL: pyiqvia-2023.12.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7486e11572f8764d43ce709cdf060338c8df756553793170cb0aa19ac0454f01 |
|
MD5 | d7aa064a787a9759fed3cbe4a3d3f499 |
|
BLAKE2b-256 | 8fdb77b6bf7d0cf132d2799d9f8e5eadf1b54553e8531254463fdb8e978344e5 |
File details
Details for the file pyiqvia-2023.12.0-py3-none-any.whl
.
File metadata
- Download URL: pyiqvia-2023.12.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 301739eb95d4e6ef79d7d8d445e8097272726aea1d7ecb6a8e113830b62562ec |
|
MD5 | 8f9b6f7f85a55175b6ac113f83e1da94 |
|
BLAKE2b-256 | 64ff2b1daf21bb51bd831712f3701a7e86454ba28a590d29d2d7bcd075947996 |