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
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1"""Command-line ALKIS commands."""
3from typing import Optional, cast
5import gws
6import gws.base.action
7import gws.lib.cli as cli
8import gws.config
10from .data import indexer
11from . import action
13gws.ext.new.cli('alkis')
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"""
25class Object(gws.Node):
27 @gws.ext.command.cli('alkisIndex')
28 def do_index(self, p: CreateIndexParams):
29 """Create the ALKIS index."""
31 root = gws.config.load()
32 project = None
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
47 status = act.ix.status()
48 if status.complete and not p.force:
49 gws.log.info(f'ALKIS index ok')
50 return
52 indexer.run(act.ix, act.dataSchema, with_force=p.force, with_cache=p.cache)