pydpm_xl 0.1.39rc23__tar.gz → 0.1.39rc25__tar.gz
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.
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/PKG-INFO +1 -1
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/check_operands.py +2 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/ast_serialization.py +20 -3
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/__init__.py +1 -1
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/PKG-INFO +1 -1
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pyproject.toml +2 -2
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/LICENSE +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/README.md +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ASTConstructor.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ASTObjects.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ASTTemplate.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ASTVisitor.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/MLGeneration.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ModuleAnalyzer.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/ModuleDependencies.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/WhereClauseChecker.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/AST/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/DataTypes/ScalarTypes.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/DataTypes/TimeClasses.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/DataTypes/TypePromotion.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/DataTypes/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Exceptions/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Exceptions/exceptions.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Exceptions/messages.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/OperationScopes/OperationScopeService.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/OperationScopes/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/AggregateOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/BooleanOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/ClauseOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/ComparisonOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/ConditionalOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/NumericOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/Operator.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/StringOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/TimeOperators.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Operators/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/ValidationsGenerationUtils.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/operands_mapping.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/operator_mapping.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/tokens.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/Utils/utils.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/PropertiesConstraintsProcessor.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/Utils.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/VariantsProcessor.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/auxiliary_functions.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/ast_generator.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/complete_ast.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/data_dictionary.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/data_dictionary_validation.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/migration.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/operation_scopes.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/semantic.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/api/syntax.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/client.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/data_handlers.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/db_utils.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlLexer.interp +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlLexer.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlLexer.tokens +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlParser.interp +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlParser.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlParser.tokens +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlParserListener.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/dpm_xlParserVisitor.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dist/listeners.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dpm_xlLexer.g4 +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/grammar/dpm_xlParser.g4 +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/migration.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/models.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/semantics/DAG/DAGAnalyzer.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/semantics/DAG/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/semantics/SemanticAnalyzer.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/semantics/Symbols.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/semantics/__init__.py +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/data_types.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/datapoints.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/hierarchy_operand_reference.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/hierarchy_preconditions.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/hierarchy_variables.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/hierarchy_variables_context.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/key_components.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/module_from_table.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/open_keys.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/operation_info.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/operation_list.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/operations_versions_from_module_version.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/precondition_info.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/report_type_operand_reference_info.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/subcategory_info.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/table_info.sql +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/SOURCES.txt +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/dependency_links.txt +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/entry_points.txt +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/requires.txt +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/pydpm_xl.egg-info/top_level.txt +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/setup.cfg +0 -0
- {pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/tests/test_semantic_release.py +0 -0
|
@@ -429,6 +429,8 @@ class OperandsChecking(ASTTemplate, ABC):
|
|
|
429
429
|
|
|
430
430
|
def visit_GetOp(self, node: GetOp):
|
|
431
431
|
"""Visit GetOp nodes to collect component codes for property_id lookup."""
|
|
432
|
+
# Visit the operand first to ensure it's properly validated
|
|
433
|
+
self.visit(node.operand)
|
|
432
434
|
if node.component not in self.getop_components:
|
|
433
435
|
self.getop_components.append(node.component)
|
|
434
436
|
# Store reference to node for property_id enrichment
|
|
@@ -190,7 +190,8 @@ class ASTToJSONVisitor(NodeVisitor):
|
|
|
190
190
|
entries_by_row[row_code] = []
|
|
191
191
|
entries_by_row[row_code].append(record)
|
|
192
192
|
|
|
193
|
-
rows
|
|
193
|
+
# Sort rows to ensure consistent numerical ordering for x-coordinate calculation
|
|
194
|
+
rows = sorted(entries_by_row.keys())
|
|
194
195
|
|
|
195
196
|
# Helper function to detect range syntax (e.g., '0010-0080')
|
|
196
197
|
def _has_range_syntax(values):
|
|
@@ -211,6 +212,19 @@ class ASTToJSONVisitor(NodeVisitor):
|
|
|
211
212
|
if col and col not in seen_cols:
|
|
212
213
|
context_cols.append(col)
|
|
213
214
|
seen_cols.add(col)
|
|
215
|
+
# Sort to ensure consistent numerical ordering for y-coordinate calculation
|
|
216
|
+
context_cols.sort()
|
|
217
|
+
|
|
218
|
+
# Build sheet order from data for z-coordinate calculation
|
|
219
|
+
# Extract unique sheets and sort them for consistent ordering
|
|
220
|
+
context_sheets = []
|
|
221
|
+
seen_sheets = set()
|
|
222
|
+
for record in data_records:
|
|
223
|
+
sheet = record.get('sheet_code', '')
|
|
224
|
+
if sheet and sheet not in seen_sheets:
|
|
225
|
+
context_sheets.append(sheet)
|
|
226
|
+
seen_sheets.add(sheet)
|
|
227
|
+
context_sheets.sort()
|
|
214
228
|
|
|
215
229
|
# Transform the data to match expected JSON structure
|
|
216
230
|
transformed_data = []
|
|
@@ -247,8 +261,11 @@ class ASTToJSONVisitor(NodeVisitor):
|
|
|
247
261
|
|
|
248
262
|
# Add z coordinate if sheet data exists
|
|
249
263
|
if sheet_code:
|
|
250
|
-
#
|
|
251
|
-
|
|
264
|
+
# Find z coordinate based on sheet position in context
|
|
265
|
+
z_index = 1 # default
|
|
266
|
+
if context_sheets and sheet_code in context_sheets:
|
|
267
|
+
z_index = context_sheets.index(sheet_code) + 1
|
|
268
|
+
transformed_record['z'] = z_index
|
|
252
269
|
|
|
253
270
|
# Note: column and row are at VarID level, not in data entries
|
|
254
271
|
|
|
@@ -41,7 +41,7 @@ Available packages:
|
|
|
41
41
|
- pydpm.api: Main APIs for migration, syntax, and semantic analysis
|
|
42
42
|
"""
|
|
43
43
|
|
|
44
|
-
__version__ = "0.1.
|
|
44
|
+
__version__ = "0.1.39rc25"
|
|
45
45
|
__author__ = "MeaningfulData S.L."
|
|
46
46
|
__email__ = "info@meaningfuldata.eu"
|
|
47
47
|
__license__ = "GPL-3.0-or-later"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pydpm_xl"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.39rc25"
|
|
4
4
|
description = "Python library for DPM-XL data processing and analysis"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "MeaningfulData S.L.", email = "info@meaningfuldata.eu"}
|
|
@@ -52,7 +52,7 @@ exclude = []
|
|
|
52
52
|
|
|
53
53
|
[tool.poetry]
|
|
54
54
|
name = "pydpm_xl"
|
|
55
|
-
version = "0.1.
|
|
55
|
+
version = "0.1.39rc25"
|
|
56
56
|
description = "Python library for DPM-XL data processing and analysis"
|
|
57
57
|
authors = ["MeaningfulData S.L. <info@meaningfuldata.eu>"]
|
|
58
58
|
readme = "README.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/VariantsProcessor.py
RENAMED
|
File without changes
|
|
File without changes
|
{pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/ValidationsGeneration/auxiliary_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/operations_versions_from_module_version.sql
RENAMED
|
File without changes
|
|
File without changes
|
{pydpm_xl-0.1.39rc23 → pydpm_xl-0.1.39rc25}/py_dpm/views/report_type_operand_reference_info.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|