rats-apps 0.3.0.dev20240928043035__py3-none-any.whl → 0.3.0.dev20241002165828__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rats/cli/__init__.py +6 -3
- rats/cli/__main__.py +1 -1
- rats/cli/_app.py +3 -3
- rats/cli/_container.py +14 -4
- rats/cli/_plugin.py +17 -0
- {rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/METADATA +1 -1
- {rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/RECORD +9 -9
- {rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/WHEEL +0 -0
- {rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/entry_points.txt +0 -0
rats/cli/__init__.py
CHANGED
@@ -2,17 +2,20 @@
|
|
2
2
|
|
3
3
|
from ._annotations import CommandId, command, get_class_commands, get_class_groups, group
|
4
4
|
from ._app import ClickApp
|
5
|
-
from ._container import
|
6
|
-
from ._plugin import PluginContainer, PluginServices
|
5
|
+
from ._container import CompositeContainer, Container
|
6
|
+
from ._plugin import PluginContainer, PluginServices, attach, create_group
|
7
7
|
|
8
8
|
__all__ = [
|
9
9
|
"PluginContainer",
|
10
10
|
"command",
|
11
11
|
"get_class_commands",
|
12
12
|
"get_class_groups",
|
13
|
+
"create_group",
|
14
|
+
"attach",
|
13
15
|
"group",
|
14
16
|
"ClickApp",
|
15
17
|
"PluginServices",
|
16
18
|
"CommandId",
|
17
|
-
"
|
19
|
+
"Container",
|
20
|
+
"CompositeContainer",
|
18
21
|
]
|
rats/cli/__main__.py
CHANGED
rats/cli/_app.py
CHANGED
@@ -4,7 +4,7 @@ import click
|
|
4
4
|
|
5
5
|
from rats import apps
|
6
6
|
|
7
|
-
from ._container import
|
7
|
+
from ._container import Container
|
8
8
|
|
9
9
|
|
10
10
|
@final
|
@@ -12,12 +12,12 @@ class ClickApp(apps.Executable):
|
|
12
12
|
"""..."""
|
13
13
|
|
14
14
|
_group: click.Group
|
15
|
-
_commands:
|
15
|
+
_commands: Container
|
16
16
|
|
17
17
|
def __init__(
|
18
18
|
self,
|
19
19
|
group: click.Group,
|
20
|
-
commands:
|
20
|
+
commands: Container,
|
21
21
|
) -> None:
|
22
22
|
"""Not sure this is the right interface."""
|
23
23
|
self._group = group
|
rats/cli/_container.py
CHANGED
@@ -1,18 +1,16 @@
|
|
1
1
|
import logging
|
2
2
|
from collections.abc import Callable
|
3
3
|
from functools import partial
|
4
|
-
from typing import Any, Protocol
|
4
|
+
from typing import Any, Protocol, final
|
5
5
|
|
6
6
|
import click
|
7
7
|
|
8
|
-
from rats import apps
|
9
|
-
|
10
8
|
from ._annotations import get_class_commands
|
11
9
|
|
12
10
|
logger = logging.getLogger(__name__)
|
13
11
|
|
14
12
|
|
15
|
-
class
|
13
|
+
class Container(Protocol):
|
16
14
|
"""A container that can attach click commands to a click group."""
|
17
15
|
|
18
16
|
def attach(self, group: click.Group) -> None:
|
@@ -48,3 +46,15 @@ class CommandContainer(apps.Container, Protocol):
|
|
48
46
|
params=params,
|
49
47
|
)
|
50
48
|
)
|
49
|
+
|
50
|
+
|
51
|
+
@final
|
52
|
+
class CompositeContainer(Container):
|
53
|
+
_containers: tuple[Container, ...]
|
54
|
+
|
55
|
+
def __init__(self, *containers: Container) -> None:
|
56
|
+
self._containers = containers
|
57
|
+
|
58
|
+
def attach(self, group: click.Group) -> None:
|
59
|
+
for container in self._containers:
|
60
|
+
container.attach(group)
|
rats/cli/_plugin.py
CHANGED
@@ -4,6 +4,23 @@ import click
|
|
4
4
|
|
5
5
|
from rats import apps
|
6
6
|
|
7
|
+
from ._container import Container
|
8
|
+
|
9
|
+
|
10
|
+
def create_group(group: click.Group, container: Container) -> click.Group:
|
11
|
+
container.attach(group)
|
12
|
+
return group
|
13
|
+
|
14
|
+
|
15
|
+
def attach(
|
16
|
+
group: click.Group,
|
17
|
+
command: click.Command | click.Group,
|
18
|
+
*commands: click.Command | click.Group,
|
19
|
+
) -> None:
|
20
|
+
group.add_command(command)
|
21
|
+
for c in commands:
|
22
|
+
group.add_command(c)
|
23
|
+
|
7
24
|
|
8
25
|
@apps.autoscope
|
9
26
|
class _PluginEvents:
|
{rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/RECORD
RENAMED
@@ -17,17 +17,17 @@ rats/apps/_scoping.py,sha256=6C2-ID22cCPR9Cbexf3CvCF3o9F_7ieURbwqkf6DI68,1360
|
|
17
17
|
rats/apps/_simple_apps.py,sha256=n-3zeHY3iintZ9LN597c7zDHv3DiIdl7c8NTk0gUk1Y,5477
|
18
18
|
rats/apps/_static_container.py,sha256=5lzLh1CUoQVwhxfDhK6ZOQaBrPpudbRHWJkaDppphZo,881
|
19
19
|
rats/apps/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
rats/cli/__init__.py,sha256=
|
21
|
-
rats/cli/__main__.py,sha256=
|
20
|
+
rats/cli/__init__.py,sha256=GR_pZr0OtqkH2js73OPZlK4Pgj0C30bhSKPGfU32Zxk,580
|
21
|
+
rats/cli/__main__.py,sha256=5OidbkRA4aglOAcvV6xQY9k7Ls9vd_EwNvI2aOrcPIQ,1649
|
22
22
|
rats/cli/_annotations.py,sha256=5voM1pNm7iybZpgQTSVpaq3rMIMz33jr4eUyoEmxWJ4,1359
|
23
|
-
rats/cli/_app.py,sha256=
|
24
|
-
rats/cli/_container.py,sha256=
|
25
|
-
rats/cli/_plugin.py,sha256=
|
23
|
+
rats/cli/_app.py,sha256=EmLIJe1LTLob5u5gP8gpgxk3kFlALTvrpYlwxlILu0k,620
|
24
|
+
rats/cli/_container.py,sha256=q3L6On6RS3PfUFZ67t6eUvKUQIK4Qxomz5ob86aNcR4,2143
|
25
|
+
rats/cli/_plugin.py,sha256=jkpqSCW0ELnMjK8fz-BVE50qgBIxbd5j4hILOnlla6U,1086
|
26
26
|
rats/cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
27
|
rats/logs/__init__.py,sha256=fCn4pfpYiAcTtt5CsnUZX68CjOB3KJHxMSiYxsma4qE,183
|
28
28
|
rats/logs/_plugin.py,sha256=OQ5fXToBm60YJRrMUVJ9_HVytUs3c69vaHY57jpivb0,2221
|
29
29
|
rats/logs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
rats_apps-0.3.0.
|
31
|
-
rats_apps-0.3.0.
|
32
|
-
rats_apps-0.3.0.
|
33
|
-
rats_apps-0.3.0.
|
30
|
+
rats_apps-0.3.0.dev20241002165828.dist-info/METADATA,sha256=qT79vCLfGHgQYabnr89wlHudg835snVZyKEGya9ebZg,774
|
31
|
+
rats_apps-0.3.0.dev20241002165828.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
32
|
+
rats_apps-0.3.0.dev20241002165828.dist-info/entry_points.txt,sha256=9oOvf2loQr5ACWQgvuu9Q3KZIVIxKE5Aa-rLuUII5WQ,91
|
33
|
+
rats_apps-0.3.0.dev20241002165828.dist-info/RECORD,,
|
{rats_apps-0.3.0.dev20240928043035.dist-info → rats_apps-0.3.0.dev20241002165828.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|