vtlengine 1.4.0rc2__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.
Files changed (66) hide show
  1. vtlengine/API/_InternalApi.py +791 -0
  2. vtlengine/API/__init__.py +612 -0
  3. vtlengine/API/data/schema/external_routines_schema.json +34 -0
  4. vtlengine/API/data/schema/json_schema_2.1.json +116 -0
  5. vtlengine/API/data/schema/value_domain_schema.json +97 -0
  6. vtlengine/AST/ASTComment.py +57 -0
  7. vtlengine/AST/ASTConstructor.py +598 -0
  8. vtlengine/AST/ASTConstructorModules/Expr.py +1928 -0
  9. vtlengine/AST/ASTConstructorModules/ExprComponents.py +995 -0
  10. vtlengine/AST/ASTConstructorModules/Terminals.py +790 -0
  11. vtlengine/AST/ASTConstructorModules/__init__.py +50 -0
  12. vtlengine/AST/ASTDataExchange.py +10 -0
  13. vtlengine/AST/ASTEncoders.py +32 -0
  14. vtlengine/AST/ASTString.py +675 -0
  15. vtlengine/AST/ASTTemplate.py +558 -0
  16. vtlengine/AST/ASTVisitor.py +25 -0
  17. vtlengine/AST/DAG/__init__.py +479 -0
  18. vtlengine/AST/DAG/_words.py +10 -0
  19. vtlengine/AST/Grammar/Vtl.g4 +705 -0
  20. vtlengine/AST/Grammar/VtlTokens.g4 +409 -0
  21. vtlengine/AST/Grammar/__init__.py +0 -0
  22. vtlengine/AST/Grammar/lexer.py +2139 -0
  23. vtlengine/AST/Grammar/parser.py +16597 -0
  24. vtlengine/AST/Grammar/tokens.py +169 -0
  25. vtlengine/AST/VtlVisitor.py +824 -0
  26. vtlengine/AST/__init__.py +674 -0
  27. vtlengine/DataTypes/TimeHandling.py +562 -0
  28. vtlengine/DataTypes/__init__.py +863 -0
  29. vtlengine/DataTypes/_time_checking.py +135 -0
  30. vtlengine/Exceptions/__exception_file_generator.py +96 -0
  31. vtlengine/Exceptions/__init__.py +159 -0
  32. vtlengine/Exceptions/messages.py +1004 -0
  33. vtlengine/Interpreter/__init__.py +2048 -0
  34. vtlengine/Model/__init__.py +501 -0
  35. vtlengine/Operators/Aggregation.py +357 -0
  36. vtlengine/Operators/Analytic.py +455 -0
  37. vtlengine/Operators/Assignment.py +23 -0
  38. vtlengine/Operators/Boolean.py +106 -0
  39. vtlengine/Operators/CastOperator.py +451 -0
  40. vtlengine/Operators/Clause.py +366 -0
  41. vtlengine/Operators/Comparison.py +488 -0
  42. vtlengine/Operators/Conditional.py +495 -0
  43. vtlengine/Operators/General.py +191 -0
  44. vtlengine/Operators/HROperators.py +254 -0
  45. vtlengine/Operators/Join.py +447 -0
  46. vtlengine/Operators/Numeric.py +422 -0
  47. vtlengine/Operators/RoleSetter.py +77 -0
  48. vtlengine/Operators/Set.py +176 -0
  49. vtlengine/Operators/String.py +578 -0
  50. vtlengine/Operators/Time.py +1144 -0
  51. vtlengine/Operators/Validation.py +275 -0
  52. vtlengine/Operators/__init__.py +900 -0
  53. vtlengine/Utils/__Virtual_Assets.py +34 -0
  54. vtlengine/Utils/__init__.py +479 -0
  55. vtlengine/__extras_check.py +17 -0
  56. vtlengine/__init__.py +27 -0
  57. vtlengine/files/__init__.py +0 -0
  58. vtlengine/files/output/__init__.py +35 -0
  59. vtlengine/files/output/_time_period_representation.py +55 -0
  60. vtlengine/files/parser/__init__.py +240 -0
  61. vtlengine/files/parser/_rfc_dialect.py +22 -0
  62. vtlengine/py.typed +0 -0
  63. vtlengine-1.4.0rc2.dist-info/METADATA +89 -0
  64. vtlengine-1.4.0rc2.dist-info/RECORD +66 -0
  65. vtlengine-1.4.0rc2.dist-info/WHEEL +4 -0
  66. vtlengine-1.4.0rc2.dist-info/licenses/LICENSE.md +661 -0
