Skip to main content

🌻 pyiqvia: A clean, async-focused Python3 API for IQVIA™

CI PyPI Version License Code Coverage Maintainability

Buy Me A Coffee

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!

  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 on a new branch.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: poetry run pytest --cov pyiqvia tests
  9. Update README.md with any new documentation.
  10. Submit a pull request!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyiqvia-2023.12.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

pyiqvia-2023.12.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

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

Hashes for pyiqvia-2023.12.0.tar.gz
Algorithm Hash digest
SHA256 7486e11572f8764d43ce709cdf060338c8df756553793170cb0aa19ac0454f01
MD5 d7aa064a787a9759fed3cbe4a3d3f499
BLAKE2b-256 8fdb77b6bf7d0cf132d2799d9f8e5eadf1b54553e8531254463fdb8e978344e5

See more details on using hashes here.

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

Hashes for pyiqvia-2023.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 301739eb95d4e6ef79d7d8d445e8097272726aea1d7ecb6a8e113830b62562ec
MD5 8f9b6f7f85a55175b6ac113f83e1da94
BLAKE2b-256 64ff2b1daf21bb51bd831712f3701a7e86454ba28a590d29d2d7bcd075947996

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2023.12.0 This release

2 files

2023.10.0

2 files

2023.8.1

2 files

2023.8.0

2 files

2022.10.0

2 files

2022.4.0

2 files

2021.11.0

2 files

2021.10.0

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

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