# Xml2GUI
<div align="center">
<img src="image.png" width="200" alt="Xml2GUI">
<h1>Xml2GUI</h1>
<p></p>
<a href="https://www.gnu.org/licenses/gpl-3.0">
<img src="https://img.shields.io/badge/License-GPLv3-blue.svg" alt="GPL v3">
</a>
</div>
### 完整使用指南:[USER_GUIDE.md](USER_GUIDE.md)
## 什么是Xml2GUI?
Xml2GUI是一个十分方便的框架,专为没有任何编程经验的用户设计。它允许您通过简单的XML文件创建功能强大、界面美观的桌面应用程序。您无需编写复杂的Python代码,只需使用直观的XML标记语言,就能创建出漂亮的图形用户界面(GUI)应用程序。
### 各位刷机大佬建议配合bff食用(doge
---
### 核心优势
- **零编程经验要求**:无需任何编程知识,只需了解基本的XML语法
- **直观的XML语法**:使用简单易懂的XML标签定义界面元素
- **自动代码生成**:将XML文件自动转换为可执行的Python代码
- **一键编译为EXE**:轻松将应用程序编译为独立的可执行文件
- **丰富的控件支持**:支持各种常用控件和布局
- **现代化界面**:支持PyQt-Fluent-Widgets,创建美观的现代化界面
- **事件处理简化**:简单易用的事件绑定机制
## 快速开始(3步完成)
### 第1步:编写XML文件
创建一个XML文件,定义您的应用程序界面和功能:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<application>
<!-- 窗口属性 -->
<window title="我的第一个应用" width="600" height="400"/>
<!-- 布局定义 -->
<layouts>
<layout id="main_layout" type="VBoxLayout">
<widget id="welcome_label" type="Label" text="欢迎使用Xml2GUI框架!"/>
<widget id="run_button" type="Button" text="运行程序"/>
<widget id="result_label" type="Label" text=""/>
</layout>
</layouts>
<!-- 事件绑定 -->
<events>
<event widget="run_button" type="click" handler="on_run_button_clicked"/>
</events>
</application>
```
### 第2步:生成应用程序
在命令行中执行以下命令:
```bash
# 生成Python程序
python build.py my_app.xml
# 生成可执行文件(EXE)
python build.py my_app.xml -exe
```
### 第3步:运行您的应用
```bash
# 运行Python程序
python dist/my_app.py
# 或直接运行生成的EXE文件
output/my_app.exe
```
## 安装指南
### 系统要求
- Windows 操作系统(推荐)
- Python 3.6 或更高版本
### 安装步骤
1. **下载项目**
```bash
git clone https://gitee.com/ghhuang1057/xml2-gui.git
cd xml2-gui
```
2. **安装依赖**
```bash
pip install -r requirements.txt
```
这会自动安装以下依赖:
- `PyQt5` - Python Qt5 GUI框架
- `PyQt-Fluent-Widgets` - Fluent风格控件库
- `nuitka` - Python代码编译器(用于生成EXE)
3. **完成安装**
现在您已经准备好使用Xml2GUI了!所有必要的依赖都已安装,包括编译EXE所需的工具。
## 功能特性
### 1. 按钮操作
- **打开程序**:点击按钮启动任何可执行文件
- **打开文档**:点击按钮打开文档、图片等文件
- **运行批处理**:点击按钮执行.bat或.cmd脚本
- **打开网页**:点击按钮打开指定网址
### 2. 数据交互
- **文本输入**:支持单行和多行文本输入
- **选择操作**:支持下拉框、复选框、单选按钮等
- **文件选择**:支持文件和文件夹选择对话框
### 3. 界面设计
- **多种布局**:垂直、水平、网格、表单等布局方式
- **样式定制**:通过CSS样式定制控件外观
- **响应式设计**:自适应窗口大小变化
## 项目结构
```
Xml2GUI/
├── build.py # 构建脚本
├── xml2gui/ # 框架核心代码
│ ├── __init__.py
│ ├── parser.py # XML解析器
│ ├── generator.py # Python代码生成器
│ └── compiler.py # 编译器(用于生成exe)
├── examples/ # 示例文件
│ ├── hello_world.xml
│ └── ...
├── dist/ # 生成的Python代码输出目录
└── output/ # 生成的exe文件输出目录
```
## 详细使用指南
有关更详细的使用说明,请参考[用户使用指南](USER_GUIDE.md)。
## 许可证
本项目主要基于GNU通用公共许可证版本3(GPL v3)授权。
此外,本项目采用可持续发展开源许可证(SCL)作为例外条款。SCL允许经极客地平线工作室(Geek Horizon Studio)认证的开发者在满足特定条件的情况下,免除GPL v3的某些义务。
**对于所有用户:**
* 默认情况下,您必须遵守GPL v3许可证的条款。
* 请参阅 `LICENSE-GPLv3` 文件了解详细条款。
**对于认证开发者:**
* 如果您已从极客地平线工作室获得有效的SCL校验码,您可以依据 `LICENSE-SCL` 文件中规定的例外条款操作。
---
我的校验码:
开发者信息
名称: huang1057
校验码: GHS-57529AD4487EB14D5528BDF0522E
---
验证SCL校验码:https://scl-verify.ghosf.dpdns.org/
Raw data
{
"_id": null,
"home_page": "https://gitee.com/ghhuang1057/xml2-gui",
"name": "xml2gui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "xml gui pyqt pyqt5 qt python ui designer",
"author": "huang1057",
"author_email": "your.email@example.com",
"download_url": "https://files.pythonhosted.org/packages/64/96/7782d79ebcd731ad98c556fdc7cd9d08032ee2161540554221fccaeec91d/xml2gui-1.0.0.tar.gz",
"platform": null,
"description": "# Xml2GUI\r\n\r\n\r\n\r\n<div align=\"center\">\r\n\r\n <img src=\"image.png\" width=\"200\" alt=\"Xml2GUI\">\r\n\r\n <h1>Xml2GUI</h1>\r\n\r\n <p></p>\r\n\r\n <a href=\"https://www.gnu.org/licenses/gpl-3.0\">\r\n\r\n <img src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" alt=\"GPL v3\">\r\n\r\n </a>\r\n\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n### \u5b8c\u6574\u4f7f\u7528\u6307\u5357\uff1a[USER_GUIDE.md](USER_GUIDE.md)\r\n\r\n\r\n\r\n## \u4ec0\u4e48\u662fXml2GUI\uff1f\r\n\r\n\r\n\r\nXml2GUI\u662f\u4e00\u4e2a\u5341\u5206\u65b9\u4fbf\u7684\u6846\u67b6\uff0c\u4e13\u4e3a\u6ca1\u6709\u4efb\u4f55\u7f16\u7a0b\u7ecf\u9a8c\u7684\u7528\u6237\u8bbe\u8ba1\u3002\u5b83\u5141\u8bb8\u60a8\u901a\u8fc7\u7b80\u5355\u7684XML\u6587\u4ef6\u521b\u5efa\u529f\u80fd\u5f3a\u5927\u3001\u754c\u9762\u7f8e\u89c2\u7684\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u3002\u60a8\u65e0\u9700\u7f16\u5199\u590d\u6742\u7684Python\u4ee3\u7801\uff0c\u53ea\u9700\u4f7f\u7528\u76f4\u89c2\u7684XML\u6807\u8bb0\u8bed\u8a00\uff0c\u5c31\u80fd\u521b\u5efa\u51fa\u6f02\u4eae\u7684\u56fe\u5f62\u7528\u6237\u754c\u9762\uff08GUI\uff09\u5e94\u7528\u7a0b\u5e8f\u3002\r\n\r\n### \u5404\u4f4d\u5237\u673a\u5927\u4f6c\u5efa\u8bae\u914d\u5408bff\u98df\u7528\uff08doge\r\n\r\n---\r\n\r\n### \u6838\u5fc3\u4f18\u52bf\r\n\r\n\r\n\r\n- **\u96f6\u7f16\u7a0b\u7ecf\u9a8c\u8981\u6c42**\uff1a\u65e0\u9700\u4efb\u4f55\u7f16\u7a0b\u77e5\u8bc6\uff0c\u53ea\u9700\u4e86\u89e3\u57fa\u672c\u7684XML\u8bed\u6cd5\r\n\r\n- **\u76f4\u89c2\u7684XML\u8bed\u6cd5**\uff1a\u4f7f\u7528\u7b80\u5355\u6613\u61c2\u7684XML\u6807\u7b7e\u5b9a\u4e49\u754c\u9762\u5143\u7d20\r\n\r\n- **\u81ea\u52a8\u4ee3\u7801\u751f\u6210**\uff1a\u5c06XML\u6587\u4ef6\u81ea\u52a8\u8f6c\u6362\u4e3a\u53ef\u6267\u884c\u7684Python\u4ee3\u7801\r\n\r\n- **\u4e00\u952e\u7f16\u8bd1\u4e3aEXE**\uff1a\u8f7b\u677e\u5c06\u5e94\u7528\u7a0b\u5e8f\u7f16\u8bd1\u4e3a\u72ec\u7acb\u7684\u53ef\u6267\u884c\u6587\u4ef6\r\n\r\n- **\u4e30\u5bcc\u7684\u63a7\u4ef6\u652f\u6301**\uff1a\u652f\u6301\u5404\u79cd\u5e38\u7528\u63a7\u4ef6\u548c\u5e03\u5c40\r\n\r\n- **\u73b0\u4ee3\u5316\u754c\u9762**\uff1a\u652f\u6301PyQt-Fluent-Widgets\uff0c\u521b\u5efa\u7f8e\u89c2\u7684\u73b0\u4ee3\u5316\u754c\u9762\r\n\r\n- **\u4e8b\u4ef6\u5904\u7406\u7b80\u5316**\uff1a\u7b80\u5355\u6613\u7528\u7684\u4e8b\u4ef6\u7ed1\u5b9a\u673a\u5236\r\n\r\n\r\n\r\n## \u5feb\u901f\u5f00\u59cb\uff083\u6b65\u5b8c\u6210\uff09\r\n\r\n\r\n\r\n### \u7b2c1\u6b65\uff1a\u7f16\u5199XML\u6587\u4ef6\r\n\r\n\r\n\r\n\u521b\u5efa\u4e00\u4e2aXML\u6587\u4ef6\uff0c\u5b9a\u4e49\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f\u754c\u9762\u548c\u529f\u80fd\uff1a\r\n\r\n\r\n\r\n```xml\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n\r\n<application>\r\n\r\n <!-- \u7a97\u53e3\u5c5e\u6027 -->\r\n\r\n <window title=\"\u6211\u7684\u7b2c\u4e00\u4e2a\u5e94\u7528\" width=\"600\" height=\"400\"/>\r\n\r\n \r\n\r\n <!-- \u5e03\u5c40\u5b9a\u4e49 -->\r\n\r\n <layouts>\r\n\r\n <layout id=\"main_layout\" type=\"VBoxLayout\">\r\n\r\n <widget id=\"welcome_label\" type=\"Label\" text=\"\u6b22\u8fce\u4f7f\u7528Xml2GUI\u6846\u67b6!\"/>\r\n\r\n <widget id=\"run_button\" type=\"Button\" text=\"\u8fd0\u884c\u7a0b\u5e8f\"/>\r\n\r\n <widget id=\"result_label\" type=\"Label\" text=\"\"/>\r\n\r\n </layout>\r\n\r\n </layouts>\r\n\r\n \r\n\r\n <!-- \u4e8b\u4ef6\u7ed1\u5b9a -->\r\n\r\n <events>\r\n\r\n <event widget=\"run_button\" type=\"click\" handler=\"on_run_button_clicked\"/>\r\n\r\n </events>\r\n\r\n</application>\r\n\r\n```\r\n\r\n\r\n\r\n### \u7b2c2\u6b65\uff1a\u751f\u6210\u5e94\u7528\u7a0b\u5e8f\r\n\r\n\r\n\r\n\u5728\u547d\u4ee4\u884c\u4e2d\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a\r\n\r\n\r\n\r\n```bash\r\n\r\n# \u751f\u6210Python\u7a0b\u5e8f\r\n\r\npython build.py my_app.xml\r\n\r\n\r\n\r\n# \u751f\u6210\u53ef\u6267\u884c\u6587\u4ef6\uff08EXE\uff09\r\n\r\npython build.py my_app.xml -exe\r\n\r\n```\r\n\r\n\r\n\r\n### \u7b2c3\u6b65\uff1a\u8fd0\u884c\u60a8\u7684\u5e94\u7528\r\n\r\n\r\n\r\n```bash\r\n\r\n# \u8fd0\u884cPython\u7a0b\u5e8f\r\n\r\npython dist/my_app.py\r\n\r\n\r\n\r\n# \u6216\u76f4\u63a5\u8fd0\u884c\u751f\u6210\u7684EXE\u6587\u4ef6\r\n\r\noutput/my_app.exe\r\n\r\n```\r\n\r\n\r\n\r\n## \u5b89\u88c5\u6307\u5357\r\n\r\n\r\n\r\n### \u7cfb\u7edf\u8981\u6c42\r\n\r\n\r\n\r\n- Windows \u64cd\u4f5c\u7cfb\u7edf\uff08\u63a8\u8350\uff09\r\n\r\n- Python 3.6 \u6216\u66f4\u9ad8\u7248\u672c\r\n\r\n\r\n\r\n### \u5b89\u88c5\u6b65\u9aa4\r\n\r\n\r\n\r\n1. **\u4e0b\u8f7d\u9879\u76ee**\r\n\r\n\r\n\r\n ```bash\r\n\r\n git clone https://gitee.com/ghhuang1057/xml2-gui.git\r\n\r\n cd xml2-gui\r\n\r\n ```\r\n\r\n\r\n\r\n2. **\u5b89\u88c5\u4f9d\u8d56**\r\n\r\n\r\n\r\n ```bash\r\n\r\n pip install -r requirements.txt\r\n\r\n ```\r\n\r\n \r\n\r\n \u8fd9\u4f1a\u81ea\u52a8\u5b89\u88c5\u4ee5\u4e0b\u4f9d\u8d56\uff1a\r\n\r\n - `PyQt5` - Python Qt5 GUI\u6846\u67b6\r\n\r\n - `PyQt-Fluent-Widgets` - Fluent\u98ce\u683c\u63a7\u4ef6\u5e93\r\n\r\n - `nuitka` - Python\u4ee3\u7801\u7f16\u8bd1\u5668\uff08\u7528\u4e8e\u751f\u6210EXE\uff09\r\n\r\n\r\n\r\n3. **\u5b8c\u6210\u5b89\u88c5**\r\n\r\n\r\n\r\n \u73b0\u5728\u60a8\u5df2\u7ecf\u51c6\u5907\u597d\u4f7f\u7528Xml2GUI\u4e86\uff01\u6240\u6709\u5fc5\u8981\u7684\u4f9d\u8d56\u90fd\u5df2\u5b89\u88c5\uff0c\u5305\u62ec\u7f16\u8bd1EXE\u6240\u9700\u7684\u5de5\u5177\u3002\r\n\r\n\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n\r\n\r\n### 1. \u6309\u94ae\u64cd\u4f5c\r\n\r\n- **\u6253\u5f00\u7a0b\u5e8f**\uff1a\u70b9\u51fb\u6309\u94ae\u542f\u52a8\u4efb\u4f55\u53ef\u6267\u884c\u6587\u4ef6\r\n\r\n- **\u6253\u5f00\u6587\u6863**\uff1a\u70b9\u51fb\u6309\u94ae\u6253\u5f00\u6587\u6863\u3001\u56fe\u7247\u7b49\u6587\u4ef6\r\n\r\n- **\u8fd0\u884c\u6279\u5904\u7406**\uff1a\u70b9\u51fb\u6309\u94ae\u6267\u884c.bat\u6216.cmd\u811a\u672c\r\n\r\n- **\u6253\u5f00\u7f51\u9875**\uff1a\u70b9\u51fb\u6309\u94ae\u6253\u5f00\u6307\u5b9a\u7f51\u5740\r\n\r\n\r\n\r\n### 2. \u6570\u636e\u4ea4\u4e92\r\n\r\n- **\u6587\u672c\u8f93\u5165**\uff1a\u652f\u6301\u5355\u884c\u548c\u591a\u884c\u6587\u672c\u8f93\u5165\r\n\r\n- **\u9009\u62e9\u64cd\u4f5c**\uff1a\u652f\u6301\u4e0b\u62c9\u6846\u3001\u590d\u9009\u6846\u3001\u5355\u9009\u6309\u94ae\u7b49\r\n\r\n- **\u6587\u4ef6\u9009\u62e9**\uff1a\u652f\u6301\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846\r\n\r\n\r\n\r\n### 3. \u754c\u9762\u8bbe\u8ba1\r\n\r\n- **\u591a\u79cd\u5e03\u5c40**\uff1a\u5782\u76f4\u3001\u6c34\u5e73\u3001\u7f51\u683c\u3001\u8868\u5355\u7b49\u5e03\u5c40\u65b9\u5f0f\r\n\r\n- **\u6837\u5f0f\u5b9a\u5236**\uff1a\u901a\u8fc7CSS\u6837\u5f0f\u5b9a\u5236\u63a7\u4ef6\u5916\u89c2\r\n\r\n- **\u54cd\u5e94\u5f0f\u8bbe\u8ba1**\uff1a\u81ea\u9002\u5e94\u7a97\u53e3\u5927\u5c0f\u53d8\u5316\r\n\r\n\r\n\r\n## \u9879\u76ee\u7ed3\u6784\r\n\r\n\r\n\r\n```\r\n\r\nXml2GUI/\r\n\r\n\u251c\u2500\u2500 build.py # \u6784\u5efa\u811a\u672c\r\n\r\n\u251c\u2500\u2500 xml2gui/ # \u6846\u67b6\u6838\u5fc3\u4ee3\u7801\r\n\r\n\u2502 \u251c\u2500\u2500 __init__.py\r\n\r\n\u2502 \u251c\u2500\u2500 parser.py # XML\u89e3\u6790\u5668\r\n\r\n\u2502 \u251c\u2500\u2500 generator.py # Python\u4ee3\u7801\u751f\u6210\u5668\r\n\r\n\u2502 \u2514\u2500\u2500 compiler.py # \u7f16\u8bd1\u5668\uff08\u7528\u4e8e\u751f\u6210exe\uff09\r\n\r\n\u251c\u2500\u2500 examples/ # \u793a\u4f8b\u6587\u4ef6\r\n\r\n\u2502 \u251c\u2500\u2500 hello_world.xml\r\n\r\n\u2502 \u2514\u2500\u2500 ...\r\n\r\n\u251c\u2500\u2500 dist/ # \u751f\u6210\u7684Python\u4ee3\u7801\u8f93\u51fa\u76ee\u5f55\r\n\r\n\u2514\u2500\u2500 output/ # \u751f\u6210\u7684exe\u6587\u4ef6\u8f93\u51fa\u76ee\u5f55\r\n\r\n```\r\n\r\n\r\n\r\n## \u8be6\u7ec6\u4f7f\u7528\u6307\u5357\r\n\r\n\r\n\r\n\u6709\u5173\u66f4\u8be6\u7ec6\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u8bf7\u53c2\u8003[\u7528\u6237\u4f7f\u7528\u6307\u5357](USER_GUIDE.md)\u3002\r\n\r\n\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u4e3b\u8981\u57fa\u4e8eGNU\u901a\u7528\u516c\u5171\u8bb8\u53ef\u8bc1\u7248\u672c3\uff08GPL v3\uff09\u6388\u6743\u3002\r\n\r\n\r\n\r\n\u6b64\u5916\uff0c\u672c\u9879\u76ee\u91c7\u7528\u53ef\u6301\u7eed\u53d1\u5c55\u5f00\u6e90\u8bb8\u53ef\u8bc1\uff08SCL\uff09\u4f5c\u4e3a\u4f8b\u5916\u6761\u6b3e\u3002SCL\u5141\u8bb8\u7ecf\u6781\u5ba2\u5730\u5e73\u7ebf\u5de5\u4f5c\u5ba4\uff08Geek Horizon Studio\uff09\u8ba4\u8bc1\u7684\u5f00\u53d1\u8005\u5728\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u514d\u9664GPL v3\u7684\u67d0\u4e9b\u4e49\u52a1\u3002\r\n\r\n\r\n\r\n**\u5bf9\u4e8e\u6240\u6709\u7528\u6237\uff1a**\r\n\r\n* \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u60a8\u5fc5\u987b\u9075\u5b88GPL v3\u8bb8\u53ef\u8bc1\u7684\u6761\u6b3e\u3002\r\n\r\n* \u8bf7\u53c2\u9605 `LICENSE-GPLv3` \u6587\u4ef6\u4e86\u89e3\u8be6\u7ec6\u6761\u6b3e\u3002\r\n\r\n\r\n\r\n**\u5bf9\u4e8e\u8ba4\u8bc1\u5f00\u53d1\u8005\uff1a**\r\n\r\n* \u5982\u679c\u60a8\u5df2\u4ece\u6781\u5ba2\u5730\u5e73\u7ebf\u5de5\u4f5c\u5ba4\u83b7\u5f97\u6709\u6548\u7684SCL\u6821\u9a8c\u7801\uff0c\u60a8\u53ef\u4ee5\u4f9d\u636e `LICENSE-SCL` \u6587\u4ef6\u4e2d\u89c4\u5b9a\u7684\u4f8b\u5916\u6761\u6b3e\u64cd\u4f5c\u3002\r\n\r\n\r\n\r\n---\r\n\r\n\u6211\u7684\u6821\u9a8c\u7801\uff1a\r\n\r\n\u5f00\u53d1\u8005\u4fe1\u606f\r\n\r\n\u540d\u79f0: huang1057\r\n\r\n\u6821\u9a8c\u7801: GHS-57529AD4487EB14D5528BDF0522E\r\n\r\n\r\n\r\n---\r\n\r\n\r\n\r\n\u9a8c\u8bc1SCL\u6821\u9a8c\u7801\uff1ahttps://scl-verify.ghosf.dpdns.org/\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A powerful framework for creating GUI applications using XML files",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://gitee.com/ghhuang1057/xml2-gui/issues",
"Documentation": "https://gitee.com/ghhuang1057/xml2-gui/blob/master/USER_GUIDE.md",
"Homepage": "https://gitee.com/ghhuang1057/xml2-gui",
"Source": "https://gitee.com/ghhuang1057/xml2-gui"
},
"split_keywords": [
"xml",
"gui",
"pyqt",
"pyqt5",
"qt",
"python",
"ui",
"designer"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "12a7f465f41cd8e02ffd7acd1d49a8712652157d0dcf602459aea79680dab757",
"md5": "1ca52b98ca5a05fa886654924a335be3",
"sha256": "9825dfd428ce0830c458aac0c80556f1ef769661e9269ce9b53ccdff85d28d21"
},
"downloads": -1,
"filename": "xml2gui-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1ca52b98ca5a05fa886654924a335be3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 14630,
"upload_time": "2025-09-14T05:44:38",
"upload_time_iso_8601": "2025-09-14T05:44:38.918598Z",
"url": "https://files.pythonhosted.org/packages/12/a7/f465f41cd8e02ffd7acd1d49a8712652157d0dcf602459aea79680dab757/xml2gui-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64967782d79ebcd731ad98c556fdc7cd9d08032ee2161540554221fccaeec91d",
"md5": "96b49053de9aae804abf61cdc20e6afc",
"sha256": "ea691e7925971fdd76bbae3f759e5a72f1db93d6ed14729e8a46029564152706"
},
"downloads": -1,
"filename": "xml2gui-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "96b49053de9aae804abf61cdc20e6afc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 294330,
"upload_time": "2025-09-14T05:44:41",
"upload_time_iso_8601": "2025-09-14T05:44:41.660506Z",
"url": "https://files.pythonhosted.org/packages/64/96/7782d79ebcd731ad98c556fdc7cd9d08032ee2161540554221fccaeec91d/xml2gui-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-14 05:44:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "xml2gui"
}