Coverage for gws-app/gws/spec/core.py: 100%
82 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
1class Error(Exception):
2 pass
5class GeneratorError(Error):
6 pass
9class ReadError(Error):
10 pass
13class LoadError(Error):
14 pass
17class C:
18 ATOM = 'ATOM'
19 CLASS = 'CLASS'
20 CALLABLE = 'CALLABLE'
21 CONSTANT = 'CONSTANT'
22 DICT = 'DICT'
23 ENUM = 'ENUM'
24 EXPR = 'EXPR'
25 FUNCTION = 'FUNCTION'
26 LIST = 'LIST'
27 LITERAL = 'LITERAL'
28 METHOD = 'METHOD'
29 MODULE = 'MODULE'
30 OPTIONAL = 'OPTIONAL'
31 PROPERTY = 'PROPERTY'
32 SET = 'SET'
33 TUPLE = 'TUPLE'
34 TYPE = 'TYPE'
35 UNION = 'UNION'
36 UNDEFINED = 'UNDEFINED'
37 VARIANT = 'VARIANT'
39 EXT = 'EXT'
40 COMMAND = 'COMMAND'
41 OBJECT = 'OBJECT'
42 CONFIG = 'CONFIG'
43 PROPS = 'PROPS'
46# prefix for our decorators and ext classes
47APP_NAME = 'gws'
48EXT_PREFIX = APP_NAME + '.ext'
49EXT_DECL_PREFIX = EXT_PREFIX + '.new.'
50EXT_CONFIG_PREFIX = EXT_PREFIX + '.config.'
51EXT_PROPS_PREFIX = EXT_PREFIX + '.props.'
52EXT_OBJECT_PREFIX = EXT_PREFIX + '.object.'
53EXT_COMMAND_PREFIX = EXT_PREFIX + '.command.'
55EXT_COMMAND_API_PREFIX = EXT_COMMAND_PREFIX + 'api.'
56EXT_COMMAND_GET_PREFIX = EXT_COMMAND_PREFIX + 'get.'
57EXT_COMMAND_CLI_PREFIX = EXT_COMMAND_PREFIX + 'cli.'
59EXT_OBJECT_CLASS = 'Object'
60EXT_CONFIG_CLASS = 'Config'
61EXT_PROPS_CLASS = 'Props'
63TypeId = str
65# tag property name for Variant types
66VARIANT_TAG = 'type'
68# default variant tag
69DEFAULT_VARIANT_TAG = 'default'
72class Type:
73 c: C
74 uid: TypeId
75 extName: str = ''
77 doc: str = ''
78 ident: str = ''
79 name: str = ''
80 pos = ''
82 modName: str = ''
83 modPath: str = ''
85 tArg: TypeId = ''
86 tItem: TypeId = ''
87 tKey: TypeId = ''
88 tModule: TypeId = ''
89 tOwner: TypeId = ''
90 tReturn: TypeId = ''
91 tTarget: TypeId = ''
92 tValue: TypeId = ''
94 tArgs: list[TypeId] = []
95 tItems: list[TypeId] = []
96 tSupers: list[TypeId] = []
98 tMembers: dict[str, TypeId] = {}
99 tProperties: dict[str, TypeId] = {}
101 defaultValue = None
102 hasDefault: bool = False
104 enumText: str = ''
105 enumDocs: dict = {}
106 enumValues: dict = {}
108 literalValues: list = []
110 vars: dict[str, TypeId] = {}
112 def __init__(self, **kwargs):
113 vars(self).update(kwargs)