flamapy-sdd 2.6.0.dev6__tar.gz → 2.6.0.dev11__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.
Files changed (23) hide show
  1. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/PKG-INFO +3 -4
  2. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/transformations/fm_to_sdd.py +6 -13
  3. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy_sdd.egg-info/PKG-INFO +3 -4
  4. flamapy_sdd-2.6.0.dev11/flamapy_sdd.egg-info/requires.txt +10 -0
  5. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/pyproject.toml +3 -4
  6. flamapy_sdd-2.6.0.dev6/flamapy_sdd.egg-info/requires.txt +0 -11
  7. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/LICENSE +0 -0
  8. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/README.md +0 -0
  9. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/__init__.py +0 -0
  10. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/models/__init__.py +0 -0
  11. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/models/sdd_model.py +0 -0
  12. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/operations/__init__.py +0 -0
  13. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/operations/sdd_configurations_number.py +0 -0
  14. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/operations/sdd_core_features.py +0 -0
  15. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/operations/sdd_dead_features.py +0 -0
  16. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/operations/sdd_satisfiable.py +0 -0
  17. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy/metamodels/sdd_metamodel/transformations/__init__.py +0 -0
  18. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy_sdd.egg-info/SOURCES.txt +0 -0
  19. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy_sdd.egg-info/dependency_links.txt +0 -0
  20. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/flamapy_sdd.egg-info/top_level.txt +0 -0
  21. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/setup.cfg +0 -0
  22. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/setup.py +0 -0
  23. {flamapy_sdd-2.6.0.dev6 → flamapy_sdd-2.6.0.dev11}/tests/test_sdd.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flamapy-sdd
3
- Version: 2.6.0.dev6
3
+ Version: 2.6.0.dev11
4
4
  Summary: flamapy-sdd is a plugin to flamapy providing Sentential Decision Diagram (SDD) knowledge compilation for exact analysis of feature models
5
5
  Author-email: Flamapy <flamapy@us.es>
6
6
  License-Expression: GPL-3.0-or-later
@@ -8,9 +8,8 @@ Project-URL: Homepage, https://github.com/flamapy/sdd_metamodel
8
8
  Requires-Python: >=3.11
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
- Requires-Dist: flamapy-fw~=2.6.0.dev5
12
- Requires-Dist: flamapy-fm~=2.6.0.dev5
13
- Requires-Dist: flamapy-sat~=2.6.0.dev5
11
+ Requires-Dist: flamapy-fw~=2.6.0.dev11
12
+ Requires-Dist: flamapy-fm~=2.6.0.dev11
14
13
  Requires-Dist: PySDD~=1.0
15
14
  Provides-Extra: dev
16
15
  Requires-Dist: pytest; extra == "dev"
@@ -1,15 +1,14 @@
1
1
  from pysdd.sdd import SddManager, Vtree
2
2
 
3
3
  from flamapy.core.transformations import ModelToModel
4
- from flamapy.metamodels.fm_metamodel.models import FeatureModel
5
- from flamapy.metamodels.pysat_metamodel.transformations import FmToPysat
4
+ from flamapy.metamodels.fm_metamodel.models import FeatureModel, ClauseSet
6
5
  from flamapy.metamodels.sdd_metamodel.models import SDDModel
7
6
 
8
7
 
9
8
  class FmToSDD(ModelToModel):
10
9
  """Transform a feature model into an SDD by compiling its CNF with PySDD.
11
10
 
12
- The CNF is produced by reusing the SAT metamodel's ``FmToPysat`` transformation, then
11
+ The CNF is produced by the feature-model ``ClauseSet`` (no SAT-solver dependency), then
13
12
  conjoined clause by clause into an SDD over a balanced vtree.
14
13
  """
15
14
 
@@ -27,14 +26,8 @@ class FmToSDD(ModelToModel):
27
26
  self.destination_model = SDDModel()
28
27
 
