vtlengine 1.1.1__py3-none-any.whl → 1.2.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.
Potentially problematic release.
This version of vtlengine might be problematic. Click here for more details.
- vtlengine/API/_InternalApi.py +62 -28
- vtlengine/API/__init__.py +25 -9
- vtlengine/AST/ASTConstructorModules/Expr.py +6 -3
- vtlengine/AST/DAG/__init__.py +34 -5
- vtlengine/AST/DAG/_words.py +1 -0
- vtlengine/AST/Grammar/Vtl.g4 +7 -7
- vtlengine/AST/Grammar/lexer.py +19759 -1112
- vtlengine/AST/Grammar/parser.py +17996 -3199
- vtlengine/Exceptions/messages.py +5 -2
- vtlengine/Interpreter/__init__.py +37 -3
- vtlengine/Operators/Aggregation.py +6 -1
- vtlengine/Operators/Analytic.py +3 -2
- vtlengine/Operators/CastOperator.py +5 -2
- vtlengine/Operators/Clause.py +26 -18
- vtlengine/Operators/Comparison.py +3 -1
- vtlengine/Operators/Conditional.py +20 -13
- vtlengine/Operators/General.py +3 -1
- vtlengine/Operators/HROperators.py +3 -1
- vtlengine/Operators/Join.py +4 -2
- vtlengine/Operators/Time.py +11 -5
- vtlengine/Operators/Validation.py +5 -2
- vtlengine/Operators/__init__.py +15 -8
- vtlengine/Utils/__Virtual_Assets.py +34 -0
- vtlengine/__init__.py +1 -1
- {vtlengine-1.1.1.dist-info → vtlengine-1.2.0.dist-info}/METADATA +4 -4
- {vtlengine-1.1.1.dist-info → vtlengine-1.2.0.dist-info}/RECORD +28 -27
- {vtlengine-1.1.1.dist-info → vtlengine-1.2.0.dist-info}/LICENSE.md +0 -0
- {vtlengine-1.1.1.dist-info → vtlengine-1.2.0.dist-info}/WHEEL +0 -0
vtlengine/Operators/Time.py
CHANGED
|
@@ -40,6 +40,7 @@ from vtlengine.DataTypes.TimeHandling import (
|
|
|
40
40
|
)
|
|
41
41
|
from vtlengine.Exceptions import SemanticError
|
|
42
42
|
from vtlengine.Model import Component, DataComponent, Dataset, Role, Scalar
|
|
43
|
+
from vtlengine.Utils.__Virtual_Assets import VirtualCounter
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
class Time(Operators.Operator):
|
|
@@ -124,12 +125,13 @@ class Time(Operators.Operator):
|
|
|
124
125
|
class Unary(Time):
|
|
125
126
|
@classmethod
|
|
126
127
|
def validate(cls, operand: Any) -> Any:
|
|
128
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
127
129
|
if not isinstance(operand, Dataset):
|
|
128
130
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time dataset")
|
|
129
131
|
if cls._get_time_id(operand) is None:
|
|
130
132
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time dataset")
|
|
131
133
|
operand.data = cls.sort_by_time(operand)
|
|
132
|
-
return Dataset(name=
|
|
134
|
+
return Dataset(name=dataset_name, components=operand.components.copy(), data=None)
|
|
133
135
|
|
|
134
136
|
@classmethod
|
|
135
137
|
def evaluate(cls, operand: Any) -> Any:
|
|
@@ -183,6 +185,7 @@ class Period_indicator(Unary):
|
|
|
183
185
|
|
|
184
186
|
@classmethod
|
|
185
187
|
def validate(cls, operand: Any) -> Any:
|
|
188
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
186
189
|
if isinstance(operand, Dataset):
|
|
187
190
|
time_id = cls._get_time_id(operand)
|
|
188
191
|
if operand.components[time_id].data_type != TimePeriod:
|
|
@@ -198,7 +201,7 @@ class Period_indicator(Unary):
|
|
|
198
201
|
role=Role.MEASURE,
|
|
199
202
|
nullable=True,
|
|
200
203
|
)
|
|
201
|
-
return Dataset(name=
|
|
204
|
+
return Dataset(name=dataset_name, components=result_components, data=None)
|
|
202
205
|
# DataComponent and Scalar validation
|
|
203
206
|
if operand.data_type != TimePeriod:
|
|
204
207
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time period component")
|
|
@@ -289,6 +292,7 @@ class Fill_time_series(Binary):
|
|
|
289
292
|
|
|
290
293
|
@classmethod
|
|
291
294
|
def validate(cls, operand: Dataset, fill_type: str) -> Dataset:
|
|
295
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
292
296
|
if not isinstance(operand, Dataset):
|
|
293
297
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time dataset")
|
|
294
298
|
cls.time_id = cls._get_time_id(operand)
|
|
@@ -298,7 +302,7 @@ class Fill_time_series(Binary):
|
|
|
298
302
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time dataset")
|
|
299
303
|
if fill_type not in ["all", "single"]:
|
|
300
304
|
fill_type = "all"
|
|
301
|
-
return Dataset(name=
|
|
305
|
+
return Dataset(name=dataset_name, components=operand.components.copy(), data=None)
|
|
302
306
|
|
|
303
307
|
@classmethod
|
|
304
308
|
def max_min_from_period(cls, data: pd.DataFrame, mode: str = "all") -> Dict[str, Any]:
|
|
@@ -574,9 +578,10 @@ class Time_Shift(Binary):
|
|
|
574
578
|
|
|
575
579
|
@classmethod
|
|
576
580
|
def validate(cls, operand: Dataset, shift_value: str) -> Dataset:
|
|
581
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
577
582
|
if cls._get_time_id(operand) is None:
|
|
578
583
|
raise SemanticError("1-1-19-8", op=cls.op, comp_type="time dataset")
|
|
579
|
-
return Dataset(name=
|
|
584
|
+
return Dataset(name=dataset_name, components=operand.components.copy(), data=None)
|
|
580
585
|
|
|
581
586
|
@classmethod
|
|
582
587
|
def shift_dates(cls, dates: Any, shift_value: int, frequency: str) -> Any:
|
|
@@ -907,6 +912,7 @@ class Date_Add(Parametrized):
|
|
|
907
912
|
def validate(
|
|
908
913
|
cls, operand: Union[Scalar, DataComponent, Dataset], param_list: List[Scalar]
|
|
909
914
|
) -> Union[Scalar, DataComponent, Dataset]:
|
|
915
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
910
916
|
expected_types = [Integer, String]
|
|
911
917
|
for i, param in enumerate(param_list):
|
|
912
918
|
error = (
|
|
@@ -938,7 +944,7 @@ class Date_Add(Parametrized):
|
|
|
938
944
|
|
|
939
945
|
if all(comp.data_type not in [Date, TimePeriod] for comp in operand.components.values()):
|
|
940
946
|
raise SemanticError("2-1-19-14", op=cls.op, name=operand.name)
|
|
941
|
-
return Dataset(name=
|
|
947
|
+
return Dataset(name=dataset_name, components=operand.components.copy(), data=None)
|
|
942
948
|
|
|
943
949
|
@classmethod
|
|
944
950
|
def evaluate(
|
|
@@ -14,6 +14,7 @@ from vtlengine.DataTypes import (
|
|
|
14
14
|
from vtlengine.Exceptions import SemanticError
|
|
15
15
|
from vtlengine.Model import Component, Dataset, Role
|
|
16
16
|
from vtlengine.Operators import Operator
|
|
17
|
+
from vtlengine.Utils.__Virtual_Assets import VirtualCounter
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
# noinspection PyTypeChecker
|
|
@@ -29,6 +30,7 @@ class Check(Operator):
|
|
|
29
30
|
error_level: Optional[int],
|
|
30
31
|
invalid: bool,
|
|
31
32
|
) -> Dataset:
|
|
33
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
32
34
|
if len(validation_element.get_measures()) != 1:
|
|
33
35
|
raise SemanticError("1-1-10-1", op=cls.op, op_type="validation", me_type="Boolean")
|
|
34
36
|
measure = validation_element.get_measures()[0]
|
|
@@ -71,7 +73,7 @@ class Check(Operator):
|
|
|
71
73
|
name="errorlevel", data_type=Integer, role=Role.MEASURE, nullable=True
|
|
72
74
|
)
|
|
73
75
|
|
|
74
|
-
return Dataset(name=
|
|
76
|
+
return Dataset(name=dataset_name, components=result_components, data=None)
|
|
75
77
|
|
|
76
78
|
@classmethod
|
|
77
79
|
def evaluate(
|
|
@@ -126,6 +128,7 @@ class Validation(Operator):
|
|
|
126
128
|
|
|
127
129
|
@classmethod
|
|
128
130
|
def validate(cls, dataset_element: Dataset, rule_info: Dict[str, Any], output: str) -> Dataset:
|
|
131
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
129
132
|
result_components = {comp.name: comp for comp in dataset_element.get_identifiers()}
|
|
130
133
|
result_components["ruleid"] = Component(
|
|
131
134
|
name="ruleid", data_type=String, role=Role.IDENTIFIER, nullable=False
|
|
@@ -154,7 +157,7 @@ class Validation(Operator):
|
|
|
154
157
|
name="errorlevel", data_type=Number, role=Role.MEASURE, nullable=True
|
|
155
158
|
)
|
|
156
159
|
|
|
157
|
-
return Dataset(name=
|
|
160
|
+
return Dataset(name=dataset_name, components=result_components, data=None)
|
|
158
161
|
|
|
159
162
|
@classmethod
|
|
160
163
|
def evaluate(cls, dataset_element: Dataset, rule_info: Dict[str, Any], output: str) -> Dataset:
|
vtlengine/Operators/__init__.py
CHANGED
|
@@ -37,6 +37,7 @@ from vtlengine.DataTypes.TimeHandling import (
|
|
|
37
37
|
)
|
|
38
38
|
from vtlengine.Exceptions import SemanticError
|
|
39
39
|
from vtlengine.Model import Component, DataComponent, Dataset, Role, Scalar, ScalarSet
|
|
40
|
+
from vtlengine.Utils.__Virtual_Assets import VirtualCounter
|
|
40
41
|
|
|
41
42
|
ALL_MODEL_DATA_TYPES = Union[Dataset, Scalar, DataComponent]
|
|
42
43
|
|
|
@@ -289,6 +290,7 @@ class Binary(Operator):
|
|
|
289
290
|
|
|
290
291
|
@classmethod
|
|
291
292
|
def dataset_validation(cls, left_operand: Dataset, right_operand: Dataset) -> Dataset:
|
|
293
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
292
294
|
left_identifiers = left_operand.get_identifiers_names()
|
|
293
295
|
right_identifiers = right_operand.get_identifiers_names()
|
|
294
296
|
|
|
@@ -336,12 +338,13 @@ class Binary(Operator):
|
|
|
336
338
|
right_comp = right_operand.components[comp.name]
|
|
337
339
|
comp.nullable = left_comp.nullable or right_comp.nullable
|
|
338
340
|
|
|
339
|
-
result_dataset = Dataset(name=
|
|
341
|
+
result_dataset = Dataset(name=dataset_name, components=result_components, data=None)
|
|
340
342
|
cls.apply_return_type_dataset(result_dataset, left_operand, right_operand)
|
|
341
343
|
return result_dataset
|
|
342
344
|
|
|
343
345
|
@classmethod
|
|
344
346
|
def dataset_scalar_validation(cls, dataset: Dataset, scalar: Scalar) -> Dataset:
|
|
347
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
345
348
|
if len(dataset.get_measures()) == 0:
|
|
346
349
|
raise SemanticError("1-1-1-8", op=cls.op, name=dataset.name)
|
|
347
350
|
|
|
@@ -350,7 +353,7 @@ class Binary(Operator):
|
|
|
350
353
|
for comp_name, comp in dataset.components.items()
|
|
351
354
|
if comp.role in [Role.IDENTIFIER, Role.MEASURE]
|
|
352
355
|
}
|
|
353
|
-
result_dataset = Dataset(name=
|
|
356
|
+
result_dataset = Dataset(name=dataset_name, components=result_components, data=None)
|
|
354
357
|
cls.apply_return_type_dataset(result_dataset, dataset, scalar)
|
|
355
358
|
return result_dataset
|
|
356
359
|
|
|
@@ -379,10 +382,10 @@ class Binary(Operator):
|
|
|
379
382
|
:param right_operand: The right component
|
|
380
383
|
:return: The result data type of the validation
|
|
381
384
|
"""
|
|
382
|
-
|
|
385
|
+
comp_name = VirtualCounter._new_dc_name()
|
|
383
386
|
result_data_type = cls.type_validation(left_operand.data_type, right_operand.data_type)
|
|
384
387
|
result = DataComponent(
|
|
385
|
-
name=
|
|
388
|
+
name=comp_name,
|
|
386
389
|
data_type=result_data_type,
|
|
387
390
|
data=None,
|
|
388
391
|
role=left_operand.role,
|
|
@@ -405,6 +408,7 @@ class Binary(Operator):
|
|
|
405
408
|
|
|
406
409
|
@classmethod
|
|
407
410
|
def dataset_set_validation(cls, dataset: Dataset, scalar_set: ScalarSet) -> Dataset:
|
|
411
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
408
412
|
if len(dataset.get_measures()) == 0:
|
|
409
413
|
raise SemanticError("1-1-1-8", op=cls.op, name=dataset.name)
|
|
410
414
|
for measure in dataset.get_measures():
|
|
@@ -415,7 +419,7 @@ class Binary(Operator):
|
|
|
415
419
|
if comp.role in [Role.IDENTIFIER, Role.MEASURE]
|
|
416
420
|
}
|
|
417
421
|
|
|
418
|
-
result_dataset = Dataset(name=
|
|
422
|
+
result_dataset = Dataset(name=dataset_name, components=result_components, data=None)
|
|
419
423
|
cls.apply_return_type_dataset(result_dataset, dataset, scalar_set)
|
|
420
424
|
return result_dataset
|
|
421
425
|
|
|
@@ -423,9 +427,10 @@ class Binary(Operator):
|
|
|
423
427
|
def component_set_validation(
|
|
424
428
|
cls, component: DataComponent, scalar_set: ScalarSet
|
|
425
429
|
) -> DataComponent:
|
|
430
|
+
comp_name = VirtualCounter._new_dc_name()
|
|
426
431
|
cls.type_validation(component.data_type, scalar_set.data_type)
|
|
427
432
|
result = DataComponent(
|
|
428
|
-
name=
|
|
433
|
+
name=comp_name,
|
|
429
434
|
data_type=cls.type_validation(component.data_type, scalar_set.data_type),
|
|
430
435
|
data=None,
|
|
431
436
|
role=Role.MEASURE,
|
|
@@ -757,6 +762,7 @@ class Unary(Operator):
|
|
|
757
762
|
|
|
758
763
|
@classmethod
|
|
759
764
|
def dataset_validation(cls, operand: Dataset) -> Dataset:
|
|
765
|
+
dataset_name = VirtualCounter._new_ds_name()
|
|
760
766
|
cls.validate_dataset_type(operand)
|
|
761
767
|
if len(operand.get_measures()) == 0:
|
|
762
768
|
raise SemanticError("1-1-1-8", op=cls.op, name=operand.name)
|
|
@@ -766,7 +772,7 @@ class Unary(Operator):
|
|
|
766
772
|
if comp.role in [Role.IDENTIFIER, Role.MEASURE]
|
|
767
773
|
}
|
|
768
774
|
|
|
769
|
-
result_dataset = Dataset(name=
|
|
775
|
+
result_dataset = Dataset(name=dataset_name, components=result_components, data=None)
|
|
770
776
|
cls.apply_return_type_dataset(result_dataset, operand)
|
|
771
777
|
return result_dataset
|
|
772
778
|
|
|
@@ -778,9 +784,10 @@ class Unary(Operator):
|
|
|
778
784
|
|
|
779
785
|
@classmethod
|
|
780
786
|
def component_validation(cls, operand: DataComponent) -> DataComponent:
|
|
787
|
+
comp_name = VirtualCounter._new_dc_name()
|
|
781
788
|
result_type = cls.type_validation(operand.data_type)
|
|
782
789
|
result = DataComponent(
|
|
783
|
-
name=
|
|
790
|
+
name=comp_name,
|
|
784
791
|
data_type=result_type,
|
|
785
792
|
data=None,
|
|
786
793
|
role=operand.role,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from copy import copy
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class VirtualCounter:
|
|
5
|
+
_instance = None
|
|
6
|
+
dataset_count: int = 0
|
|
7
|
+
component_count: int = 0
|
|
8
|
+
|
|
9
|
+
def __init__(self) -> None:
|
|
10
|
+
self.dataset_count = 0
|
|
11
|
+
self.component_count = 0
|
|
12
|
+
|
|
13
|
+
def __new__(cls): # type: ignore[no-untyped-def]
|
|
14
|
+
if cls._instance is None:
|
|
15
|
+
cls._instance = super(VirtualCounter, cls).__new__(cls)
|
|
16
|
+
cls._instance.reset()
|
|
17
|
+
return cls._instance
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def reset(cls) -> None:
|
|
21
|
+
cls.dataset_count = 0
|
|
22
|
+
cls.component_count = 0
|
|
23
|
+
|
|
24
|
+
@classmethod
|
|
25
|
+
def _new_ds_name(cls) -> str:
|
|
26
|
+
cls.dataset_count += 1
|
|
27
|
+
name = f"@VDS_{copy(cls.dataset_count)}"
|
|
28
|
+
return name
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def _new_dc_name(cls) -> str:
|
|
32
|
+
cls.component_count += 1
|
|
33
|
+
name = f"@VDC_{copy(cls.component_count)}"
|
|
34
|
+
return name
|
vtlengine/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: vtlengine
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0
|
|
4
4
|
Summary: Run and Validate VTL Scripts
|
|
5
5
|
License: AGPL-3.0
|
|
6
6
|
Keywords: vtl,sdmx,vtlengine,Validation and Transformation Language
|
|
@@ -16,7 +16,7 @@ Classifier: Intended Audience :: Science/Research
|
|
|
16
16
|
Classifier: Typing :: Typed
|
|
17
17
|
Provides-Extra: all
|
|
18
18
|
Provides-Extra: s3
|
|
19
|
-
Requires-Dist: antlr4-python3-runtime (>=4.
|
|
19
|
+
Requires-Dist: antlr4-python3-runtime (>=4.13.2,<4.14)
|
|
20
20
|
Requires-Dist: duckdb (>=1.1,<1.2)
|
|
21
21
|
Requires-Dist: fsspec (>=2022.11.0,<2023.0) ; extra == "all"
|
|
22
22
|
Requires-Dist: fsspec (>=2022.11.0,<2023.0) ; extra == "s3"
|
|
@@ -25,7 +25,7 @@ Requires-Dist: networkx (>=2.8,<3.0)
|
|
|
25
25
|
Requires-Dist: numpy (>=1.23.2,<2) ; python_version < "3.13"
|
|
26
26
|
Requires-Dist: numpy (>=2.1.0) ; python_version >= "3.13"
|
|
27
27
|
Requires-Dist: pandas (>=2.1.4,<3.0)
|
|
28
|
-
Requires-Dist: pysdmx[xml] (>=1.
|
|
28
|
+
Requires-Dist: pysdmx[xml] (>=1.4.0rc1,<2.0)
|
|
29
29
|
Requires-Dist: s3fs (>=2022.11.0,<2023.0) ; extra == "all"
|
|
30
30
|
Requires-Dist: s3fs (>=2022.11.0,<2023.0) ; extra == "s3"
|
|
31
31
|
Requires-Dist: sqlglot (>=22.2.0,<23.0)
|
|
@@ -43,7 +43,7 @@ Description-Content-Type: text/markdown
|
|
|
43
43
|
| Testing | [](https://github.com/Meaningful-Data/vtlengine/actions/workflows/testing.yml) |
|
|
44
44
|
| Package | [](https://pypi.org/project/vtlengine/) |
|
|
45
45
|
| License | [](https://github.com/Meaningful-Data/vtlengine/blob/main/LICENSE.md) |
|
|
46
|
-
| Mentioned in | [](
|
|
46
|
+
| Mentioned in | [](https://github.com/SNStatComp/awesome-official-statistics-software) |
|
|
47
47
|
|
|
48
48
|
## Introduction
|
|
49
49
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
vtlengine/API/_InternalApi.py,sha256=
|
|
2
|
-
vtlengine/API/__init__.py,sha256=
|
|
1
|
+
vtlengine/API/_InternalApi.py,sha256=ptmL3F07ThTN2G2yLAo7p6Az_njScJYfBbasYUaLEF0,24167
|
|
2
|
+
vtlengine/API/__init__.py,sha256=XyL_7ZNaEfL5Xbler7iHI7MtsbHsQRvopSa25h14R3A,18598
|
|
3
3
|
vtlengine/API/data/schema/json_schema_2.1.json,sha256=v3-C0Xnq8qScJSPAtLgb3rjKMrd3nz-bIxgZdTSEUiU,4336
|
|
4
4
|
vtlengine/AST/ASTComment.py,sha256=bAJW7aaqBXU2LqMtRvL_XOttdl1AFZufa15vmQdvNlY,1667
|
|
5
5
|
vtlengine/AST/ASTConstructor.py,sha256=X55I98BKG1ItyGIDObF9ALVfCcWnU-0wwCWJsiPILkg,21488
|
|
6
|
-
vtlengine/AST/ASTConstructorModules/Expr.py,sha256=
|
|
6
|
+
vtlengine/AST/ASTConstructorModules/Expr.py,sha256=PdI66D3dwA4ymxgqqcChkctsWMRgBSfuyUtgH-KOkss,70207
|
|
7
7
|
vtlengine/AST/ASTConstructorModules/ExprComponents.py,sha256=2Ft4e5w2NtbfaqSNW8I9qSpG9iUaPIfdug7yYWo2gqE,38553
|
|
8
8
|
vtlengine/AST/ASTConstructorModules/Terminals.py,sha256=7zWDx_SFcbnL35G7Y0qZwl-lLEsfqReyzBX0UxwTCOk,27054
|
|
9
9
|
vtlengine/AST/ASTConstructorModules/__init__.py,sha256=J6g6NhJD8j0Ek1YmpethxRiFdjhLxUTM0mc3NHRFLlM,1879
|
|
@@ -12,43 +12,44 @@ vtlengine/AST/ASTEncoders.py,sha256=-Ar6a0GqMdJZK4CtZ1pUpIeGv57oSdN5qy3-aF0Zt9c,
|
|
|
12
12
|
vtlengine/AST/ASTString.py,sha256=mFZzkT5XO2p21ptt7nv3iBefJOcNsvuoWqwqaxfxMOc,25936
|
|
13
13
|
vtlengine/AST/ASTTemplate.py,sha256=qUkz0AE1ay3gFrCidzhJAqxRnZR8nj98DOKAW2rXoso,12961
|
|
14
14
|
vtlengine/AST/ASTVisitor.py,sha256=3QQTudBpbR4pPQdH7y07EgwuzhoGzNQ59qox8R-E3fM,500
|
|
15
|
-
vtlengine/AST/DAG/__init__.py,sha256=
|
|
16
|
-
vtlengine/AST/DAG/_words.py,sha256=
|
|
17
|
-
vtlengine/AST/Grammar/Vtl.g4,sha256=
|
|
15
|
+
vtlengine/AST/DAG/__init__.py,sha256=YDWcjd--blKfrzRCFHAhuzhefnAdGKEBFei9gZEVFas,16670
|
|
16
|
+
vtlengine/AST/DAG/_words.py,sha256=LyRL9j-vZUNHdLDJZJrq2nKUmVlpbxdzd9ovW6CnNoU,200
|
|
17
|
+
vtlengine/AST/Grammar/Vtl.g4,sha256=g4a76A04qH-SaR9a9LfrG4rt3GPZ7UpqZLISkY1BkmI,26323
|
|
18
18
|
vtlengine/AST/Grammar/VtlTokens.g4,sha256=SwDR_59U25APqslczFcvTUiPoH7bC6kGaH2GkJ3kYzA,9972
|
|
19
19
|
vtlengine/AST/Grammar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
vtlengine/AST/Grammar/lexer.py,sha256=
|
|
21
|
-
vtlengine/AST/Grammar/parser.py,sha256=
|
|
20
|
+
vtlengine/AST/Grammar/lexer.py,sha256=66cH0cJi83Sxd8XPrPRYkBwdz4NGhPaadUnq5p0GYUI,256579
|
|
21
|
+
vtlengine/AST/Grammar/parser.py,sha256=fWJaGcXvUCwN2pvjJBU4l5apoQnkhQbUv_mSlKKiDXc,712465
|
|
22
22
|
vtlengine/AST/Grammar/tokens.py,sha256=YF7tO0nF2zYC-VaBAJLyc6VitM72CvYfFQpoPDGCMzo,3139
|
|
23
23
|
vtlengine/AST/VtlVisitor.py,sha256=NJfXJVP6wNmasJmPLlojFqm9R5VSamOAKg_w7BMrhac,35332
|
|
24
24
|
vtlengine/AST/__init__.py,sha256=JnPilognG2rT2gtpjD4OwKFX0O3ZqvV-ic8gJxRu7Xo,11672
|
|
25
25
|
vtlengine/DataTypes/TimeHandling.py,sha256=CYnC0sb1qbRjTnCSsA3wgez7QftOzrXHxbuZXlY3O3Q,20151
|
|
26
26
|
vtlengine/DataTypes/__init__.py,sha256=LYXrde68bYm7MLeMLmr4haeOTSE4Fnpq9G2Ewy7DiaU,23084
|
|
27
27
|
vtlengine/Exceptions/__init__.py,sha256=rSSskV_qCBFzg_W67Q1QBAL7Lnq88D7yi2BDYo1hytw,4727
|
|
28
|
-
vtlengine/Exceptions/messages.py,sha256=
|
|
29
|
-
vtlengine/Interpreter/__init__.py,sha256=
|
|
28
|
+
vtlengine/Exceptions/messages.py,sha256=h2RHfgolbNsYXO39FXT3NTe2RwG-1AK5NL9k6utPtCA,19658
|
|
29
|
+
vtlengine/Interpreter/__init__.py,sha256=PKFBU6HW6_tIoycZU49GexxNbK-_CNWlQ7BFKAiy2Z8,85030
|
|
30
30
|
vtlengine/Model/__init__.py,sha256=xWrwhdUOj8Y-5x38zP5XnmFPw8IkBVBBG2bPsUBGLA8,15869
|
|
31
|
-
vtlengine/Operators/Aggregation.py,sha256=
|
|
32
|
-
vtlengine/Operators/Analytic.py,sha256=
|
|
31
|
+
vtlengine/Operators/Aggregation.py,sha256=aB64ZcH3oR0WEYMFlwkML2CEc3pggKoFpIb_CoOCgJM,12002
|
|
32
|
+
vtlengine/Operators/Analytic.py,sha256=adm8y4mTeen4iVMsQvcvxM9U5f6Xj9UNjdCQI2OBINE,12934
|
|
33
33
|
vtlengine/Operators/Assignment.py,sha256=xyJgGPoFYbq6mzX06gz7Q7L8jXJxpUkgzdY3Lrne2hw,793
|
|
34
34
|
vtlengine/Operators/Boolean.py,sha256=3U5lHkxW5d7QQdGDNxXeXqejlPfFrXKG8_TqknrC8Ls,2856
|
|
35
|
-
vtlengine/Operators/CastOperator.py,sha256=
|
|
36
|
-
vtlengine/Operators/Clause.py,sha256=
|
|
37
|
-
vtlengine/Operators/Comparison.py,sha256=
|
|
38
|
-
vtlengine/Operators/Conditional.py,sha256=
|
|
39
|
-
vtlengine/Operators/General.py,sha256=
|
|
40
|
-
vtlengine/Operators/HROperators.py,sha256=
|
|
41
|
-
vtlengine/Operators/Join.py,sha256=
|
|
35
|
+
vtlengine/Operators/CastOperator.py,sha256=pXTSs0UYBeR5hS3J2HWUyaHmoZoifl2EFch6ol_Taok,17115
|
|
36
|
+
vtlengine/Operators/Clause.py,sha256=Lu6zjcUBkShN6kQmjEZu_7ytaFGwfH-yB4ROoCSkLGI,15505
|
|
37
|
+
vtlengine/Operators/Comparison.py,sha256=CRMvs9qXVXUW32pxAnCua8b7ZHpJy0-Egvs691ekOCk,17403
|
|
38
|
+
vtlengine/Operators/Conditional.py,sha256=NDJa3yMdcfk8ninE1skNa5JBxLgTIKAKOeBDxlzm3oo,20258
|
|
39
|
+
vtlengine/Operators/General.py,sha256=ltRK8Sw686sb4rC5ji2OX-GYVxaK_PpL0Lev8P5OFHI,6828
|
|
40
|
+
vtlengine/Operators/HROperators.py,sha256=YybwD70906AA00c0k4IP6sjeta0pg7hqb2EUVsFqdmA,8979
|
|
41
|
+
vtlengine/Operators/Join.py,sha256=WhHnepjNrQiYC3keo5uuJ5RhcMxklccyKaOUOH2G5Zc,18229
|
|
42
42
|
vtlengine/Operators/Numeric.py,sha256=icYTWzEsw6VQFLYc5Wucgr8961d8ZwTFx_wfZ8Wp9Co,12083
|
|
43
43
|
vtlengine/Operators/RoleSetter.py,sha256=mHZIdcHC3wflj81ekLbioDG1f8yHZXYDQFymV-KnyXA,2274
|
|
44
44
|
vtlengine/Operators/Set.py,sha256=f1uLeY4XZF0cWEwpXRB_CczgbXr6s33DYPuFt39HlEg,7084
|
|
45
45
|
vtlengine/Operators/String.py,sha256=ghWtYl6oUEAAzynY1a9Hg4yqRA9Sa7uk2B6iF9uuSqQ,20230
|
|
46
|
-
vtlengine/Operators/Time.py,sha256=
|
|
47
|
-
vtlengine/Operators/Validation.py,sha256=
|
|
48
|
-
vtlengine/Operators/__init__.py,sha256=
|
|
46
|
+
vtlengine/Operators/Time.py,sha256=ESn6ldPg73bdZxOXZYJuIwCLDQnXDGTqR1y7ckQmV1M,43025
|
|
47
|
+
vtlengine/Operators/Validation.py,sha256=tnHRZ7o0Z_AE1Bb2DtRVP6pGGUtSs5KVwNSEJxzzGnk,10162
|
|
48
|
+
vtlengine/Operators/__init__.py,sha256=N1zi9RFC_l0qggRm5IPLOkPFtFS4CGAg-r1taHOrbTI,37667
|
|
49
|
+
vtlengine/Utils/__Virtual_Assets.py,sha256=t6cAikOjDVHilORXD6pzC3_twrl6BOutkSaaipQqEwU,856
|
|
49
50
|
vtlengine/Utils/__init__.py,sha256=zhGPJA8MjHmtEEwMS4CxEFYL0tk2L5F0YPn7bitdRzM,8954
|
|
50
51
|
vtlengine/__extras_check.py,sha256=Wr-lxGZhXJZEacVV5cUkvKt7XM-mry0kYAe3VxNrVcY,614
|
|
51
|
-
vtlengine/__init__.py,sha256=
|
|
52
|
+
vtlengine/__init__.py,sha256=H1x4pfJSReVNIm472bKjZUbUf3Z0eusLQ4j-T9S5L2E,188
|
|
52
53
|
vtlengine/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
54
|
vtlengine/files/output/__init__.py,sha256=4tmf-p1Y1u5Ohrwt3clQA-FMGaijKI3HC_iwn3H9J8c,1250
|
|
54
55
|
vtlengine/files/output/_time_period_representation.py,sha256=D5XCSXyEuX_aBzTvBV3sZxACcgwXz2Uu_YH3loMP8q0,1610
|
|
@@ -56,7 +57,7 @@ vtlengine/files/parser/__init__.py,sha256=JamEIWI0pFZxT0sKYE6Fii8H2JQcsFn4Nf3T0O
|
|
|
56
57
|
vtlengine/files/parser/_rfc_dialect.py,sha256=Y8kAYBxH_t9AieN_tYg7QRh5A4DgvabKarx9Ko3QeCQ,462
|
|
57
58
|
vtlengine/files/parser/_time_checking.py,sha256=UAC_Pv-eQJKrhgTguWb--xfqMMs6quyMeiAkGBt_vgI,4725
|
|
58
59
|
vtlengine/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
vtlengine-1.
|
|
60
|
-
vtlengine-1.
|
|
61
|
-
vtlengine-1.
|
|
62
|
-
vtlengine-1.
|
|
60
|
+
vtlengine-1.2.0.dist-info/LICENSE.md,sha256=2xqHuoHohba7gpcZZKtOICRjzeKsQANXG8WoV9V35KM,33893
|
|
61
|
+
vtlengine-1.2.0.dist-info/METADATA,sha256=L-6dsHpZwMO9A7T3UoSvXpU4NEEbgyvdZjneTzNGD1s,4132
|
|
62
|
+
vtlengine-1.2.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
63
|
+
vtlengine-1.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|