Niels Thykier
69d42ffb36
solver: improve apply_order to simplify more code
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
b306700376
solver: Extract a function from _comute_group_order_adds
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
259fecf6cf
solver: Rename a variable to avoid confusion
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
cdcfe85bfa
solver: Replace dict with a proper object
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
93f101bee2
solver: Extract some common code into a function
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
2ed6161b49
solver: Refactor out a function to avoid duplicated code
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
af20634b12
solver: Merge some loops to reduce nesting level
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
b61e1086bd
solver: Invert an if-statement to reduce max indentation level
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
68407c53c0
Remove an unnecessary if-statement
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
9971714e27
solver: Merge two loops by using chain
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
16dc303190
solver: Reduce two small loops into a comprehension
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
d3e06fc45f
solver: Split _compute_group_order into three methods
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
c65b377c5d
solver: Split solve_groups into 3 smaller methods
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
7124313aa6
Make InstallabilityTester suite agnostic
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
07a407e810
Partly separate the solver from the inst_tester
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
530db5d3f7
Extract a BinaryPackageUniverse from the InstallabilityTester
...
The InstallabilityTester is suffering from a lack of clear purpose
because it serves multiple. This commit extracts most of one of these
purposes into the BinaryPackageUniverse class while retaining the
original API of the InstallabilityTester.
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
c4931fb1b2
solver: Move a common variable out of an if
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
cd1f384012
inst-tester: Remove obsolete "safe-set" optimization
...
Signed-off-by: Niels Thykier <niels@thykier.net>
6 years ago
Niels Thykier
41978869ce
Migrate solver's ad-hoc debug logging
...
Signed-off-by: Niels Thykier <niels@thykier.net>
7 years ago
Niels Thykier
69473eefca
solver: Extract compute_scc into a function
...
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
bd375fdd85
solver: Make _compute_scc iterative
...
Rewrite _compute_scc to be iterative to avoid call recursion limit for
graphs with long dependency chains.
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
64653087d0
solver: Fix bug where some items were not emitted
...
Sometimes the solver would correctly compute which items are grouped
together, but then fail to emit some groups. This is trivially
fixable by forcing an update of "before" + "after" relations.
Admittedly, this looks unnecessary, so it may just be hiding the bug.
Nonetheless, the change makes the new test_solver_simple_scc test
produce the expected result.
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
a14ced6403
Drop now unused "from __future__" imports
...
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
a768432eb2
solver.py: Add missing "no cover" pragma
...
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
20c2b87833
Sprinkle some "no cover" pragmas over the code base
...
Add some "no cover" to some unrecoverable exceptions
(e.g. misconfiguration) or base-class methods that are not intended to
be invoked.
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago
Niels Thykier
9bc94db01c
Refactor all modules into a britney2 subdir
...
That way they are all contained.
Signed-off-by: Niels Thykier <niels@thykier.net>
8 years ago