hexastack-cli 0.2.0__tar.gz → 0.4.0__tar.gz

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.
Files changed (21) hide show
  1. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/PKG-INFO +3 -3
  2. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/README.md +2 -2
  3. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/pyproject.toml +13 -2
  4. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/pyproject.toml.orig +13 -2
  5. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/adapters/__init__.py +0 -2
  6. {hexastack_cli-0.2.0/src/hexastack_cli/infra → hexastack_cli-0.4.0/src/hexastack_cli/domain}/config.py +0 -20
  7. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/infra/__init__.py +2 -0
  8. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/infra/bootstrap.py +1 -1
  9. hexastack_cli-0.4.0/src/hexastack_cli/infra/config.py +19 -0
  10. hexastack_cli-0.4.0/src/hexastack_cli/py.typed +0 -0
  11. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/__init__.py +0 -0
  12. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/adapters/presenter.py +0 -0
  13. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/adapters/routing.py +0 -0
  14. /hexastack_cli-0.2.0/src/hexastack_cli/py.typed → /hexastack_cli-0.4.0/src/hexastack_cli/domain/__init__.py +0 -0
  15. {hexastack_cli-0.2.0/src/hexastack_cli/adapters → hexastack_cli-0.4.0/src/hexastack_cli/infra}/app.py +0 -0
  16. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/infra/autodiscovery.py +0 -0
  17. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/infra/decorators.py +0 -0
  18. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/testing/__init__.py +0 -0
  19. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/testing/events.py +0 -0
  20. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/testing/narrator.py +0 -0
  21. {hexastack_cli-0.2.0 → hexastack_cli-0.4.0}/src/hexastack_cli/testing/terminal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hexastack-cli
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Hexastack CLI presentation adapter with Typer and Rich
5
5
  Author: Richard West
6
6
  Author-email: Richard West <dopplereffect.us@gmail.com>
@@ -43,8 +43,8 @@ Description-Content-Type: text/markdown
43
43
  ```
44
44
  hexastack_cli/
45
45
  ├── domain/ # CliContext, OutputFormat enum
46
- ├── adapters/ # create_cli_app, Rich presenters, Typer command runners
47
- └── infra/ # CliBootstrapper (order=30), @cli_command, @cli_query, @cli_group, @feature_flag_command
46
+ ├── adapters/ # Rich presenters, Typer command runners
47
+ └── infra/ # create_cli_app, CliBootstrapper (order=40), @cli_command, @cli_query, @cli_group, @feature_flag_command
48
48
  ```
49
49
 
50
50
  ### Key Exports
@@ -27,8 +27,8 @@
27
27
  ```
28
28
  hexastack_cli/
29
29
  ├── domain/ # CliContext, OutputFormat enum
30
- ├── adapters/ # create_cli_app, Rich presenters, Typer command runners
31
- └── infra/ # CliBootstrapper (order=30), @cli_command, @cli_query, @cli_group, @feature_flag_command
30
+ ├── adapters/ # Rich presenters, Typer command runners
31
+ └── infra/ # create_cli_app, CliBootstrapper (order=40), @cli_command, @cli_query, @cli_group, @feature_flag_command
32
32
  ```
33
33
 
34
34
  ### Key Exports
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hexastack-cli"
3
- version = "0.2.0"
3
+ version = "0.4.0"
4
4
  description = "Hexastack CLI presentation adapter with Typer and Rich"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -40,8 +40,19 @@ name = "Hexagonal architecture layer hierarchy"
40
40
  type = "layers"
41
41
  containers = ["hexastack_cli"]
42
42
  layers = [
43
- "adapters",
44
43
  "infra",
44
+ "adapters",
45
+ "domain",
46
+ ]
47
+
48
+ [[tool.importlinter.contracts]]
49
+ name = "Forbidden imports for domain"
50
+ type = "forbidden"
51
+ source_modules = ["hexastack_cli.domain"]
52
+ forbidden_modules = [
53
+ "hexastack_cli.adapters",
54
+ "hexastack_cli.infra",
55
+ "hexastack_cli.testing",
45
56
  ]
46
57
 
47
58
  [[tool.importlinter.contracts]]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hexastack-cli"
