MXLite SDK
MXLite SDK 是 MXLite 的官方 Python SDK,为服务器部署和系统管理提供了全面的编程接口。该 SDK 封装了 MXD 服务的核心功能,使开发者能够通过简洁的 API 实现系统安装、网络配置、文件传输和远程命令执行等操作。
特性
- 全异步 API 设计:支持高效的并发操作,同时提供同步接口以兼容不同的使用场景
- 自动平台适配:自动检测并使用适合当前平台的二进制文件
- 多平台支持:兼容 Linux、macOS 和 Windows 等主流操作系统
- 内置 MXD 服务管理:可以自动启动、监控和关闭 MXD 服务
- 远程 MXA 部署:通过 SSH 将 MXA 客户端部署到远程服务器,支持多种复杂的网络结构和模式(甚至支持堡垒机后的服务器的部署)
- 全面的系统部署工具:提供从系统安装到网络配置的完整工作流
- 代码类型提示:完善的类型注解支持,提高开发效率
安装
从 PyPI 安装
# 基本安装
pip install mxlite-sdk
# 包含远程部署功能的安装
pip install "mxlite-sdk[deploy]"
快速入门
mxlite-sdk 支持连接已启动的 mxd 服务,也支持后台直接运行一个 mxd 服务,默认为使用 MXDRunner 运行一个 mxd 服务并作为子进程使用
基本使用示例(内建服务)
import asyncio
from mxlite import MXLite
async def main():
# 使用异步上下文管理器自动管理资源
async with MXLite() as mxc:
# 启动 MXD 服务,注意,程序会自动获取一个可用的端口,并在此端口提供服务
mxc.start_mxd()
# 获取主机列表
hosts, status = await mxc.get_host_list()
print(f"找到 {len(hosts.sessions)} 个主机")
if hosts.sessions:
# 在远程主机上执行命令
host_id = hosts.sessions[0] # 使用第一个主机
result, status = await mxc.command_exec(host_id, "ls -la")
task_id = result.task_id
# 等待任务完成
task_result = await mxc.until_task_complete(host_id, task_id)
print(f"命令输出:\n{task_result.payload.payload.stdout}")
if __name__ == "__main__":
asyncio.run(main())
连接到外部 MXD 服务
如果您已经有一个运行中的 MXD 服务,可以直接连接到它而不是启动新实例:
import asyncio
from mxlite import MXLite
async def main():
# 创建连接到外部服务的客户端
client = MXLite(
host="server-ip-address", # 外部服务器地址
http_port=8080, # MXD HTTP 端口
token="your-token-here" # 认证令牌
)
try:
# 确保连接成功
connected = await client.connect_mxd()
if not connected:
print("连接到 MXD 服务失败")
return
# 执行操作...
hosts, status = await client.get_host_list()
print(f"成功连接到 MXD 服务,发现 {len(hosts.sessions)} 个主机")
finally:
# 关闭客户端
await client.close()
if __name__ == "__main__":
asyncio.run(main())
使用高级配置启动 MXD
在部分情况下,您可能需要使用 Https、设置指定端口或预置设置一些安全性配置,您可以传入 MXLiteConfig 实例
import asyncio
from mxlite import MXLite, MXLiteConfig
async def main():
# 创建配置对象
config = MXLiteConfig(
root_dir="/path/to/certificates", # 证书文件所在目录
http_port=8080, # HTTP 端口
https_port=8443, # HTTPS 端口
token="your-token", # 认证令牌
verbose=True # 启用详细日志
)
async with MXLite(config) as mxc:
# 启动 MXD 服务,注意,程序会自动获取一个可用的端口,并在此端口提供服务
mxc.start_mxd()
# 获取主机列表
hosts, status = await mxc.get_host_list()
print(f"找到 {len(hosts.sessions)} 个主机")
if hosts.sessions:
# 在远程主机上执行命令
host_id = hosts.sessions[0] # 使用第一个主机
result, status = await mxc.command_exec(host_id, "ls -la")
task_id = result.task_id
# 等待任务完成
task_result = await mxc.until_task_complete(host_id, task_id)
print(f"命令输出:\n{task_result.payload.payload.stdout}")
if __name__ == "__main__":
asyncio.run(main())
使用MXADeployer部署MXA到远程服务器
考虑到部分用户的网络环境较为复杂,或存在已经安装好的系统,我们提供了一个 MXADeployer 类来帮助用户将 MXA 部署到远程服务器。MXADeployer 类封装了 SSH 连接、MXA 部署和运行的逻辑,简化了部署过程。目前支持三种连接模式:
- 自动发现模式:MXA自动扫描网络寻找MXD
- 直连模式(使用端口转发):MXA通过WebSocket连接到通过端口转发的MXD
- 直连模式(指定地址):MXA通过WebSocket直接连接到指定URL
注意:需要安装带deploy扩展的包
pip install "mxlite-sdk[deploy]"
自动发现模式部署示例
在自动发现模式下,MXA会自动扫描网络查找MXD服务,适用于在同一子网内运行MXD(部署服务器)和MXA(被部署服务器)的情况。
import asyncio
import logging
from mxlite import MXADeployer, MXLite
# 设置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
async def deploy_discovery_mode(ssh_host, ssh_user, ssh_password):
mxc = MXLite()
mxc.start_mxd()
mxd_port = mxc.config.http_port
logger.info(f"MXD已启动, 监听端口: {mxd_port}")
try:
# 使用异步上下文管理器自动管理SSH连接
async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
# 部署MXA
success = await deployer.deploy_mxa()
if not success:
print("MXA部署失败")
return
# 使用自动发现模式运行MXA (默认模式)
success, _ = await deployer.systemd_run_mxa(discovery_mode=True)
if success:
print("MXA服务已启动,使用自动发现模式")
else:
print("MXA服务启动失败")
# 等待连接建立
host_list, _ = await mxc.get_host_list()
max_attempts = 120 # 最多等待600秒
attempts = 0
while not host_list.sessions and attempts < max_attempts:
attempts += 1
logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
host_list, _ = await mxc.get_host_list()
if host_list.sessions:
break
await asyncio.sleep(5)
if not host_list.sessions:
logger.warning("等待超时, 未检测到连接的主机")
return
# 获取并显示主机信息
host_id = host_list.sessions[0]
logger.info(f"主机已连接, ID: {host_id}")
host_info, _ = await mxc.get_host_info(host_id)
logger.info(f"主机信息: {host_info}")
# 在这里添加您的业务逻辑
# 例如执行命令、传输文件等
result, _ = await mxc.command_exec(host_id, "uname -a")
task_id = result.task_id
task_result = await mxc.until_task_complete(host_id, task_id)
print(f"命令输出: {task_result.payload.payload.stdout}")
except Exception as e:
print(f"部署过程中出错: {e}")
finally:
await deployer.systemd_remove_mxa()
logger.info("MXA服务已成功移除")
# 关闭MXD服务
await mxc.close()
logger.info("MXD已停止")
# 关闭SSH连接
await deployer.close()
logger.info("SSH连接已关闭")
if __name__ == "__main__":
asyncio.run(deploy_discovery_mode(
ssh_host="192.168.1.100", # 远程主机地址
ssh_user="ubuntu", # SSH用户名
ssh_password="password" # SSH密码
))
直连模式(使用端口转发)部署示例
在直连模式下,MXA会通过WebSocket直接连接到MXD。这种方式适用于MXD与MXA在不同网络,或者需要避免自动发现的情况。
import asyncio
import logging
from mxlite import MXLite, MXADeployer
# 设置日志级别
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
async def deploy_port_forward(ssh_host, ssh_user, ssh_password):
# 创建本地MXD服务
mxc = MXLite()
mxc.start_mxd()
mxd_port = mxc.config.http_port
logger.info(f"MXD已启动, 监听端口: {mxd_port}")
try:
# 使用异步上下文管理器自动管理SSH连接
async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
# 部署MXA
success = await deployer.deploy_mxa()
if not success:
logger.error("MXA部署失败")
return
# 使用直连模式运行MXA, 并建立端口转发
success, forwarded_port = await deployer.systemd_run_mxa(
discovery_mode=False,
local_mxd_port=mxd_port
)
if not success or forwarded_port is None:
logger.error("MXA服务启动失败")
return
logger.info(f"MXA服务已启动, 远程端口 {forwarded_port} 已转发到本地 {mxd_port}")
# 等待连接建立
host_list, _ = await mxc.get_host_list()
max_attempts = 120 # 最多等待600秒
attempts = 0
while not host_list.sessions and attempts < max_attempts:
attempts += 1
logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
host_list, _ = await mxc.get_host_list()
if host_list.sessions:
break
await asyncio.sleep(5)
if not host_list.sessions:
logger.warning("等待超时, 未检测到连接的主机")
return
# 获取并显示主机信息
host_id = host_list.sessions[0]
logger.info(f"主机已连接, ID: {host_id}")
host_info, _ = await mxc.get_host_info(host_id)
logger.info(f"主机信息: {host_info}")
# 在这里添加您的业务逻辑
# 例如执行命令、传输文件等
result, _ = await mxc.command_exec(host_id, "uname -a")
task_id = result.task_id
task_result = await mxc.until_task_complete(host_id, task_id)
print(f"命令输出: {task_result.payload.payload.stdout}")
finally:
await deployer.systemd_remove_mxa()
logger.info("MXA服务已成功移除")
# 关闭MXD服务
await mxc.close()
logger.info("MXD已停止")
# 关闭SSH连接
await deployer.close()
logger.info("SSH连接已关闭")
if __name__ == "__main__":
asyncio.run(deploy_port_forward(
ssh_host="192.168.1.100", # 远程主机地址
ssh_user="ubuntu", # SSH用户名
ssh_password="password" # SSH密码
))
直连模式(指定WebSocket URL)部署示例
当MXD服务器已经存在并可以从远程访问时,可以直接指定WebSocket URL。
import asyncio
import logging
from mxlite import MXADeployer, MXLite
# 设置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
async def deploy_with_direct_url(ssh_host, ssh_user, ssh_password):
ws_url = "ws://mxd-server.example.com:8080/ws" # 指定的WebSocket URL
mxc = MXLite()
mxc.start_mxd()
mxd_port = mxc.config.http_port
logger.info(f"MXD已启动, 监听端口: {mxd_port}")
try:
# 使用异步上下文管理器自动管理SSH连接
async with MXADeployer(ssh_host, ssh_user, ssh_password) as deployer:
# 检测远程主机架构
arch = await deployer.detect_arch()
print(f"检测到架构: {arch}")
# 部署MXA
success = await deployer.deploy_mxa()
if not success:
print("MXA部署失败")
return
# 使用指定WebSocket URL运行MXA
success, _ = await deployer.systemd_run_mxa(ws_url=ws_url)
if success:
print(f"MXA服务已启动,直接连接到: {ws_url}")
else:
print("MXA服务启动失败")
# 等待连接建立
host_list, _ = await mxc.get_host_list()
max_attempts = 120 # 最多等待600秒
attempts = 0
while not host_list.sessions and attempts < max_attempts:
attempts += 1
logger.info(f"等待主机列表... (尝试 {attempts}/{max_attempts})")
host_list, _ = await mxc.get_host_list()
if host_list.sessions:
break
await asyncio.sleep(5)
if not host_list.sessions:
logger.warning("等待超时, 未检测到连接的主机")
return
# 获取并显示主机信息
host_id = host_list.sessions[0]
logger.info(f"主机已连接, ID: {host_id}")
host_info, _ = await mxc.get_host_info(host_id)
logger.info(f"主机信息: {host_info}")
# 在这里添加您的业务逻辑
# 例如执行命令、传输文件等
result, _ = await mxc.command_exec(host_id, "uname -a")
task_id = result.task_id
task_result = await mxc.until_task_complete(host_id, task_id)
print(f"命令输出: {task_result.payload.payload.stdout}")
except Exception as e:
print(f"部署过程中出错: {e}")
finally:
await deployer.systemd_remove_mxa()
logger.info("MXA服务已成功移除")
# 关闭MXD服务
await mxc.close()
logger.info("MXD已停止")
# 关闭SSH连接
await deployer.close()
logger.info("SSH连接已关闭")
if __name__ == "__main__":
asyncio.run(deploy_with_direct_url(
ssh_host="192.168.1.100", # 远程主机地址
ssh_user="ubuntu", # SSH用户名
ssh_password="password" # SSH密码
))
API 文档
MXLiteConfig
配置类,用于设置 MXLite 客户端参数。
config = MXLiteConfig(
root_dir=None, # 根目录,一般为证书文件所在的父级目录,默认为当前目录
http_port=None, # HTTP 端口,None 则随机选择
https_port=None, # HTTPS 端口,None 则随机选择
token=None, # 认证令牌
certificates_dir=None, # 证书目录
verbose=False, # 是否输出详细日志
host="127.0.0.1" # 主机地址
)
MXLite
MXLite 客户端类,提供 MXD 服务管理和 API 操作。
# 创建客户端
mxlite = MXLite(
config=None, # MXLiteConfig 配置对象
host=None, # 外部 MXD 服务主机地址
http_port=None, # 外部 MXD 服务 HTTP 端口
token=None, # 外部 MXD 服务认证令牌
auto_connect=True # 是否自动连接到外部 MXD 服务
)
# 启动和关闭 MXD 服务
mxlite.start_mxd()
mxlite.kill_mxd()
# 连接与断开外部 MXD 服务
mxlite.connect_mxd()
mxlite.disconnect_mxd()
# 主机管理
hosts, status = await mxlite.get_host_list() # 获取主机列表
host_info, status = await mxlite.get_host_info(host_id) # 获取主机信息
host_list_info, status = await mxlite.get_host_list_info() # 获取主机列表详细信息
# 任务管理
task_result, status = await mxlite.get_task_result(host_id, task_id) # 获取任务结果
result = await mxlite.until_task_complete(host_id, task_id, interval=1) # 等待任务完成
# 命令执行
result, status = await mxlite.command_exec(host_id, command) # 在远程主机执行命令
# 文件操作
await mxlite.upload_file(host_id, src_path, target_url) # 上传文件
await mxlite.download_file(host_id, src_url, target_path) # 下载文件
await mxlite.add_file_map(file, publish_name) # 添加文件映射
await mxlite.add_dir_map(dirname, publish_name) # 添加目录映射
await mxlite.remove_file_map(file) # 移除文件映射
maps, _ = await mxlite.get_file_map() # 获取文件映射列表
# 文件系统操作
files, status = await mxlite.lsdir(path) # 列出目录内容
content, status = await mxlite.read_file(path, max_size) # 读取文件内容
hash_value = await mxlite.get_file_hash(file, algorithm) # 获取文件哈希值
# 资源释放
await mxlite.close() # 异步方式关闭
mxlite.close_sync() # 同步方式关闭
MXADeployer
MXA部署类,提供通过SSH将MXA部署到远程服务器的能力。
# 创建MXA部署器
deployer = MXADeployer(
ssh_host, # SSH主机地址
ssh_user, # SSH用户名
ssh_password, # SSH密码 (与ssh_key二选一)
ssh_key=None # SSH密钥文件路径 (与ssh_password二选一)
)
# 检测远程主机架构
arch = await deployer.detect_arch()
# 检测是否有sudo权限
has_sudo = await deployer.detect_sudo()
# 部署MXA到远程主机
success = await deployer.deploy_mxa()
# 使用systemd运行MXA - 支持三种模式
# 1. 自动发现模式
success, _ = await deployer.systemd_run_mxa(discovery_mode=True)
# 2. 直连模式(使用端口转发)
success, forwarded_port = await deployer.systemd_run_mxa(
discovery_mode=False,
local_mxd_port=8080 # 本地MXD的HTTP端口
)
# 3. 直连模式(指定WebSocket URL)
success, _ = await deployer.systemd_run_mxa(
ws_url="ws://mxd-server.example.com:8080/ws" # 指定的WebSocket URL
)
# 停止并删除MXA服务
success = await deployer.systemd_remove_mxa()
# 管理端口转发
listener = await deployer.create_port_forward(local_port, remote_host, remote_port)
success = await deployer.stop_port_forward(local_port, remote_host, remote_port)
await deployer.stop_all_forwards()
# 关闭连接
await deployer.close()
在本地开发
构建平台特定的 wheel 包
# 准备二进制文件
# 在 mxlite/bin 目录中放置适当的可执行文件,例如:
# - mxd-linux-x86_64, mxa-linux-x86_64 # Linux x86_64
# - mxd-macos-arm64, mxa-macos-arm64 # macOS ARM64
# - mxd-windows-x86_64.exe, mxa-windows-x86_64.exe # Windows x86_64
# 构建 wheel
python setup.py bdist_wheel
系统要求
- Python 3.10+
- 基本依赖包:
- aiohttp >= 3.11.18
- pydantic >= 2.10.0
- 部署功能依赖(仅当使用
[deploy]扩展时必需):- asyncssh >= 2.14.0
许可证
本项目采用 Apache 2.0 许可证。详情请参见 LICENSE 文件。
相关链接
Metadata
Release files for mxlite-sdk 0.3.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 234.5 MB
Release files / mxlite_sdk-0.3.9-cp314-none-win_amd64.whl
| Download URL | mxlite_sdk-0.3.9-cp314-none-win_amd64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d62a6411924bb002c98734050e8f6a929f2e161f423cdb6c10c2bf6fd6081003
|
|
BLAKE2b-256 checksum How to use checksums |
7d693e631641f582b84bdce855df1804af6886200d2952dc6f31af827865b251
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp314-none-manylinux2014_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp314-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
359172dfabe5a2262b9a8876402d6c288e78bb74504cff889a3cf44777b5aade
|
|
BLAKE2b-256 checksum How to use checksums |
2b18abd2a01bfcb2796d95d10e406902c93983ea53ce66c152dc19b3a7b8c162
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp314-none-manylinux2014_aarch64.whl
| Download URL | mxlite_sdk-0.3.9-cp314-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
587bec59e6b8c39bc42415ea4b7b3585b7df3bf99bac1a85edaf4b4d17400bdc
|
|
BLAKE2b-256 checksum How to use checksums |
d9003cfdb992728e72994e393d48eb17e339c652476e5197041914c758951b12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp314-none-macosx_12_0_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp314-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.14 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
3839e2aa8ea4f8bab6e6fa86751922a21281a46bdec72f54ab92f57135aae964
|
|
BLAKE2b-256 checksum How to use checksums |
adba51005e73da7791618fda4c971ece59bd909faed8c7a105b2c0eadf1bd8f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp314-none-macosx_12_0_arm64.whl
| Download URL | mxlite_sdk-0.3.9-cp314-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.14 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9a62f0cbd4e0c061366c195e0e3122f7032de9af15cfbec634fa1720924373e0
|
|
BLAKE2b-256 checksum How to use checksums |
406e41522385fd8ed84a740ebc210898193aa205d645f4c398d80e9bb3146f2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp313-none-win_amd64.whl
| Download URL | mxlite_sdk-0.3.9-cp313-none-win_amd64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c9c4bd25eb0b784cffa43937c00c540e19b0d104b839360e5f7a93345340df15
|
|
BLAKE2b-256 checksum How to use checksums |
49972b93b6e8096bce868a07d7f1c754d45a817c66234f597b7fd6e880f172a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp313-none-manylinux2014_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp313-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
96348b62feb9390c6406cee8ca5dd2b683bd80fbcfa1810576825bc2834fef05
|
|
BLAKE2b-256 checksum How to use checksums |
792d83348b21ccbb2a5f192948d455655671163fd85eff84130901cc32981120
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp313-none-manylinux2014_aarch64.whl
| Download URL | mxlite_sdk-0.3.9-cp313-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
9c99e3451393052d3c5a8a4726567e4e117b9fc1a0a3d52d15b0f6c753772f13
|
|
BLAKE2b-256 checksum How to use checksums |
99467a52e37fa0c78e6056869c09813a3b6bb5b4aa9ad36a26be887bd1711661
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp313-none-macosx_12_0_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp313-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.13 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
3ce0faf498156965b908bc881f7a42c0b27d08af81197161da81c6100fc29499
|
|
BLAKE2b-256 checksum How to use checksums |
a29a1707cc5b946bb7d4f0579d398978b116187adc0af2b105e82cc83bbf2772
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp313-none-macosx_12_0_arm64.whl
| Download URL | mxlite_sdk-0.3.9-cp313-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.13 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5fc8f0f85a1dcfb0e9dbb36a033207a4c1916205442cb1e44deb330f564ebec8
|
|
BLAKE2b-256 checksum How to use checksums |
aedb50672ebdbcfd71314e8b0a22527a783ce28ccf4037667e97c9cf9d1f8ed2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp312-none-win_amd64.whl
| Download URL | mxlite_sdk-0.3.9-cp312-none-win_amd64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bed7d3354b5553b92d40a58d6af26d874a9f90b37344c9a49235ec0c7ed59bc6
|
|
BLAKE2b-256 checksum How to use checksums |
5ee608dfaf8121731f8894115263c19a93684c306ba00fe7da0c389344294509
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp312-none-manylinux2014_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp312-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2ecd0cd64a58efff5310ca7aa18a79b0a7979318109715e74c688ef20b425824
|
|
BLAKE2b-256 checksum How to use checksums |
d4d1c5f9a32848c9b38b219cec8e509c60a9a13cae4deab024bfea326201dacf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp312-none-manylinux2014_aarch64.whl
| Download URL | mxlite_sdk-0.3.9-cp312-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
73038b84a5352aca78b23127f263884b5266f6a36bf2dd77c94226103c85e9b9
|
|
BLAKE2b-256 checksum How to use checksums |
ef2d2ef96ac8bb7f646e566dff3d24e430a22700caa7c2119abe22074866373c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp312-none-macosx_12_0_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp312-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.12 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
77668f364faf544568103397b90ba278d8d6c9b558dd9eff89205aa8d4d1caf0
|
|
BLAKE2b-256 checksum How to use checksums |
0316ba06f89e6a8dd34dfb59b855714016d2b3f8cd67f963e206dae2e8dcc679
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp312-none-macosx_12_0_arm64.whl
| Download URL | mxlite_sdk-0.3.9-cp312-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.12 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c0c58692636e1dc51fc24199f3bf189b6ed8a25d89acc0a3b335ec91f836ee93
|
|
BLAKE2b-256 checksum How to use checksums |
a26f5cf9f40f61110f799c5390ffe2aaf2f98827480485f0f144198f08907d85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp311-none-win_amd64.whl
| Download URL | mxlite_sdk-0.3.9-cp311-none-win_amd64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ca17e1b985aa7401499e95a760858a187c037848cb0d78d2226aac33ed2a2625
|
|
BLAKE2b-256 checksum How to use checksums |
9a9c9d6b1102016cf63f5a00567cb6fd3990f04364018c6b9b23599cb683e71a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp311-none-manylinux2014_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp311-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3d9c40702b0b516d17b894beaa751681255beb41ca11a1c59d431601e2e19b5
|
|
BLAKE2b-256 checksum How to use checksums |
137fbe09f573791875f6f6bea86f33a4a8a27b2bc05ac72fe08a9b6b1f3443f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp311-none-manylinux2014_aarch64.whl
| Download URL | mxlite_sdk-0.3.9-cp311-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
9011a8d50ad72332ec0af51069eaf8d87a9894a68a177129afc96022dc531ae1
|
|
BLAKE2b-256 checksum How to use checksums |
c4cf199b77de18f614ab0024f53cfff33d68731108c0e5ab588ee5546e2629ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp311-none-macosx_12_0_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp311-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.11 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
c8fab844e6c105b115d9baf1da1bee8ef41191d3fb01bd23aadcc31df03790fe
|
|
BLAKE2b-256 checksum How to use checksums |
ceccc0a269018cfab7be3c980ad5830cbb36ab0907058cb07c8d415007395bb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp311-none-macosx_12_0_arm64.whl
| Download URL | mxlite_sdk-0.3.9-cp311-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.11 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
46bb6c036bc4f8256cc40def86edeceaef6c3c50bda88cb156090c9a7179a991
|
|
BLAKE2b-256 checksum How to use checksums |
bee9d1724dc8a02d03ce9a54a38b640333c55a3f1b05bc891875cf1d2822e602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp310-none-win_amd64.whl
| Download URL | mxlite_sdk-0.3.9-cp310-none-win_amd64.whl |
|---|---|
| Size | 9.0 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8be6e8b780f8d15ff3e3f8678552d85af2c2f94e1681fcccb17b6d9ada021421
|
|
BLAKE2b-256 checksum How to use checksums |
b5eb8ade8c4302f4c63563027897cd2356275d59b85da0cf0d43a60056b4887a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp310-none-manylinux2014_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp310-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5051bdc0de2445bf5c5355fe0baca5b34d97d944a7d665f606cd37ff9029d9e3
|
|
BLAKE2b-256 checksum How to use checksums |
1e82ada44a163774ca68eef26c8d7b231dfbb0e0373695bf0ccf60bd98abbaf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp310-none-manylinux2014_aarch64.whl
| Download URL | mxlite_sdk-0.3.9-cp310-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 9.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
c1d1990398a6a7a28f79c6379843630a40ab5fe0b8474398cd9e772025717c21
|
|
BLAKE2b-256 checksum How to use checksums |
f6259f796d37ee0763a85ab7a311d139ee6b145d14ed415f8b26ab95a4347fb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp310-none-macosx_12_0_x86_64.whl
| Download URL | mxlite_sdk-0.3.9-cp310-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 9.4 MB |
| Tags | CPython 3.10 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
86df93ea314f5ce0384f0b4357aa98c46c8532ed38e398c0d457b8b9e003e96a
|
|
BLAKE2b-256 checksum How to use checksums |
bcd06279944e4a57a91532775cf38db1f0d2b5e82344aedac7831d6303f225e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / mxlite_sdk-0.3.9-cp310-none-macosx_12_0_arm64.whl
| Download URL | mxlite_sdk-0.3.9-cp310-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 9.3 MB |
| Tags | CPython 3.10 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
06c48ec2244818e3cd40377641497e4927b597a141aac150cf3143a74126f8f8
|
|
BLAKE2b-256 checksum How to use checksums |
8863d77c5d37d7f42749a1fd5a44bf5c30d4c9d5bf87de9e7aaa039aeab5263a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|