29
28
  def transform(self) -> SDDModel:
30
- # Only pass cnf_method for a non-default encoding, so the plugin also works against
31
- # releases of flamapy-sat that predate the Tseytin cnf_method option.
32
- if self.cnf_method == 'distributive':
33
- sat_model = FmToPysat(self.source_model).transform()
34
- else:
35
- sat_model = FmToPysat(self.source_model, cnf_method=self.cnf_method).transform()
36
-
37
- clauses = [list(clause) for clause in sat_model.get_all_clauses().clauses]
29
+ clause_set = ClauseSet.from_feature_model(self.source_model, cnf_method=self.cnf_method)
30
+ clauses = [list(clause) for clause in clause_set.clauses]
38
31
  var_count = max((abs(literal) for clause in clauses for literal in clause), default=1)
39
32
 
40
33
  vtree = Vtree(var_count=var_count, vtree_type='balanced')
@@ -49,7 +42,7 @@ class FmToSDD(ModelToModel):
49
42
  model = self.destination_model
50
43
  model.manager = manager
51
44
  model.root = root
52
- model.variables = dict(sat_model.variables)
53
- model.features = dict(sat_model.features)
45
+ model.variables = dict(clause_set.variables)
46
+ model.features = dict(clause_set.features)
54
47
  model.original_model = self.source_model
55
48
  return model
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flamapy-sdd
3
- Version: 2.6.0.dev6
3
+ Version: 2.6.0.dev11
4
4
  Summary: flamapy-sdd is a plugin to flamapy providing Sentential Decision Diagram (SDD) knowledge compilation for exact analysis of feature models
5
5
  Author-email: Flamapy <flamapy@us.es>
6
6
  License-Expression: GPL-3.0-or-later
@@ -8,9 +8,8 @@ Project-URL: Homepage, https://github.com/flamapy/sdd_metamodel
8
8
  Requires-Python: >=3.11
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
- Requires-Dist: flamapy-fw~=2.6.0.dev5
12
- Requires-Dist: flamapy-fm~=2.6.0.dev5
13
- Requires-Dist: flamapy-sat~=2.6.0.dev5
11
+ Requires-Dist: flamapy-fw~=2.6.0.dev11
12
+ Requires-Dist: flamapy-fm~=2.6.0.dev11
14
13
  Requires-Dist: PySDD~=1.0
15
14
  Provides-Extra: dev
16
15
  Requires-Dist: pytest; extra == "dev"
@@ -0,0 +1,10 @@
1
+ flamapy-fw~=2.6.0.dev11
2
+ flamapy-fm~=2.6.0.dev11
3
+ PySDD~=1.0
4
+
5
+ [dev]
6
+ pytest
7
+ pytest-mock
8
+ prospector
9
+ mypy
10
+ coverage
@@ -4,16 +4,15 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "flamapy-sdd"
7
- version = "2.6.0.dev6"
7
+ version = "2.6.0.dev11"
8
8
  description = "flamapy-sdd is a plugin to flamapy providing Sentential Decision Diagram (SDD) knowledge compilation for exact analysis of feature models"
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.11"
13
13
  dependencies = [
14
- "flamapy-fw~=2.6.0.dev5",
15
- "flamapy-fm~=2.6.0.dev5",
16
- "flamapy-sat~=2.6.0.dev5",
14
+ "flamapy-fw~=2.6.0.dev11",
15
+ "flamapy-fm~=2.6.0.dev11",
17
16
  "PySDD~=1.0",
18
17
  ]
19
18
 
@@ -1,11 +0,0 @@
1
- flamapy-fw~=2.6.0.dev5
2
- flamapy-fm~=2.6.0.dev5
3
- flamapy-sat~=2.6.0.dev5
4
- PySDD~=1.0
5
-
6
- [dev]
7
- pytest
8
- pytest-mock
9
- prospector
10
- mypy
11
- coverage