flamapy-fw 2.5.0.dev0__tar.gz → 2.6.0.dev1__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_fw-2.6.0.dev1/PKG-INFO +32 -0
- flamapy_fw-2.6.0.dev1/README.md +14 -0
- flamapy_fw-2.6.0.dev1/flamapy/core/models/__init__.py +4 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/models/ast.py +29 -2
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/plugins.py +2 -2
- flamapy_fw-2.6.0.dev1/flamapy_fw.egg-info/PKG-INFO +32 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/pyproject.toml +1 -1
- flamapy_fw-2.5.0.dev0/PKG-INFO +0 -43
- flamapy_fw-2.5.0.dev0/README.md +0 -25
- flamapy_fw-2.5.0.dev0/flamapy/core/models/__init__.py +0 -4
- flamapy_fw-2.5.0.dev0/flamapy_fw.egg-info/PKG-INFO +0 -43
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/LICENSE +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/config.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/discover.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/exceptions.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/models/variability_model.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/abstract_operation.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/atomic_sets.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/average_branching_factor.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/commonality.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/configurations.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/configurations_number.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/core_features.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/count_leafs.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/dead_features.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/error_detection.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/error_diagnosis.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/estimated_configurations_number.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/false_optional_features.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/filter.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/metrics_operation.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/sampling.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/satisfiable.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/satisfiable_configuration.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/variability.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/abstract_transformation.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/model_to_model.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/model_to_text.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/text_to_model.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/utils.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/models/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/models/configuration.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/__init__.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/configuration_basic_reader.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/configuration_basic_writer.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/configuration_json_reader.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/configuration_json_writer.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/uvls_json_reader.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/metamodels/configuration_metamodel/transformations/uvls_json_writer.py +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy_fw.egg-info/SOURCES.txt +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy_fw.egg-info/dependency_links.txt +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy_fw.egg-info/entry_points.txt +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy_fw.egg-info/requires.txt +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy_fw.egg-info/top_level.txt +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/setup.cfg +0 -0
- {flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/setup.py +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flamapy-fw
|
|
3
|
+
Version: 2.6.0.dev1
|
|
4
|
+
Summary: Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
5
|
+
Author-email: Flamapy <flamapy@us.es>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/flamapy/core
|
|
8
|
+
Requires-Python: >=3.9
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Provides-Extra: dev
|
|
12
|
+
Requires-Dist: pytest; extra == "dev"
|
|
13
|
+
Requires-Dist: pytest-mock; extra == "dev"
|
|
14
|
+
Requires-Dist: prospector; extra == "dev"
|
|
15
|
+
Requires-Dist: mypy; extra == "dev"
|
|
16
|
+
Requires-Dist: coverage; extra == "dev"
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# flamapy-fw
|
|
20
|
+
|
|
21
|
+
The core framework of [flamapy](https://flamapy.org): the plugin-discovery
|
|
22
|
+
mechanism and the base classes (operations, transformations, variability models)
|
|
23
|
+
that every flamapy metamodel plugin builds on. It contains no analysis logic by
|
|
24
|
+
itself.
|
|
25
|
+
|
|
26
|
+
**Documentation:** https://docs.flamapy.org/framework
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install flamapy-fw
|
|
32
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# flamapy-fw
|
|
2
|
+
|
|
3
|
+
The core framework of [flamapy](https://flamapy.org): the plugin-discovery
|
|
4
|
+
mechanism and the base classes (operations, transformations, variability models)
|
|
5
|
+
that every flamapy metamodel plugin builds on. It contains no analysis logic by
|
|
6
|
+
itself.
|
|
7
|
+
|
|
8
|
+
**Documentation:** https://docs.flamapy.org/framework
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install flamapy-fw
|
|
14
|
+
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any, Optional
|
|
2
2
|
from enum import Enum
|
|
3
3
|
|
|
4
4
|
|
|
@@ -69,11 +69,25 @@ AGGREGATION_OPERATORS = [
|
|
|
69
69
|
]
|
|
70
70
|
|
|
71
71
|
|
|
72
|
+
class NodeType(Enum):
|
|
73
|
+
"""Semantic type of a leaf node in the AST."""
|
|
74
|
+
FEATURE = "Feature"
|
|
75
|
+
LITERAL = "Literal"
|
|
76
|
+
OPERATOR = "Operator"
|
|
77
|
+
|
|
78
|
+
|
|
72
79
|
class Node:
|
|
73
|
-
def __init__(
|
|
80
|
+
def __init__(
|
|
81
|
+
self,
|
|
82
|
+
data: Any,
|
|
83
|
+
left: "Node" = None, # type: ignore[assignment]
|
|
84
|
+
right: "Node" = None, # type: ignore[assignment]
|
|
85
|
+
node_type: Optional[NodeType] = None,
|
|
86
|
+
):
|
|
74
87
|
self.data = data
|
|
75
88
|
self.left = left
|
|
76
89
|
self.right = right
|
|
90
|
+
self.node_type = node_type
|
|
77
91
|
|
|
78
92
|
def is_term(self) -> bool:
|
|
79
93
|
return not self.is_op()
|
|
@@ -93,6 +107,19 @@ class Node:
|
|
|
93
107
|
def is_aggregate_op(self) -> bool:
|
|
94
108
|
return self.is_op() and self.data in AGGREGATION_OPERATORS
|
|
95
109
|
|
|
110
|
+
def is_feature(self) -> bool:
|
|
111
|
+
"""Return True if this node is explicitly marked as a feature reference."""
|
|
112
|
+
return self.node_type == NodeType.FEATURE
|
|
113
|
+
|
|
114
|
+
def is_literal(self) -> bool:
|
|
115
|
+
"""Return True if this node is a literal value (not a feature reference).
|
|
116
|
+
|
|
117
|
+
Falls back to a type-based check for nodes without an explicit node_type.
|
|
118
|
+
"""
|
|
119
|
+
if self.node_type is not None:
|
|
120
|
+
return self.node_type == NodeType.LITERAL
|
|
121
|
+
return isinstance(self.data, (int, float))
|
|
122
|
+
|
|
96
123
|
def __str__(self) -> str:
|
|
97
124
|
data = self.data.value if self.is_op() else str(self.data)
|
|
98
125
|
if self.left and self.right:
|
|
@@ -33,10 +33,10 @@ class Operations(UserList[Type[Operation]]):
|
|
|
33
33
|
try:
|
|
34
34
|
operation = next(candidates, None)
|
|
35
35
|
except StopIteration:
|
|
36
|
-
raise OperationNotFound from StopIteration
|
|
36
|
+
raise OperationNotFound(f"Operation '{name}' not found.") from StopIteration
|
|
37
37
|
|
|
38
38
|
if not operation:
|
|
39
|
-
raise OperationNotFound
|
|
39
|
+
raise OperationNotFound(f"Operation '{name}' not found.")
|
|
40
40
|
return operation
|
|
41
41
|
|
|
42
42
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flamapy-fw
|
|
3
|
+
Version: 2.6.0.dev1
|
|
4
|
+
Summary: Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
5
|
+
Author-email: Flamapy <flamapy@us.es>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/flamapy/core
|
|
8
|
+
Requires-Python: >=3.9
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Provides-Extra: dev
|
|
12
|
+
Requires-Dist: pytest; extra == "dev"
|
|
13
|
+
Requires-Dist: pytest-mock; extra == "dev"
|
|
14
|
+
Requires-Dist: prospector; extra == "dev"
|
|
15
|
+
Requires-Dist: mypy; extra == "dev"
|
|
16
|
+
Requires-Dist: coverage; extra == "dev"
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# flamapy-fw
|
|
20
|
+
|
|
21
|
+
The core framework of [flamapy](https://flamapy.org): the plugin-discovery
|
|
22
|
+
mechanism and the base classes (operations, transformations, variability models)
|
|
23
|
+
that every flamapy metamodel plugin builds on. It contains no analysis logic by
|
|
24
|
+
itself.
|
|
25
|
+
|
|
26
|
+
**Documentation:** https://docs.flamapy.org/framework
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install flamapy-fw
|
|
32
|
+
```
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flamapy-fw"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.6.0.dev1"
|
|
8
8
|
description = "Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "GPL-3.0-or-later"
|
flamapy_fw-2.5.0.dev0/PKG-INFO
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: flamapy-fw
|
|
3
|
-
Version: 2.5.0.dev0
|
|
4
|
-
Summary: Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
5
|
-
Author-email: Flamapy <flamapy@us.es>
|
|
6
|
-
License-Expression: GPL-3.0-or-later
|
|
7
|
-
Project-URL: Homepage, https://github.com/flamapy/core
|
|
8
|
-
Requires-Python: >=3.9
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Provides-Extra: dev
|
|
12
|
-
Requires-Dist: pytest; extra == "dev"
|
|
13
|
-
Requires-Dist: pytest-mock; extra == "dev"
|
|
14
|
-
Requires-Dist: prospector; extra == "dev"
|
|
15
|
-
Requires-Dist: mypy; extra == "dev"
|
|
16
|
-
Requires-Dist: coverage; extra == "dev"
|
|
17
|
-
Dynamic: license-file
|
|
18
|
-
|
|
19
|
-
# Flamapy
|
|
20
|
-
Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
21
|
-
|
|
22
|
-
The main features of the framework are:
|
|
23
|
-
* Easy to extend by enabling the creation of new plugins following a semi-automatic generator approach.
|
|
24
|
-
* Support multiple variability models. Currently, it provides support for cardinality-based feature models. However, it is easy to integrate others such as attributed feature models
|
|
25
|
-
* Support multiple solvers. Currently, it provides support for the PySAT metasolver, which enables more than ten different solvers.
|
|
26
|
-
* Support multiple operations. It is developed, having in mind multi-model operations such as those depicted by Familiar and single-model operations.
|
|
27
|
-
|
|
28
|
-
## Available plugins
|
|
29
|
-
[flamapy](https://github.com/flamapy/flamapy). This is a meta-package that installs all plugins for feature modelling analysis and the CLI and Python interfaces.
|
|
30
|
-
[flamapy-fm](https://github.com/flamapy/fm_metamodel) This is a plugin that provides support for feature modelling. Include several readers/writers from different formats.
|
|
31
|
-
[flamapy-sat](https://github.com/flamapy/pysat_metamodel) This plugin enable different analysis operations that require sat as backend.
|
|
32
|
-
[flamapy-bdd](https://github.com/flamapy/bdd_metamodel) This plugin enable different analysis operations that require bdd as backend.
|
|
33
|
-
|
|
34
|
-
## Documentation
|
|
35
|
-
|
|
36
|
-
All the proyect related documentation can be found in wiki format at [the tool website](https://flamapy.github.io/)
|
|
37
|
-
|
|
38
|
-
## Changelog
|
|
39
|
-
Detailed changes for each release are documented in the [release notes](https://github.com/diverso-lab/core/releases)
|
|
40
|
-
|
|
41
|
-
## Contributing
|
|
42
|
-
|
|
43
|
-
See [CONTRIBUTING.md](https://github.com/diverso-lab/core/blob/master/CONTRIBUTING.md)
|
flamapy_fw-2.5.0.dev0/README.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Flamapy
|
|
2
|
-
Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
3
|
-
|
|
4
|
-
The main features of the framework are:
|
|
5
|
-
* Easy to extend by enabling the creation of new plugins following a semi-automatic generator approach.
|
|
6
|
-
* Support multiple variability models. Currently, it provides support for cardinality-based feature models. However, it is easy to integrate others such as attributed feature models
|
|
7
|
-
* Support multiple solvers. Currently, it provides support for the PySAT metasolver, which enables more than ten different solvers.
|
|
8
|
-
* Support multiple operations. It is developed, having in mind multi-model operations such as those depicted by Familiar and single-model operations.
|
|
9
|
-
|
|
10
|
-
## Available plugins
|
|
11
|
-
[flamapy](https://github.com/flamapy/flamapy). This is a meta-package that installs all plugins for feature modelling analysis and the CLI and Python interfaces.
|
|
12
|
-
[flamapy-fm](https://github.com/flamapy/fm_metamodel) This is a plugin that provides support for feature modelling. Include several readers/writers from different formats.
|
|
13
|
-
[flamapy-sat](https://github.com/flamapy/pysat_metamodel) This plugin enable different analysis operations that require sat as backend.
|
|
14
|
-
[flamapy-bdd](https://github.com/flamapy/bdd_metamodel) This plugin enable different analysis operations that require bdd as backend.
|
|
15
|
-
|
|
16
|
-
## Documentation
|
|
17
|
-
|
|
18
|
-
All the proyect related documentation can be found in wiki format at [the tool website](https://flamapy.github.io/)
|
|
19
|
-
|
|
20
|
-
## Changelog
|
|
21
|
-
Detailed changes for each release are documented in the [release notes](https://github.com/diverso-lab/core/releases)
|
|
22
|
-
|
|
23
|
-
## Contributing
|
|
24
|
-
|
|
25
|
-
See [CONTRIBUTING.md](https://github.com/diverso-lab/core/blob/master/CONTRIBUTING.md)
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: flamapy-fw
|
|
3
|
-
Version: 2.5.0.dev0
|
|
4
|
-
Summary: Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
5
|
-
Author-email: Flamapy <flamapy@us.es>
|
|
6
|
-
License-Expression: GPL-3.0-or-later
|
|
7
|
-
Project-URL: Homepage, https://github.com/flamapy/core
|
|
8
|
-
Requires-Python: >=3.9
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Provides-Extra: dev
|
|
12
|
-
Requires-Dist: pytest; extra == "dev"
|
|
13
|
-
Requires-Dist: pytest-mock; extra == "dev"
|
|
14
|
-
Requires-Dist: prospector; extra == "dev"
|
|
15
|
-
Requires-Dist: mypy; extra == "dev"
|
|
16
|
-
Requires-Dist: coverage; extra == "dev"
|
|
17
|
-
Dynamic: license-file
|
|
18
|
-
|
|
19
|
-
# Flamapy
|
|
20
|
-
Flamapy is a Python-based AAFM framework that takes into consideration previous AAFM tool designs and enables multi-solver and multi-metamodel support for the integration of AAFM tooling on the Python ecosystem.
|
|
21
|
-
|
|
22
|
-
The main features of the framework are:
|
|
23
|
-
* Easy to extend by enabling the creation of new plugins following a semi-automatic generator approach.
|
|
24
|
-
* Support multiple variability models. Currently, it provides support for cardinality-based feature models. However, it is easy to integrate others such as attributed feature models
|
|
25
|
-
* Support multiple solvers. Currently, it provides support for the PySAT metasolver, which enables more than ten different solvers.
|
|
26
|
-
* Support multiple operations. It is developed, having in mind multi-model operations such as those depicted by Familiar and single-model operations.
|
|
27
|
-
|
|
28
|
-
## Available plugins
|
|
29
|
-
[flamapy](https://github.com/flamapy/flamapy). This is a meta-package that installs all plugins for feature modelling analysis and the CLI and Python interfaces.
|
|
30
|
-
[flamapy-fm](https://github.com/flamapy/fm_metamodel) This is a plugin that provides support for feature modelling. Include several readers/writers from different formats.
|
|
31
|
-
[flamapy-sat](https://github.com/flamapy/pysat_metamodel) This plugin enable different analysis operations that require sat as backend.
|
|
32
|
-
[flamapy-bdd](https://github.com/flamapy/bdd_metamodel) This plugin enable different analysis operations that require bdd as backend.
|
|
33
|
-
|
|
34
|
-
## Documentation
|
|
35
|
-
|
|
36
|
-
All the proyect related documentation can be found in wiki format at [the tool website](https://flamapy.github.io/)
|
|
37
|
-
|
|
38
|
-
## Changelog
|
|
39
|
-
Detailed changes for each release are documented in the [release notes](https://github.com/diverso-lab/core/releases)
|
|
40
|
-
|
|
41
|
-
## Contributing
|
|
42
|
-
|
|
43
|
-
See [CONTRIBUTING.md](https://github.com/diverso-lab/core/blob/master/CONTRIBUTING.md)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/abstract_operation.py
RENAMED
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/average_branching_factor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/configurations_number.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/false_optional_features.py
RENAMED
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/metrics_operation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/operations/satisfiable_configuration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/model_to_model.py
RENAMED
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/model_to_text.py
RENAMED
|
File without changes
|
{flamapy_fw-2.5.0.dev0 → flamapy_fw-2.6.0.dev1}/flamapy/core/transformations/text_to_model.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
|