nf1s / covid

Python package to fetch information regarding the novel corona virus provided by Johns Hopkins university and worldometers.info
https://ahmednafies.github.io/covid/
MIT License
42 stars 25 forks source link
coronavirus covid covid-19 covid-2019 covid-api covid-virus python python36

Covid

CircleCI codecov Pypi locked Python version Downloads GitHub

Description

Python package to get information regarding the novel corona virus provided by Johns Hopkins university and worldometers.info

Full Documentation can be found here

corona.jpeg

Requirements

python >= 3.10

How to install

pip install covid

Dependencies

pydantic
requests

How to use

Getting data from Worldometers.info (default)

worldometers

covid = Covid()

Get Data

covid.get_data()

Result

[
    {
        'country': 'USA',
        'confirmed': 311637,
        'new_cases': 280,
        'deaths': 8454,
        'recovered': 14828,
        'active': 288355,
        'critical': 8206,
        'new_deaths': 2,
        'total_tests': 1656897,
        'total_tests_per_million': Decimal('0'),
        'total_cases_per_million': Decimal('941'),
        'total_deaths_per_million': Decimal('26')
    },
    {
        'active': 1376,
        'confirmed': 81669,
        'country': 'China',
        'critical': 295,
        'deaths': 3329,
        'new_cases': 30,
        'new_deaths': 3,
        'recovered': 76964,
        'total_cases_per_million': Decimal('57'),
        'total_deaths_per_million': Decimal('2'),
        'total_tests': 0,
        'total_tests_per_million': Decimal('0')
    }
    ...
]

Get Status By Country Name

covid.get_status_by_country_name("italy")

Result

{
    'active': 88274,
    'confirmed': 124632,
    'country': 'Italy',
    'critical': 3994,
    'deaths': 15362,
    'new_cases': 0,
    'new_deaths': 0,
    'recovered': 20996,
    'total_cases_per_million': Decimal('2061'),
    'total_deaths_per_million': Decimal('254'),
    'total_tests': 657224,
    'total_tests_per_million': Decimal('0')
 }

List Countries

countries = covid.list_countries()

Result

[
    'china',
    'italy',
    'usa',
    'spain',
    'germany',
...
]

Get Total Active cases

active = covid.get_total_active_cases()

Get Total Confirmed cases

confirmed = covid.get_total_confirmed_cases()

Get Total Recovered cases

recovered = covid.get_total_recovered()

Get Total Deaths

deaths = covid.get_total_deaths()

CLI 2.0 (New)

covid --help

Get all data

Worldometers source (default)

covid

or

covid -s worldometers

John Hopkins source (deprecated)

covid -s john_hopkins

List Countries

This comes in handy when you need to know the available names of countries when using covid -s 'source' -c 'country_name', eg. "The Republic of Moldova" or just "Moldova" So use this when you need to know the country exact name that you can use.

covid -s worldometers --list-countries

Get Status By Country Name

covid -s worldometers -c sweden

Get Total Active cases

covid -s worldometers -o active

Get Total Confirmed cases

covid -s worldometers -o confirmed

Get Total Recovered cases

covid -s worldometers -o recovered

Get Total Deaths

covid -s worldometers -o deaths

John Hopkins University API (Deprecated)

john_hopkins

Get All Data

from covid import Covid

covid = Covid()
covid.get_data()

Result

[
    {
        'id': '53',
        'country': 'China',
        'confirmed': 81020,
        'active': 9960,
        'deaths': 3217,
        'recovered': 67843,
        'latitude': 30.5928,
        'longitude': 114.3055,
        'last_update': 1584097775000
    },
    {
        'id': '115',
        'country': 'Italy',
        'confirmed': 24747,
        'active': 20603,
        'deaths': 1809,
        'recovered': 2335,
        'latitude': 41.8719,
        'longitude': 12.5674,
        'last_update': 1584318130000
    },
    ...
]

List Countries

This comes in handy when you need to know the available names of countries when using get_status_by_country_name, eg. "The Republic of Moldova" or just "Moldova" So use this when you need to know the country exact name that you can use.

countries = covid.list_countries()

Result

[
    {'id': '53', 'country': 'China'},
    {'id': '115', 'country': 'Italy'}
    ...
]

Get Status By Country ID

italy_cases = covid.get_status_by_country_id(115)

Result

{
    'id': '115',
    'country': 'Italy',
    'confirmed': 24747,
    'active': 20603,
    'deaths': 1809,
    'recovered': 2335,
    'latitude': 41.8719,
    'longitude': 12.5674,
    'last_update': 1584318130000
}

Get Status By Country Name

italy_cases = covid.get_status_by_country_name("italy")

Result

{
    'id': '115',
    'country': 'Italy',
    'confirmed': 24747,
    'active': 20603,
    'deaths': 1809,
    'recovered': 2335,
    'latitude': 41.8719,
    'longitude': 12.5674,
    'last_update': 1584318130000
}

Get Total Confirmed cases

confirmed = covid.get_total_confirmed_cases()

Get Total Deaths

deaths = covid.get_total_deaths()