Skip to main content

excode

PyPI version Python License Documentation Status

统一的异常与错误码管理Python包,提供标准化的异常类、错误码枚举以及错误处理工具函数。

安装

pip install excode

快速开始

from excode import ExCodeError, ErrorCode, raise_for_error

# 根据错误码自动抛出对应异常
try:
    raise_for_error(ErrorCode.AUTHENTICATION_ERROR)
except ExCodeError as e:
    print(e)  # [1002] 认证失败,API Key 无效或过期

错误码一览

错误码 枚举值 说明
0 ErrorCode.SUCCESS 成功
1000 ErrorCode.UNKNOWN_ERROR 未知错误
1001 ErrorCode.SERVICE_ERROR 服务错误
1002 ErrorCode.AUTHENTICATION_ERROR 认证失败,API Key 无效或过期
1003 ErrorCode.RATE_LIMIT 请求频率超限,请稍后重试
1004 ErrorCode.QUOTA_EXCEEDED 配额/余额不足
1005 ErrorCode.SERVICE_TIMEOUT 服务超时,请稍后重试
1006 ErrorCode.SERVICE_BUSY 服务繁忙,请稍后再试!
2001 ErrorCode.INVALID_PARAMS 请求参数无效
3001 ErrorCode.PROMPT_BANNED 提示词包含违禁内容
3002 ErrorCode.IMAGE_BANNED 图片包含违禁内容
3003 ErrorCode.CONTENT_POLICY_VIOLATION 您的请求包含违反平台政策的内容,请调整图像或提示词后重试
4001 ErrorCode.INVALID_IMAGE 图片无效或损坏
4002 ErrorCode.IMAGE_GENERATE_FAIL 图片生成失败,请稍后重试
4003 ErrorCode.NO_IMAGE_RESULT 模型未返回图片结果,请调整图像或提示词后重试

异常类层级

所有异常均继承自 ExCodeError,可通过 except ExCodeError 统一捕获。

ExCodeError
├── ServiceError                # 通用服务错误
├── AuthenticationError         # 认证失败
├── RateLimitError              # 请求频率超限
├── QuotaExceededError          # 配额/余额不足
├── ServiceTimeoutError         # 服务超时
├── ServiceBusyError            # 服务繁忙
├── InvalidParamsError          # 请求参数无效
├── PromptBanError              # 提示词违禁
├── ImageBanError               # 图片违禁
├── ContentPolicyViolationError # 违反平台政策
├── InvalidImageError           # 图片无效或损坏
├── ImageGenerateFailError      # 图片生成失败
└── NoImageResultError          # 模型未返回图片结果

使用方式

1. 直接抛出异常

from excode import AuthenticationError

raise AuthenticationError("API Key 已过期", extra_data={"key_id": "abc123"})
# 输出: [1002] API Key 已过期 [{'key_id': 'abc123'}]

2. 根据错误码抛出(工厂函数)

from excode import ErrorCode, raise_for_error

# 使用默认描述
raise_for_error(ErrorCode.RATE_LIMIT)
# 输出: [1003] 请求频率超限,请稍后重试

# 使用自定义描述
raise_for_error(ErrorCode.RATE_LIMIT, error_msg="当前接口调用次数已达上限")
# 输出: [1003] 当前接口调用次数已达上限

3. 统一捕获并处理

from excode import ExCodeError, ErrorCode, raise_for_error

try:
    raise_for_error(ErrorCode.QUOTA_EXCEEDED)
except ExCodeError as e:
    print(e.error_code)       # ErrorCode.QUOTA_EXCEEDED
    print(e.error_code.value) # 1004
    print(e.error_msg)        # 配额/余额不足
    print(e.extra_data)       # {}

4. 分类捕获

from excode import AuthenticationError, RateLimitError, ExCodeError

try:
    # 业务逻辑
    ...
except AuthenticationError as e:
    # 处理认证失败
    refresh_api_key()
except RateLimitError as e:
    # 处理限流
    wait_and_retry()
except ExCodeError as e:
    # 兜底处理其他 excode 异常
    log_error(e)

5. 携带额外上下文

from excode import InvalidParamsError

raise InvalidParamsError(
    "参数校验失败",
    extra_data={"field": "width", "value": -1, "reason": "必须为正整数"}
)
# 输出: [2001] 参数校验失败 [{'field': 'width', 'value': -1, 'reason': '必须为正整数'}]

6. 特殊异常的扩展属性

from excode import PromptBanError, InvalidImageError

# PromptBanError 携带命中的违禁词列表
raise PromptBanError("提示词违禁", data=["暴力", "色情"])

# InvalidImageError 携带图片尺寸和原始异常
raise InvalidImageError("图片无法解码", image_size=2048, original_error=decode_err)

