Coverage for gws-app/gws/plugin/alkis/cli.py: 0%

34 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1"""Command-line ALKIS commands.""" 

2 

3from typing import Optional, cast 

4 

5import gws 

6import gws.base.action 

7import gws.lib.cli as cli 

8import gws.config 

9 

10from .data import indexer 

11from . import action 

12 

13gws.ext.new.cli('alkis') 

14 

15 

16class CreateIndexParams(gws.CliParams): 

17 force: Optional[bool] 

18 """force indexing""" 

19 cache: Optional[bool] 

20 """use object cache""" 

21 projectUid: Optional[str] 

22 """project uid""" 

23 

24 

25class Object(gws.Node): 

26 

27 @gws.ext.command.cli('alkisIndex') 

28 def do_index(self, p: CreateIndexParams): 

29 """Create the ALKIS index.""" 

30 

31 root = gws.config.load() 

32 project = None 

33 

34 if p.projectUid: 

35 project = root.app.project(p.projectUid) 

36 if not project: 

37 gws.log.error(f'project {p.projectUid} not found') 

38 return 

39 act = cast( 

40 action.Object, 

41 root.app.actionMgr.find_action(project, 'alkis', root.app.authMgr.systemUser) 

42 ) 

43 if not act: 

44 gws.log.error(f'action "alkis" not found') 

45 return 

46 

47 status = act.ix.status() 

48 if status.complete and not p.force: 

49 gws.log.info(f'ALKIS index ok') 

50 return 

51 

52 indexer.run(act.ix, act.dataSchema, with_force=p.force, with_cache=p.cache)