Metadata-Version: 2.3 Name: abundance Version: 0.0.1b0 Summary: A Python framework Author: tsuimengchao Author-email: tsuimengchao@gmail.com Requires-Python: >=3.11 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Requires-Dist: cryptography (>=44.0.0,<45.0.0) Requires-Dist: openpyxl (>=3.1.5,<4.0.0) Requires-Dist: pandas (>=2.2.3,<3.0.0) Requires-Dist: psutil (>=6.1.1,<7.0.0) Requires-Dist: pycryptodome (>=3.21.0,<4.0.0) Requires-Dist: pydantic (>=2.10.4,<3.0.0) Requires-Dist: pyjwt (>=2.10.1,<3.0.0) Requires-Dist: python-magic (>=0.4.27,<0.5.0) Requires-Dist: pytz (>=2024.2,<2025.0) Requires-Dist: redis (>=5.2.1,<6.0.0) Requires-Dist: requests (>=2.32.3,<3.0.0) Requires-Dist: validators (>=0.34.0,<0.35.0) Description-Content-Type: text/markdown # Abundance 项目 ## 项目简介 “Abundance” 是一个功能强大的 Python 框架,融合了多种优秀框架的设计理念。它以 PyQt 为基础构建 GUI 界面,借鉴了 Vue3 的目录结构与规范,以及 Spring Boot 的多模块设计思想,为开发者提供高效、灵活且易于维护的开发体验。项目启动时会自动加载配置参数,还能展示定制的 banner 信息,同时支持 Redis 缓存操作。 ## 主要特性 ### 启动配置加载 项目启动时会从配置文件自动加载参数,支持根据不同环境(开发、测试、生产)进行灵活配置,确保项目在各环境下稳定运行。例如,开发环境可开启调试信息,生产环境则关闭以提升性能。 ### Banner 打印 启动时展示定制的 banner 信息,开发者可修改 `resources/banner.txt` 文件内容,打造独特的启动仪式感。 ### Redis 缓存支持 提供了丰富的 Redis 操作工具类 `RedisUtils`,支持对字符串、哈希、集合、列表等多种数据类型的缓存操作,包括设置过期时间、批量获取和删除等功能。 ### 组件注册与依赖注入 通过 `InstanceContainer` 实现组件的注册和依赖注入,方便管理项目中的组件。 ## 目录结构 ### 根目录 - **abundance**:框架核心代码目录。 - **Abundance.py**:包含项目的基本信息,如名称、版本、作者等。 - **AbundanceApplication.py**:项目的启动类,负责环境准备、组件注册、依赖注入、日志设置和 banner 打印等操作。 - **util**:工具类目录,包含 `StopWatch.py`(用于计时)、`data_utils.py` 和 `path_utils.py` 等工具函数。 - **pyqt**:与 PyQt 相关的代码目录,包含 `router.py`(路由管理)、`store.py`(数据存储)等。 - **beans**:组件相关目录,包含组件工厂等。 - **log**:日志设置目录,包含 `LoggingSetup.py` 用于配置日志。 - **loader**:资源加载目录,包含 `PropertyLoader.py`(属性加载)、`Resource.py`(资源类)和 `ResourceLoader.py`(资源加载器)。 - **core**:核心功能目录,包含环境配置、实例管理和属性配置等子目录。 - **bridge**:桥接相关代码目录,包含 `bridge.py` 和 `route.py`。 - **context**:上下文相关目录,包含属性配置相关代码。 - **banner**:banner 相关代码目录,包含 `AbundanceApplicationBannerPrinter.py`(banner 打印器)、`AbundanceBanner.py` 和 `BannerMode.py`(banner 显示模式)。 - **resources**:资源目录,存放项目所需的各种资源文件。 - **config**:存放配置文件,如项目的配置参数、数据库连接信息等。这些配置文件可根据不同的环境进行修改,以满足项目的不同需求。 - **banner.txt**:启动 banner 的相关文本文件,开发者可以修改其中的内容来定制启动时的 banner 信息。 - **main.py**:项目的主启动文件,是项目的入口点。运行该文件即可启动整个项目。 - **poetry.lock**:Poetry 生成的依赖锁定文件,记录了项目所依赖的具体版本信息,可确保项目在不同环境下使用的依赖版本一致,避免因版本差异而导致的问题。 - **pyproject.toml**:Poetry 的项目配置文件,定义了项目的元数据(如项目名称、版本号、作者等)和依赖关系。开发者可以在这里添加或修改项目的依赖信息。 ## 依赖管理 使用 Poetry 作为包管理器,确保项目依赖的一致性和可重复性。在项目根目录下,运行以下命令安装项目所需的依赖: ```bash poetry install ``` 该命令会根据 `pyproject.toml` 文件中的依赖信息,自动下载并安装项目所需的所有依赖。同时,它会使用 `poetry.lock` 文件来确保安装的依赖版本与开发环境一致。 ## 使用说明 ### 配置文件 根据项目需求,在 `resources/config` 目录下配置相关参数。可以创建不同的配置文件,如 `development.ini` 用于开发环境,`production.ini` 用于生产环境。在配置文件中,可以设置数据库连接信息、API 接口地址、调试开关等参数。 ### 启动项目 在完成依赖安装和配置文件设置后,运行以下命令启动项目: ```bash python main.py ``` 项目启动时,会自动加载配置文件中的参数,并展示定制的 banner 信息。 ## Redis 缓存使用示例 ```python from abundance_common.core.utils.RedisUtils import RedisUtils # 初始化 Redis 连接 redis_utils = RedisUtils() # 设置缓存 redis_utils.set('key', 'value', time=60) # 获取缓存 result = redis_utils.get('key') print(result) # 删除缓存 redis_utils.del_key('key') ``` ## 贡献与反馈 欢迎广大开发者为 “Abundance” 项目贡献代码、提出建议或反馈问题。你可以通过以下方式参与项目开发: - **提交 Issue**:在 GitHub 上的 Issues 页面提交问题或建议,详细描述问题的现象、复现步骤和期望的结果。 - **提交 Pull Request**:如果你有代码贡献,可以提交 Pull Request。在提交之前,请确保你的代码符合项目的代码规范,并添加必要的测试用例。 希望 “Abundance” 项目能够为你的开发工作带来便利和帮助!