7. 获取错误码描述

from excode import ErrorCode, get_error_message

msg = get_error_message(ErrorCode.SERVICE_TIMEOUT)
print(msg)  # 服务超时,请稍后重试

8. 注册自定义错误码映射

from enum import IntEnum
from excode import ExCodeError, ErrorCode, raise_for_error, register_error_code

# 定义自定义异常
class NetworkError(ExCodeError):
    error_code = ErrorCode.UNKNOWN_ERROR  # 可复用或自行扩展

# 注册映射
register_error_code(ErrorCode.SERVICE_ERROR, NetworkError)

# 之后 raise_for_error 会使用你注册的异常类
raise_for_error(ErrorCode.SERVICE_ERROR, error_msg="网络连接失败")

9. 自定义错误码(CustomErrorCode)

当内置 ErrorCode 枚举无法满足需求时,可使用 CustomErrorCode 定义字符串类型的错误码:

from excode import CustomErrorCode, ServiceResult, raise_for_error

# 直接创建
MY_ERROR = CustomErrorCode("MY_ERROR", "自定义错误消息")

# 用于 ServiceResult
result = ServiceResult.fail(MY_ERROR)
print(result.code)  # CustomErrorCode('MY_ERROR', '自定义错误消息')
print(result.msg)   # 自定义错误消息

# 用于 raise_for_error(将抛出 ExCodeError)
raise_for_error(MY_ERROR)

10. 错误码注册表(ErrorCodeRegistry)

提供全局注册和查找自定义错误码的能力:

from excode import ErrorCodeRegistry

# 注册自定义错误码
MY_ERROR = ErrorCodeRegistry.register("MY_ERROR", "自定义错误消息")

# 查找已注册的错误码
found = ErrorCodeRegistry.get("MY_ERROR")
print(found)  # CustomErrorCode('MY_ERROR', '自定义错误消息')

# 列出所有已注册的错误码
all_codes = ErrorCodeRegistry.list_all()

# 清空注册表(主要用于测试)
ErrorCodeRegistry.clear()

11. 服务结果封装(ServiceResult)

使用 ServiceResult 以返回值代替异常,统一表示成功或失败:

from excode import ServiceResult, ErrorCode, CustomErrorCode

# 成功
result = ServiceResult.success(data={"id": 1, "name": "test"})
print(result.is_success)  # True
print(result.data)        # {'id': 1, 'name': 'test'}

# 失败 - 使用内置错误码
result = ServiceResult.fail(ErrorCode.AUTHENTICATION_ERROR)
print(result.is_success)  # False
print(result.code)        # ErrorCode.AUTHENTICATION_ERROR
print(result.msg)         # 认证失败,API Key 无效或过期

# 失败 - 使用自定义错误码
my_error = CustomErrorCode("BIZ_ERROR", "业务错误")
result = ServiceResult.fail(my_error)
print(result.code)  # CustomErrorCode('BIZ_ERROR', '业务错误')

# 布尔判断
if result:
    print("成功")
else:
    print("失败")

# 转为字典
d = result.to_dict()
# {'is_success': False, 'code': 'BIZ_ERROR', 'msg': '业务错误', 'data': None}

# 从异常创建
try:
    ...
except Exception as e:
    result = ServiceResult.from_exception(e)

Metadata

Release files for excode 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for excode 0.1.5
File
excode-0.1.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
excode-0.1.5-cp314-cp314-manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
excode-0.1.5-cp313-cp313-manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
excode-0.1.5-cp312-cp312-manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
excode-0.1.5-cp311-cp311-manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
excode-0.1.5-cp310-cp310-manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
excode-0.1.5-cp39-cp39-manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
excode-0.1.5-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
excode-0.1.5-cp38-cp38-manylinux_2_17_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details

Total release size: 7.1 MB

Release files / excode-0.1.5-cp314-cp314-win_amd64.whl

Download URL excode-0.1.5-cp314-cp314-win_amd64.whl
Size 148.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
eb58ebc87c4c9eb2a3f09e07ddcc15c1ed3ab3042aa1ad241f186cb90bdc135f
BLAKE2b-256 checksum
How to use checksums
28ab9d508db72652548112a985bf380eaee5fcd759407ced231aa1179c0bb011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp314-cp314-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp314-cp314-manylinux_2_17_x86_64.whl
Size 874.7 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
285242370cb564780a42172acab76cb66b996ca04bfe14a3ffee4511f2f38dd8
BLAKE2b-256 checksum
How to use checksums
b90579936a5a016861fbb20cdbeac201bae9b1520e7b0e761c518da507bb625c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp313-cp313-win_amd64.whl

