flamapy-fm 2.1.0.dev2__tar.gz → 2.5.0.dev0__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.
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/PKG-INFO +3 -3
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/uvl_reader.py +34 -23
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy_fm.egg-info/PKG-INFO +3 -3
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy_fm.egg-info/requires.txt +2 -2
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/pyproject.toml +4 -4
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/LICENSE +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/README.md +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/models/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/models/feature_model.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_atomic_sets.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_average_branching_factor.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_core_features.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_count_leafs.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_estimated_configurations_number.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_feature_ancestors.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_generate_random_attribute.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_language_level.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_leaf_features.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_max_depth_tree.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_metrics.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/fm_variation_points.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/interfaces/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/operations/interfaces/variation_points.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/afm_reader.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/afm_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/clafer_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/featureide_reader.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/featureide_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/flat_fm.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/fm_secure_features_names.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/glencoe_reader.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/glencoe_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/json_reader.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/json_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/pl_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/pysat_to_fm.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/__init__.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/cardinality_group_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/commitment_feature.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/deletion_feature.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/feature_cardinality_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/feature_cardinality_refactoring_paper.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/multiple_group_decomposition_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/mutex_group_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/or_mandatory_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/pseudocomplex_constraint_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/refactoring_exception.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/refactoring_interface.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/strictcomplex_constraint_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/refactorings/xor_mandatory_refactoring.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/splot_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/uvl_writer.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/transformations/xml_reader.py +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy_fm.egg-info/SOURCES.txt +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy_fm.egg-info/dependency_links.txt +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy_fm.egg-info/top_level.txt +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/setup.cfg +0 -0
- {flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flamapy-fm
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0.dev0
|
|
4
4
|
Summary: flamapy-fm is a plugin to Flamapy module
|
|
5
5
|
Author-email: Flamapy <flamapy@us.es>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -8,8 +8,8 @@ Project-URL: Homepage, https://github.com/flamapy/fm_metamodel
|
|
|
8
8
|
Requires-Python: >=3.9
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Dist: flamapy-fw~=2.
|
|
12
|
-
Requires-Dist: uvlparser~=2.0.
|
|
11
|
+
Requires-Dist: flamapy-fw~=2.5.0.dev0
|
|
12
|
+
Requires-Dist: uvlparser~=2.5.0.dev63
|
|
13
13
|
Requires-Dist: afmparser~=1.0.3
|
|
14
14
|
Provides-Extra: dev
|
|
15
15
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -352,31 +352,42 @@ class UVLReader(TextToModel):
|
|
|
352
352
|
self.process_expression(ctx.expression(1)))
|
|
353
353
|
|
|
354
354
|
def process_expression(self, ctx: Any) -> Node:
|
|
355
|
-
"""Handle Additive, Multiplicative
|
|
356
|
-
#
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
if
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
# 2. Handle single-child expression (grammar fall-through)
|
|
372
|
-
if hasattr(ctx, 'expression') and callable(ctx.expression):
|
|
373
|
-
child = ctx.expression()
|
|
374
|
-
if child is not None:
|
|
375
|
-
return self.process_expression(child)
|
|
376
|
-
|
|
377
|
-
# 3. Delegate leaves to a specialized helper to reduce complexity
|
|
355
|
+
"""Handle Additive, Multiplicative and Primary Expressions"""
|
|
356
|
+
# Top-level expression rule (expression: additiveExpression)
|
|
357
|
+
if isinstance(ctx, UVLPythonParser.ExpressionContext):
|
|
358
|
+
return self.process_expression(ctx.additiveExpression())
|
|
359
|
+
# Binary arithmetic operations (Add, Sub, Mul, Div)
|
|
360
|
+
if isinstance(ctx, (UVLPythonParser.AddExpressionContext,
|
|
361
|
+
UVLPythonParser.SubExpressionContext,
|
|
362
|
+
UVLPythonParser.MulExpressionContext,
|
|
363
|
+
UVLPythonParser.DivExpressionContext)):
|
|
364
|
+
return self._process_binary_expression(ctx)
|
|
365
|
+
# Pass-through: additiveExpression -> multiplicativeExpression
|
|
366
|
+
if isinstance(ctx, UVLPythonParser.MultiplicativeExprContext):
|
|
367
|
+
return self.process_expression(ctx.multiplicativeExpression())
|
|
368
|
+
# Pass-through: multiplicativeExpression -> primaryExpression
|
|
369
|
+
if isinstance(ctx, UVLPythonParser.PrimaryExpressionExpressionContext):
|
|
370
|
+
return self.process_expression(ctx.primaryExpression())
|
|
378
371
|
return self._process_expression_leaves(ctx)
|
|
379
372
|
|
|
373
|
+
def _process_binary_expression(self, ctx: Any) -> Node:
|
|
374
|
+
"""Handle binary arithmetic operations: Add, Sub, Mul, Div."""
|
|
375
|
+
if isinstance(ctx, UVLPythonParser.AddExpressionContext):
|
|
376
|
+
return Node(ASTOperation.ADD,
|
|
377
|
+
self.process_expression(ctx.additiveExpression()),
|
|
378
|
+
self.process_expression(ctx.multiplicativeExpression()))
|
|
379
|
+
if isinstance(ctx, UVLPythonParser.SubExpressionContext):
|
|
380
|
+
return Node(ASTOperation.SUB,
|
|
381
|
+
self.process_expression(ctx.additiveExpression()),
|
|
382
|
+
self.process_expression(ctx.multiplicativeExpression()))
|
|
383
|
+
if isinstance(ctx, UVLPythonParser.MulExpressionContext):
|
|
384
|
+
return Node(ASTOperation.MUL,
|
|
385
|
+
self.process_expression(ctx.multiplicativeExpression()),
|
|
386
|
+
self.process_expression(ctx.primaryExpression()))
|
|
387
|
+
return Node(ASTOperation.DIV,
|
|
388
|
+
self.process_expression(ctx.multiplicativeExpression()),
|
|
389
|
+
self.process_expression(ctx.primaryExpression()))
|
|
390
|
+
|
|
380
391
|
def _process_expression_leaves(self, ctx: Any) -> Node:
|
|
381
392
|
"""Helper to process literal leaves and primary expressions."""
|
|
382
393
|
if isinstance(ctx, UVLPythonParser.FloatLiteralExpressionContext):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flamapy-fm
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0.dev0
|
|
4
4
|
Summary: flamapy-fm is a plugin to Flamapy module
|
|
5
5
|
Author-email: Flamapy <flamapy@us.es>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -8,8 +8,8 @@ Project-URL: Homepage, https://github.com/flamapy/fm_metamodel
|
|
|
8
8
|
Requires-Python: >=3.9
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Dist: flamapy-fw~=2.
|
|
12
|
-
Requires-Dist: uvlparser~=2.0.
|
|
11
|
+
Requires-Dist: flamapy-fw~=2.5.0.dev0
|
|
12
|
+
Requires-Dist: uvlparser~=2.5.0.dev63
|
|
13
13
|
Requires-Dist: afmparser~=1.0.3
|
|
14
14
|
Provides-Extra: dev
|
|
15
15
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -4,15 +4,15 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flamapy-fm"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.5.0.dev0"
|
|
8
8
|
description = "flamapy-fm is a plugin to Flamapy module"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "GPL-3.0-or-later"
|
|
11
11
|
authors = [{ name = "Flamapy", email = "flamapy@us.es" }]
|
|
12
12
|
requires-python = ">=3.9"
|
|
13
13
|
dependencies = [
|
|
14
|
-
"flamapy-fw~=2.
|
|
15
|
-
"uvlparser~=2.0.
|
|
14
|
+
"flamapy-fw~=2.5.0.dev0",
|
|
15
|
+
"uvlparser~=2.5.0.dev63",
|
|
16
16
|
"afmparser~=1.0.3",
|
|
17
17
|
]
|
|
18
18
|
|
|
@@ -84,4 +84,4 @@ show_error_codes = true
|
|
|
84
84
|
ignore_missing_imports = true
|
|
85
85
|
|
|
86
86
|
# Warn about unreachable or redundant code
|
|
87
|
-
warn_unreachable = true
|
|
87
|
+
warn_unreachable = true
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fm-2.1.0.dev2 → flamapy_fm-2.5.0.dev0}/flamapy/metamodels/fm_metamodel/models/__init__.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
|
|
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
|