Skip to content

Commit

Permalink
✨ launcher cli
Browse files Browse the repository at this point in the history
  • Loading branch information
RF-Tar-Railt committed Dec 4, 2024
1 parent f077002 commit ef9fd68
Show file tree
Hide file tree
Showing 8 changed files with 558 additions and 311 deletions.
2 changes: 1 addition & 1 deletion arclet/entari/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@
from .plugin import Plugin as Plugin
from .plugin import PluginMetadata as PluginMetadata
from .plugin import dispose as dispose_plugin # noqa: F401
from .plugin import plugin_config as plugin_config
from .plugin import keeping as keeping
from .plugin import load_plugin as load_plugin
from .plugin import load_plugins as load_plugins
from .plugin import metadata as metadata
from .plugin import package as package
from .plugin import plugin_config as plugin_config
from .session import Session as Session

WS = WebsocketsInfo
Expand Down
21 changes: 21 additions & 0 deletions arclet/entari/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from arclet.alconna import Alconna, Args, CommandMeta, Option
from arclet.alconna.tools.formatter import RichConsoleFormatter

from arclet.entari import Entari

alc = Alconna(
"entari",
Option("-c|--config", Args["path", str], help_text="指定配置文件路径"),
meta=CommandMeta(
"Entari App Launcher",
),
formatter_type=RichConsoleFormatter,
)


def main():
res = alc()
if not res.matched:
return
entari = Entari.load(res.query[str]("config.path", None))
entari.run()
1 change: 1 addition & 0 deletions arclet/entari/builtins/auto_reload.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ async def launch(self, manager: Launart):
)
if sigexit_task in done:
watch_task.cancel()
self.fail.clear()


plug = Plugin.current()
Expand Down
6 changes: 2 additions & 4 deletions arclet/entari/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,7 @@ def from_config(cls, config: EntariConfig | None = None):
elif conf["type"] in ("webhook", "wh", "http"):
configs.append(WebhookInfo(**{k: v for k, v in conf.items() if k != "type"}))
return cls(
*configs,
log_level=log_level,
ignore_self_message=ignore_self_message,
record_message=record_message
*configs, log_level=log_level, ignore_self_message=ignore_self_message, record_message=record_message
)

def __init__(
Expand All @@ -100,6 +97,7 @@ def __init__(
self._ref_tasks = set()

if record_message:

@self.on_message(priority=0)
async def log_msg(event: MessageCreatedEvent):
log.message.info(
Expand Down
2 changes: 1 addition & 1 deletion arclet/entari/plugin/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from os import PathLike
from pathlib import Path
from typing import TYPE_CHECKING, Callable, Any
from typing import TYPE_CHECKING, Any, Callable

from tarina import init_spec

Expand Down
4 changes: 3 additions & 1 deletion arclet/entari/plugin/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,9 @@ def __post_init__(self):
if self.id not in plugin_service._referents:
plugin_service._referents[self.id] = set()
if self.id not in plugin_service._subplugined:
self._lifecycle = PluginLifecycleService(self.id, set(self._metadata.requirements if self._metadata else []))
self._lifecycle = PluginLifecycleService(
self.id, set(self._metadata.requirements if self._metadata else [])
)
if plugin_service.status.blocking and (self._preparing or self._running or self._cleanup):
it(Launart).add_component(self._lifecycle)
finalize(self, self.dispose)
Expand Down
826 changes: 523 additions & 303 deletions pdm.lock

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ dependencies = [
"satori-python-core>=0.15.2",
"satori-python-client>=0.15.2",
"arclet-alconna-tools>=0.7.3",
"pygtrie>=2.5.0",
]
requires-python = ">=3.9"
readme = "README.md"
Expand All @@ -24,6 +23,12 @@ classifiers = [
"Operating System :: OS Independent",
]

[project.optional-dependencies]
yaml = ["pyyaml>=6.0.2"]

[project.scripts]
entari = "arclet.entari.__main__:main"

[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
Expand Down

0 comments on commit ef9fd68

Please sign in to comment.