vtlengine 1.1.1__py3-none-any.whl → 1.2.1__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.

@@ -9,10 +9,12 @@ from typing import Any, Dict, List, Optional
9
9
  import pandas as pd
10
10
 
11
11
  from vtlengine.AST import BinOp
12
+ from vtlengine.AST.Grammar.tokens import CROSS_JOIN, FULL_JOIN, INNER_JOIN, LEFT_JOIN
12
13
  from vtlengine.DataTypes import binary_implicit_promotion
13
14
  from vtlengine.Exceptions import SemanticError
14
15
  from vtlengine.Model import Component, Dataset, Role
15
16
  from vtlengine.Operators import Operator, _id_type_promotion_join_keys
17
+ from vtlengine.Utils.__Virtual_Assets import VirtualCounter
16
18
 
17
19
 
18
20
  class Join(Operator):
@@ -196,12 +198,13 @@ class Join(Operator):
196
198
 
197
199
  @classmethod
198
200
  def validate(cls, operands: List[Dataset], using: Optional[List[str]]) -> Dataset:
201
+ dataset_name = VirtualCounter._new_ds_name()
199
202
  if len(operands) < 1 or sum([isinstance(op, Dataset) for op in operands]) < 1:
200
203
  raise Exception("Join operator requires at least 1 dataset")
201
204
  if not all(isinstance(op, Dataset) for op in operands):
202
205
  raise SemanticError("1-1-13-10")
203
206
  if len(operands) == 1 and isinstance(operands[0], Dataset):
204
- return Dataset(name="result", components=operands[0].components, data=None)
207
+ return Dataset(name=dataset_name, components=operands[0].components, data=None)
205
208
  for op in operands:
206
209
  if len(op.get_identifiers()) == 0:
207
210
  raise SemanticError("1-3-27", op=cls.op)
@@ -215,7 +218,7 @@ class Join(Operator):
215
218
  if len(set(components.keys())) != len(components):
216
219
  raise SemanticError("1-1-13-9", comp_name="")
217
220
 
218
- return Dataset(name="result", components=components, data=None)
221
+ return Dataset(name=dataset_name, components=components, data=None)
219
222
 
220
223
  @classmethod
221
224
  def identifiers_validation(cls, operands: List[Dataset], using: Optional[List[str]]) -> None:
@@ -274,6 +277,7 @@ class Join(Operator):
274
277
 
275
278
 
276
279
  class InnerJoin(Join):
280
+ op = INNER_JOIN
277
281
  how = "inner"
278
282
 
279
283
  @classmethod
@@ -294,10 +298,12 @@ class InnerJoin(Join):
294
298
 
295
299
 
296
300
  class LeftJoin(Join):
301
+ op = LEFT_JOIN
297
302
  how = "left"
298
303
 
299
304
 
300
305
  class FullJoin(Join):
306
+ op = FULL_JOIN
301
307
  how = "outer"
302
308
 
303
309
  @classmethod
@@ -318,6 +324,7 @@ class FullJoin(Join):
318
324
 
319
325
 
320
326
  class CrossJoin(Join):
327
+ op = CROSS_JOIN
321
328
  how = "cross"
322
329
 
323
330
  @classmethod
@@ -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="result", components=operand.components.copy(), data=None)
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="result", components=result_components, data=None)
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="result", components=operand.components.copy(), data=None)
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="result", components=operand.components.copy(), data=None)
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="result", components=operand.components.copy(), data=None)
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="result", components=result_components, data=None)
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="result", components=result_components, data=None)
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:
@@ -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="result", components=result_components, data=None)
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="result", components=result_components, data=None)
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="result",
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="result", components=result_components, data=None)
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="result",
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="result", components=result_components, data=None)
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="result",
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
@@ -2,4 +2,4 @@ from vtlengine.API import generate_sdmx, prettify, run, run_sdmx, semantic_analy
2
2
 
3
3
  __all__ = ["semantic_analysis", "run", "generate_sdmx", "run_sdmx", "prettify"]
4
4
 
