Skip to main content

A Python framework

Project description

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.pypath_utils.py 等工具函数。
    • pyqt:与 PyQt 相关的代码目录,包含 router.py(路由管理)、store.py(数据存储)等。
    • beans:组件相关目录,包含组件工厂等。
    • log:日志设置目录,包含 LoggingSetup.py 用于配置日志。
    • loader:资源加载目录,包含 PropertyLoader.py(属性加载)、Resource.py(资源类)和 ResourceLoader.py(资源加载器)。
    • core:核心功能目录,包含环境配置、实例管理和属性配置等子目录。
    • bridge:桥接相关代码目录,包含 bridge.pyroute.py
    • context:上下文相关目录,包含属性配置相关代码。
    • banner:banner 相关代码目录,包含 AbundanceApplicationBannerPrinter.py(banner 打印器)、AbundanceBanner.pyBannerMode.py(banner 显示模式)。
  • resources:资源目录,存放项目所需的各种资源文件。
    • config:存放配置文件,如项目的配置参数、数据库连接信息等。这些配置文件可根据不同的环境进行修改,以满足项目的不同需求。
    • banner.txt:启动 banner 的相关文本文件,开发者可以修改其中的内容来定制启动时的 banner 信息。
  • main.py:项目的主启动文件,是项目的入口点。运行该文件即可启动整个项目。
  • poetry.lock:Poetry 生成的依赖锁定文件,记录了项目所依赖的具体版本信息,可确保项目在不同环境下使用的依赖版本一致,避免因版本差异而导致的问题。
  • pyproject.toml:Poetry 的项目配置文件,定义了项目的元数据(如项目名称、版本号、作者等)和依赖关系。开发者可以在这里添加或修改项目的依赖信息。

依赖管理

使用 Poetry 作为包管理器,确保项目依赖的一致性和可重复性。在项目根目录下,运行以下命令安装项目所需的依赖:

poetry install

该命令会根据 pyproject.toml 文件中的依赖信息,自动下载并安装项目所需的所有依赖。同时,它会使用 poetry.lock 文件来确保安装的依赖版本与开发环境一致。

使用说明

配置文件

根据项目需求,在 resources/config 目录下配置相关参数。可以创建不同的配置文件,如 development.ini 用于开发环境,production.ini 用于生产环境。在配置文件中,可以设置数据库连接信息、API 接口地址、调试开关等参数。

启动项目

在完成依赖安装和配置文件设置后,运行以下命令启动项目:

python main.py

项目启动时,会自动加载配置文件中的参数,并展示定制的 banner 信息。

Redis 缓存使用示例

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” 项目能够为你的开发工作带来便利和帮助!

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

abundance-0.0.1b0.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

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

abundance-0.0.1b0-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file abundance-0.0.1b0.tar.gz.

File metadata

  • Download URL: abundance-0.0.1b0.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for abundance-0.0.1b0.tar.gz
Algorithm Hash digest
SHA256 34f7e63ae75d0c9c648274550a528f144b7beaf81b57952baf6cb6667c3be02c
MD5 620cf8968b18cc97282249a6dc57876d
BLAKE2b-256 95fbd5b45990ddbd6a2943c025f1f243f65c93206bcf9d34deed6e7d381ed14d

See more details on using hashes here.

File details

Details for the file abundance-0.0.1b0-py3-none-any.whl.

File metadata

  • Download URL: abundance-0.0.1b0-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for abundance-0.0.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 93cb1bc65a7b964134aa2e47dca592bae470b79ad84ab1e9a25c5df7a9717dab
MD5 bacfaee8998ce723a8543d7dd51d95da
BLAKE2b-256 ce2bc8a101a9eb49a82d3964d34338f0e4cef55ac18ea3f6c5a454c37f7d21c2

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