Python SDK for mxlite
Project description
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 mxlite.get_host_list()
print(f"找到 {len(hosts.sessions)} 个主机")
if hosts.sessions:
# 在远程主机上执行命令
host_id = hosts.sessions[0] # 使用第一个主机
result, status = await mxlite.command_exec(host_id, "ls -la")
task_id = result.task_id
# 等待任务完成
task_result = await mxlite.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 mxlite.get_host_list()
print(f"找到 {len(hosts.sessions)} 个主机")
if hosts.sessions:
# 在远程主机上执行命令
host_id = hosts.sessions[0] # 使用第一个主机
result, status = await mxlite.command_exec(host_id, "ls -la")
task_id = result.task_id
# 等待任务完成
task_result = await mxlite.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
# 设置日志
logging.basicConfig(level=logging.INFO)
async def deploy_discovery_mode(ssh_host, ssh_user, ssh_password):
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}")
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)
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:
# 确保在任何情况下都会清理
if 'deployer' in locals():
await deployer.systemd_remove_mxa()
logger.info("MXA服务已成功移除")
# 关闭MXD服务
await mxc.close()
logger.info("MXD已停止")
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
# 设置日志
logging.basicConfig(level=logging.INFO)
async def deploy_with_direct_url(ssh_host, ssh_user, ssh_password):
# MXD WebSocket地址
ws_url = "ws://mxd-server.example.com:8080/ws" # 指定的WebSocket URL
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}")
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 文件。
相关链接
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mxlite_sdk-0.3.0-cp314-none-win_amd64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp314-none-win_amd64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ea69df2a838c33ae1971b6460557fd17e1d90f5c4387936c25a917b821866b3
|
|
| MD5 |
2bbc53f30bd6ec98ec35d7f6c6ee074e
|
|
| BLAKE2b-256 |
c1c2526a2a1a0a6bef8c15a38bcea7026a46103fa6f7b5a01ece5828e134e758
|
File details
Details for the file mxlite_sdk-0.3.0-cp314-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp314-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.14
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2073c11767e4f1f92b0b1788814bf40f7eb374614378d4ae1f97f5f4c1633aa3
|
|
| MD5 |
5347fcb645fe2185581ecf1b59ca9ef9
|
|
| BLAKE2b-256 |
4a1d37d46fed29ff7114f8455b61cbc6d106d5c088b8dcb458c7397e8b412c88
|
File details
Details for the file mxlite_sdk-0.3.0-cp314-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp314-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.14
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c90668cf6b2dc4cbc0f5cc23fbf65d24b919ff1c57fc6c9147b7af2c3de7ba6
|
|
| MD5 |
477fb9078c6e72e94cf5669d86a8c227
|
|
| BLAKE2b-256 |
647ca6dcc3b39a3b679d3b301a7162729e713b5fefeae37695dd9b8fe3b46ba6
|
File details
Details for the file mxlite_sdk-0.3.0-cp314-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp314-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.14, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88a1999c5aad87ae05483d011bd99b432a136d81be52c358e549f6a76b1a4018
|
|
| MD5 |
a78eafbf3f9ec80ba48ea6c3dab90abe
|
|
| BLAKE2b-256 |
2c937af35dbf6d8cc7f6e8bfc84102dffca6eb3e80e61b97791daf0d0f0fa271
|
File details
Details for the file mxlite_sdk-0.3.0-cp314-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp314-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 9.3 MB
- Tags: CPython 3.14, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd910567a00a900b2931478b192a7dc13e947c25f79feb33e73bd3e730a8197a
|
|
| MD5 |
e803ac088e3b9bfd3dbcfdf392c39e74
|
|
| BLAKE2b-256 |
f6cab9a5411437164dc30c6a4474ff64c470f0bfee9579b2451ab853939a6a5e
|
File details
Details for the file mxlite_sdk-0.3.0-cp313-none-win_amd64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp313-none-win_amd64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45e3046bc23822684c880715a4775cd1f14f23dc81594042e72ed495682315af
|
|
| MD5 |
e99dde93c54b042006927acf83ea551b
|
|
| BLAKE2b-256 |
b44dd607b94df11bd1669dd0743a86ee3772e1a052b8632a703a07b919245e31
|
File details
Details for the file mxlite_sdk-0.3.0-cp313-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp313-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.13
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a77b5140495846659b2a988f82062cd25796b558838f433e831b6ac5c1e23078
|
|
| MD5 |
fcf10348cd3246a430e295747183a88c
|
|
| BLAKE2b-256 |
5b238198eb5079580c7e411eb39fb26b18f55eba8823f06313995be9431945d3
|
File details
Details for the file mxlite_sdk-0.3.0-cp313-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp313-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.13
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28e2155b18aebd9e8c49fe8cb211c23cd6ae35da3d8923acd3aa659c50741a2c
|
|
| MD5 |
0b23411287e67230e85534ddfaa9b775
|
|
| BLAKE2b-256 |
8688f5ece6371bc6f0c8238483affe787a327b09b3949fba25daeea986b5048f
|
File details
Details for the file mxlite_sdk-0.3.0-cp313-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp313-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.13, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89a440ab06e3083362afcb194c19116467652509fb719f4beec99dd885e2df06
|
|
| MD5 |
73bccc2c57ee95957bf1d1bc76706919
|
|
| BLAKE2b-256 |
2a19debc63fcdb4ea172299b5395de7e5ef7a9fae8812b1fca450c9cef53abe4
|
File details
Details for the file mxlite_sdk-0.3.0-cp313-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp313-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 9.3 MB
- Tags: CPython 3.13, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d98dbacb2186c0e7a09d483c459eaa6dbd58bc10b375117f8017bfec6d8eeccb
|
|
| MD5 |
3251976acfe1f0a1512bfc56f67ad4dd
|
|
| BLAKE2b-256 |
c4ff3886af738a2b1df1d01b719c3a2c9f00d9a68f6dad5da26d6867b8dc5cc0
|
File details
Details for the file mxlite_sdk-0.3.0-cp312-none-win_amd64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp312-none-win_amd64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa7f991b9db896a6d3120859c74c94d7e19684d4d7f0918cb07957b06ce8bb16
|
|
| MD5 |
9bb8174f46a152dc589d1aaac54e8d39
|
|
| BLAKE2b-256 |
0cd7a0042c405c21f20a7e785857e515726f73e8125e727a18b02dde88ee4b05
|
File details
Details for the file mxlite_sdk-0.3.0-cp312-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp312-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.12
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
213a7eea55802e0ba8c7735c446b9834769bd6b43893b6526ae7f5e9532a9b13
|
|
| MD5 |
d2411a247cf96966b5ccbe636e57910b
|
|
| BLAKE2b-256 |
f76024d16a3dce765dc62d77f8580233a21a0c6f54ea8f1e6f1cf502c657f7ec
|
File details
Details for the file mxlite_sdk-0.3.0-cp312-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp312-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.12
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f300e517ad593b70f21d3923715d79c1118546a1c27e531acbdfeb8d57b80734
|
|
| MD5 |
0440818493e37ec60e237c3ba5b4a9bd
|
|
| BLAKE2b-256 |
8547c3efc1a47da1bfa4ea03ce5e2ea8e00c88e184467719f4df4ceb638efc7b
|
File details
Details for the file mxlite_sdk-0.3.0-cp312-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp312-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.12, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b36908232e0efbc3d0ba748ec990654a6fe0e1516f3bfb2aa8c1592512837bbe
|
|
| MD5 |
025317f78610d783754ec3682bf781f8
|
|
| BLAKE2b-256 |
e9d84130c46853b6de3c3d31a8621ba312d91173fe46a3ac2d87f6be2f57a6d0
|
File details
Details for the file mxlite_sdk-0.3.0-cp312-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp312-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 9.3 MB
- Tags: CPython 3.12, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfeb0983990237c77bc16714aee26f86f9d97c5984a621bcf27791ce6b5fb1a4
|
|
| MD5 |
29bc7bacc0370f3e599623f759f2c809
|
|
| BLAKE2b-256 |
5b7c4eb401554dc563a7e97cd2648f27320349381a64a2a3b7506d963345f396
|
File details
Details for the file mxlite_sdk-0.3.0-cp311-none-win_amd64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp311-none-win_amd64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdf9ee1d068adc4136950f74ab210a365e01fc9c3a7da556809893b979b73a67
|
|
| MD5 |
a245b1426cdaaf4b9d29b53d8dacfb51
|
|
| BLAKE2b-256 |
9de52b178551ee0dc72c52334474a0f0f750400a95e83c57821951c50f85fbd3
|
File details
Details for the file mxlite_sdk-0.3.0-cp311-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp311-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.11
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c631c8f0b3276d0f93ae19f1babacbfac49b7e2ad45a4dd9535985edbbfaeb3d
|
|
| MD5 |
02ecd7e818327306a85a1f2cc23b35ed
|
|
| BLAKE2b-256 |
73f8bab40a28995a749771be38cfa4d9fec9922f2c6df78008cccbbbf7559ac8
|
File details
Details for the file mxlite_sdk-0.3.0-cp311-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp311-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.11
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85a2c7a8a4eb81aca1ac7db3506eeb5ad6e3d5a88fe69726f5e495b7f0caae48
|
|
| MD5 |
2f2f82e3fc15648aa66e58ab6693c3f7
|
|
| BLAKE2b-256 |
cfe2d26c3431a88ba70aa14f26b5940f8e9fc24d47ad96c461996f7f72294fb2
|
File details
Details for the file mxlite_sdk-0.3.0-cp311-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp311-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.11, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a4f8720d5c7ad464f3adae26fae38592435036eb49a0e55fea3f13d86ad22be
|
|
| MD5 |
227ee1d65170c9f250f22dfe4151f9d6
|
|
| BLAKE2b-256 |
ef9a1a67479855dff0f7bbdaa40f535d1dc6ee2a99b42c00c46a2857d4bcf979
|
File details
Details for the file mxlite_sdk-0.3.0-cp311-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp311-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 9.3 MB
- Tags: CPython 3.11, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49e63a7a0291a5dd8b9f30d5da91ad4616d60ff489d97b99c60f7f60102cc7cb
|
|
| MD5 |
3d1545314884ac5ca30a5adc591a491f
|
|
| BLAKE2b-256 |
bdd346009b4e6080d7191322bb56c871b172bdce3f76100f13bb8658ec35d25f
|
File details
Details for the file mxlite_sdk-0.3.0-cp310-none-win_amd64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp310-none-win_amd64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f7c38a3fd64f327b24b1aa102e318db05ed741f5f88025c6214587e5c28b4f6
|
|
| MD5 |
fabf8f4f1af70f19bcc7ea6240bd3b34
|
|
| BLAKE2b-256 |
95a25189165c3c3cb23ec41d0796a4f1185989699942ef259222f048d5f2360e
|
File details
Details for the file mxlite_sdk-0.3.0-cp310-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp310-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.10
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b08659d28518851738565c7308972c51ddb3de94b278e785b65eb522175660ea
|
|
| MD5 |
3ac96c58b3123f2410e23fde1a4224b9
|
|
| BLAKE2b-256 |
fce6bc528b1fb97a37f5dae3a6457f2de08a2f90a1161d073495fad7362d18ff
|
File details
Details for the file mxlite_sdk-0.3.0-cp310-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp310-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.5 MB
- Tags: CPython 3.10
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7b72217a8ede6d340baddc11ec6889fed57d0e747c175ae5c283f8d59fd9347
|
|
| MD5 |
ac117d658d32e611c13ae5125c146ce5
|
|
| BLAKE2b-256 |
a5343d81004aab5e4c7b32e3303c34670da61ba2e397a8eb768c9f28d5c77bda
|
File details
Details for the file mxlite_sdk-0.3.0-cp310-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp310-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.10, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
359e35dd4a5529f905f5ccf8b63dc7593c16c1964e4bbd45b2fc9f0d721709bd
|
|
| MD5 |
4f1ce8f52e711c26847c0995c128c33f
|
|
| BLAKE2b-256 |
a0d4e8e04751912f483cc830068e60ce1d59488ee747c008a3adf028f71aa2a9
|
File details
Details for the file mxlite_sdk-0.3.0-cp310-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: mxlite_sdk-0.3.0-cp310-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 9.3 MB
- Tags: CPython 3.10, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37e7c3f145415aed9876509ac1742d5927c4271575a445ba28db93e2bb707426
|
|
| MD5 |
3862d42fb93fef04ac0e9848f5533372
|
|
| BLAKE2b-256 |
1b20f0673e56968658d66d2b17e5a00d94eff036b6ea3ae638f3c61bd1ac46e5
|