Skip to main content

来自 openuv.io 的简单 Python API 数据

项目描述

☀️ pyopenuv:一个简单的 Python API,用于来自 openuv.io 的数据

CI 派皮 版本 执照 代码覆盖率 可维护性 说谢谢

pyopenuv是一个简单的 Python 库,用于从openuv.io检索 UV 相关信息 。

安装

pip install pyopenuv

Python 版本

pyopenuv目前支持:

  • 蟒蛇 3.8
  • 蟒蛇 3.9
  • 蟒蛇 3.10

API 密钥

您可以从OpenUV 控制台获取 API 密钥 。

用法

import asyncio

from pyopenuv import Client
from pyopenuv.errors import OpenUvError


async def main():
    client = Client(
        "<OPENUV_API_KEY>", "<LATITUDE>", "<LONGITUDE>", altitude="<ALTITUDE>"
    )

    try:
        # Get current UV info:
        print(await client.uv_index())

        # Get forecasted UV info:
        print(await client.uv_forecast())

        # Get UV protection window:
        print(await client.uv_protection_window())
    except OpenUvError as err:
        print(f"There was an error: {err}")


asyncio.run(main())

重试

默认情况下,pyopenuv将重试适当的错误 4 次(其间延迟呈指数增长)。可以通过将不同的值传递 request_retriesClient构造函数来更改此逻辑:

import asyncio

from pyopenuv import Client
from pyopenuv.errors import OpenUvError


async def main():
    client = Client(
        "<OPENUV_API_KEY>",
        "<LATITUDE>",
        "<LONGITUDE>",
        altitude="<ALTITUDE>",
        request_retries=5,
    )

    # ...


asyncio.run(main())

连接池

默认情况下,该库会为每个协程创建一个到 OpenUV 的新连接。如果您正在调用大量协程(或者只是想尽可能节省运行时的每一秒), 可以使用 an 来进行连接池:aiohttp ClientSession

import asyncio

from aiohttp import ClientSession
from pyopenuv import Client
from pyopenuv.errors import OpenUvError


async def main():
    async with ClientSession() as session:
        client = Client(
            "<OPENUV_API_KEY>",
            "<LATITUDE>",
            "<LONGITUDE>",
            altitude="<ALTITUDE>",
            session=session,
        )

        try:
            # Get current UV info:
            print(await client.uv_index())

            # Get forecasted UV info:
            print(await client.uv_forecast())

            # Get UV protection window:
            print(await client.uv_protection_window())
        except OpenUvError as err:
            print(f"There was an error: {err}")


asyncio.run(main())

查看示例 目录以获取更多信息。

贡献

  1. 检查开放的功能/错误发起一个讨论
  2. 分叉存储库
  3. 可选,但强烈推荐)创建虚拟环境:python3 -m venv .venv
  4. 可选,但强烈推荐)进入虚拟环境:source ./venv/bin/activate
  5. 安装开发环境:script/setup
  6. 编码您的新功能或错误修复。
  7. 编写涵盖新功能的测试。
  8. 运行测试并确保 100% 的代码覆盖率:script/test
  9. README.md使用任何新文档进行更新。
  10. 将自己添加到AUTHORS.md.
  11. 提交拉取请求!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyopenuv-2022.4.0.tar.gz (6.0 kB 查看哈希

已上传 source

内置分布

pyopenuv-2022.4.0-py3-none-any.whl (5.8 kB 查看哈希

已上传 py3