@@ -0,0 +1,409 @@
1
+ lexer grammar VtlTokens;
2
+
3
+
4
+ LPAREN:'(';
5
+ RPAREN:')';
6
+
7
+ QLPAREN: '[';
8
+ QRPAREN: ']';
9
+
10
+ GLPAREN:'{';
11
+ GRPAREN:'}';
12
+
13
+ EQ : '=';
14
+ LT : '<';
15
+ MT : '>';
16
+ ME : '>=';
17
+ NEQ : '<>';
18
+ LE : '<=';
19
+ PLUS : '+';
20
+ MINUS: '-';
21
+ MUL: '*';
22
+ DIV: '/';
23
+ COMMA : ',';
24
+ POINTER : '->';
25
+ COLON : ':';
26
+
27
+ ASSIGN : ':=';
28
+ MEMBERSHIP : '#';
29
+ EVAL : 'eval';
30
+ IF : 'if';
31
+ CASE : 'case';
32
+ THEN : 'then';
33
+ ELSE : 'else';
34
+ USING : 'using';
35
+ WITH : 'with';
36
+ CURRENT_DATE : 'current_date';
37
+ DATEDIFF : 'datediff';
38
+ DATEADD : 'dateadd';
39
+ YEAR_OP : 'year';
40
+ MONTH_OP : 'month';
41
+ DAYOFMONTH : 'dayofmonth';
42
+ DAYOFYEAR : 'dayofyear';
43
+ DAYTOYEAR : 'daytoyear';
44
+ DAYTOMONTH : 'daytomonth';
45
+ YEARTODAY : 'yeartoday';
46
+ MONTHTODAY : 'monthtoday';
47
+ ON : 'on';
48
+ DROP : 'drop';
49
+ KEEP : 'keep';
50
+ CALC : 'calc';
51
+ ATTRCALC : 'attrcalc';
52
+ RENAME : 'rename';
53
+ AS : 'as';
54
+ AND : 'and';
55
+ OR : 'or';
56
+ XOR : 'xor';
57
+ NOT : 'not';
58
+ BETWEEN : 'between';
59
+ IN : 'in';
60
+ NOT_IN : 'not_in';
61
+ NULL_CONSTANT :'null';
62
+ ISNULL : 'isnull';
63
+ EX : 'ex';
64
+ UNION : 'union';
65
+ DIFF : 'diff';
66
+ SYMDIFF : 'symdiff';
67
+ INTERSECT : 'intersect';
68
+ RANDOM : 'random';
69
+ KEYS : 'keys';
70
+ INTYEAR : 'intyear';
71
+ INTMONTH : 'intmonth';
72
+ INTDAY : 'intday';
73
+ CHECK : 'check';
74
+ EXISTS_IN : 'exists_in';
75
+ TO : 'to';
76
+ RETURN : 'return';
77
+ IMBALANCE : 'imbalance';
78
+ ERRORCODE : 'errorcode';
79
+ ALL : 'all';
80
+ AGGREGATE : 'aggr';
81
+ ERRORLEVEL : 'errorlevel';
82
+ ORDER : 'order';
83
+ BY : 'by';
84
+ RANK : 'rank';
85
+ ASC : 'asc';
86
+ DESC : 'desc';
87
+ MIN : 'min';
88
+ MAX : 'max';
89
+ FIRST : 'first';
90
+ LAST : 'last';
91
+ INDEXOF : 'indexof';
92
+ ABS : 'abs';
93
+ KEY : 'key';
94
+ LN : 'ln';
95
+ LOG : 'log';
96
+ TRUNC : 'trunc';
97
+ ROUND : 'round';
98
+ POWER : 'power';
99
+ MOD : 'mod';
100
+ LEN : 'length';
101
+ CONCAT : '||';
102
+ TRIM : 'trim';
103
+ UCASE : 'upper';
104
+ LCASE : 'lower';
105
+ SUBSTR : 'substr';
106
+ SUM : 'sum';
107
+ AVG : 'avg';
108
+ MEDIAN : 'median';
109
+ COUNT : 'count';
110
+ DIMENSION : 'identifier';
111
+ MEASURE : 'measure';
112
+ ATTRIBUTE : 'attribute';
113
+ FILTER : 'filter';
114
+ MERGE : 'merge';
115
+ EXP : 'exp';
116
+ ROLE : 'componentRole';
117
+ VIRAL : 'viral';
118
+ CHARSET_MATCH : 'match_characters';
119
+ TYPE : 'type';
120
+ NVL : 'nvl';
121
+ HIERARCHY : 'hierarchy';
122
+ OPTIONAL : '_';
123
+ INVALID : 'invalid';
124
+
125
+ VALUE_DOMAIN : 'valuedomain';
126
+ VARIABLE : 'variable';
127
+ DATA : 'data';
128
+ STRUCTURE : 'structure';
129
+ DATASET : 'dataset';
130
+ OPERATOR : 'operator';
131
+ DEFINE : 'define';
132
+ PUT_SYMBOL : '<-';
133
+ DATAPOINT : 'datapoint';
134
+ HIERARCHICAL : 'hierarchical';
135
+ RULESET : 'ruleset';
136
+ RULE : 'rule';
137
+ END : 'end';
138
+ ALTER_DATASET : 'alterDataset';
139
+ LTRIM : 'ltrim';
140
+ RTRIM : 'rtrim';
141
+ INSTR : 'instr';
142
+ REPLACE : 'replace';
143
+ CEIL : 'ceil';
144
+ FLOOR : 'floor';
145
+ SQRT : 'sqrt';
146
+ ANY : 'any';
147
+ SETDIFF : 'setdiff';
148
+ STDDEV_POP : 'stddev_pop';
149
+ STDDEV_SAMP : 'stddev_samp';
150
+ VAR_POP : 'var_pop';
151
+ VAR_SAMP : 'var_samp';
152
+ GROUP : 'group';
153
+ EXCEPT : 'except';
154
+ HAVING : 'having';
155
+ FIRST_VALUE : 'first_value';
156
+ LAST_VALUE : 'last_value';
157
+ LAG : 'lag';
158
+ LEAD : 'lead';
159
+ RATIO_TO_REPORT : 'ratio_to_report';
160
+ OVER : 'over';
161
+ PRECEDING : 'preceding';
162
+ FOLLOWING : 'following';
163
+ UNBOUNDED : 'unbounded';
164
+ PARTITION : 'partition';
165
+ ROWS : 'rows';
166
+ RANGE : 'range';
167
+ CURRENT : 'current';
168
+ VALID : 'valid';
169
+ FILL_TIME_SERIES : 'fill_time_series';
170
+ FLOW_TO_STOCK : 'flow_to_stock';
171
+ STOCK_TO_FLOW : 'stock_to_flow';
172
+ TIMESHIFT : 'timeshift';
173
+ MEASURES : 'measures';
174
+ NO_MEASURES : 'no_measures';
175
+ CONDITION : 'condition';
176
+ BOOLEAN : 'boolean';
177
+ DATE : 'date';
178
+ TIME_PERIOD :'time_period';
179
+ NUMBER : 'number';
180
+ STRING : 'string';
181
+ TIME : 'time';
182
+ INTEGER : 'integer';
183
+ FLOAT : 'float';
184
+ LIST : 'list';
185
+ RECORD : 'record';
186
+ RESTRICT : 'restrict';
187
+ YYYY : 'yyyy';
188
+ MM : 'mm';
189
+ DD : 'dd';
190
+ MAX_LENGTH : 'maxLength';
191
+ REGEXP : 'regexp';
192
+ IS : 'is';
193
+ WHEN : 'when';
194
+ FROM : 'from';
195
+ AGGREGATES : 'aggregates';
196
+ POINTS : 'points';
197
+ POINT : 'point';
198
+ TOTAL : 'total';
199
+ PARTIAL : 'partial';
200
+ ALWAYS : 'always';
201
+ INNER_JOIN : 'inner_join';
202
+ LEFT_JOIN : 'left_join';
203
+ CROSS_JOIN : 'cross_join';
204
+ FULL_JOIN : 'full_join';
205
+ MAPS_FROM : 'maps_from';
206
+ MAPS_TO : 'maps_to';
207
+ MAP_TO : 'map_to';
208
+ MAP_FROM : 'map_from';
209
+ RETURNS : 'returns';
210
+ PIVOT : 'pivot';
211
+ CUSTOMPIVOT : 'customPivot';
212
+ UNPIVOT : 'unpivot';
213
+ SUBSPACE : 'sub';
214
+ APPLY : 'apply';
215
+ CONDITIONED : 'conditioned';
216
+ PERIOD_INDICATOR : 'period_indicator';
217
+ SINGLE : 'single';
218
+ DURATION : 'duration';
219
+ TIME_AGG : 'time_agg';
220
+ UNIT : 'unit';
221
+ VALUE : 'Value';
222
+ VALUEDOMAINS : 'valuedomains';
223
+ VARIABLES : 'variables';
224
+ INPUT : 'input';
225
+ OUTPUT : 'output';
226
+ CAST : 'cast';
227
+ RULE_PRIORITY : 'rule_priority';
228
+ DATASET_PRIORITY : 'dataset_priority';
229
+ DEFAULT : 'default';
230
+ CHECK_DATAPOINT : 'check_datapoint';
231
+ CHECK_HIERARCHY : 'check_hierarchy';
232
+ COMPUTED : 'computed';
233
+ NON_NULL : 'non_null';
234
+ NON_ZERO : 'non_zero';
235
+ PARTIAL_NULL : 'partial_null';
236
+ PARTIAL_ZERO : 'partial_zero';
237
+ ALWAYS_NULL : 'always_null';
238
+ ALWAYS_ZERO : 'always_zero';
239
+ COMPONENTS : 'components';
240
+ ALL_MEASURES : 'all_measures';
241
+ SCALAR : 'scalar';
242
+ COMPONENT : 'component';
243
+ DATAPOINT_ON_VD : 'datapoint_on_valuedomains';
244
+ DATAPOINT_ON_VAR : 'datapoint_on_variables';
245
+ HIERARCHICAL_ON_VD : 'hierarchical_on_valuedomains';
246
+ HIERARCHICAL_ON_VAR : 'hierarchical_on_variables';
247
+ SET : 'set';
248
+ LANGUAGE : 'language';
249
+
250
+
251
+ fragment
252
+ LETTER:
253
+ [a-zA-Z]
254
+ ;
255
+
256
+ fragment
257
+ DIGITS0_9:
258
+ '0'..'9'
259
+ ;
260
+
261
+ INTEGER_CONSTANT
262
+ :
263
+ MINUS?DIGITS0_9+
264
+ ;
265
+
266
+ NUMBER_CONSTANT
267
+ :
268
+ INTEGER_CONSTANT '.' INTEGER_CONSTANT* /*FLOATEXP?
269
+ | INTEGER_CONSTANT+ FLOATEXP*/
270
+ ;
271
+
272
+ BOOLEAN_CONSTANT
273
+ :
274
+ 'true'
275
+ | 'false'
276
+ ;
277
+
278
+ STRING_CONSTANT
279
+ :
280
+ '"' (~'"')* '"'
281
+ ;
282
+
283
+ IDENTIFIER
284
+ :
285
+ LETTER ([A-Za-z0-9_.])*
286
+ | DIGITS0_9 ([A-Za-z0-9_.])+
287
+ | '\'' (.)*? '\''
288
+ ;
289
+
290
+ /*
291
+ MONTH
292
+ :
293
+ '0' DIGITS0_9
294
+ | '1' '0'|'1'|'2'
295
+ ;
296
+
297
+ DAY
298
+ :
299
+ ('0'|'1'|'2' DIGITS0_9)
300
+ | '3' ('0'|'1')
301
+ ;
302
+
303
+ YEAR
304
+ :
305
+ DIGITS0_9 DIGITS0_9 DIGITS0_9 DIGITS0_9
306
+ ;
307
+
308
+ WEEK
309
+ :
310
+ ('0'|'1'|'2'|'3'|'4' DIGITS0_9)
311
+ | '5' ('0'|'1'|'2'|'3')
312
+ ;
313
+
314
+ HOURS
315
+ :
316
+ ('0'|'1' DIGITS0_9)
317
+ | '2' ('0'|'1'|'2'|'3'|'4')
318
+ ;
319
+
320
+ MINUTES
321
+ :
322
+ ('0'|'1'|'2'|'3'|'4'|'5' DIGITS0_9)
323
+ | '6' '0'
324
+ ;
325
+
326
+ SECONDS
327
+ :
328
+ ('0'|'1'|'2'|'3'|'4'|'5' DIGITS0_9)
329
+ | ('6' '0')
330
+ ;
331
+ */
332
+ /* DATE_FORMAT
333
+ :
334
+ YEAR
335
+ | (YEAR 'S' '1'|'2')
336
+ | (YEAR 'Q' '1'|'2'|'3'|'4')
337
+ | (YEAR 'M' MONTH)
338
+ | (YEAR 'D' MONTH DAY)
339
+ | (YEAR 'A')
340
+ | (YEAR MINUS 'Q' '1'|'2'|'3'|'4')
341
+ | (YEAR MINUS MONTH)
342
+ | (YEAR MINUS MONTH MINUS DAY)
343
+ | (YEAR)
344
+ ;*/
345
+ /*
346
+ TIME_FORMAT
347
+ :
348
+ YEAR ('A')?
349
+ | (YEAR (MINUS)? 'S' '1'|'2')
350
+ | (YEAR (MINUS)? 'Q' '1'|'2'|'3'|'4')
351
+ | (YEAR 'M'|MINUS MONTH)
352
+ | (YEAR 'W' WEEK)
353
+ | (YEAR 'M' MONTH 'D' DAY)
354
+ | (YEAR MINUS MONTH MINUS DAY)
355
+ | (DAY MINUS MONTH MINUS YEAR)
356
+ | (MONTH MINUS DAY MINUS YEAR)
357
+ ;*/
358
+
359
+ /*TIME_UNIT
360
+ :
361
+ 'A'
362
+ |'S'
363
+ |'M'
364
+ |'Q'
365
+ |'W'
366
+ |'D'
367
+ |'T'
368
+ ;*/
369
+
370
+
371
+ /* old
372
+ TIME
373
+ :
374
+ YEAR MINUS MONTH MINUS DAY ('T' HOURS ':' MINUTES ':' SECONDS 'Z')?
375
+ ; */
376
+ /*
377
+ TIME
378
+ :
379
+ (YEAR MINUS MONTH MINUS DAY)'/'(YEAR MINUS MONTH MINUS DAY)
380
+ ;
381
+ */
382
+
383
+ WS:
384
+ [ \t\r\n\u000C]+ ->channel(1)
385
+ ;
386
+
387
+ EOL
388
+ : ';'
389
+ ;
390
+
391
+ ML_COMMENT
392
+ :
393
+ ('/*' (.)*? '*/')-> channel(2);
394
+
395
+ SL_COMMENT
396
+ :
397
+ ('//' (.)*? '\n') ->channel(2);
398
+
399
+ /*
400
+
401
+ FREQUENCY
402
+ :
403
+ 'A'
404
+ | 'S'
405
+ | 'Q'
406
+ | 'M'
407
+ | 'W'
408
+ | 'D'
409
+ ;*/
File without changes