Download URL excode-0.1.5-cp313-cp313-win_amd64.whl
Size 144.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
41a6d36372060ec196edf255a2f2b2e5f99f53e56a2065a819434e8cc6c1b625
BLAKE2b-256 checksum
How to use checksums
1e1b75013808d4b764e4eae217f44657b323d1581740b5bb037b343645726365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp313-cp313-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp313-cp313-manylinux_2_17_x86_64.whl
Size 883.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8414426fa01aad137ac66b29e1b0cdba095d7e7ca0206597ea81256c2c79d084
BLAKE2b-256 checksum
How to use checksums
e50177ed6b62b89e9195822ab5d0a2dc5f05d76d733ebbc588a4a17ccf171208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp312-cp312-win_amd64.whl

Download URL excode-0.1.5-cp312-cp312-win_amd64.whl
Size 147.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
6e82c89961af1751712902f8924d7c6fb3c3c55fc3b76c90796b380d47450926
BLAKE2b-256 checksum
How to use checksums
f12a8329fbb82bff2d6b791b656a9bd36c38284e2de1eb8baa1de44e1dba63c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp312-cp312-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp312-cp312-manylinux_2_17_x86_64.whl
Size 915.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
238db1d8a43cb2db0134158acd4c40905c0ec5caf45b82c90664d9b46732b71f
BLAKE2b-256 checksum
How to use checksums
9e4d1c7d366983b4ba80e47b7e10afd32df508a32f3dde92fed5f51b460744ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp311-cp311-win_amd64.whl

Download URL excode-0.1.5-cp311-cp311-win_amd64.whl
Size 149.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5dc726da37feff2d22654ff5fd8939e0943632f9e92a288169e07a7c05278149
BLAKE2b-256 checksum
How to use checksums
95ffbce29dd316b52e662ce15cb1b2ad268917dc33cae6bf68416a0556b4d6a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp311-cp311-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp311-cp311-manylinux_2_17_x86_64.whl
Size 868.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
052b3e07d7272bd222c38dfc781c48d043c867bc700a6267aac670ebffa535c6
BLAKE2b-256 checksum
How to use checksums
861807b95f91172dce70a8415734f6cc3afef0ef82a2386ac4a63128248ed0ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp310-cp310-win_amd64.whl

Download URL excode-0.1.5-cp310-cp310-win_amd64.whl
Size 151.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4a77d6fcad12b63d0c32d34891108cd34c15de8031e2b434d3e348cd5562f230
BLAKE2b-256 checksum
How to use checksums
29a01928761401a1f9f9ca0dba9f437afa99f53730ea7dd92ae564a151c59200
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp310-cp310-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp310-cp310-manylinux_2_17_x86_64.whl
Size 834.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
47357e0547ff2f2d903206d115abbc6f4a5682ae375117ef4bb4c428304773a4
BLAKE2b-256 checksum
How to use checksums
9f5af6fd1bae31d1cd8dcc2e0b4c0886c7cc708d171d47e8257f59ba64b94d53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp39-cp39-win_amd64.whl

Download URL excode-0.1.5-cp39-cp39-win_amd64.whl
Size 152.4 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
5bda29275542de012f89ff44810c3907e489fec6ff67a87c21a5a16f8f66248d
BLAKE2b-256 checksum
How to use checksums
39fed88016e06607053b37e50a0756a1369f3d4c7ddec42e640a0956b41767a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp39-cp39-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp39-cp39-manylinux_2_17_x86_64.whl
Size 828.8 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b8c82b7f2f79718ecfb6ead28091031e598d19d981e36de69e4db9d700052ab3
BLAKE2b-256 checksum
How to use checksums
11aeaf95e80dcb33b7e1970d662effb2a26b8a7a67713591f8fe705d39f3574c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp38-cp38-win_amd64.whl

Download URL excode-0.1.5-cp38-cp38-win_amd64.whl
Size 155.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
31b8dccfa5a17354e64220eea1c49baa869f94775f24899384384e126e8720b7
BLAKE2b-256 checksum
How to use checksums
ea2f7bd2076a930b734f84ba04cf188f3d881f84ab4a6f02c600d67bff35fdea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / excode-0.1.5-cp38-cp38-manylinux_2_17_x86_64.whl

Download URL excode-0.1.5-cp38-cp38-manylinux_2_17_x86_64.whl
Size 820.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
15a4f266422c4a122d7dcf87ac51f12f94df9c2344cf81e8243dc112794cf57b
BLAKE2b-256 checksum
How to use checksums
3b9a24e762b33011408762f050848419f9061237ce38c09294b2c5e3b849f82e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Security for excode 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 14 files in this release have been uploaded with provenance metadata.

Select from 14 files

Attestation for excode-0.1.5-cp314-cp314-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.5 This release

14 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page