Coverage for src / lexigram / admin / cli / contributor.py: 0%

12 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-11 02:25 +0800

1"""Admin package CLI contributor.""" 

2 

3from __future__ import annotations 

4 

5from lexigram.contracts.cli.contributions import CommandContribution 

6from lexigram.contracts.cli.types import GeneratorDefinition 

7 

8 

9class AdminCliContributor: 

10 """CLI contributor for the lexigram-admin package.""" 

11 

12 @property 

13 def contributor_id(self) -> str: 

14 """Return the contributor identifier.""" 

15 return "admin" 

16 

17 def get_generators(self) -> list[GeneratorDefinition]: 

18 """Return generator definitions for admin.""" 

19 return [ 

20 GeneratorDefinition( 

21 name="admin_action", 

22 title="Generate Admin Action", 

23 description="Generate a custom admin action", 

24 contributor="admin", 

25 generator_path="lexigram.admin.cli.generators.admin_action:AdminActionGenerator", 

26 default_output_dir="src/admin/actions", 

27 ), 

28 GeneratorDefinition( 

29 name="admin_resource", 

30 title="Generate Admin Resource", 

31 description="Generate an admin resource for the admin panel", 

32 contributor="admin", 

33 generator_path="lexigram.admin.cli.generators.admin_resource:AdminResourceGenerator", 

34 default_output_dir="src/admin/resources", 

35 ), 

36 ] 

37 

38 def get_commands(self) -> list[CommandContribution]: 

39 """Return CLI command contributions for admin.""" 

40 return [ 

41 CommandContribution( 

42 name="search", 

43 help="Search index management commands (reindex, etc.)", 

44 app_factory_path="lexigram.admin.cli.commands.search:create_app", 

45 contributor="admin", 

46 category="admin", 

47 ), 

48 ] 

49 

50 

51__all__ = ["AdminCliContributor"]