3
- version = "0.2.0"
3
+ version = "0.4.0"
4
4
  description = "Hexastack CLI presentation adapter with Typer and Rich"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -39,8 +39,19 @@ name = "Hexagonal architecture layer hierarchy"
39
39
  type = "layers"
40
40
  containers = ["hexastack_cli"]
41
41
  layers = [
42
- "adapters",
43
42
  "infra",
43
+ "adapters",
44
+ "domain",
45
+ ]
46
+
47
+ [[tool.importlinter.contracts]]
48
+ name = "Forbidden imports for domain"
49
+ type = "forbidden"
50
+ source_modules = ["hexastack_cli.domain"]
51
+ forbidden_modules = [
52
+ "hexastack_cli.adapters",
53
+ "hexastack_cli.infra",
54
+ "hexastack_cli.testing",
44
55
  ]
45
56
 
46
57
  [[tool.importlinter.contracts]]
@@ -1,4 +1,3 @@
1
- from hexastack_cli.adapters.app import create_cli_app
2
1
  from hexastack_cli.adapters.presenter import RichTerminalPresenter
3
2
  from hexastack_cli.adapters.routing import (
4
3
  register_cqrs_command,
@@ -6,7 +5,6 @@ from hexastack_cli.adapters.routing import (
6
5
  )
7
6
 
8
7
  __all__ = [
9
- "create_cli_app",
10
8
  "register_cqrs_command",
11
9
  "register_cqrs_query",
12
10
  "RichTerminalPresenter",
@@ -1,10 +1,6 @@
1
1
  from pydantic import BaseModel, Field
2
2
 
3
- from hexastack_core.infra.decorators import config_section
4
- from hexastack_core.infra.registries.config import ConfigRegistry
5
3
 
6
-
7
- @config_section("cli")
8
4
  class HexastackCliConfig(BaseModel):
9
5
  """Configuration schema for Hexastack CLI presentation adapter.
10
6
 
@@ -24,20 +20,4 @@ class HexastackCliConfig(BaseModel):
24
20
 
25
21
  __all__ = [
26
22
  "HexastackCliConfig",
27
- "register_cli_config",
28
23
  ]
29
-
30
-
31
- def register_cli_config(registry: ConfigRegistry) -> None:
32
- """Register CLI configuration schema with a ConfigRegistry under 'cli'.
33
-
34
- Args:
35
- registry: Target ConfigRegistry instance.
36
-
37
- Returns:
38
- None.
39
-
40
- Raises:
41
- None.
42
- """
43
- registry.register_config_section("cli", HexastackCliConfig)
@@ -1,3 +1,4 @@
1
+ from hexastack_cli.infra.app import create_cli_app
1
2
  from hexastack_cli.infra.autodiscovery import (
2
3
  autodiscover_cli_commands,
3
4
  create_cli_visitor,
@@ -22,6 +23,7 @@ __all__ = [
22
23
  "cli_query",
23
24
  "CliBootstrapper",
24
25
  "CliMetadata",
26
+ "create_cli_app",
25
27
  "create_cli_visitor",
26
28
  "GroupMetadata",
27
29
  "HexastackCliConfig",
@@ -34,7 +34,7 @@ class CliBootstrapper(BootstrapperPort):
34
34
  Raises:
35
35
  None.
36
36
  """
37
- from hexastack_cli.adapters.app import create_cli_app
37
+ from hexastack_cli.infra.app import create_cli_app
38
38
  from hexastack_cli.infra.autodiscovery import create_cli_visitor
39
39
 
40
40
  cfg = HexastackCliConfig()
@@ -0,0 +1,19 @@
1
+ from hexastack_cli.domain.config import HexastackCliConfig
2
+ from hexastack_core.infra.decorators import config_section
3
+ from hexastack_core.infra.registries.config import ConfigRegistry
4
+
5
+ config_section("cli")(HexastackCliConfig)
6
+
7
+ __all__ = [
8
+ "HexastackCliConfig",
9
+ "register_cli_config",
10
+ ]
11
+
12
+
13
+ def register_cli_config(registry: ConfigRegistry) -> None:
14
+ """Register CLI configuration schema with a ConfigRegistry under 'cli'.
15
+
16
+ Args:
17
+ registry: Target ConfigRegistry instance.
18
+ """
19
+ registry.register_config_section("cli", HexastackCliConfig)
File without changes