flamapy-sat 2.0.0.dev1__tar.gz → 2.0.0.dev6__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-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/PKG-INFO +1 -1
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/models/pysat_diagnosis_model.py +16 -8
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/__init__.py +2 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/checker.py +1 -1
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/hsdag.py +2 -2
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/transformations/fm_to_diag_pysat.py +19 -10
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/models/__init__.py +2 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/models/txtcnf_model.py +2 -2
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_metrics.py +8 -7
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_satisfiable_configuration.py +10 -9
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/transformations/cnf_to_pysat.py +1 -1
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy_sat.egg-info/PKG-INFO +1 -1
- flamapy-sat-2.0.0.dev6/flamapy_sat.egg-info/dependency_links.txt +1 -0
- flamapy-sat-2.0.0.dev6/flamapy_sat.egg-info/requires.txt +10 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/setup.py +13 -17
- flamapy-sat-2.0.0.dev1/flamapy_sat.egg-info/dependency_links.txt +0 -1
- flamapy-sat-2.0.0.dev1/flamapy_sat.egg-info/requires.txt +0 -10
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/README.md +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/models/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/fastdiag.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/labeler/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/labeler/fastdiag_labeler.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/labeler/labeler.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/labeler/quickxplain_labeler.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/hsdag/node.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/quickxplain.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/diagnosis/utils.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/pysat_abstract_identifier.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/pysat_conflict.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/operations/pysat_diagnosis.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_diagnosis_metamodel/transformations/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/models/pysat_model.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_commonality.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_configurations.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_configurations_number.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_core_features.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_dead_features.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_false_optional_features.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_filter.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_sampling.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/operations/pysat_satisfiable.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/transformations/__init__.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/transformations/dimacs_reader.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/transformations/dimacs_writer.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/transformations/fm_to_pysat.py +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy_sat.egg-info/SOURCES.txt +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy_sat.egg-info/top_level.txt +0 -0
- {flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/setup.cfg +0 -0
|
@@ -3,6 +3,7 @@ from typing import List, Dict
|
|
|
3
3
|
from flamapy.metamodels.configuration_metamodel.models import Configuration
|
|
4
4
|
|
|
5
5
|
from flamapy.metamodels.pysat_metamodel.models import PySATModel
|
|
6
|
+
from flamapy.metamodels.fm_metamodel.models.feature_model import Feature
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class DiagnosisModel(PySATModel):
|
|
@@ -164,24 +165,31 @@ class DiagnosisModel(PySATModel):
|
|
|
164
165
|
|
|
165
166
|
return id_assumption
|
|
166
167
|
|
|
168
|
+
def _convert_keys_to_features(self, configuration: 'Configuration') -> 'Configuration':
|
|
169
|
+
new_elements = {Feature(key) if isinstance(key, str)
|
|
170
|
+
else key: value for key, value
|
|
171
|
+
in configuration.elements.items()}
|
|
172
|
+
return Configuration(new_elements)
|
|
173
|
+
|
|
167
174
|
def _prepare_assumptions_for_configuration(self, assumption: List[int],
|
|
168
175
|
configuration: Configuration,
|
|
169
176
|
id_assumption: int) -> int:
|
|
177
|
+
configuration = self._convert_keys_to_features(configuration)
|
|
170
178
|
config = [feat.name for feat in configuration.elements]
|
|
171
179
|
for feat in config:
|
|
172
180
|
if feat not in self.variables.keys():
|
|
173
181
|
raise KeyError(f'Feature {feat} is not in the model.')
|
|
174
182
|
|
|
175
|
-
for feat in configuration.elements.items():
|
|
183
|
+
for feat, value in configuration.elements.items():
|
|
176
184
|
desc = ''
|
|
177
185
|
clause = []
|
|
178
186
|
|
|
179
|
-
if
|
|
180
|
-
desc = f'{feat
|
|
181
|
-
clause = [self.variables[feat
|
|
182
|
-
|
|
183
|
-
desc = f'{feat
|
|
184
|
-
clause = [-1 * self.variables[feat
|
|
187
|
+
if value:
|
|
188
|
+
desc = f'{feat.name} = true'
|
|
189
|
+
clause = [self.variables[feat.name], -1 * id_assumption]
|
|
190
|
+
else:
|
|
191
|
+
desc = f'{feat.name} = false'
|
|
192
|
+
clause = [-1 * self.variables[feat.name], -1 * id_assumption]
|
|
185
193
|
|
|
186
194
|
assumption.append(id_assumption)
|
|
187
195
|
self.set_kb.append(clause)
|
|
@@ -189,4 +197,4 @@ class DiagnosisModel(PySATModel):
|
|
|
189
197
|
|
|
190
198
|
id_assumption += 1
|
|
191
199
|
|
|
192
|
-
return id_assumption
|
|
200
|
+
return id_assumption
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
A Java version of this implementation is available at:
|
|
3
3
|
https://github.com/HiConfiT/hiconfit-core/blob/main/ca-cdr-package/src/main/java/at/tugraz/ist/ase/cacdr/algorithms/hs/HSDAG.java
|
|
4
4
|
"""
|
|
5
|
-
from typing import List, Optional, Dict
|
|
5
|
+
from typing import List, Optional, Dict, Union
|
|
6
6
|
|
|
7
7
|
from .labeler.labeler import IHSLabelable, LabelerType, AbstractHSParameters
|
|
8
8
|
from .node import Node, NodeStatus
|
|
@@ -234,7 +234,7 @@ class HSDAG:
|
|
|
234
234
|
labels.append(label)
|
|
235
235
|
return labels
|
|
236
236
|
|
|
237
|
-
def get_reusable_node(self, path_labels: List[int], arc_label: int) -> Node
|
|
237
|
+
def get_reusable_node(self, path_labels: List[int], arc_label: int) -> Union[Node, None]:
|
|
238
238
|
if len(path_labels) == 0:
|
|
239
239
|
new_path_labels = [arc_label]
|
|
240
240
|
else:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any
|
|
2
2
|
|
|
3
3
|
from flamapy.metamodels.fm_metamodel.models.feature_model import (
|
|
4
4
|
FeatureModel,
|
|
@@ -23,11 +23,8 @@ class FmToDiagPysat(FmToPysat):
|
|
|
23
23
|
def __init__(self, source_model: FeatureModel) -> None:
|
|
24
24
|
super().__init__(source_model)
|
|
25
25
|
self.destination_model = DiagnosisModel()
|
|
26
|
-
|
|
27
26
|
|
|
28
27
|
def add_root(self, feature: Feature) -> None:
|
|
29
|
-
#self.r_cnf.append([self.destination_model.variables.get(feature.name)])
|
|
30
|
-
|
|
31
28
|
var = self.destination_model.variables.get(feature.name)
|
|
32
29
|
if var is None:
|
|
33
30
|
raise KeyError(f'Feature {feature.name} not found in the model')
|
|
@@ -35,9 +32,22 @@ class FmToDiagPysat(FmToPysat):
|
|
|
35
32
|
self.destination_model.add_clause([var])
|
|
36
33
|
self.destination_model.add_clause_to_map(str(feature), [[var]])
|
|
37
34
|
|
|
38
|
-
def _store_constraint_relation(self, relation: Relation, clauses: List[List[int]]) -> None:
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
#def _store_constraint_relation(self, relation: Relation, clauses: List[List[int]]) -> None:
|
|
36
|
+
# for clause in clauses:
|
|
37
|
+
# self.destination_model.add_clause(clause)
|
|
38
|
+
# self.destination_model.add_clause_to_map(str(relation), clauses)
|
|
39
|
+
def add_relation(self, relation: Relation) -> None:
|
|
40
|
+
if relation.is_mandatory():
|
|
41
|
+
clauses = self._add_mandatory_relation(relation)
|
|
42
|
+
elif relation.is_optional():
|
|
43
|
+
clauses = self._add_optional_relation(relation)
|
|
44
|
+
elif relation.is_or():
|
|
45
|
+
clauses = self._add_or_relation(relation)
|
|
46
|
+
elif relation.is_alternative():
|
|
47
|
+
clauses = self._add_alternative_relation(relation)
|
|
48
|
+
else:
|
|
49
|
+
clauses = self._add_constraint_relation(relation)
|
|
50
|
+
self._store_constraint_clauses(clauses)
|
|
41
51
|
self.destination_model.add_clause_to_map(str(relation), clauses)
|
|
42
52
|
|
|
43
53
|
def add_constraint(self, ctc: Constraint) -> None:
|
|
@@ -48,7 +58,7 @@ class FmToDiagPysat(FmToPysat):
|
|
|
48
58
|
negated = True
|
|
49
59
|
|
|
50
60
|
var = self.destination_model.get_variable(term)
|
|
51
|
-
|
|
61
|
+
|
|
52
62
|
if negated:
|
|
53
63
|
return -var
|
|
54
64
|
return var
|
|
@@ -60,5 +70,4 @@ class FmToDiagPysat(FmToPysat):
|
|
|
60
70
|
ctc_clauses.append(clause_variables)
|
|
61
71
|
self.destination_model.add_clause(clause_variables)
|
|
62
72
|
|
|
63
|
-
self.destination_model.add_clause_to_map(str(ctc), ctc_clauses)
|
|
64
|
-
|
|
73
|
+
self.destination_model.add_clause_to_map(str(ctc), ctc_clauses)
|
|
@@ -201,8 +201,8 @@ def extract_variables(cnf_formula: str) -> list[str]:
|
|
|
201
201
|
if ')' in clauses[len(clauses) - 1]:
|
|
202
202
|
clauses[len(clauses) - 1] = clauses[len(clauses) - 1][:-1]
|
|
203
203
|
|
|
204
|
-
for
|
|
205
|
-
tokens = flamapy.metamodels.pysat_metamodel.operations.diagnosis.utils.split(' ')
|
|
204
|
+
for _clause in clauses:
|
|
205
|
+
tokens = flamapy.metamodels.pysat_metamodel.operations.diagnosis.utils.split(' ') # type: ignore[name-defined] # pylint: disable=undefined-variable # noqa: F821, E501
|
|
206
206
|
tokens = list(filter(lambda t: t != cnf_notation.value[CNFLogicConnective.OR], tokens))
|
|
207
207
|
for feature in tokens:
|
|
208
208
|
if feature == cnf_notation.value[CNFLogicConnective.NOT]:
|
|
@@ -7,7 +7,7 @@ from flamapy.metamodels.pysat_metamodel.models import PySATModel
|
|
|
7
7
|
from flamapy.metamodels.pysat_metamodel import operations as sat_operations
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def metric_method(func: Callable) -> Callable:
|
|
10
|
+
def metric_method(func: Callable[..., Any]) -> Callable[..., Any]:
|
|
11
11
|
"""Decorator to mark a method as a metric method.
|
|
12
12
|
It has the value of the measure, it can also have a size and a ratio.
|
|
13
13
|
Example:
|
|
@@ -55,13 +55,14 @@ class PySATMetrics(Metrics):
|
|
|
55
55
|
return [method() for method in metric_methods]
|
|
56
56
|
|
|
57
57
|
@metric_method
|
|
58
|
-
def
|
|
59
|
-
"""A feature model is
|
|
58
|
+
def satisfiable(self) -> dict[str, Any]:
|
|
59
|
+
"""A feature model is satisfiable if it represents at least one configuration."""
|
|
60
60
|
if self.model is None:
|
|
61
61
|
raise FlamaException('Model not initialized.')
|
|
62
|
-
name = "
|
|
63
|
-
|
|
64
|
-
result = self.construct_result(name=name,
|
|
62
|
+
name = "Satisfiable"
|
|
63
|
+
_satisfiable = sat_operations.PySATSatisfiable().execute(self.model).get_result()
|
|
64
|
+
result = self.construct_result(name=name,
|
|
65
|
+
doc=self.satisfiable.__doc__, result=_satisfiable)
|
|
65
66
|
return result
|
|
66
67
|
|
|
67
68
|
@metric_method
|
|
@@ -154,7 +155,7 @@ class PySATMetrics(Metrics):
|
|
|
154
155
|
if self.model is None:
|
|
155
156
|
raise FlamaException('Model not initialized.')
|
|
156
157
|
name = "Configurations"
|
|
157
|
-
_configurations = sat_operations.
|
|
158
|
+
_configurations = sat_operations.PySATConfigurations().execute(self.model).get_result()
|
|
158
159
|
result = self.construct_result(name=name,
|
|
159
160
|
doc=self.configurations.__doc__,
|
|
160
161
|
result=_configurations,
|
|
@@ -28,10 +28,10 @@ class PySATSatisfiableConfiguration(SatisfiableConfiguration):
|
|
|
28
28
|
|
|
29
29
|
def execute(self, model: VariabilityModel) -> 'PySATSatisfiableConfiguration':
|
|
30
30
|
sat_model = cast(PySATModel, model)
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
for clause in sat_model.get_all_clauses(): # AC es conjunto de conjuntos
|
|
33
33
|
self.solver.add_clause(clause) # añadimos la constraint
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
if not self.is_full:
|
|
36
36
|
assumptions = []
|
|
37
37
|
for feature, selected in self.configuration.elements.items():
|
|
@@ -40,18 +40,19 @@ class PySATSatisfiableConfiguration(SatisfiableConfiguration):
|
|
|
40
40
|
else:
|
|
41
41
|
assumptions.append(-sat_model.variables[feature])
|
|
42
42
|
else:
|
|
43
|
-
missing_features = [feature for feature in self.configuration.elements.keys()
|
|
44
|
-
|
|
43
|
+
missing_features = [feature for feature in self.configuration.elements.keys()
|
|
44
|
+
if feature not in sat_model.variables.keys()]
|
|
45
|
+
|
|
45
46
|
if missing_features:
|
|
46
|
-
print("The features that are missing are:",
|
|
47
|
-
print("The feature model contains the following features:",
|
|
47
|
+
print("The features that are missing are:", list(missing_features))
|
|
48
|
+
print("The feature model contains the following features:",
|
|
49
|
+
list(sat_model.variables.keys()))
|
|
48
50
|
self.result = False
|
|
49
51
|
return self
|
|
50
|
-
|
|
51
52
|
|
|
52
53
|
assumptions = []
|
|
53
54
|
for feature in sat_model.features.values():
|
|
54
|
-
|
|
55
|
+
|
|
55
56
|
if feature in self.configuration.elements.keys():
|
|
56
57
|
assumptions.append(sat_model.variables[feature])
|
|
57
58
|
else:
|
|
@@ -59,4 +60,4 @@ class PySATSatisfiableConfiguration(SatisfiableConfiguration):
|
|
|
59
60
|
|
|
60
61
|
self.result = self.solver.solve(assumptions=assumptions)
|
|
61
62
|
self.solver.delete()
|
|
62
|
-
return self
|
|
63
|
+
return self
|
|
@@ -61,7 +61,7 @@ class CNFReader(TextToModel):
|
|
|
61
61
|
clauses[len(clauses) - 1] = clauses[len(clauses) - 1][:-1]
|
|
62
62
|
|
|
63
63
|
for _c in clauses:
|
|
64
|
-
tokens = flamapy.metamodels.pysat_metamodel.operations.diagnosis.utils.split(' ')
|
|
64
|
+
tokens = flamapy.metamodels.pysat_metamodel.operations.diagnosis.utils.split(' ') # type: ignore[name-defined] # noqa: F821, E501
|
|
65
65
|
tokens = list(filter(lambda t: t != cnf_notation.value[CNFLogicConnective.OR], tokens))
|
|
66
66
|
logic_not = False
|
|
67
67
|
cnf_clause = []
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -4,10 +4,19 @@ import setuptools
|
|
|
4
4
|
with open("README.md", "r") as fh:
|
|
5
5
|
long_description = fh.read()
|
|
6
6
|
|
|
7
|
+
def read_requirements(file):
|
|
8
|
+
with open(file, "r") as fh:
|
|
9
|
+
return fh.read().splitlines()
|
|
10
|
+
|
|
11
|
+
# Read requirements from the requirements.txt file
|
|
12
|
+
requirements = read_requirements("requirements.txt")
|
|
13
|
+
|
|
14
|
+
# Read development requirements from the dev-requirements.txt file
|
|
15
|
+
dev_requirements = read_requirements("requirements-dev.txt")
|
|
7
16
|
|
|
8
17
|
setuptools.setup(
|
|
9
18
|
name="flamapy-sat",
|
|
10
|
-
version="2.0.0.
|
|
19
|
+
version="2.0.0.dev6",
|
|
11
20
|
author="Flamapy",
|
|
12
21
|
author_email="flamapy@us.es",
|
|
13
22
|
description="flamapy-sat is a plugin to flamapy module",
|
|
@@ -21,21 +30,8 @@ setuptools.setup(
|
|
|
21
30
|
"Operating System :: OS Independent",
|
|
22
31
|
],
|
|
23
32
|
python_requires='>=3.9',
|
|
24
|
-
install_requires=
|
|
25
|
-
'flamapy-fw~=2.0.0.dev1',
|
|
26
|
-
'flamapy-fm~=2.0.0.dev1',
|
|
27
|
-
'python-sat>=0.1.7.dev1'
|
|
28
|
-
],
|
|
33
|
+
install_requires=requirements,
|
|
29
34
|
extras_require={
|
|
30
|
-
'dev':
|
|
31
|
-
|
|
32
|
-
'pytest-mock',
|
|
33
|
-
'prospector',
|
|
34
|
-
'mypy',
|
|
35
|
-
'coverage',
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
dependency_links=[
|
|
39
|
-
'flamapy~=2.0.0.dev1',
|
|
40
|
-
]
|
|
35
|
+
'dev':dev_requirements
|
|
36
|
+
}
|
|
41
37
|
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
flamapy~=2.0.0.dev1
|
|
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
|
{flamapy-sat-2.0.0.dev1 → flamapy-sat-2.0.0.dev6}/flamapy/metamodels/pysat_metamodel/__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
|