AirVisual 空气质量数据的简单 API
项目描述
☀️ pyairvisual:AirVisual© API 的精简 Python 包装器
pyairvisual
是一个简单、干净、经过良好测试的库,用于与
AirVisual交互以检索空气质量信息。
Python 版本
pyairvisual
目前支持:
- 蟒蛇 3.8
- 蟒蛇 3.9
- 蟒蛇 3.10
安装
pip install pyairvisual
API 密钥
您可以从AirVisual API 站点获取 AirVisual API 密钥 。根据您选择的计划,API 将提供更多功能:
社区
社区计划允许访问:
- 列出支持的国家
- 列出支持的状态
- 列出支持的城市
- 根据IP地址从最近的城市获取数据
- 根据纬度/经度从最近的城市获取数据
- 从特定城市获取数据
启动
启动计划允许访问:
- 列出城市中支持的电台
- 根据 IP 地址从最近的站点获取数据
- 根据纬度/经度从最近的站点获取数据
- 从特定站点获取数据
企业
企业计划允许访问:
- 获得全球城市空气质量排名
用法
使用云 API
import asyncio
from pyairvisual import CloudAPI
async def main() -> None:
"""Run!"""
cloud_api = CloudAPI("<YOUR_AIRVISUAL_API_KEY>")
# Get data based on the city nearest to your IP address:
data = await cloud_api.air_quality.nearest_city()
# ...or get data based on the city nearest to a latitude/longitude:
data = await cloud_api.air_quality.nearest_city(
latitude=39.742599, longitude=-104.9942557
)
# ...or get it explicitly:
data = await cloud_api.air_quality.city(
city="Los Angeles", state="California", country="USA"
)
# If you have the appropriate API key, you can also get data based on
# station (nearest or explicit):
data = await cloud_api.air_quality.nearest_station()
data = await cloud_api.air_quality.nearest_station(
latitude=39.742599, longitude=-104.9942557
)
data = await cloud_api.air_quality.station(
station="US Embassy in Beijing",
city="Beijing",
state="Beijing",
country="China",
)
# With the appropriate API key, you can get an air quality ranking:
data = await cloud_api.air_quality.ranking()
# pyairvisual gives you several methods to look locations up:
countries = await cloud_api.supported.countries()
states = await cloud_api.supported.states("USA")
cities = await cloud_api.supported.cities("USA", "Colorado")
stations = await cloud_api.supported.stations("USA", "Colorado", "Denver")
asyncio.run(main())
默认情况下,该库会为每个协程创建一个到 AirVisual 的新连接。如果您正在调用大量协程(或者只是想尽可能节省运行时的每一秒),
可以使用 an 来进行连接池:aiohttp
ClientSession
import asyncio
from aiohttp import ClientSession
from pyairvisual import CloudAPI
async def main() -> None:
"""Run!"""
async with ClientSession() as session:
cloud_api = CloudAPI("<YOUR_AIRVISUAL_API_KEY>", session=session)
# ...
asyncio.run(main())
使用 Node/Pro 单元
pyairvisual
还允许用户
通过云 API与Node/Pro 单元进行交互:
import asyncio
from aiohttp import ClientSession
from pyairvisual import CloudAPI
async def main() -> None:
"""Run!"""
cloud_api = CloudAPI("<YOUR_AIRVISUAL_API_KEY>")
# The Node/Pro unit ID can be retrieved from the "API" section of the cloud
# dashboard:
data = await cloud_api.node.get_by_node_id("<NODE_ID>")
asyncio.run(main())
...或通过 Samba 通过本地网络(设备密码可以 在设备本身上找到):
import asyncio
from aiohttp import ClientSession
from pyairvisual.node import NodeSamba
async def main() -> None:
"""Run!"""
async with NodeSamba("<IP_ADDRESS_OR_HOST>", "<PASSWORD>") as node:
measurements = node.async_get_latest_measurements()
# Can take some optional parameters:
# 1. include_trends: include trends (defaults to True)
# 2. measurements_to_use: the number of measurements to use when calculating
# trends (defaults to -1, which means "use all measurements")
history = node.async_get_history()
asyncio.run(main())
查看示例、测试和源文件本身以获取方法签名和更多示例。
贡献
- 检查开放的功能/错误 或发起一个讨论。
- 分叉存储库。
- (可选,但强烈推荐)创建虚拟环境:
python3 -m venv .venv
- (可选,但强烈推荐)进入虚拟环境:
source ./.venv/bin/activate
- 安装开发环境:
script/setup
- 编码您的新功能或错误修复。
- 编写涵盖新功能的测试。
- 运行测试并确保 100% 的代码覆盖率:
nox -rs coverage
README.md
使用任何新文档进行更新。- 将自己添加到
AUTHORS.md
. - 提交拉取请求!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pyairvisual-2022.7.0.tar.gz
(12.7 kB
视图哈希)
内置分布
pyairvisual-2022.7.0-py3-none-any.whl
(11.5 kB
查看哈希)
关
pyairvisual -2022.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9210e0126a55e436a842c8bde2616f7da0c462c36fc272af29ff36a46993830b |
|
MD5 | 6e106c54bd6d55a8289d9400611bffbe |
|
布莱克2-256 | 98b8fcc54cb8c9a32d52acba1aacfb7edcafc07dc27fca4f2c1182525cee9317 |
关
pyairvisual -2022.7.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d1fdbf5d7eef602a0172a3560ff92895a982b4e70673bc7170e6aa4df0af8ec1 |
|
MD5 | 960ef089f8d56b932254b9efc060c3c0 |
|
布莱克2-256 | 07957ff24df778bd9610506375365db1395ab6e0f9ecd830aa030d31d9a77ebb |