5
- __version__ = "1.1.1"
5
+ __version__ = "1.2.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: vtlengine
3
- Version: 1.1.1
3
+ Version: 1.2.1
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.9.2,<4.10)
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.3.0,<2.0)
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 | [![Testing](https://github.com/Meaningful-Data/vtlengine/actions/workflows/testing.yml/badge.svg)](https://github.com/Meaningful-Data/vtlengine/actions/workflows/testing.yml) |
44
44
  | Package | [![PyPI Latest Release](https://img.shields.io/pypi/v/vtlengine.svg)](https://pypi.org/project/vtlengine/) |
45
45
  | License | [![License - AGPL 3.0](https://img.shields.io/pypi/l/vtlengine.svg)](https://github.com/Meaningful-Data/vtlengine/blob/main/LICENSE.md) |
46
- | Mentioned in | [![Mentioned in Awesome Official Statistics ](https://awesome.re/mentioned-badge.svg)](http://www.awesomeofficialstatistics.org) |
46
+ | Mentioned in | [![Mentioned in Awesome Official Statistics ](https://awesome.re/mentioned-badge.svg)](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=I4Y11qx66ru9P77TySHtN9ZfJiOiRRcNhzdJVLdSOok,22938
2
- vtlengine/API/__init__.py,sha256=IiJZWSlHpUWq73Qv1_V-Tirim-ZnpF3xexFtW1Psyx8,17866
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=aCL3uuQF0BJIels6rTckL8FAAykzImYb3AESs7umFcY,70066
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=ViL1vfLOCU28Yx8cOMt8aIvguSrzYYTb9qPhAwoExwY,15074
16
- vtlengine/AST/DAG/_words.py,sha256=lEuBQ_w-KoKGna-x3gFGfbX1KP4Ez5EgdomH2LOeodk,170
17
- vtlengine/AST/Grammar/Vtl.g4,sha256=86bBWjQLCHZSuB5iLIk0JZRgMyMg0n7xbU8qzot2cIE,26313
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=ncoPevKkUpGyYx5mVKcKjocVhFoKSdu-5NSQDPY2V3g,105742
21
- vtlengine/AST/Grammar/parser.py,sha256=ISi5OWmPbLitMp-8fg-wa1-475TfKZWK98jXjyOLi-8,634355
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=9Tzkm-Q4ZI7UFFmWfsiy2xI7hFKMrnPB-EmUfVgxuBo,19428
29
- vtlengine/Interpreter/__init__.py,sha256=yFXLi3Mr7EnOmdynf-BvFwDHOBsWVjRXSkNgdmhfJVc,83533
28
+ vtlengine/Exceptions/messages.py,sha256=h2RHfgolbNsYXO39FXT3NTe2RwG-1AK5NL9k6utPtCA,19658
29
+ vtlengine/Interpreter/__init__.py,sha256=aO7CGEzFgg0W6kkXFYHzogVxsiVI0l9pJ3wH8m1WuPE,85502
30
30
  vtlengine/Model/__init__.py,sha256=xWrwhdUOj8Y-5x38zP5XnmFPw8IkBVBBG2bPsUBGLA8,15869
31
- vtlengine/Operators/Aggregation.py,sha256=43bqjaMqGG9zzFkcs6JLfShb1ISupmyQnXOQQ-HQo9E,11906
32
- vtlengine/Operators/Analytic.py,sha256=GiVNwa02JNRaVcHEkqKlat9WSIgQ32OhpgOdYc9PlJo,12818
31
+ vtlengine/Operators/Aggregation.py,sha256=BI4cHzdWWtxEHisg1cr87twg8gvc1MHfR05JsiXpo6M,11956
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=mvWfNhJ1pEEk_ZQp-3unLoYJvJShUjUu_BOYQ6ByySI,16951
36
- vtlengine/Operators/Clause.py,sha256=_Sdt3qQUpphNRs4IQW5pSj9kagzwLluV9BRHMGNxqsI,15022
37
- vtlengine/Operators/Comparison.py,sha256=7G2UK1BDCDJR4jTXa-txJlAJEvzXEeYaDSA_2oxjgKY,17286
38
- vtlengine/Operators/Conditional.py,sha256=N-HRmSJ_m_mdHgNPk2JV5uqHPMdz2pXSoJE036mRqtg,19882
39
- vtlengine/Operators/General.py,sha256=q1fpqP4IYEwURXi8Eo-_j5AUktK0dvNosL9SgSe7a8w,6711
40
- vtlengine/Operators/HROperators.py,sha256=VVp5FcdbDXhU_VCfUA6t75bs51qx9fKJT4n15WM2vyM,8866
41
- vtlengine/Operators/Join.py,sha256=df2XG2tKmha_WUhHEYhgZIVc_2L8Wr45o0ISm-HOReA,18108
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=lu0S06GtBzVR_pbq9_QyAGeUC0Xcawag-3wBh5W93Xc,20340
39
+ vtlengine/Operators/General.py,sha256=ltRK8Sw686sb4rC5ji2OX-GYVxaK_PpL0Lev8P5OFHI,6828
40
+ vtlengine/Operators/HROperators.py,sha256=YybwD70906AA00c0k4IP6sjeta0pg7hqb2EUVsFqdmA,8979
41
+ vtlengine/Operators/Join.py,sha256=lYmC_jGlJ4RRmn2vplB13Ysrxgv6O8sNFEHQYZzun5s,18393
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=4oVoRnGiOCQjBU9oBTe8LozTNr6A1xNigQJui7J4EL0,42680
47
- vtlengine/Operators/Validation.py,sha256=ev3HyU7e1XbeAtUQ1y6zY3fzBwMqetDPhG3NNveAGOE,9988
48
- vtlengine/Operators/__init__.py,sha256=GN5eaAwmzfYKD7JJRIaRqdIJzflGc3UMvrOC9mlYNVo,37227
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=0jPXysZrBr0hYVzqFoyg9La8ZcZoZ01Ql245X5vrth4,862
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=St9OIn1YjTLffx957I4gjwWlf8W5b4xj0oGCad6Stk8,188
52
+ vtlengine/__init__.py,sha256=KCcWyZAye_AlBe85RhqEnKonr2ARI8SgoznT_MMl8cs,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.1.1.dist-info/LICENSE.md,sha256=2xqHuoHohba7gpcZZKtOICRjzeKsQANXG8WoV9V35KM,33893
60
- vtlengine-1.1.1.dist-info/METADATA,sha256=Csw4dEroIdEu00IUA5thIjqB_1mkDaXTETM7tvN7GjA,4102
61
- vtlengine-1.1.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
62
- vtlengine-1.1.1.dist-info/RECORD,,
60
+ vtlengine-1.2.1.dist-info/LICENSE.md,sha256=2xqHuoHohba7gpcZZKtOICRjzeKsQANXG8WoV9V35KM,33893
61
+ vtlengine-1.2.1.dist-info/METADATA,sha256=wN1W64ZHTH74x_lcVf9EjBTzaWWjZE7UeY2-ZiKVICw,4132
62
+ vtlengine-1.2.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
63
+ vtlengine-1.2.1.dist-info/RECORD,,