pytest-dsl 0.12.1__py3-none-any.whl → 0.13.0__py3-none-any.whl

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.
pytest_dsl/cli.py CHANGED
@@ -78,7 +78,7 @@ def parse_args():
78
78
  list_parser.add_argument(
79
79
  '--category',
80
80
  choices=[
81
- 'builtin', 'plugin', 'custom',
81
+ 'builtin', 'plugin', 'custom',
82
82
  'project_custom', 'remote', 'all'
83
83
  ],
84
84
  default='all',
@@ -108,7 +108,7 @@ def parse_args():
108
108
  parser.add_argument(
109
109
  '--category',
110
110
  choices=[
111
- 'builtin', 'plugin', 'custom',
111
+ 'builtin', 'plugin', 'custom',
112
112
  'project_custom', 'remote', 'all'
113
113
  ],
114
114
  default='all'
@@ -157,6 +157,29 @@ def load_all_keywords(include_remote=False):
157
157
  # 扫描本地关键字
158
158
  scan_local_keywords()
159
159
 
160
+ # 自动导入项目中的resources目录
161
+ try:
162
+ from pytest_dsl.core.custom_keyword_manager import (
163
+ custom_keyword_manager)
164
+
165
+ # 尝试从多个可能的项目根目录位置导入resources
166
+ possible_roots = [
167
+ os.getcwd(), # 当前工作目录
168
+ os.path.dirname(os.getcwd()), # 上级目录
169
+ ]
170
+
171
+ # 尝试每个可能的根目录
172
+ for project_root in possible_roots:
173
+ if project_root and os.path.exists(project_root):
174
+ resources_dir = os.path.join(project_root, "resources")
175
+ if (os.path.exists(resources_dir) and
176
+ os.path.isdir(resources_dir)):
177
+ custom_keyword_manager.auto_import_resources_directory(
178
+ project_root)
179
+ break
180
+ except Exception as e:
181
+ print(f"自动导入resources目录时出现警告: {str(e)}")
182
+
160
183
  # 扫描项目中的自定义关键字(.resource文件中定义的)
161
184
  project_custom_keywords = scan_project_custom_keywords()
162
185
  if project_custom_keywords:
@@ -15,6 +15,7 @@ class CustomKeywordManager:
15
15
  """初始化自定义关键字管理器"""
16
16
  self.resource_cache = {} # 缓存已加载的资源文件
17
17
  self.resource_paths = [] # 资源文件搜索路径
18
+ self.auto_imported_resources = set() # 记录已自动导入的资源文件
18
19
 
19
20
  def add_resource_path(self, path: str) -> None:
20
21
  """添加资源文件搜索路径
@@ -25,6 +26,141 @@ class CustomKeywordManager:
25
26
  if path not in self.resource_paths:
26
27
  self.resource_paths.append(path)
27
28
 
29
+ def auto_import_resources_directory(
30
+ self, project_root: str = None) -> None:
31
+ """自动导入项目中的resources目录
32
+
33
+ Args:
34
+ project_root: 项目根目录,默认为当前工作目录
35
+ """
36
+ if project_root is None:
37
+ project_root = os.getcwd()
38
+
39
+ # 查找resources目录
40
+ resources_dir = os.path.join(project_root, "resources")
41
+
42
+ if (not os.path.exists(resources_dir) or
43
+ not os.path.isdir(resources_dir)):
44
+ # 如果没有resources目录,静默返回
45
+ return
46
+
47
+ print(f"发现resources目录: {resources_dir}")
48
+
49
+ # 递归查找所有.resource文件
50
+ resource_files = []
51
+ for root, dirs, files in os.walk(resources_dir):
52
+ for file in files:
53
+ if file.endswith('.resource'):
54
+ resource_files.append(os.path.join(root, file))
55
+
56
+ if not resource_files:
57
+ print("resources目录中没有找到.resource文件")
58
+ return
59
+
60
+ print(f"在resources目录中发现 {len(resource_files)} 个资源文件")
61
+
62
+ # 按照依赖关系排序并加载资源文件
63
+ sorted_files = self._sort_resources_by_dependencies(resource_files)
64
+
65
+ for resource_file in sorted_files:
66
+ try:
67
+ # 检查是否已经自动导入过
68
+ absolute_path = os.path.abspath(resource_file)
69
+ if absolute_path not in self.auto_imported_resources:
70
+ self.load_resource_file(resource_file)
71
+ self.auto_imported_resources.add(absolute_path)
72
+ print(f"自动导入资源文件: {resource_file}")
73
+ except Exception as e:
74
+ print(f"自动导入资源文件失败 {resource_file}: {e}")
75
+
76
+ def _sort_resources_by_dependencies(self, resource_files):
77
+ """根据依赖关系对资源文件进行排序
78
+
79
+ Args:
80
+ resource_files: 资源文件列表
81
+
82
+ Returns:
83
+ list: 按依赖关系排序后的资源文件列表
84
+ """
85
+ # 简单的拓扑排序实现
86
+ dependencies = {}
87
+ all_files = set()
88
+
89
+ # 分析每个文件的依赖关系
90
+ for file_path in resource_files:
91
+ all_files.add(file_path)
92
+ dependencies[file_path] = self._extract_dependencies(file_path)
93
+
94
+ # 拓扑排序
95
+ sorted_files = []
96
+ visited = set()
97
+ temp_visited = set()
98
+
99
+ def visit(file_path):
100
+ if file_path in temp_visited:
101
+ # 检测到循环依赖,跳过
102
+ return
103
+ if file_path in visited:
104
+ return
105
+
106
+ temp_visited.add(file_path)
107
+
108
+ # 访问依赖的文件
109
+ for dep in dependencies.get(file_path, []):
110
+ if dep in all_files: # 只处理在当前文件列表中的依赖
111
+ visit(dep)
112
+
113
+ temp_visited.remove(file_path)
114
+ visited.add(file_path)
115
+ sorted_files.append(file_path)
116
+
117
+ # 访问所有文件
118
+ for file_path in resource_files:
119
+ if file_path not in visited:
120
+ visit(file_path)
121
+
122
+ return sorted_files
123
+
124
+ def _extract_dependencies(self, file_path):
125
+ """提取资源文件的依赖关系
126
+
127
+ Args:
128
+ file_path: 资源文件路径
129
+
130
+ Returns:
131
+ list: 依赖的文件路径列表
132
+ """
133
+ dependencies = []
134
+
135
+ try:
136
+ with open(file_path, 'r', encoding='utf-8') as f:
137
+ content = f.read()
138
+
139
+ # 解析文件获取导入信息
140
+ lexer = get_lexer()
141
+ parser = get_parser()
142
+ ast = parser.parse(content, lexer=lexer)
143
+
144
+ if ast.type == 'Start' and ast.children:
145
+ metadata_node = ast.children[0]
146
+ if metadata_node.type == 'Metadata':
147
+ for item in metadata_node.children:
148
+ if item.type == '@import':
149
+ imported_file = item.value
150
+ # 处理相对路径
151
+ if not os.path.isabs(imported_file):
152
+ imported_file = os.path.join(
153
+ os.path.dirname(file_path), imported_file)
154
+ # 规范化路径
155
+ imported_file = os.path.normpath(imported_file)
156
+ dependencies.append(imported_file)
157
+
158
+ except Exception as e:
159
+ # 如果解析失败,返回空依赖列表
160
+ print(f"解析资源文件依赖失败 {file_path}: {e}")
161
+
162
+ return dependencies
163
+
28
164
  def load_resource_file(self, file_path: str) -> None:
29
165
  """加载资源文件
30
166
 
@@ -300,6 +300,9 @@ class DSLExecutor:
300
300
  metadata = {}
301
301
  teardown_node = None
302
302
 
303
+ # 自动导入项目中的resources目录
304
+ self._auto_import_resources()
305
+
303
306
  # 先处理元数据和找到teardown节点
304
307
  for child in node.children:
305
308
  if child.type == 'Metadata':
@@ -334,6 +337,40 @@ class DSLExecutor:
334
337
  # 测试用例执行完成后清空上下文
335
338
  self.test_context.clear()
336
339
 
340
+ def _auto_import_resources(self):
341
+ """自动导入项目中的resources目录"""
342
+ try:
343
+ from pytest_dsl.core.custom_keyword_manager import custom_keyword_manager
344
+
345
+ # 尝试从多个可能的项目根目录位置导入resources
346
+ possible_roots = [
347
+ os.getcwd(), # 当前工作目录
348
+ os.path.dirname(os.getcwd()), # 上级目录
349
+ ]
350
+
351
+ # 如果在pytest环境中,尝试获取pytest的根目录
352
+ try:
353
+ import pytest
354
+ if hasattr(pytest, 'config') and pytest.config:
355
+ pytest_root = pytest.config.rootdir
356
+ if pytest_root:
357
+ possible_roots.insert(0, str(pytest_root))
358
+ except:
359
+ pass
360
+
361
+ # 尝试每个可能的根目录
362
+ for project_root in possible_roots:
363
+ if project_root and os.path.exists(project_root):
364
+ resources_dir = os.path.join(project_root, "resources")
365
+ if os.path.exists(resources_dir) and os.path.isdir(resources_dir):
366
+ custom_keyword_manager.auto_import_resources_directory(
367
+ project_root)
368
+ break
369
+
370
+ except Exception as e:
371
+ # 自动导入失败不应该影响测试执行,只记录警告
372
+ print(f"自动导入resources目录时出现警告: {str(e)}")
373
+
337
374
  def _handle_import(self, file_path):
338
375
  """处理导入指令
339
376
 
pytest_dsl/core/parser.py CHANGED
@@ -67,6 +67,7 @@ def p_metadata_item(p):
67
67
  | TAGS_KEYWORD COLON LBRACKET tags RBRACKET
68
68
  | AUTHOR_KEYWORD COLON metadata_value
69
69
  | DATE_KEYWORD COLON DATE
70
+ | DATE_KEYWORD COLON STRING
70
71
  | DATA_KEYWORD COLON data_source
71
72
  | IMPORT_KEYWORD COLON STRING
72
73
  | REMOTE_KEYWORD COLON STRING AS ID'''
@@ -412,10 +413,14 @@ def get_parser(debug=False):
412
413
  return yacc.yacc(debug=debug)
413
414
 
414
415
  # 定义远程关键字调用的语法规则
416
+
417
+
415
418
  def p_remote_keyword_call(p):
416
419
  '''remote_keyword_call : ID PIPE LBRACKET ID RBRACKET COMMA parameter_list
417
420
  | ID PIPE LBRACKET ID RBRACKET'''
418
421
  if len(p) == 8:
419
- p[0] = Node('RemoteKeywordCall', [p[7]], {'alias': p[1], 'keyword': p[4]})
422
+ p[0] = Node('RemoteKeywordCall', [p[7]], {
423
+ 'alias': p[1], 'keyword': p[4]})
420
424
  else:
421
- p[0] = Node('RemoteKeywordCall', [[]], {'alias': p[1], 'keyword': p[4]})
425
+ p[0] = Node('RemoteKeywordCall', [[]], {
426
+ 'alias': p[1], 'keyword': p[4]})
@@ -6,9 +6,9 @@ _tabversion = '3.10'
6
6
 
7
7
  _lr_method = 'LALR'
8
8
 
9
- _lr_signature = 'leftCOMMAleftGTLTGELEEQNEleftPLUSMINUSleftTIMESDIVIDEMODULOrightEQUALSAS AUTHOR_KEYWORD BREAK COLON COMMA CONTINUE DATA_KEYWORD DATE DATE_KEYWORD DESCRIPTION_KEYWORD DIVIDE DO ELIF ELSE END EQ EQUALS FALSE FOR FUNCTION GE GT ID IF IMPORT_KEYWORD IN LBRACE LBRACKET LE LPAREN LT MINUS MODULO NAME_KEYWORD NE NUMBER PIPE PLACEHOLDER PLUS RANGE RBRACE RBRACKET REMOTE_KEYWORD RETURN RPAREN STRING TAGS_KEYWORD TEARDOWN TIMES TRUE USINGstart : metadata statements teardown\n | metadata statements\n | statements teardown\n | statementsmetadata : metadata_items\n | emptyempty :metadata_items : metadata_item metadata_items\n | metadata_itemmetadata_item : NAME_KEYWORD COLON metadata_value\n | DESCRIPTION_KEYWORD COLON metadata_value\n | TAGS_KEYWORD COLON LBRACKET tags RBRACKET\n | AUTHOR_KEYWORD COLON metadata_value\n | DATE_KEYWORD COLON DATE\n | DATA_KEYWORD COLON data_source\n | IMPORT_KEYWORD COLON STRING\n | REMOTE_KEYWORD COLON STRING AS IDmetadata_value : STRING\n | IDtags : tag COMMA tags\n | tagtag : STRING\n | IDstatements : statement statements\n | statementstatement : assignment\n | keyword_call\n | remote_keyword_call\n | loop\n | custom_keyword\n | return_statement\n | if_statement\n | break_statement\n | continue_statementassignment : ID EQUALS expression\n | ID EQUALS keyword_call\n | ID EQUALS remote_keyword_callexpression : expr_atom\n | comparison_expr\n | arithmetic_exprexpr_atom : NUMBER\n | STRING\n | PLACEHOLDER\n | ID\n | boolean_expr\n | list_expr\n | dict_expr\n | LPAREN expression RPARENboolean_expr : TRUE\n | FALSElist_expr : LBRACKET list_items RBRACKET\n | LBRACKET RBRACKETlist_items : list_item\n | list_item COMMA list_itemslist_item : expressiondict_expr : LBRACE dict_items RBRACE\n | LBRACE RBRACEdict_items : dict_item\n | dict_item COMMA dict_itemsdict_item : expression COLON expressionloop : FOR ID IN RANGE LPAREN expression COMMA expression RPAREN DO statements ENDkeyword_call : LBRACKET ID RBRACKET COMMA parameter_list\n | LBRACKET ID RBRACKETparameter_list : parameter_itemsparameter_items : parameter_item COMMA parameter_items\n | parameter_itemparameter_item : ID COLON expressionteardown : TEARDOWN DO statements ENDdata_source : STRING USING IDcustom_keyword : FUNCTION ID LPAREN param_definitions RPAREN DO statements ENDparam_definitions : param_def_list\n | param_def_list : param_def COMMA param_def_list\n | param_defparam_def : ID EQUALS STRING\n | ID EQUALS NUMBER\n | IDreturn_statement : RETURN expressionbreak_statement : BREAKcontinue_statement : CONTINUEif_statement : IF expression DO statements END\n | IF expression DO statements elif_clauses END\n | IF expression DO statements ELSE statements END\n | IF expression DO statements elif_clauses ELSE statements ENDelif_clauses : elif_clause\n | elif_clause elif_clauseselif_clause : ELIF expression DO statementscomparison_expr : expr_atom GT expr_atom\n | expr_atom LT expr_atom\n | expr_atom GE expr_atom\n | expr_atom LE expr_atom\n | expr_atom EQ expr_atom\n | expr_atom NE expr_atomarithmetic_expr : expression PLUS expression\n | expression MINUS expression\n | expression TIMES expression\n | expression DIVIDE expression\n | expression MODULO expressionremote_keyword_call : ID PIPE LBRACKET ID RBRACKET COMMA parameter_list\n | ID PIPE LBRACKET ID RBRACKET'
9
+ _lr_signature = 'leftCOMMAleftGTLTGELEEQNEleftPLUSMINUSleftTIMESDIVIDEMODULOrightEQUALSAS AUTHOR_KEYWORD BREAK COLON COMMA CONTINUE DATA_KEYWORD DATE DATE_KEYWORD DESCRIPTION_KEYWORD DIVIDE DO ELIF ELSE END EQ EQUALS FALSE FOR FUNCTION GE GT ID IF IMPORT_KEYWORD IN LBRACE LBRACKET LE LPAREN LT MINUS MODULO NAME_KEYWORD NE NUMBER PIPE PLACEHOLDER PLUS RANGE RBRACE RBRACKET REMOTE_KEYWORD RETURN RPAREN STRING TAGS_KEYWORD TEARDOWN TIMES TRUE USINGstart : metadata statements teardown\n | metadata statements\n | statements teardown\n | statementsmetadata : metadata_items\n | emptyempty :metadata_items : metadata_item metadata_items\n | metadata_itemmetadata_item : NAME_KEYWORD COLON metadata_value\n | DESCRIPTION_KEYWORD COLON metadata_value\n | TAGS_KEYWORD COLON LBRACKET tags RBRACKET\n | AUTHOR_KEYWORD COLON metadata_value\n | DATE_KEYWORD COLON DATE\n | DATE_KEYWORD COLON STRING\n | DATA_KEYWORD COLON data_source\n | IMPORT_KEYWORD COLON STRING\n | REMOTE_KEYWORD COLON STRING AS IDmetadata_value : STRING\n | IDtags : tag COMMA tags\n | tagtag : STRING\n | IDstatements : statement statements\n | statementstatement : assignment\n | keyword_call\n | remote_keyword_call\n | loop\n | custom_keyword\n | return_statement\n | if_statement\n | break_statement\n | continue_statementassignment : ID EQUALS expression\n | ID EQUALS keyword_call\n | ID EQUALS remote_keyword_callexpression : expr_atom\n | comparison_expr\n | arithmetic_exprexpr_atom : NUMBER\n | STRING\n | PLACEHOLDER\n | ID\n | boolean_expr\n | list_expr\n | dict_expr\n | LPAREN expression RPARENboolean_expr : TRUE\n | FALSElist_expr : LBRACKET list_items RBRACKET\n | LBRACKET RBRACKETlist_items : list_item\n | list_item COMMA list_itemslist_item : expressiondict_expr : LBRACE dict_items RBRACE\n | LBRACE RBRACEdict_items : dict_item\n | dict_item COMMA dict_itemsdict_item : expression COLON expressionloop : FOR ID IN RANGE LPAREN expression COMMA expression RPAREN DO statements ENDkeyword_call : LBRACKET ID RBRACKET COMMA parameter_list\n | LBRACKET ID RBRACKETparameter_list : parameter_itemsparameter_items : parameter_item COMMA parameter_items\n | parameter_itemparameter_item : ID COLON expressionteardown : TEARDOWN DO statements ENDdata_source : STRING USING IDcustom_keyword : FUNCTION ID LPAREN param_definitions RPAREN DO statements ENDparam_definitions : param_def_list\n | param_def_list : param_def COMMA param_def_list\n | param_defparam_def : ID EQUALS STRING\n | ID EQUALS NUMBER\n | IDreturn_statement : RETURN expressionbreak_statement : BREAKcontinue_statement : CONTINUEif_statement : IF expression DO statements END\n | IF expression DO statements elif_clauses END\n | IF expression DO statements ELSE statements END\n | IF expression DO statements elif_clauses ELSE statements ENDelif_clauses : elif_clause\n | elif_clause elif_clauseselif_clause : ELIF expression DO statementscomparison_expr : expr_atom GT expr_atom\n | expr_atom LT expr_atom\n | expr_atom GE expr_atom\n | expr_atom LE expr_atom\n | expr_atom EQ expr_atom\n | expr_atom NE expr_atomarithmetic_expr : expression PLUS expression\n | expression MINUS expression\n | expression TIMES expression\n | expression DIVIDE expression\n | expression MODULO expressionremote_keyword_call : ID PIPE LBRACKET ID RBRACKET COMMA parameter_list\n | ID PIPE LBRACKET ID RBRACKET'
10
10
 
11
- _lr_action_items = {'ID':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,20,27,28,29,30,31,32,37,38,39,42,47,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,86,87,89,90,91,92,93,94,95,96,97,98,99,100,103,107,110,116,117,118,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,146,148,149,150,151,152,153,154,157,161,163,165,167,168,169,173,175,176,180,181,182,183,186,187,189,190,193,195,],[26,26,-5,-6,26,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,41,49,50,58,58,-79,-80,-8,72,72,72,82,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,58,-49,-50,58,58,26,-10,-18,-19,-11,115,-63,-13,-14,-15,-16,-44,-35,-36,-37,119,120,122,58,58,58,58,58,58,58,58,58,58,58,-52,-57,26,147,151,152,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,58,-56,58,58,-12,115,-62,-64,-66,-69,-17,-100,58,122,-81,26,58,58,147,147,26,-82,26,-67,-65,-99,58,-83,26,-70,-84,26,-61,]),'LBRACKET':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,29,30,31,32,37,40,47,48,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,69,70,71,72,73,75,76,77,78,80,82,83,84,85,86,90,91,92,93,94,95,96,97,98,99,100,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,148,149,150,151,152,153,154,161,163,165,167,173,175,176,180,181,182,183,186,187,189,190,193,195,],[20,20,-5,-6,20,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,65,65,-79,-80,-8,74,86,87,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,65,-49,-50,65,65,20,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,65,65,65,65,65,65,65,65,65,65,65,65,-52,-57,20,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,65,-56,65,65,-12,-62,-64,-66,-69,-17,-100,65,-81,20,65,65,20,-82,20,-67,-65,-99,65,-83,20,-70,-84,20,-61,]),'FOR':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[27,27,-5,-6,27,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,27,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,27,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,27,27,-82,27,-67,-65,-99,-83,27,-70,-84,27,-61,]),'FUNCTION':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[28,28,-5,-6,28,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,28,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,28,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,28,28,-82,28,-67,-65,-99,-83,28,-70,-84,28,-61,]),'RETURN':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[29,29,-5,-6,29,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,29,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,29,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,29,29,-82,29,-67,-65,-99,-83,29,-70,-84,29,-61,]),'IF':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[30,30,-5,-6,30,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,30,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,30,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,30,30,-82,30,-67,-65,-99,-83,30,-70,-84,30,-61,]),'BREAK':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[31,31,-5,-6,31,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,31,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,31,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,31,31,-82,31,-67,-65,-99,-83,31,-70,-84,31,-61,]),'CONTINUE':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,80,82,83,84,85,103,107,110,126,127,128,129,130,131,132,133,134,135,136,137,138,140,145,148,149,150,151,152,153,161,163,173,175,176,180,181,182,186,187,189,190,193,195,],[32,32,-5,-6,32,-9,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-8,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,32,-10,-18,-19,-11,-63,-13,-14,-15,-16,-44,-35,-36,-37,-52,-57,32,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-12,-62,-64,-66,-69,-17,-100,-81,32,32,-82,32,-67,-65,-99,-83,32,-70,-84,32,-61,]),'NAME_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[17,17,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'DESCRIPTION_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[18,18,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'TAGS_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[19,19,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'AUTHOR_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[21,21,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'DATE_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[22,22,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'DATA_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[23,23,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'IMPORT_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[24,24,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'REMOTE_KEYWORD':([0,7,70,71,72,73,76,77,78,80,145,151,152,],[25,25,-10,-18,-19,-11,-13,-14,-15,-16,-12,-69,-17,]),'$end':([1,3,6,8,9,10,11,12,13,14,15,16,31,32,33,34,36,51,52,53,54,55,56,57,58,59,60,61,63,64,68,75,82,83,84,85,103,107,126,127,128,129,130,131,132,133,134,135,136,137,138,140,144,148,149,150,153,161,175,180,181,182,186,189,190,195,],[0,-4,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-2,-3,-24,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-1,-63,-44,-35,-36,-37,-52,-57,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-68,-62,-64,-66,-100,-81,-82,-67,-65,-99,-83,-70,-84,-61,]),'TEARDOWN':([3,6,8,9,10,11,12,13,14,15,16,31,32,33,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,82,83,84,85,103,107,126,127,128,129,130,131,132,133,134,135,136,137,138,140,148,149,150,153,161,175,180,181,182,186,189,190,195,],[35,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,35,-24,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-63,-44,-35,-36,-37,-52,-57,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-62,-64,-66,-100,-81,-82,-67,-65,-99,-83,-70,-84,-61,]),'END':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,82,83,84,85,103,107,111,126,127,128,129,130,131,132,133,134,135,136,137,138,140,143,148,149,150,153,161,162,164,175,177,178,180,181,182,184,185,186,189,190,191,194,195,],[-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-24,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-63,-44,-35,-36,-37,-52,-57,144,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,161,-62,-64,-66,-100,-81,175,-85,-82,186,-86,-67,-65,-99,189,190,-83,-70,-84,-87,195,-61,]),'ELSE':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,82,83,84,85,103,107,126,127,128,129,130,131,132,133,134,135,136,137,138,140,143,148,149,150,153,161,162,164,175,178,180,181,182,186,189,190,191,195,],[-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-24,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-63,-44,-35,-36,-37,-52,-57,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,163,-62,-64,-66,-100,-81,176,-85,-82,-86,-67,-65,-99,-83,-70,-84,-87,-61,]),'ELIF':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,82,83,84,85,103,107,126,127,128,129,130,131,132,133,134,135,136,137,138,140,143,148,149,150,153,161,164,175,180,181,182,186,189,190,191,195,],[-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-79,-80,-24,-78,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-63,-44,-35,-36,-37,-52,-57,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,165,-62,-64,-66,-100,-81,165,-82,-67,-65,-99,-83,-70,-84,-87,-61,]),'COLON':([17,18,19,21,22,23,24,25,52,53,54,55,56,57,58,59,60,61,63,64,103,107,109,126,127,128,129,130,131,132,133,134,135,136,137,138,140,147,],[38,39,40,42,43,44,45,46,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-52,-57,142,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,167,]),'EQUALS':([26,122,],[47,155,]),'PIPE':([26,82,],[48,48,]),'NUMBER':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,155,165,167,183,],[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,172,55,55,55,]),'STRING':([29,30,38,39,42,44,45,46,47,62,65,66,74,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,146,154,155,165,167,183,],[56,56,71,71,71,79,80,81,56,56,56,56,114,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,114,56,171,56,56,56,]),'PLACEHOLDER':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,]),'LPAREN':([29,30,47,50,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,121,139,141,142,154,165,167,183,],[62,62,62,89,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,154,62,62,62,62,62,62,62,]),'TRUE':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,]),'FALSE':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,]),'LBRACE':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,]),'DO':([35,52,53,54,55,56,57,58,59,60,61,63,64,67,103,107,126,127,128,129,130,131,132,133,134,135,136,137,138,140,156,179,192,],[69,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,110,-52,-57,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,173,187,193,]),'RBRACKET':([41,52,53,54,55,56,57,58,59,60,61,63,64,65,86,102,103,104,105,107,112,113,114,115,119,120,126,127,128,129,130,131,132,133,134,135,136,137,138,140,158,166,],[75,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,103,103,138,-52,-53,-55,-57,145,-21,-22,-23,75,153,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-54,-20,]),'DATE':([43,],[77,]),'IN':([49,],[88,]),'PLUS':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,82,83,101,103,105,107,109,119,126,127,128,129,130,131,132,133,134,135,136,137,138,140,160,170,179,180,188,],[90,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,90,-44,90,90,-52,90,-57,90,-44,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,90,90,90,90,90,]),'MINUS':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,82,83,101,103,105,107,109,119,126,127,128,129,130,131,132,133,134,135,136,137,138,140,160,170,179,180,188,],[91,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,91,-44,91,91,-52,91,-57,91,-44,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,91,91,91,91,91,]),'TIMES':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,82,83,101,103,105,107,109,119,126,127,128,129,130,131,132,133,134,135,136,137,138,140,160,170,179,180,188,],[92,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,92,-44,92,92,-52,92,-57,92,-44,92,92,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,92,92,92,92,92,]),'DIVIDE':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,82,83,101,103,105,107,109,119,126,127,128,129,130,131,132,133,134,135,136,137,138,140,160,170,179,180,188,],[93,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,93,-44,93,93,-52,93,-57,93,-44,93,93,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,93,93,93,93,93,]),'MODULO':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,82,83,101,103,105,107,109,119,126,127,128,129,130,131,132,133,134,135,136,137,138,140,160,170,179,180,188,],[94,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,94,-44,94,94,-52,94,-57,94,-44,94,94,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,94,94,94,94,94,]),'RPAREN':([52,53,54,55,56,57,58,59,60,61,63,64,89,101,103,107,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,140,171,172,174,188,],[-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,-72,137,-52,-57,-77,156,-71,-74,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-75,-76,-73,192,]),'COMMA':([52,53,54,55,56,57,58,59,60,61,63,64,75,103,104,105,107,108,113,114,115,119,122,125,126,127,128,129,130,131,132,133,134,135,136,137,138,140,150,153,160,170,171,172,180,],[-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,116,-52,139,-55,-57,141,146,-22,-23,-44,-77,157,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,168,169,-60,183,-75,-76,-67,]),'RBRACE':([52,53,54,55,56,57,58,59,60,61,63,64,66,103,106,107,108,126,127,128,129,130,131,132,133,134,135,136,137,138,140,159,160,],[-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-49,-50,107,-52,140,-57,-58,-94,-95,-96,-97,-98,-88,-89,-90,-91,-92,-93,-48,-51,-56,-59,-60,]),'GT':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[95,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'LT':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[96,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'GE':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[97,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'LE':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[98,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'EQ':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[99,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'NE':([52,55,56,57,58,59,60,61,63,64,82,103,107,119,137,138,140,],[100,-41,-42,-43,-44,-45,-46,-47,-49,-50,-44,-52,-57,-44,-48,-51,-56,]),'USING':([79,],[117,]),'AS':([81,],[118,]),'RANGE':([88,],[121,]),}
11
+ _lr_action_items = {'ID':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,20,27,28,29,30,31,32,37,38,39,42,47,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,69,70,71,72,73,74,75,76,77,78,79,81,83,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,104,108,111,117,118,119,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,146,147,149,150,151,152,153,154,155,158,162,164,166,168,169,170,174,176,177,181,182,183,184,187,188,190,191,194,196,],[26,26,-5,-6,26,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,41,49,50,58,58,-80,-81,-8,72,72,72,83,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,58,-50,-51,58,58,26,-10,-19,-20,-11,116,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,120,121,123,58,58,58,58,58,58,58,58,58,58,58,-53,-58,26,148,152,153,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,58,-57,58,58,-12,116,-63,-65,-67,-70,-18,-101,58,123,-82,26,58,58,148,148,26,-83,26,-68,-66,-100,58,-84,26,-71,-85,26,-62,]),'LBRACKET':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,29,30,31,32,37,40,47,48,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,87,91,92,93,94,95,96,97,98,99,100,101,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,146,149,150,151,152,153,154,155,162,164,166,168,174,176,177,181,182,183,184,187,188,190,191,194,196,],[20,20,-5,-6,20,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,65,65,-80,-81,-8,74,87,88,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,65,-50,-51,65,65,20,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,65,65,65,65,65,65,65,65,65,65,65,65,-53,-58,20,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,65,-57,65,65,-12,-63,-65,-67,-70,-18,-101,65,-82,20,65,65,20,-83,20,-68,-66,-100,65,-84,20,-71,-85,20,-62,]),'FOR':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[27,27,-5,-6,27,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,27,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,27,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,27,27,-83,27,-68,-66,-100,-84,27,-71,-85,27,-62,]),'FUNCTION':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[28,28,-5,-6,28,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,28,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,28,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,28,28,-83,28,-68,-66,-100,-84,28,-71,-85,28,-62,]),'RETURN':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[29,29,-5,-6,29,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,29,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,29,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,29,29,-83,29,-68,-66,-100,-84,29,-71,-85,29,-62,]),'IF':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[30,30,-5,-6,30,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,30,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,30,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,30,30,-83,30,-68,-66,-100,-84,30,-71,-85,30,-62,]),'BREAK':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[31,31,-5,-6,31,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,31,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,31,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,31,31,-83,31,-68,-66,-100,-84,31,-71,-85,31,-62,]),'CONTINUE':([0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,31,32,37,51,52,53,54,55,56,57,58,59,60,61,63,64,69,70,71,72,73,75,76,77,78,79,81,83,84,85,86,104,108,111,127,128,129,130,131,132,133,134,135,136,137,138,139,141,146,149,150,151,152,153,154,162,164,174,176,177,181,182,183,187,188,190,191,194,196,],[32,32,-5,-6,32,-9,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-8,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,32,-10,-19,-20,-11,-64,-13,-14,-15,-16,-17,-45,-36,-37,-38,-53,-58,32,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-12,-63,-65,-67,-70,-18,-101,-82,32,32,-83,32,-68,-66,-100,-84,32,-71,-85,32,-62,]),'NAME_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[17,17,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'DESCRIPTION_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[18,18,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'TAGS_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[19,19,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'AUTHOR_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[21,21,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'DATE_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[22,22,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'DATA_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[23,23,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'IMPORT_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[24,24,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'REMOTE_KEYWORD':([0,7,70,71,72,73,76,77,78,79,81,146,152,153,],[25,25,-10,-19,-20,-11,-13,-14,-15,-16,-17,-12,-70,-18,]),'$end':([1,3,6,8,9,10,11,12,13,14,15,16,31,32,33,34,36,51,52,53,54,55,56,57,58,59,60,61,63,64,68,75,83,84,85,86,104,108,127,128,129,130,131,132,133,134,135,136,137,138,139,141,145,149,150,151,154,162,176,181,182,183,187,190,191,196,],[0,-4,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-2,-3,-25,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-1,-64,-45,-36,-37,-38,-53,-58,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-69,-63,-65,-67,-101,-82,-83,-68,-66,-100,-84,-71,-85,-62,]),'TEARDOWN':([3,6,8,9,10,11,12,13,14,15,16,31,32,33,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,83,84,85,86,104,108,127,128,129,130,131,132,133,134,135,136,137,138,139,141,149,150,151,154,162,176,181,182,183,187,190,191,196,],[35,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,35,-25,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-64,-45,-36,-37,-38,-53,-58,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-63,-65,-67,-101,-82,-83,-68,-66,-100,-84,-71,-85,-62,]),'END':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,83,84,85,86,104,108,112,127,128,129,130,131,132,133,134,135,136,137,138,139,141,144,149,150,151,154,162,163,165,176,178,179,181,182,183,185,186,187,190,191,192,195,196,],[-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-25,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-64,-45,-36,-37,-38,-53,-58,145,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,162,-63,-65,-67,-101,-82,176,-86,-83,187,-87,-68,-66,-100,190,191,-84,-71,-85,-88,196,-62,]),'ELSE':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,83,84,85,86,104,108,127,128,129,130,131,132,133,134,135,136,137,138,139,141,144,149,150,151,154,162,163,165,176,179,181,182,183,187,190,191,192,196,],[-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-25,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-64,-45,-36,-37,-38,-53,-58,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,164,-63,-65,-67,-101,-82,177,-86,-83,-87,-68,-66,-100,-84,-71,-85,-88,-62,]),'ELIF':([6,8,9,10,11,12,13,14,15,16,31,32,36,51,52,53,54,55,56,57,58,59,60,61,63,64,75,83,84,85,86,104,108,127,128,129,130,131,132,133,134,135,136,137,138,139,141,144,149,150,151,154,162,165,176,181,182,183,187,190,191,192,196,],[-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-80,-81,-25,-79,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-64,-45,-36,-37,-38,-53,-58,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,166,-63,-65,-67,-101,-82,166,-83,-68,-66,-100,-84,-71,-85,-88,-62,]),'COLON':([17,18,19,21,22,23,24,25,52,53,54,55,56,57,58,59,60,61,63,64,104,108,110,127,128,129,130,131,132,133,134,135,136,137,138,139,141,148,],[38,39,40,42,43,44,45,46,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-53,-58,143,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,168,]),'EQUALS':([26,123,],[47,156,]),'PIPE':([26,83,],[48,48,]),'NUMBER':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,156,166,168,184,],[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,173,55,55,55,]),'STRING':([29,30,38,39,42,43,44,45,46,47,62,65,66,74,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,147,155,156,166,168,184,],[56,56,71,71,71,78,80,81,82,56,56,56,56,115,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,115,56,172,56,56,56,]),'PLACEHOLDER':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,]),'LPAREN':([29,30,47,50,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,122,140,142,143,155,166,168,184,],[62,62,62,90,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,155,62,62,62,62,62,62,62,]),'TRUE':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,]),'FALSE':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,]),'LBRACE':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,]),'DO':([35,52,53,54,55,56,57,58,59,60,61,63,64,67,104,108,127,128,129,130,131,132,133,134,135,136,137,138,139,141,157,180,193,],[69,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,111,-53,-58,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,174,188,194,]),'RBRACKET':([41,52,53,54,55,56,57,58,59,60,61,63,64,65,87,103,104,105,106,108,113,114,115,116,120,121,127,128,129,130,131,132,133,134,135,136,137,138,139,141,159,167,],[75,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,104,104,139,-53,-54,-56,-58,146,-22,-23,-24,75,154,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-55,-21,]),'DATE':([43,],[77,]),'IN':([49,],[89,]),'PLUS':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,83,84,102,104,106,108,110,120,127,128,129,130,131,132,133,134,135,136,137,138,139,141,161,171,180,181,189,],[91,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,91,-45,91,91,-53,91,-58,91,-45,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,91,91,91,91,91,]),'MINUS':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,83,84,102,104,106,108,110,120,127,128,129,130,131,132,133,134,135,136,137,138,139,141,161,171,180,181,189,],[92,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,92,-45,92,92,-53,92,-58,92,-45,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,92,92,92,92,92,]),'TIMES':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,83,84,102,104,106,108,110,120,127,128,129,130,131,132,133,134,135,136,137,138,139,141,161,171,180,181,189,],[93,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,93,-45,93,93,-53,93,-58,93,-45,93,93,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,93,93,93,93,93,]),'DIVIDE':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,83,84,102,104,106,108,110,120,127,128,129,130,131,132,133,134,135,136,137,138,139,141,161,171,180,181,189,],[94,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,94,-45,94,94,-53,94,-58,94,-45,94,94,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,94,94,94,94,94,]),'MODULO':([51,52,53,54,55,56,57,58,59,60,61,63,64,67,83,84,102,104,106,108,110,120,127,128,129,130,131,132,133,134,135,136,137,138,139,141,161,171,180,181,189,],[95,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,95,-45,95,95,-53,95,-58,95,-45,95,95,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,95,95,95,95,95,]),'RPAREN':([52,53,54,55,56,57,58,59,60,61,63,64,90,102,104,108,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,172,173,175,189,],[-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,-73,138,-53,-58,-78,157,-72,-75,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-76,-77,-74,193,]),'COMMA':([52,53,54,55,56,57,58,59,60,61,63,64,75,104,105,106,108,109,114,115,116,120,123,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,151,154,161,171,172,173,181,],[-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,117,-53,140,-56,-58,142,147,-23,-24,-45,-78,158,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,169,170,-61,184,-76,-77,-68,]),'RBRACE':([52,53,54,55,56,57,58,59,60,61,63,64,66,104,107,108,109,127,128,129,130,131,132,133,134,135,136,137,138,139,141,160,161,],[-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-50,-51,108,-53,141,-58,-59,-95,-96,-97,-98,-99,-89,-90,-91,-92,-93,-94,-49,-52,-57,-60,-61,]),'GT':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[96,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'LT':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[97,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'GE':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[98,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'LE':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[99,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'EQ':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[100,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'NE':([52,55,56,57,58,59,60,61,63,64,83,104,108,120,138,139,141,],[101,-42,-43,-44,-45,-46,-47,-48,-50,-51,-45,-53,-58,-45,-49,-52,-57,]),'USING':([80,],[118,]),'AS':([82,],[119,]),'RANGE':([89,],[122,]),}
12
12
 
13
13
  _lr_action = {}
14
14
  for _k, _v in _lr_action_items.items():
@@ -17,7 +17,7 @@ for _k, _v in _lr_action_items.items():
17
17
  _lr_action[_x][_k] = _y
18
18
  del _lr_action_items
19
19
 
20
- _lr_goto_items = {'start':([0,],[1,]),'metadata':([0,],[2,]),'statements':([0,2,6,69,110,163,173,176,187,193,],[3,33,36,111,143,177,184,185,191,194,]),'metadata_items':([0,7,],[4,37,]),'empty':([0,],[5,]),'statement':([0,2,6,69,110,163,173,176,187,193,],[6,6,6,6,6,6,6,6,6,6,]),'metadata_item':([0,7,],[7,7,]),'assignment':([0,2,6,69,110,163,173,176,187,193,],[8,8,8,8,8,8,8,8,8,8,]),'keyword_call':([0,2,6,47,69,110,163,173,176,187,193,],[9,9,9,84,9,9,9,9,9,9,9,]),'remote_keyword_call':([0,2,6,47,69,110,163,173,176,187,193,],[10,10,10,85,10,10,10,10,10,10,10,]),'loop':([0,2,6,69,110,163,173,176,187,193,],[11,11,11,11,11,11,11,11,11,11,]),'custom_keyword':([0,2,6,69,110,163,173,176,187,193,],[12,12,12,12,12,12,12,12,12,12,]),'return_statement':([0,2,6,69,110,163,173,176,187,193,],[13,13,13,13,13,13,13,13,13,13,]),'if_statement':([0,2,6,69,110,163,173,176,187,193,],[14,14,14,14,14,14,14,14,14,14,]),'break_statement':([0,2,6,69,110,163,173,176,187,193,],[15,15,15,15,15,15,15,15,15,15,]),'continue_statement':([0,2,6,69,110,163,173,176,187,193,],[16,16,16,16,16,16,16,16,16,16,]),'teardown':([3,33,],[34,68,]),'expression':([29,30,47,62,65,66,86,90,91,92,93,94,139,141,142,154,165,167,183,],[51,67,83,101,105,109,105,126,127,128,129,130,105,109,160,170,179,180,188,]),'expr_atom':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[52,52,52,52,52,52,52,52,52,52,52,52,131,132,133,134,135,136,52,52,52,52,52,52,52,]),'comparison_expr':([29,30,47,62,65,66,86,90,91,92,93,94,139,141,142,154,165,167,183,],[53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,]),'arithmetic_expr':([29,30,47,62,65,66,86,90,91,92,93,94,139,141,142,154,165,167,183,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,]),'boolean_expr':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,]),'list_expr':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,]),'dict_expr':([29,30,47,62,65,66,86,90,91,92,93,94,95,96,97,98,99,100,139,141,142,154,165,167,183,],[61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,]),'metadata_value':([38,39,42,],[70,73,76,]),'data_source':([44,],[78,]),'list_items':([65,86,139,],[102,102,158,]),'list_item':([65,86,139,],[104,104,104,]),'dict_items':([66,141,],[106,159,]),'dict_item':([66,141,],[108,108,]),'tags':([74,146,],[112,166,]),'tag':([74,146,],[113,113,]),'param_definitions':([89,],[123,]),'param_def_list':([89,157,],[124,174,]),'param_def':([89,157,],[125,125,]),'parameter_list':([116,169,],[148,182,]),'parameter_items':([116,168,169,],[149,181,149,]),'parameter_item':([116,168,169,],[150,150,150,]),'elif_clauses':([143,164,],[162,178,]),'elif_clause':([143,164,],[164,164,]),}
20
+ _lr_goto_items = {'start':([0,],[1,]),'metadata':([0,],[2,]),'statements':([0,2,6,69,111,164,174,177,188,194,],[3,33,36,112,144,178,185,186,192,195,]),'metadata_items':([0,7,],[4,37,]),'empty':([0,],[5,]),'statement':([0,2,6,69,111,164,174,177,188,194,],[6,6,6,6,6,6,6,6,6,6,]),'metadata_item':([0,7,],[7,7,]),'assignment':([0,2,6,69,111,164,174,177,188,194,],[8,8,8,8,8,8,8,8,8,8,]),'keyword_call':([0,2,6,47,69,111,164,174,177,188,194,],[9,9,9,85,9,9,9,9,9,9,9,]),'remote_keyword_call':([0,2,6,47,69,111,164,174,177,188,194,],[10,10,10,86,10,10,10,10,10,10,10,]),'loop':([0,2,6,69,111,164,174,177,188,194,],[11,11,11,11,11,11,11,11,11,11,]),'custom_keyword':([0,2,6,69,111,164,174,177,188,194,],[12,12,12,12,12,12,12,12,12,12,]),'return_statement':([0,2,6,69,111,164,174,177,188,194,],[13,13,13,13,13,13,13,13,13,13,]),'if_statement':([0,2,6,69,111,164,174,177,188,194,],[14,14,14,14,14,14,14,14,14,14,]),'break_statement':([0,2,6,69,111,164,174,177,188,194,],[15,15,15,15,15,15,15,15,15,15,]),'continue_statement':([0,2,6,69,111,164,174,177,188,194,],[16,16,16,16,16,16,16,16,16,16,]),'teardown':([3,33,],[34,68,]),'expression':([29,30,47,62,65,66,87,91,92,93,94,95,140,142,143,155,166,168,184,],[51,67,84,102,106,110,106,127,128,129,130,131,106,110,161,171,180,181,189,]),'expr_atom':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[52,52,52,52,52,52,52,52,52,52,52,52,132,133,134,135,136,137,52,52,52,52,52,52,52,]),'comparison_expr':([29,30,47,62,65,66,87,91,92,93,94,95,140,142,143,155,166,168,184,],[53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,]),'arithmetic_expr':([29,30,47,62,65,66,87,91,92,93,94,95,140,142,143,155,166,168,184,],[54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,]),'boolean_expr':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,]),'list_expr':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,]),'dict_expr':([29,30,47,62,65,66,87,91,92,93,94,95,96,97,98,99,100,101,140,142,143,155,166,168,184,],[61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,]),'metadata_value':([38,39,42,],[70,73,76,]),'data_source':([44,],[79,]),'list_items':([65,87,140,],[103,103,159,]),'list_item':([65,87,140,],[105,105,105,]),'dict_items':([66,142,],[107,160,]),'dict_item':([66,142,],[109,109,]),'tags':([74,147,],[113,167,]),'tag':([74,147,],[114,114,]),'param_definitions':([90,],[124,]),'param_def_list':([90,158,],[125,175,]),'param_def':([90,158,],[126,126,]),'parameter_list':([117,170,],[149,183,]),'parameter_items':([117,169,170,],[150,182,150,]),'parameter_item':([117,169,170,],[151,151,151,]),'elif_clauses':([144,165,],[163,179,]),'elif_clause':([144,165,],[165,165,]),}
21
21
 
22
22
  _lr_goto = {}
23
23
  for _k, _v in _lr_goto_items.items():
@@ -41,90 +41,91 @@ _lr_productions = [
41
41
  ('metadata_item -> TAGS_KEYWORD COLON LBRACKET tags RBRACKET','metadata_item',5,'p_metadata_item','parser.py',67),
42
42
  ('metadata_item -> AUTHOR_KEYWORD COLON metadata_value','metadata_item',3,'p_metadata_item','parser.py',68),
43
43
  ('metadata_item -> DATE_KEYWORD COLON DATE','metadata_item',3,'p_metadata_item','parser.py',69),
44
- ('metadata_item -> DATA_KEYWORD COLON data_source','metadata_item',3,'p_metadata_item','parser.py',70),
45
- ('metadata_item -> IMPORT_KEYWORD COLON STRING','metadata_item',3,'p_metadata_item','parser.py',71),
46
- ('metadata_item -> REMOTE_KEYWORD COLON STRING AS ID','metadata_item',5,'p_metadata_item','parser.py',72),
47
- ('metadata_value -> STRING','metadata_value',1,'p_metadata_value','parser.py',91),
48
- ('metadata_value -> ID','metadata_value',1,'p_metadata_value','parser.py',92),
49
- ('tags -> tag COMMA tags','tags',3,'p_tags','parser.py',97),
50
- ('tags -> tag','tags',1,'p_tags','parser.py',98),
51
- ('tag -> STRING','tag',1,'p_tag','parser.py',106),
52
- ('tag -> ID','tag',1,'p_tag','parser.py',107),
53
- ('statements -> statement statements','statements',2,'p_statements','parser.py',112),
54
- ('statements -> statement','statements',1,'p_statements','parser.py',113),
55
- ('statement -> assignment','statement',1,'p_statement','parser.py',121),
56
- ('statement -> keyword_call','statement',1,'p_statement','parser.py',122),
57
- ('statement -> remote_keyword_call','statement',1,'p_statement','parser.py',123),
58
- ('statement -> loop','statement',1,'p_statement','parser.py',124),
59
- ('statement -> custom_keyword','statement',1,'p_statement','parser.py',125),
60
- ('statement -> return_statement','statement',1,'p_statement','parser.py',126),
61
- ('statement -> if_statement','statement',1,'p_statement','parser.py',127),
62
- ('statement -> break_statement','statement',1,'p_statement','parser.py',128),
63
- ('statement -> continue_statement','statement',1,'p_statement','parser.py',129),
64
- ('assignment -> ID EQUALS expression','assignment',3,'p_assignment','parser.py',134),
65
- ('assignment -> ID EQUALS keyword_call','assignment',3,'p_assignment','parser.py',135),
66
- ('assignment -> ID EQUALS remote_keyword_call','assignment',3,'p_assignment','parser.py',136),
67
- ('expression -> expr_atom','expression',1,'p_expression','parser.py',146),
68
- ('expression -> comparison_expr','expression',1,'p_expression','parser.py',147),
69
- ('expression -> arithmetic_expr','expression',1,'p_expression','parser.py',148),
70
- ('expr_atom -> NUMBER','expr_atom',1,'p_expr_atom','parser.py',157),
71
- ('expr_atom -> STRING','expr_atom',1,'p_expr_atom','parser.py',158),
72
- ('expr_atom -> PLACEHOLDER','expr_atom',1,'p_expr_atom','parser.py',159),
73
- ('expr_atom -> ID','expr_atom',1,'p_expr_atom','parser.py',160),
74
- ('expr_atom -> boolean_expr','expr_atom',1,'p_expr_atom','parser.py',161),
75
- ('expr_atom -> list_expr','expr_atom',1,'p_expr_atom','parser.py',162),
76
- ('expr_atom -> dict_expr','expr_atom',1,'p_expr_atom','parser.py',163),
77
- ('expr_atom -> LPAREN expression RPAREN','expr_atom',3,'p_expr_atom','parser.py',164),
78
- ('boolean_expr -> TRUE','boolean_expr',1,'p_boolean_expr','parser.py',175),
79
- ('boolean_expr -> FALSE','boolean_expr',1,'p_boolean_expr','parser.py',176),
80
- ('list_expr -> LBRACKET list_items RBRACKET','list_expr',3,'p_list_expr','parser.py',181),
81
- ('list_expr -> LBRACKET RBRACKET','list_expr',2,'p_list_expr','parser.py',182),
82
- ('list_items -> list_item','list_items',1,'p_list_items','parser.py',190),
83
- ('list_items -> list_item COMMA list_items','list_items',3,'p_list_items','parser.py',191),
84
- ('list_item -> expression','list_item',1,'p_list_item','parser.py',199),
85
- ('dict_expr -> LBRACE dict_items RBRACE','dict_expr',3,'p_dict_expr','parser.py',204),
86
- ('dict_expr -> LBRACE RBRACE','dict_expr',2,'p_dict_expr','parser.py',205),
87
- ('dict_items -> dict_item','dict_items',1,'p_dict_items','parser.py',213),
88
- ('dict_items -> dict_item COMMA dict_items','dict_items',3,'p_dict_items','parser.py',214),
89
- ('dict_item -> expression COLON expression','dict_item',3,'p_dict_item','parser.py',222),
90
- ('loop -> FOR ID IN RANGE LPAREN expression COMMA expression RPAREN DO statements END','loop',12,'p_loop','parser.py',227),
91
- ('keyword_call -> LBRACKET ID RBRACKET COMMA parameter_list','keyword_call',5,'p_keyword_call','parser.py',232),
92
- ('keyword_call -> LBRACKET ID RBRACKET','keyword_call',3,'p_keyword_call','parser.py',233),
93
- ('parameter_list -> parameter_items','parameter_list',1,'p_parameter_list','parser.py',241),
94
- ('parameter_items -> parameter_item COMMA parameter_items','parameter_items',3,'p_parameter_items','parser.py',246),
95
- ('parameter_items -> parameter_item','parameter_items',1,'p_parameter_items','parser.py',247),
96
- ('parameter_item -> ID COLON expression','parameter_item',3,'p_parameter_item','parser.py',255),
97
- ('teardown -> TEARDOWN DO statements END','teardown',4,'p_teardown','parser.py',260),
98
- ('data_source -> STRING USING ID','data_source',3,'p_data_source','parser.py',265),
99
- ('custom_keyword -> FUNCTION ID LPAREN param_definitions RPAREN DO statements END','custom_keyword',8,'p_custom_keyword','parser.py',270),
100
- ('param_definitions -> param_def_list','param_definitions',1,'p_param_definitions','parser.py',275),
101
- ('param_definitions -> <empty>','param_definitions',0,'p_param_definitions','parser.py',276),
102
- ('param_def_list -> param_def COMMA param_def_list','param_def_list',3,'p_param_def_list','parser.py',284),
103
- ('param_def_list -> param_def','param_def_list',1,'p_param_def_list','parser.py',285),
104
- ('param_def -> ID EQUALS STRING','param_def',3,'p_param_def','parser.py',293),
105
- ('param_def -> ID EQUALS NUMBER','param_def',3,'p_param_def','parser.py',294),
106
- ('param_def -> ID','param_def',1,'p_param_def','parser.py',295),
107
- ('return_statement -> RETURN expression','return_statement',2,'p_return_statement','parser.py',303),
108
- ('break_statement -> BREAK','break_statement',1,'p_break_statement','parser.py',308),
109
- ('continue_statement -> CONTINUE','continue_statement',1,'p_continue_statement','parser.py',313),
110
- ('if_statement -> IF expression DO statements END','if_statement',5,'p_if_statement','parser.py',318),
111
- ('if_statement -> IF expression DO statements elif_clauses END','if_statement',6,'p_if_statement','parser.py',319),
112
- ('if_statement -> IF expression DO statements ELSE statements END','if_statement',7,'p_if_statement','parser.py',320),
113
- ('if_statement -> IF expression DO statements elif_clauses ELSE statements END','if_statement',8,'p_if_statement','parser.py',321),
114
- ('elif_clauses -> elif_clause','elif_clauses',1,'p_elif_clauses','parser.py',337),
115
- ('elif_clauses -> elif_clause elif_clauses','elif_clauses',2,'p_elif_clauses','parser.py',338),
116
- ('elif_clause -> ELIF expression DO statements','elif_clause',4,'p_elif_clause','parser.py',346),
117
- ('comparison_expr -> expr_atom GT expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',351),
118
- ('comparison_expr -> expr_atom LT expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',352),
119
- ('comparison_expr -> expr_atom GE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',353),
120
- ('comparison_expr -> expr_atom LE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',354),
121
- ('comparison_expr -> expr_atom EQ expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',355),
122
- ('comparison_expr -> expr_atom NE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',356),
123
- ('arithmetic_expr -> expression PLUS expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',379),
124
- ('arithmetic_expr -> expression MINUS expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',380),
125
- ('arithmetic_expr -> expression TIMES expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',381),
126
- ('arithmetic_expr -> expression DIVIDE expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',382),
127
- ('arithmetic_expr -> expression MODULO expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',383),
128
- ('remote_keyword_call -> ID PIPE LBRACKET ID RBRACKET COMMA parameter_list','remote_keyword_call',7,'p_remote_keyword_call','parser.py',416),
129
- ('remote_keyword_call -> ID PIPE LBRACKET ID RBRACKET','remote_keyword_call',5,'p_remote_keyword_call','parser.py',417),
44
+ ('metadata_item -> DATE_KEYWORD COLON STRING','metadata_item',3,'p_metadata_item','parser.py',70),
45
+ ('metadata_item -> DATA_KEYWORD COLON data_source','metadata_item',3,'p_metadata_item','parser.py',71),
46
+ ('metadata_item -> IMPORT_KEYWORD COLON STRING','metadata_item',3,'p_metadata_item','parser.py',72),
47
+ ('metadata_item -> REMOTE_KEYWORD COLON STRING AS ID','metadata_item',5,'p_metadata_item','parser.py',73),
48
+ ('metadata_value -> STRING','metadata_value',1,'p_metadata_value','parser.py',92),
49
+ ('metadata_value -> ID','metadata_value',1,'p_metadata_value','parser.py',93),
50
+ ('tags -> tag COMMA tags','tags',3,'p_tags','parser.py',98),
51
+ ('tags -> tag','tags',1,'p_tags','parser.py',99),
52
+ ('tag -> STRING','tag',1,'p_tag','parser.py',107),
53
+ ('tag -> ID','tag',1,'p_tag','parser.py',108),
54
+ ('statements -> statement statements','statements',2,'p_statements','parser.py',113),
55
+ ('statements -> statement','statements',1,'p_statements','parser.py',114),
56
+ ('statement -> assignment','statement',1,'p_statement','parser.py',122),
57
+ ('statement -> keyword_call','statement',1,'p_statement','parser.py',123),
58
+ ('statement -> remote_keyword_call','statement',1,'p_statement','parser.py',124),
59
+ ('statement -> loop','statement',1,'p_statement','parser.py',125),
60
+ ('statement -> custom_keyword','statement',1,'p_statement','parser.py',126),
61
+ ('statement -> return_statement','statement',1,'p_statement','parser.py',127),
62
+ ('statement -> if_statement','statement',1,'p_statement','parser.py',128),
63
+ ('statement -> break_statement','statement',1,'p_statement','parser.py',129),
64
+ ('statement -> continue_statement','statement',1,'p_statement','parser.py',130),
65
+ ('assignment -> ID EQUALS expression','assignment',3,'p_assignment','parser.py',135),
66
+ ('assignment -> ID EQUALS keyword_call','assignment',3,'p_assignment','parser.py',136),
67
+ ('assignment -> ID EQUALS remote_keyword_call','assignment',3,'p_assignment','parser.py',137),
68
+ ('expression -> expr_atom','expression',1,'p_expression','parser.py',147),
69
+ ('expression -> comparison_expr','expression',1,'p_expression','parser.py',148),
70
+ ('expression -> arithmetic_expr','expression',1,'p_expression','parser.py',149),
71
+ ('expr_atom -> NUMBER','expr_atom',1,'p_expr_atom','parser.py',158),
72
+ ('expr_atom -> STRING','expr_atom',1,'p_expr_atom','parser.py',159),
73
+ ('expr_atom -> PLACEHOLDER','expr_atom',1,'p_expr_atom','parser.py',160),
74
+ ('expr_atom -> ID','expr_atom',1,'p_expr_atom','parser.py',161),
75
+ ('expr_atom -> boolean_expr','expr_atom',1,'p_expr_atom','parser.py',162),
76
+ ('expr_atom -> list_expr','expr_atom',1,'p_expr_atom','parser.py',163),
77
+ ('expr_atom -> dict_expr','expr_atom',1,'p_expr_atom','parser.py',164),
78
+ ('expr_atom -> LPAREN expression RPAREN','expr_atom',3,'p_expr_atom','parser.py',165),
79
+ ('boolean_expr -> TRUE','boolean_expr',1,'p_boolean_expr','parser.py',176),
80
+ ('boolean_expr -> FALSE','boolean_expr',1,'p_boolean_expr','parser.py',177),
81
+ ('list_expr -> LBRACKET list_items RBRACKET','list_expr',3,'p_list_expr','parser.py',182),
82
+ ('list_expr -> LBRACKET RBRACKET','list_expr',2,'p_list_expr','parser.py',183),
83
+ ('list_items -> list_item','list_items',1,'p_list_items','parser.py',191),
84
+ ('list_items -> list_item COMMA list_items','list_items',3,'p_list_items','parser.py',192),
85
+ ('list_item -> expression','list_item',1,'p_list_item','parser.py',200),
86
+ ('dict_expr -> LBRACE dict_items RBRACE','dict_expr',3,'p_dict_expr','parser.py',205),
87
+ ('dict_expr -> LBRACE RBRACE','dict_expr',2,'p_dict_expr','parser.py',206),
88
+ ('dict_items -> dict_item','dict_items',1,'p_dict_items','parser.py',214),
89
+ ('dict_items -> dict_item COMMA dict_items','dict_items',3,'p_dict_items','parser.py',215),
90
+ ('dict_item -> expression COLON expression','dict_item',3,'p_dict_item','parser.py',223),
91
+ ('loop -> FOR ID IN RANGE LPAREN expression COMMA expression RPAREN DO statements END','loop',12,'p_loop','parser.py',228),
92
+ ('keyword_call -> LBRACKET ID RBRACKET COMMA parameter_list','keyword_call',5,'p_keyword_call','parser.py',233),
93
+ ('keyword_call -> LBRACKET ID RBRACKET','keyword_call',3,'p_keyword_call','parser.py',234),
94
+ ('parameter_list -> parameter_items','parameter_list',1,'p_parameter_list','parser.py',242),
95
+ ('parameter_items -> parameter_item COMMA parameter_items','parameter_items',3,'p_parameter_items','parser.py',247),
96
+ ('parameter_items -> parameter_item','parameter_items',1,'p_parameter_items','parser.py',248),
97
+ ('parameter_item -> ID COLON expression','parameter_item',3,'p_parameter_item','parser.py',256),
98
+ ('teardown -> TEARDOWN DO statements END','teardown',4,'p_teardown','parser.py',261),
99
+ ('data_source -> STRING USING ID','data_source',3,'p_data_source','parser.py',266),
100
+ ('custom_keyword -> FUNCTION ID LPAREN param_definitions RPAREN DO statements END','custom_keyword',8,'p_custom_keyword','parser.py',271),
101
+ ('param_definitions -> param_def_list','param_definitions',1,'p_param_definitions','parser.py',276),
102
+ ('param_definitions -> <empty>','param_definitions',0,'p_param_definitions','parser.py',277),
103
+ ('param_def_list -> param_def COMMA param_def_list','param_def_list',3,'p_param_def_list','parser.py',285),
104
+ ('param_def_list -> param_def','param_def_list',1,'p_param_def_list','parser.py',286),
105
+ ('param_def -> ID EQUALS STRING','param_def',3,'p_param_def','parser.py',294),
106
+ ('param_def -> ID EQUALS NUMBER','param_def',3,'p_param_def','parser.py',295),
107
+ ('param_def -> ID','param_def',1,'p_param_def','parser.py',296),
108
+ ('return_statement -> RETURN expression','return_statement',2,'p_return_statement','parser.py',304),
109
+ ('break_statement -> BREAK','break_statement',1,'p_break_statement','parser.py',309),
110
+ ('continue_statement -> CONTINUE','continue_statement',1,'p_continue_statement','parser.py',314),
111
+ ('if_statement -> IF expression DO statements END','if_statement',5,'p_if_statement','parser.py',319),
112
+ ('if_statement -> IF expression DO statements elif_clauses END','if_statement',6,'p_if_statement','parser.py',320),
113
+ ('if_statement -> IF expression DO statements ELSE statements END','if_statement',7,'p_if_statement','parser.py',321),
114
+ ('if_statement -> IF expression DO statements elif_clauses ELSE statements END','if_statement',8,'p_if_statement','parser.py',322),
115
+ ('elif_clauses -> elif_clause','elif_clauses',1,'p_elif_clauses','parser.py',338),
116
+ ('elif_clauses -> elif_clause elif_clauses','elif_clauses',2,'p_elif_clauses','parser.py',339),
117
+ ('elif_clause -> ELIF expression DO statements','elif_clause',4,'p_elif_clause','parser.py',347),
118
+ ('comparison_expr -> expr_atom GT expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',352),
119
+ ('comparison_expr -> expr_atom LT expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',353),
120
+ ('comparison_expr -> expr_atom GE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',354),
121
+ ('comparison_expr -> expr_atom LE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',355),
122
+ ('comparison_expr -> expr_atom EQ expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',356),
123
+ ('comparison_expr -> expr_atom NE expr_atom','comparison_expr',3,'p_comparison_expr','parser.py',357),
124
+ ('arithmetic_expr -> expression PLUS expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',380),
125
+ ('arithmetic_expr -> expression MINUS expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',381),
126
+ ('arithmetic_expr -> expression TIMES expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',382),
127
+ ('arithmetic_expr -> expression DIVIDE expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',383),
128
+ ('arithmetic_expr -> expression MODULO expression','arithmetic_expr',3,'p_arithmetic_expr','parser.py',384),
129
+ ('remote_keyword_call -> ID PIPE LBRACKET ID RBRACKET COMMA parameter_list','remote_keyword_call',7,'p_remote_keyword_call','parser.py',417),
130
+ ('remote_keyword_call -> ID PIPE LBRACKET ID RBRACKET','remote_keyword_call',5,'p_remote_keyword_call','parser.py',418),
130
131
  ]
pytest_dsl/plugin.py CHANGED
@@ -40,6 +40,23 @@ def pytest_configure(config):
40
40
 
41
41
  # 加载所有已安装的关键字插件
42
42
  load_all_plugins()
43
-
43
+
44
44
  # 加载本地关键字(向后兼容)
45
- scan_local_keywords()
45
+ scan_local_keywords()
46
+
47
+ # 自动导入项目中的resources目录
48
+ try:
49
+ from pytest_dsl.core.custom_keyword_manager import custom_keyword_manager
50
+
51
+ # 获取pytest的根目录
52
+ project_root = str(config.rootdir) if config.rootdir else os.getcwd()
53
+
54
+ # 检查是否存在resources目录
55
+ resources_dir = os.path.join(project_root, "resources")
56
+ if os.path.exists(resources_dir) and os.path.isdir(resources_dir):
57
+ custom_keyword_manager.auto_import_resources_directory(
58
+ project_root)
59
+ print(f"pytest环境:已自动导入resources目录 {resources_dir}")
60
+
61
+ except Exception as e:
62
+ print(f"pytest环境:自动导入resources目录时出现警告: {str(e)}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytest-dsl
3
- Version: 0.12.1
3
+ Version: 0.13.0
4
4
  Summary: A DSL testing framework based on pytest
5
5
  Author: Chen Shuanglin
6
6
  License: MIT
@@ -1,23 +1,23 @@
1
1
  pytest_dsl/__init__.py,sha256=FzwXGvmuvMhRBKxvCdh1h-yJ2wUOnDxcTbU4Nt5fHn8,301
2
- pytest_dsl/cli.py,sha256=clpvDtQ18tJHl0DUKhoAfCNROE3TB_t59z0fOn5VL9M,33404
2
+ pytest_dsl/cli.py,sha256=kFGOoGQ3dzi5C895QPawnAkif6UmQ4f9zFZmmag0Zgo,34336
3
3
  pytest_dsl/conftest_adapter.py,sha256=cevEb0oEZKTZfUrGe1-CmkFByxKhUtjuurBJP7kpLc0,149
4
4
  pytest_dsl/main_adapter.py,sha256=pUIPN_EzY3JCDlYK7yF_OeLDVqni8vtG15G7gVzPJXg,181
5
- pytest_dsl/plugin.py,sha256=zA1Uf5xcdpYVFRHfEy4rCAB1zTdn3EhO8AbOFysOBm8,1173
5
+ pytest_dsl/plugin.py,sha256=Ymepaknms6N5mMoFgtiVi4YYiycE8a_6BPCBONmN-W8,1901
6
6
  pytest_dsl/core/__init__.py,sha256=ersUoxIWSrisxs9GX_STlH4XAbjNxAWUQB0NboaC5zI,322
7
7
  pytest_dsl/core/auth_provider.py,sha256=IZfXXrr4Uuc8QHwRPvhHSzNa2fwrqhjYts1xh78D39Q,14861
8
8
  pytest_dsl/core/auto_decorator.py,sha256=9Mga-GB4AzV5nkB6zpfaq8IuHa0KOH8LlFvnWyH_tnU,6623
9
9
  pytest_dsl/core/auto_directory.py,sha256=egyTnVxtGs4P75EIivRauLRPJfN9aZpoGVvp_Ma72AM,2714
10
10
  pytest_dsl/core/context.py,sha256=fXpVQon666Lz_PCexjkWMBBr-Xcd1SkDMp2vHar6eIs,664
11
- pytest_dsl/core/custom_keyword_manager.py,sha256=UdlGUc_mT8hIwmU7LVf4wJLG-geChwYgvcFM-KtPvJA,7512
12
- pytest_dsl/core/dsl_executor.py,sha256=aEEfocFCFxNDN1puBFhQzL5fzw9eZx8BAyYJI5XSt4Y,30472
11
+ pytest_dsl/core/custom_keyword_manager.py,sha256=vFXRfKXOu7CxoLsLCd6B2TI_JgOrfnE8JN9iShdv_hw,12308
12
+ pytest_dsl/core/dsl_executor.py,sha256=T-8_U3s3KD3HIZ0fWcydftOh9qAwWZDbSNxiT2SBDeA,32039
13
13
  pytest_dsl/core/dsl_executor_utils.py,sha256=cFoR2p3qQ2pb-UhkoefleK-zbuFqf0aBLh2Rlp8Ebs4,2180
14
14
  pytest_dsl/core/global_context.py,sha256=NcEcS2V61MT70tgAsGsFWQq0P3mKjtHQr1rgT3yTcyY,3535
15
15
  pytest_dsl/core/http_client.py,sha256=hdx8gI4JCmq1-96pbiKeyKzSQUzPAi08cRNmljiPQmY,15536
16
16
  pytest_dsl/core/http_request.py,sha256=6e-gTztH3wu2eSW27Nc0uPmyWjB6oBwndx8Vqnu5uyg,60030
17
17
  pytest_dsl/core/keyword_manager.py,sha256=hoNXHQcumnufPRUobnY0mnku4CHxSg2amwPFby4gQEs,7643
18
18
  pytest_dsl/core/lexer.py,sha256=WaLzt9IhtHiA90Fg2WGgfVztveCUhtgxzANBaEiy-F8,4347
19
- pytest_dsl/core/parser.py,sha256=xxy6yC6NdwHxln200aIuaWWN3w44uI8kkNlw8PTVpYI,11855
20
- pytest_dsl/core/parsetab.py,sha256=aN-2RRTr3MSbMyfe-9zOj_t96Xu84avE29GWqH6nqmg,31472
19
+ pytest_dsl/core/parser.py,sha256=pZjbfvab-VLjGJ28AV-69Nrdom_F1L0hwO76TyTyC2s,11947
20
+ pytest_dsl/core/parsetab.py,sha256=o4XbFKwpsi3fYmfI_F6u5NSM61Qp6gTx-Sfh1jDINxI,31767
21
21
  pytest_dsl/core/plugin_discovery.py,sha256=3pt3EXJ7EPF0rkUlyDZMVHkIiTy2vicdIIQJkrHXZjY,8305
22
22
  pytest_dsl/core/utils.py,sha256=q0AMdw5HO33JvlA3UJeQ7IXh1Z_8K1QlwiM1_yiITrU,5350
23
23
  pytest_dsl/core/variable_utils.py,sha256=sx5DFZAO_syi0E_0ACisiZUQL9yxGeOfNmMtV6w9V3E,13947
@@ -65,9 +65,9 @@ pytest_dsl/remote/keyword_client.py,sha256=BL80MOaLroUi0v-9sLtkJ55g1R0Iw9SE1k11I
65
65
  pytest_dsl/remote/keyword_server.py,sha256=vGIE3Bhh461xX_u1U-Cf5nrWL2GQFYdtQdcMWfFIYgE,22320
66
66
  pytest_dsl/remote/variable_bridge.py,sha256=dv-d3Gq9ttvvrXM1fdlLtoSOPB6vRp0_GBOwX4wvcy8,7121
67
67
  pytest_dsl/templates/keywords_report.html,sha256=7x84iq6hi08nf1iQ95jZ3izcAUPx6JFm0_8xS85CYws,31241
68
- pytest_dsl-0.12.1.dist-info/licenses/LICENSE,sha256=Rguy8cb9sYhK6cmrBdXvwh94rKVDh2tVZEWptsHIsVM,1071
69
- pytest_dsl-0.12.1.dist-info/METADATA,sha256=QHdli1Rdp1xywHV12X4Xo2BL1Xie2czRRtQJ_dPPXqc,29655
70
- pytest_dsl-0.12.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
- pytest_dsl-0.12.1.dist-info/entry_points.txt,sha256=PLOBbH02OGY1XR1JDKIZB1Em87loUvbgMRWaag-5FhY,204
72
- pytest_dsl-0.12.1.dist-info/top_level.txt,sha256=4CrSx4uNqxj7NvK6k1y2JZrSrJSzi-UvPZdqpUhumWM,11
73
- pytest_dsl-0.12.1.dist-info/RECORD,,
68
+ pytest_dsl-0.13.0.dist-info/licenses/LICENSE,sha256=Rguy8cb9sYhK6cmrBdXvwh94rKVDh2tVZEWptsHIsVM,1071
69
+ pytest_dsl-0.13.0.dist-info/METADATA,sha256=Z3ywUBY2yKn3V6BouBNFEcZ1l1D6I-_S2-NLCGBcGeE,29655
70
+ pytest_dsl-0.13.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ pytest_dsl-0.13.0.dist-info/entry_points.txt,sha256=PLOBbH02OGY1XR1JDKIZB1Em87loUvbgMRWaag-5FhY,204
72
+ pytest_dsl-0.13.0.dist-info/top_level.txt,sha256=4CrSx4uNqxj7NvK6k1y2JZrSrJSzi-UvPZdqpUhumWM,11
73
+ pytest_dsl-0.13.0.dist-info/RECORD,,