flamapy-dnnf 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.
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/PKG-INFO +3 -4
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/transformations/fm_to_dnnf.py +8 -12
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy_dnnf.egg-info/PKG-INFO +3 -4
- flamapy_dnnf-2.6.0.dev11/flamapy_dnnf.egg-info/requires.txt +9 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/pyproject.toml +3 -4
- flamapy_dnnf-2.6.0.dev6/flamapy_dnnf.egg-info/requires.txt +0 -10
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/LICENSE +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/README.md +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/__init__.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/models/__init__.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/models/dnnf_model.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/operations/__init__.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/operations/d4_runner.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/operations/dnnf_configurations_number.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/operations/dnnf_satisfiable.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_metamodel/transformations/__init__.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy_dnnf.egg-info/SOURCES.txt +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy_dnnf.egg-info/dependency_links.txt +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy_dnnf.egg-info/top_level.txt +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/setup.cfg +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/setup.py +0 -0
- {flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/tests/test_dnnf.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flamapy-dnnf
|
|
3
|
-
Version: 2.6.0.
|
|
3
|
+
Version: 2.6.0.dev11
|
|
4
4
|
Summary: flamapy-dnnf is a plugin to flamapy providing exact analysis of feature models via d-DNNF knowledge compilation with the d4 compiler
|
|
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/dnnf_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.
|
|
12
|
-
Requires-Dist: flamapy-fm~=2.6.0.
|
|
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
|
Provides-Extra: dev
|
|
15
14
|
Requires-Dist: pytest; extra == "dev"
|
|
16
15
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
@@ -3,16 +3,16 @@ import subprocess
|
|
|
3
3
|
import tempfile
|
|
4
4
|
|
|
5
5
|
from flamapy.core.transformations import ModelToModel
|
|
6
|
-
from flamapy.metamodels.fm_metamodel.models import FeatureModel
|
|
7
|
-
from flamapy.metamodels.pysat_metamodel.transformations import FmToPysat
|
|
6
|
+
from flamapy.metamodels.fm_metamodel.models import FeatureModel, ClauseSet
|
|
8
7
|
from flamapy.metamodels.dnnf_metamodel.models import DDNNFModel, locate_d4
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
class FmToDDNNF(ModelToModel):
|
|
12
11
|
"""Transform a feature model into a d-DNNF-backed model.
|
|
13
12
|
|
|
14
|
-
Builds the CNF
|
|
15
|
-
set — invokes d4 to dump the compiled d-DNNF artifact.
|
|
13
|
+
Builds the CNF via the feature-model ``ClauseSet`` (no SAT-solver dependency), writes it as
|
|
14
|
+
DIMACS, and — when ``compile`` is set — invokes d4 to dump the compiled d-DNNF artifact.
|
|
15
|
+
Exact queries run d4 on the DIMACS.
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
@staticmethod
|
|
@@ -35,12 +35,8 @@ class FmToDDNNF(ModelToModel):
|
|
|
35
35
|
self.destination_model = DDNNFModel()
|
|
36
36
|
|
|
37
37
|
def transform(self) -> DDNNFModel:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
else:
|
|
41
|
-
sat_model = FmToPysat(self.source_model, cnf_method=self.cnf_method).transform()
|
|
42
|
-
|
|
43
|
-
clauses = [list(clause) for clause in sat_model.get_all_clauses().clauses]
|
|
38
|
+
clause_set = ClauseSet.from_feature_model(self.source_model, cnf_method=self.cnf_method)
|
|
39
|
+
clauses = [list(clause) for clause in clause_set.clauses]
|
|
44
40
|
var_count = max((abs(literal) for clause in clauses for literal in clause), default=1)
|
|
45
41
|
|
|
46
42
|
dimacs_fd, dimacs_path = tempfile.mkstemp(suffix='.cnf', prefix='flamapy_dnnf_')
|
|
@@ -52,8 +48,8 @@ class FmToDDNNF(ModelToModel):
|
|
|
52
48
|
model = self.destination_model
|
|
53
49
|
model.dimacs_path = dimacs_path
|
|
54
50
|
model.var_count = var_count
|
|
55
|
-
model.variables = dict(
|
|
56
|
-
model.features = dict(
|
|
51
|
+
model.variables = dict(clause_set.variables)
|
|
52
|
+
model.features = dict(clause_set.features)
|
|
57
53
|
model.original_model = self.source_model
|
|
58
54
|
|
|
59
55
|
if self.compile:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flamapy-dnnf
|
|
3
|
-
Version: 2.6.0.
|
|
3
|
+
Version: 2.6.0.dev11
|
|
4
4
|
Summary: flamapy-dnnf is a plugin to flamapy providing exact analysis of feature models via d-DNNF knowledge compilation with the d4 compiler
|
|
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/dnnf_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.
|
|
12
|
-
Requires-Dist: flamapy-fm~=2.6.0.
|
|
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
|
Provides-Extra: dev
|
|
15
14
|
Requires-Dist: pytest; extra == "dev"
|
|
16
15
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
@@ -4,16 +4,15 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "flamapy-dnnf"
|
|
7
|
-
version = "2.6.0.
|
|
7
|
+
version = "2.6.0.dev11"
|
|
8
8
|
description = "flamapy-dnnf is a plugin to flamapy providing exact analysis of feature models via d-DNNF knowledge compilation with the d4 compiler"
|
|
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.
|
|
15
|
-
"flamapy-fm~=2.6.0.
|
|
16
|
-
"flamapy-sat~=2.6.0.dev5",
|
|
14
|
+
"flamapy-fw~=2.6.0.dev11",
|
|
15
|
+
"flamapy-fm~=2.6.0.dev11",
|
|
17
16
|
]
|
|
18
17
|
|
|
19
18
|
[project.optional-dependencies]
|
|
File without changes
|
|
File without changes
|
{flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy/metamodels/dnnf_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
|
{flamapy_dnnf-2.6.0.dev6 → flamapy_dnnf-2.6.0.dev11}/flamapy_dnnf.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|