Skip to main content

Wisharetec SaaS 系统的 Python 客户端库,提供同步和异步接口调用能力。

Project description

py_wisharetec

Wisharetec SaaS 系统的 Python 客户端库,提供同步和异步接口调用能力。

功能特性

  • 同步/异步 HTTP 客户端支持
  • 登录认证与令牌管理
  • 令牌缓存机制(支持 diskcache 和 Redis)
  • 请求封装与响应处理
  • JSON 数据校验与查询工具

安装

pip install py_wisharetec

快速开始

同步模式

from py_wisharetec.saas import Saas

# 初始化客户端
saas = Saas(
    base_url="https://saas.wisharetec.com/",
    account="your_account",
    password="your_password"
)

# 登录并刷新令牌
saas.refresh_token()

# 发起请求
response = saas.request(
    method="GET",
    url="/api/your-endpoint"
)

print(response.json())

异步模式

import asyncio
from py_wisharetec.saas import Saas

async def main():
    # 初始化客户端
    saas = Saas(
        base_url="https://saas.wisharetec.com/",
        account="your_account",
        password="your_password"
    )
    
    # 异步登录并刷新令牌
    await saas.async_refresh_token()
    
    # 发起异步请求
    response = await saas.async_request(
        method="GET",
        url="/api/your-endpoint"
    )
    
    print(response.json())

asyncio.run(main())

配置选项

初始化参数

参数 类型 默认值 说明
base_url str https://saas.wisharetec.com/ SaaS 服务基础 URL
account str None 账号
password str None 密码
cache_config dict {} 缓存配置
client_kwargs dict {} HTTP 客户端额外参数

缓存配置

cache_config = {
    "instance": None,           # diskcache.Cache 或 redis.Redis 实例
    "key": "py_wisharetec_saas_{account}",  # 缓存键名
    "expire": 7100             # 过期时间(秒)
}

客户端配置

client_kwargs = {
    "timeout": 60,             # 请求超时时间
    "verify": False,           # 是否验证 SSL 证书
    "headers": {
        "client": "co-pc"
    }
}

API 参考

Saas 类

同步方法

  • client() - 创建同步 HTTP 客户端
  • login(**kwargs) - 登录系统
  • refresh_token(**kwargs) - 刷新令牌
  • request(**kwargs) - 发起请求
  • query_space_manage_tree(**kwargs) - 查询空间管理树

异步方法

  • async_client() - 创建异步 HTTP 客户端
  • async_login(**kwargs) - 异步登录系统
  • async_refresh_token(**kwargs) - 异步刷新令牌
  • async_request(**kwargs) - 发起异步请求
  • async_query_space_manage_tree(**kwargs) - 异步查询空间管理树

工具函数

  • json_find_first(expression, data) - 使用 JSONPath 查找第一个匹配项
  • json_is_valid(schema, data) - 校验 JSON 数据是否符合 Schema

示例

使用缓存

import diskcache
from py_wisharetec.saas import Saas

# 创建缓存实例
cache = diskcache.Cache("./cache")

# 初始化客户端(带缓存)
saas = Saas(
    account="your_account",
    password="your_password",
    cache_config={
        "instance": cache,
        "expire": 7200
    }
)

# 登录(自动使用缓存)
saas.refresh_token()

依赖

  • httpx >= 0.27.0
  • pydantic >= 2.0.0
  • diskcache >= 5.0.0 (可选)
  • redis >= 5.0.0 (可选)
  • jsonpath-ng >= 1.6.0
  • jsonschema >= 4.0.0

主页

https://gitee.com/guolei19850528/py_wisharetec

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_wisharetec-0.1.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_wisharetec-0.1.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file py_wisharetec-0.1.1.tar.gz.

File metadata

  • Download URL: py_wisharetec-0.1.1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.11

File hashes

Hashes for py_wisharetec-0.1.1.tar.gz
Algorithm Hash digest
SHA256 05d9b0af419111cc063f612b5e061c1d558072ee375e31c0a2b818b87077992b
MD5 e13fa34e353d56afe6d454b4d4672ac8
BLAKE2b-256 6e95297a56977ebb7e59f798cdae8ebb409265b3c8b1a48444b69c2badea2f7b

See more details on using hashes here.

File details

Details for the file py_wisharetec-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for py_wisharetec-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 04bba25a9e81393f24110abee68b09dec515e83d69db2f81b1907ffcb2df7404
MD5 a7def2cd24b0799971722e35cf3fd92b
BLAKE2b-256 209068d165d00ffb21544691bae8257dcfc0e093416f707aa690b38a2109eb92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page