summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 09:39:57 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 09:39:57 +0000
commit7186de804ab3a4fb1aa9f46b1238ffe98b6f3f9a (patch)
tree94af393d57bfa94d09308af06bc54d210440edee
parent3678a95499e52eaa056eb3758ff7c5969dc7e4ea (diff)
automatic import of python-corona-api
-rw-r--r--.gitignore1
-rw-r--r--python-corona-api.spec1422
-rw-r--r--sources1
3 files changed, 1424 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..22f3161 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/corona_api-0.9.0.tar.gz
diff --git a/python-corona-api.spec b/python-corona-api.spec
new file mode 100644
index 0000000..a0ccaa3
--- /dev/null
+++ b/python-corona-api.spec
@@ -0,0 +1,1422 @@
+%global _empty_manifest_terminate_build 0
+Name: python-corona-api
+Version: 0.9.0
+Release: 1
+Summary: An asynchronous wrapper for the corona.lmao.ninja API written in Python.
+License: MIT
+URL: https://github.com/apex2504/python-corona-api
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5c/e0/67c68fe134d1ff0674dbbcb88c30328d93a168629c6dab43b37d08beef53/corona_api-0.9.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# corona-api
+An asynchronous wrapper for the [NovelCOVID API](https://github.com/NovelCOVID/API) written in Python.
+
+This is designed for bots using [discord.py](https://github.com/Rapptz/discord.py) but there is no discord-specific code so you are free to use this in any project as required.
+
+# Requirements
+ - Python 3.5 or above
+ - aiohttp (`python3 -m pip install -U aiohttp`)
+
+# Installation
+### Using pip (recommended)
+ - `python3 -m pip install -U corona_api`
+
+# Support
+Get support for this on Discord, either on our [official server](https://takagisan.xyz/support) or the [NovelCOVID server](https://discord.gg/cEDxzfW).
+
+# Optional parameters in methods
+| Parameter | Supported methods | Accepted values |
+|---------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `yesterday` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_states()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_continents()`<br>- `get_single_continent()` | - `True`<br>- `False` |
+| `two_days_ago` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_single_continent()`<br>- `get_all_continents()` | - `True`<br>- `False` |
+| `sort` | - `get_all_countries()`<br>- `get_all_states()`<br>- `get_all_continents()` | - `'cases'`<br>- `'deaths'`<br>- `'recovered'`<br>- `'active'`<br>- `'tests'`<br>- `'critical'`<br>- `'deathsPerOneMillion'`<br>- `'testsPerOneMillion'`<br>- `'todayCases'`<br>- `'todayDeaths'`<br>- `'casesPerOneMillion'`<br>- `'active'` |
+| `allow_none` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_continents()`<br>- `get_single_continent()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_states()`<br>- `gov_country()` | - `True`<br>- `False` |
+
+# Examples
+The following examples cover the basic usage of the library and its various features.
+Note; many methods also support `yesterday=True`, `sort='sort method'` and `allow_none=True` kwargs to get data from the previous day or sorted by various parameters. Refer to the table above to find out which ones do and do not.
+
+### Discord bot
+There is an example cog for your Discord bot [here](https://github.com/apex2504/python-corona-api/blob/master/examples/discord_cog.py).
+
+## Basic data
+### Global data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_all():
+ data = await client.all() #get global data
+ print(data.cases, data.deaths) #print the number of global cases and deaths
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_all())
+```
+
+## Data for a specific country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country():
+ data = await client.get_country_data('UK') #get data for the UK today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for the UK
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country())
+```
+
+## Data for more than one country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_countries():
+ data = await client.get_country_list('UK', 'USA', 'China') #get data for specified countries
+ #to get data for every country supported, use: get_all_countries()
+ print(data) #prints a list of CountryStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_countries())
+```
+## US States
+### Data for a specific state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_state():
+ data = await client.get_single_state('Ohio') #get data for Ohio today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for Ohio
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_state())
+```
+
+### Data for more than one state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_states():
+ data = await client.get_state_list('Ohio', 'California', 'Texas') #get data for specified states
+ #to get data for every state supported, use: get_all_states()
+ print(data) #prints a list of StateStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_states())
+```
+
+## Historical statistics
+### Historical data globally
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('all', 'all') #get all the historical data for the world
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name (in this case 'Global'), the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('UK', 7) #get the past week of historical data for the UK
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a province
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history_province():
+ data = await client.get_province_history('UK', 'Gibraltar', 7) #get the past week of historical data for Gibraltar, UK
+
+ print(data.province, data.case_history[0].date, data.case_history[0].value) #print province name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history_province())
+```
+
+### Historical data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_county():
+ data = await client.get_state_county_history('Ohio', 'Adams') #get all historical data for Adams, Ohio, USA
+
+ print(data.name, data.province, data.case_history[0].date, data.case_history[0].value) #print state and county name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_county())
+```
+## John Hopkins CSSE
+### All data from the JHU CSSE
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu():
+ data = await client.get_jhu_csse_data() #get data for every province and country JHU supports
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu())
+```
+
+### Data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_county():
+ data = await client.get_jhu_county_data('Ohio', 'Adams') #get data for Adams, Ohio
+
+ print(data.province_name, data.county_name, data.confirmed_cases) #print the state, county and case number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_county())
+```
+
+### Data for every county in the USA
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_counties():
+ data = await client.get_jhu_all_counties()
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_counties())
+```
+
+## Continental data
+### Data for every continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_conts():
+ data = await client.get_all_continents()
+ first = data[0]
+
+ print(first.name, first.cases, first.deaths) #print some info for the first continent in the list
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_conts())
+```
+
+### Data for a single continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_cont():
+ data = await client.get_single_continent('Europe')
+
+ print(data.name, data.cases, data.deaths) #print some info for the specified continent
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_cont())
+```
+
+## New York Times
+### USA data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_us():
+ data = await client.get_nyt_usa_data()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_us())
+```
+
+### All USA state data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_states():
+ data = await client.get_nyt_all_states()
+ first = data[0]
+
+ print(first.state, first.date, first.cases) #print some data from the frst element
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_states())
+```
+
+### Data for a single state from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_state():
+ data = await client.get_nyt_single_state('Ohio')
+ first = date[0]
+
+ print(first.date, first.cases, first.deaths) #print the first date, and case/death number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_state())
+```
+
+### Every county from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_counts():
+ data = await client.get_nyt_all_counties()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_counts())
+```
+
+### Counties from NYT filtered by name
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_county():
+ data = await client.get_nyt_single_county('Adams')
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_county())
+```
+
+## Apple Mobility
+### Every country supported by Apple Mobility Data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def all_apples():
+ data = await client.apple_all_countries()
+
+ print(data) #print all supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(apples())
+```
+
+### Every subregion within a country for Apple Mobility
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_subregions():
+ data = await client.apple_subregions('UK')
+
+ print(data.subregions) #print all supported subregions within the country
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_subregions())
+```
+
+### Apple's Mobility data for a subregion
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_sub():
+ data = await client.apple_mobility_data('UK', 'London')
+ first = data.statistics[0]
+
+ print(first.date, first.name, first.driving) #print some data about the first result
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_sub())
+```
+
+## Governmental data
+### All countries supported by the API for government data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_gov_countries():
+ data = await client.gov_all_countries()
+
+ print(data) #print the supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_gov_countries())
+```
+
+### Get the data from a country's governmental data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country_gov():
+ data = await client.gov_country('UK')
+
+ print(data) #probably will return a large amount of dict data.
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country_gov())
+```
+
+# Note
+Due to the fact that each country's governmental/official statistics website is different, it is not feasible to create a standardised class for the data. However, if you interpret the data received from the API, it should be relatively simple to work with the given information.
+
+%package -n python3-corona-api
+Summary: An asynchronous wrapper for the corona.lmao.ninja API written in Python.
+Provides: python-corona-api
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-corona-api
+# corona-api
+An asynchronous wrapper for the [NovelCOVID API](https://github.com/NovelCOVID/API) written in Python.
+
+This is designed for bots using [discord.py](https://github.com/Rapptz/discord.py) but there is no discord-specific code so you are free to use this in any project as required.
+
+# Requirements
+ - Python 3.5 or above
+ - aiohttp (`python3 -m pip install -U aiohttp`)
+
+# Installation
+### Using pip (recommended)
+ - `python3 -m pip install -U corona_api`
+
+# Support
+Get support for this on Discord, either on our [official server](https://takagisan.xyz/support) or the [NovelCOVID server](https://discord.gg/cEDxzfW).
+
+# Optional parameters in methods
+| Parameter | Supported methods | Accepted values |
+|---------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `yesterday` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_states()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_continents()`<br>- `get_single_continent()` | - `True`<br>- `False` |
+| `two_days_ago` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_single_continent()`<br>- `get_all_continents()` | - `True`<br>- `False` |
+| `sort` | - `get_all_countries()`<br>- `get_all_states()`<br>- `get_all_continents()` | - `'cases'`<br>- `'deaths'`<br>- `'recovered'`<br>- `'active'`<br>- `'tests'`<br>- `'critical'`<br>- `'deathsPerOneMillion'`<br>- `'testsPerOneMillion'`<br>- `'todayCases'`<br>- `'todayDeaths'`<br>- `'casesPerOneMillion'`<br>- `'active'` |
+| `allow_none` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_continents()`<br>- `get_single_continent()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_states()`<br>- `gov_country()` | - `True`<br>- `False` |
+
+# Examples
+The following examples cover the basic usage of the library and its various features.
+Note; many methods also support `yesterday=True`, `sort='sort method'` and `allow_none=True` kwargs to get data from the previous day or sorted by various parameters. Refer to the table above to find out which ones do and do not.
+
+### Discord bot
+There is an example cog for your Discord bot [here](https://github.com/apex2504/python-corona-api/blob/master/examples/discord_cog.py).
+
+## Basic data
+### Global data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_all():
+ data = await client.all() #get global data
+ print(data.cases, data.deaths) #print the number of global cases and deaths
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_all())
+```
+
+## Data for a specific country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country():
+ data = await client.get_country_data('UK') #get data for the UK today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for the UK
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country())
+```
+
+## Data for more than one country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_countries():
+ data = await client.get_country_list('UK', 'USA', 'China') #get data for specified countries
+ #to get data for every country supported, use: get_all_countries()
+ print(data) #prints a list of CountryStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_countries())
+```
+## US States
+### Data for a specific state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_state():
+ data = await client.get_single_state('Ohio') #get data for Ohio today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for Ohio
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_state())
+```
+
+### Data for more than one state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_states():
+ data = await client.get_state_list('Ohio', 'California', 'Texas') #get data for specified states
+ #to get data for every state supported, use: get_all_states()
+ print(data) #prints a list of StateStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_states())
+```
+
+## Historical statistics
+### Historical data globally
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('all', 'all') #get all the historical data for the world
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name (in this case 'Global'), the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('UK', 7) #get the past week of historical data for the UK
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a province
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history_province():
+ data = await client.get_province_history('UK', 'Gibraltar', 7) #get the past week of historical data for Gibraltar, UK
+
+ print(data.province, data.case_history[0].date, data.case_history[0].value) #print province name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history_province())
+```
+
+### Historical data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_county():
+ data = await client.get_state_county_history('Ohio', 'Adams') #get all historical data for Adams, Ohio, USA
+
+ print(data.name, data.province, data.case_history[0].date, data.case_history[0].value) #print state and county name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_county())
+```
+## John Hopkins CSSE
+### All data from the JHU CSSE
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu():
+ data = await client.get_jhu_csse_data() #get data for every province and country JHU supports
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu())
+```
+
+### Data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_county():
+ data = await client.get_jhu_county_data('Ohio', 'Adams') #get data for Adams, Ohio
+
+ print(data.province_name, data.county_name, data.confirmed_cases) #print the state, county and case number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_county())
+```
+
+### Data for every county in the USA
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_counties():
+ data = await client.get_jhu_all_counties()
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_counties())
+```
+
+## Continental data
+### Data for every continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_conts():
+ data = await client.get_all_continents()
+ first = data[0]
+
+ print(first.name, first.cases, first.deaths) #print some info for the first continent in the list
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_conts())
+```
+
+### Data for a single continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_cont():
+ data = await client.get_single_continent('Europe')
+
+ print(data.name, data.cases, data.deaths) #print some info for the specified continent
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_cont())
+```
+
+## New York Times
+### USA data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_us():
+ data = await client.get_nyt_usa_data()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_us())
+```
+
+### All USA state data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_states():
+ data = await client.get_nyt_all_states()
+ first = data[0]
+
+ print(first.state, first.date, first.cases) #print some data from the frst element
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_states())
+```
+
+### Data for a single state from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_state():
+ data = await client.get_nyt_single_state('Ohio')
+ first = date[0]
+
+ print(first.date, first.cases, first.deaths) #print the first date, and case/death number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_state())
+```
+
+### Every county from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_counts():
+ data = await client.get_nyt_all_counties()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_counts())
+```
+
+### Counties from NYT filtered by name
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_county():
+ data = await client.get_nyt_single_county('Adams')
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_county())
+```
+
+## Apple Mobility
+### Every country supported by Apple Mobility Data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def all_apples():
+ data = await client.apple_all_countries()
+
+ print(data) #print all supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(apples())
+```
+
+### Every subregion within a country for Apple Mobility
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_subregions():
+ data = await client.apple_subregions('UK')
+
+ print(data.subregions) #print all supported subregions within the country
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_subregions())
+```
+
+### Apple's Mobility data for a subregion
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_sub():
+ data = await client.apple_mobility_data('UK', 'London')
+ first = data.statistics[0]
+
+ print(first.date, first.name, first.driving) #print some data about the first result
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_sub())
+```
+
+## Governmental data
+### All countries supported by the API for government data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_gov_countries():
+ data = await client.gov_all_countries()
+
+ print(data) #print the supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_gov_countries())
+```
+
+### Get the data from a country's governmental data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country_gov():
+ data = await client.gov_country('UK')
+
+ print(data) #probably will return a large amount of dict data.
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country_gov())
+```
+
+# Note
+Due to the fact that each country's governmental/official statistics website is different, it is not feasible to create a standardised class for the data. However, if you interpret the data received from the API, it should be relatively simple to work with the given information.
+
+%package help
+Summary: Development documents and examples for corona-api
+Provides: python3-corona-api-doc
+%description help
+# corona-api
+An asynchronous wrapper for the [NovelCOVID API](https://github.com/NovelCOVID/API) written in Python.
+
+This is designed for bots using [discord.py](https://github.com/Rapptz/discord.py) but there is no discord-specific code so you are free to use this in any project as required.
+
+# Requirements
+ - Python 3.5 or above
+ - aiohttp (`python3 -m pip install -U aiohttp`)
+
+# Installation
+### Using pip (recommended)
+ - `python3 -m pip install -U corona_api`
+
+# Support
+Get support for this on Discord, either on our [official server](https://takagisan.xyz/support) or the [NovelCOVID server](https://discord.gg/cEDxzfW).
+
+# Optional parameters in methods
+| Parameter | Supported methods | Accepted values |
+|---------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `yesterday` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_states()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_continents()`<br>- `get_single_continent()` | - `True`<br>- `False` |
+| `two_days_ago` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_single_continent()`<br>- `get_all_continents()` | - `True`<br>- `False` |
+| `sort` | - `get_all_countries()`<br>- `get_all_states()`<br>- `get_all_continents()` | - `'cases'`<br>- `'deaths'`<br>- `'recovered'`<br>- `'active'`<br>- `'tests'`<br>- `'critical'`<br>- `'deathsPerOneMillion'`<br>- `'testsPerOneMillion'`<br>- `'todayCases'`<br>- `'todayDeaths'`<br>- `'casesPerOneMillion'`<br>- `'active'` |
+| `allow_none` | - `all()`<br>- `get_country_data()`<br>- `get_country_list()`<br>- `get_all_countries()`<br>- `get_all_continents()`<br>- `get_single_continent()`<br>- `get_single_state()`<br>- `get_state_list()`<br>- `get_all_states()`<br>- `gov_country()` | - `True`<br>- `False` |
+
+# Examples
+The following examples cover the basic usage of the library and its various features.
+Note; many methods also support `yesterday=True`, `sort='sort method'` and `allow_none=True` kwargs to get data from the previous day or sorted by various parameters. Refer to the table above to find out which ones do and do not.
+
+### Discord bot
+There is an example cog for your Discord bot [here](https://github.com/apex2504/python-corona-api/blob/master/examples/discord_cog.py).
+
+## Basic data
+### Global data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_all():
+ data = await client.all() #get global data
+ print(data.cases, data.deaths) #print the number of global cases and deaths
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_all())
+```
+
+## Data for a specific country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country():
+ data = await client.get_country_data('UK') #get data for the UK today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for the UK
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country())
+```
+
+## Data for more than one country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_countries():
+ data = await client.get_country_list('UK', 'USA', 'China') #get data for specified countries
+ #to get data for every country supported, use: get_all_countries()
+ print(data) #prints a list of CountryStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_countries())
+```
+## US States
+### Data for a specific state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_state():
+ data = await client.get_single_state('Ohio') #get data for Ohio today,
+ print(data.cases, data.deaths) #print the number of cases and deaths for Ohio
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_state())
+```
+
+### Data for more than one state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_states():
+ data = await client.get_state_list('Ohio', 'California', 'Texas') #get data for specified states
+ #to get data for every state supported, use: get_all_states()
+ print(data) #prints a list of StateStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_states())
+```
+
+## Historical statistics
+### Historical data globally
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('all', 'all') #get all the historical data for the world
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name (in this case 'Global'), the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a country
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history():
+ data = await client.get_country_history('UK', 7) #get the past week of historical data for the UK
+
+ print(data.name, data.case_history[0].date, data.case_history[0].value) #print name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history())
+```
+
+### Historical data for a province
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_history_province():
+ data = await client.get_province_history('UK', 'Gibraltar', 7) #get the past week of historical data for Gibraltar, UK
+
+ print(data.province, data.case_history[0].date, data.case_history[0].value) #print province name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_history_province())
+```
+
+### Historical data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_county():
+ data = await client.get_state_county_history('Ohio', 'Adams') #get all historical data for Adams, Ohio, USA
+
+ print(data.name, data.province, data.case_history[0].date, data.case_history[0].value) #print state and county name, the date of the first entry, and the number of cases for that date
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_county())
+```
+## John Hopkins CSSE
+### All data from the JHU CSSE
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu():
+ data = await client.get_jhu_csse_data() #get data for every province and country JHU supports
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu())
+```
+
+### Data for a county within a US state
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_county():
+ data = await client.get_jhu_county_data('Ohio', 'Adams') #get data for Adams, Ohio
+
+ print(data.province_name, data.county_name, data.confirmed_cases) #print the state, county and case number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_county())
+```
+
+### Data for every county in the USA
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_jhu_counties():
+ data = await client.get_jhu_all_counties()
+
+ print(data) #print a long list of JhuCsseStatistics
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_jhu_counties())
+```
+
+## Continental data
+### Data for every continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_conts():
+ data = await client.get_all_continents()
+ first = data[0]
+
+ print(first.name, first.cases, first.deaths) #print some info for the first continent in the list
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_conts())
+```
+
+### Data for a single continent
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_cont():
+ data = await client.get_single_continent('Europe')
+
+ print(data.name, data.cases, data.deaths) #print some info for the specified continent
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_cont())
+```
+
+## New York Times
+### USA data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_us():
+ data = await client.get_nyt_usa_data()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_us())
+```
+
+### All USA state data from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_states():
+ data = await client.get_nyt_all_states()
+ first = data[0]
+
+ print(first.state, first.date, first.cases) #print some data from the frst element
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_states())
+```
+
+### Data for a single state from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_nyt_state():
+ data = await client.get_nyt_single_state('Ohio')
+ first = date[0]
+
+ print(first.date, first.cases, first.deaths) #print the first date, and case/death number
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_nyt_state())
+```
+
+### Every county from NY Times
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_counts():
+ data = await client.get_nyt_all_counties()
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_counts())
+```
+
+### Counties from NYT filtered by name
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_county():
+ data = await client.get_nyt_single_county('Adams')
+ first = data[0]
+
+ print(first.date, first.cases, first.deaths) #print part of the first piece of data
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_county())
+```
+
+## Apple Mobility
+### Every country supported by Apple Mobility Data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def all_apples():
+ data = await client.apple_all_countries()
+
+ print(data) #print all supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(apples())
+```
+
+### Every subregion within a country for Apple Mobility
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_subregions():
+ data = await client.apple_subregions('UK')
+
+ print(data.subregions) #print all supported subregions within the country
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_subregions())
+```
+
+### Apple's Mobility data for a subregion
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_one_sub():
+ data = await client.apple_mobility_data('UK', 'London')
+ first = data.statistics[0]
+
+ print(first.date, first.name, first.driving) #print some data about the first result
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_one_sub())
+```
+
+## Governmental data
+### All countries supported by the API for government data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_gov_countries():
+ data = await client.gov_all_countries()
+
+ print(data) #print the supported countries
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_gov_countries())
+```
+
+### Get the data from a country's governmental data
+```python
+import corona_api
+import asyncio
+
+client = corona_api.Client()
+
+async def get_country_gov():
+ data = await client.gov_country('UK')
+
+ print(data) #probably will return a large amount of dict data.
+
+ await client.request_client.close() #close the ClientSession
+
+asyncio.get_event_loop().run_until_complete(get_country_gov())
+```
+
+# Note
+Due to the fact that each country's governmental/official statistics website is different, it is not feasible to create a standardised class for the data. However, if you interpret the data received from the API, it should be relatively simple to work with the given information.
+
+%prep
+%autosetup -n corona-api-0.9.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-corona-api -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.9.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..338b804
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+97739a28d0fcb124c0ad914918372b9f corona_api-0.9.0.tar.gz