Skip to main content

Infini 核心标准文本输入输出模块

Project description

infini'水系核心

pypi hydro

.github/workflows/python-publish.yml CodeQL Netlify Status

🎁 Getting hydro

[!IMPORTANT]

强烈推荐使用 pdm 等能创建虚拟环境的包管理工具管理你的 HydroRollBot 项目。

  1. 安装库

    在终端中执行:

    git clone https://github.com/HydroRoll-Team/infini.git
    cd infini
    pdm install
    

    你可以使用pip进行安装:

    pip install infini
    
  2. 创建规则包实例

    确保你的infini正确安装后,打开终端并执行:

    python -m infini new MyRule
    

    你可以在生成的 MyRule\rule.py 创建一个或者多个继承 Handler 基类的实例, 通过编写合适的相关方法与类注册规则包实现规则的自定义。

    from infini import Handler, Result
    
    __handlers__ = ["HandlerRule"]
    
    
    class HandlerRule(Handler):
        """自设业务函数"""
    
        name = "MyRule" # 规则包名
        priority: int = 0 # 规则包权重
    
        def process(self, **kwargs) -> Result:
            """声明规则包检定方式"""
            return Result("event1", True)
    

    process函数应当返回一个Result对象,它应当包含一个消息事件名(例如示例中的event1),该消息事件名应当在 MyRule\event.py 中被注册。消息事件的动态内容通过{name}的方式声明并通过name="内容"的方式实现。

  3. 创建你的测试文件

    MyRule\tests.py 中的 test 函数中给出测试函数,并返回一个 list,应当包含所有异常内容。

  4. 测试你的规则包

    执行指令:

    python -m infini test MyRule
    

🌟 contribute

在此之前,请先克隆本仓库。

git clone https://github.com/HydroRoll-Team/infini.git

贡献手册

本段内容主要针对想要为通用规则包标准(GRPS)docs 文档Python 实现 作贡献的社区朋友,若您想要推广 GRPS-1 标准的其他语言实现,请提交相关 PR,届时修改下方的资源列表

您需要确保自己的硬件环境有 Python 解释器,您需要全局安装 pdm 依赖以实现局部开发 infini 文档或源码的目的。

pip3 install pdm

接着在 infini 仓库主分支的根目录下激活 pdm 虚拟环境。

cd infini
pdm venv list
pdm venv activate in-project

一、 在本地部署文档

infini 仓库根目录下安装 docs 组的依赖。

pdm install -dG docs

依赖安装完毕后,可进行版本控制或直接进行文档贡献。

版本控制 | mike 的其他指令具体可查看 jimporter/mike

pdm run mike serve

这样便可以查看不同版本的文档了。

文档贡献 | 这样贡献出来的文档永远是 dev 分支或 latests 分支的,这也是最为普遍的文档贡献方式,mkdocs 具体的配置教程可查看 squidfunk/mkdocs

pdm run mkdocs serve

接着就可以在本地 8000 端口查看文档了,同时由于 mkdocs 是热加载的,因此您可以直接在 serve 指令预览最新文档后,修改对应文档的内容,保存后仅需等待文档内容变化即可。

[!WARNING]

注意,强烈建议学习 mkdocs-materials 的文档语法后进行文档内容的贡献 PR,同时还请遵循水系核心的文档规范

贡献源码

在贡献源码之前,请先知悉水系有一套渐进式开发文档,水系核心 infini 的开发是极其内核的,但是,此 repo 所代表的仅仅只是 GRPS-1 的一个 Python 实现,因此如果已经相当了解水系架构和通用规则包标准,那么可以遵循以下说明进行适当的开发。

水系核心主要由三部分构成:Rule APIRule WikiRule Event-Handler

  1. Rule API

该部分由网络库编写,为其他组件提供一个接入或把 infini 接入的可能。

  1. Rule Wiki

该部分主要用于读取 __doc__ 并格式化为 mkdocs 站点以及成品规则书 pdf

  1. Rule Event-Handler

该部分用于实际与 HydroRoll 插件通信。

🎍 resources

https://grps.hydroroll.team (recommend)
https://grps-v1.netlify.app
https://hydroroll-team.github.io/infini/

📄 License

MIT © 2023-PRESENT 简律纯

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

infini-2.0.0a1.tar.gz (12.7 kB view hashes)

Uploaded Source

Built Distribution

infini-2.0.0a1-py3-none-any.whl (12.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page