diff options
| author | 2024-03-30 15:25:11 +0800 | |
|---|---|---|
| committer | 2024-03-30 15:25:11 +0800 | |
| commit | 45a23d14920133281d102760ec9be2be9da82e2b (patch) | |
| tree | 1cfd9c1d5e2bef7a2dbd3843e15d1e04dab053ee | |
| parent | bab530d5bd1d8a99959d9067b58fb2ec0f4981f8 (diff) | |
| download | ipm-45a23d14920133281d102760ec9be2be9da82e2b.tar.gz ipm-45a23d14920133281d102760ec9be2be9da82e2b.zip | |
feat(build): add readme file and pyproject file into builded ipk
| -rw-r--r-- | examples/example/.gitignore (renamed from examples/.gitignore) | 8 | ||||
| -rw-r--r-- | examples/example/README.md | 1 | ||||
| -rw-r--r-- | examples/example/infini.toml | 13 | ||||
| -rw-r--r-- | examples/example/pyproject.toml | 17 | ||||
| -rw-r--r-- | examples/example/src/__init__.py (renamed from coc/src/__init__.py) | 0 | ||||
| -rw-r--r-- | examples/example/src/events.py (renamed from coc/src/events.py) | 0 | ||||
| -rw-r--r-- | examples/example/src/handlers.py (renamed from coc/src/handlers.py) | 0 | ||||
| -rw-r--r-- | examples/example/src/interceptors.py (renamed from coc/src/interceptors.py) | 0 | ||||
| -rw-r--r-- | examples/infini.toml | 14 | ||||
| -rw-r--r-- | examples/src/__init__.py | 8 | ||||
| -rw-r--r-- | examples/src/events.py | 8 | ||||
| -rw-r--r-- | examples/src/handlers.py | 8 | ||||
| -rw-r--r-- | examples/src/interceptors.py | 8 | ||||
| -rw-r--r-- | src/ipm/models/ipk.py | 11 | ||||
| -rw-r--r-- | src/ipm/utils/freeze.py | 8 |
15 files changed, 53 insertions, 51 deletions
diff --git a/examples/.gitignore b/examples/example/.gitignore index b43f7a5..2a31abc 100644 --- a/examples/.gitignore +++ b/examples/example/.gitignore @@ -3,10 +3,14 @@ __pycache__/ *.pyc -# Builds +# IPM Builds .ipm-build/ dist/ +# Cached Databases +*.db +*.sqlite3 + # Distribution / packaging eggs/ .eggs/ @@ -51,7 +55,7 @@ MANIFEST __pypackages__/ # Environments -.env +.env* .venv env/ venv/ diff --git a/examples/example/README.md b/examples/example/README.md new file mode 100644 index 0000000..ca82a43 --- /dev/null +++ b/examples/example/README.md @@ -0,0 +1 @@ +# EXAMPLE 规则包文档
\ No newline at end of file diff --git a/examples/example/infini.toml b/examples/example/infini.toml new file mode 100644 index 0000000..a13d308 --- /dev/null +++ b/examples/example/infini.toml @@ -0,0 +1,13 @@ +[project] +name = "example" +version = "0.1.0" +description = "示例规则包" +authors = [ + {name = "fu050409",email = "fu050409@163.com"}, +] +license = "AGPLv3" +readme = "README.md" + +[requirements] + +[dependencies] diff --git a/examples/example/pyproject.toml b/examples/example/pyproject.toml new file mode 100644 index 0000000..b72ff50 --- /dev/null +++ b/examples/example/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "example" +version = "0.1.0" +description = "示例规则包" +authors = [ + {name = "fu050409",email = "fu050409@163.com"}, +] +license = {text = "AGPLv3"} +dependencies = ["infini>2.1.0"] +requires-python = ">=3.8" +readme = "README.md" + +[tool.pdm] +distribution = true + +[tool.pdm.dev-dependencies] +dev = ["pytest"] diff --git a/coc/src/__init__.py b/examples/example/src/__init__.py index e5bc7df..e5bc7df 100644 --- a/coc/src/__init__.py +++ b/examples/example/src/__init__.py diff --git a/coc/src/events.py b/examples/example/src/events.py index 9bbb43c..9bbb43c 100644 --- a/coc/src/events.py +++ b/examples/example/src/events.py diff --git a/coc/src/handlers.py b/examples/example/src/handlers.py index f997a03..f997a03 100644 --- a/coc/src/handlers.py +++ b/examples/example/src/handlers.py diff --git a/coc/src/interceptors.py b/examples/example/src/interceptors.py index 518d0bd..518d0bd 100644 --- a/coc/src/interceptors.py +++ b/examples/example/src/interceptors.py diff --git a/examples/infini.toml b/examples/infini.toml deleted file mode 100644 index df0c49d..0000000 --- a/examples/infini.toml +++ /dev/null @@ -1,14 +0,0 @@ -[project] -name = "examples" -version = "0.1.0" -description = "EXAMPLES 规则包" -authors = [ - {name = "admin",email = "admin@example.com"}, -] -license = "MIT" -webpage = "" -unzip = 1 - -[requirements] - -[dependencies] diff --git a/examples/src/__init__.py b/examples/src/__init__.py deleted file mode 100644 index 9bbb43c..0000000 --- a/examples/src/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# Initialized `events.py` generated by ipm. -# Regists your text events and regist global variables here. -# Documents at https://docs.hydroroll.team/ipm - -from infini.register import Register - - -register = Register() diff --git a/examples/src/events.py b/examples/src/events.py deleted file mode 100644 index 9bbb43c..0000000 --- a/examples/src/events.py +++ /dev/null @@ -1,8 +0,0 @@ -# Initialized `events.py` generated by ipm. -# Regists your text events and regist global variables here. -# Documents at https://docs.hydroroll.team/ipm - -from infini.register import Register - - -register = Register() diff --git a/examples/src/handlers.py b/examples/src/handlers.py deleted file mode 100644 index f997a03..0000000 --- a/examples/src/handlers.py +++ /dev/null @@ -1,8 +0,0 @@ -# Initialized `handlers.py` generated by ipm. -# Regists your handlers here. -# Documents at https://docs.hydroroll.team/ipm - -from infini.register import Register - - -register = Register() diff --git a/examples/src/interceptors.py b/examples/src/interceptors.py deleted file mode 100644 index 518d0bd..0000000 --- a/examples/src/interceptors.py +++ /dev/null @@ -1,8 +0,0 @@ -# Initialized `interceptors.py` generated by ipm. -# Regists your pre-interceptors and interceptors here. -# Documents at https://docs.hydroroll.team/ipm - -from infini.register import Register - - -register = Register() diff --git a/src/ipm/models/ipk.py b/src/ipm/models/ipk.py index db98eb4..6a314b9 100644 --- a/src/ipm/models/ipk.py +++ b/src/ipm/models/ipk.py @@ -126,13 +126,20 @@ class InfiniProject(InfiniPackage): @property def readme(self) -> str: - project = self._data.get("project") + path = self._source_path.joinpath(self.readme_file) + return path.read_text(encoding="utf-8") + + @property + def readme_file(self) -> str: + project: dict = self._data.unwrap().get("project", {}) if not project: raise ProjectError("项目文件中不存在`project`项!") + if "readme" not in project.keys(): + raise ProjectError("项目文件中不存在`project.readme`项!") path = self._source_path.joinpath(project["readme"]) if not path.exists(): raise ProjectError("配置文件中的自述文件不存在!") - return path.read_text(encoding="utf-8") + return project["readme"] @property def name(self) -> str: diff --git a/src/ipm/utils/freeze.py b/src/ipm/utils/freeze.py index 58314df..878bd2b 100644 --- a/src/ipm/utils/freeze.py +++ b/src/ipm/utils/freeze.py @@ -36,8 +36,14 @@ def build_ipk(ipk: InfiniProject, echo: bool = False) -> InfiniFrozenPackage: success("开发环境构建完毕.", echo) update("复制工程文件...", echo) - shutil.copytree(src_path, arc_dir / "src") + shutil.copytree(src_path, arc_dir.joinpath("src")) shutil.copy2(ipk._source_path / "infini.toml", arc_dir / "infini.toml") + shutil.copy2( + ipk._source_path.joinpath("pyproject.toml"), arc_dir.joinpath("pyproject.toml") + ) + shutil.copy2( + ipk._source_path.joinpath(ipk.readme_file), arc_dir.joinpath(ipk.readme_file) + ) success("工程文件复制完毕.", echo) update("打包 [bold green]ipk[/bold green]文件...", echo) |
