aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2018-05-30 13:25:20 +0800
committerBenda Xu <heroxbd@gentoo.org>2018-05-30 13:25:20 +0800
commit3f7c507a97b62ef814517adf3e9fae935db4ad04 (patch)
treef7c75a48ba82805ea0e18a576d3b935f21fb90a3 /roverlay
parentconst.py: do not split on ',' inside a pair of '()'. (diff)
downloadR_overlay-3f7c507a97b62ef814517adf3e9fae935db4ad04.tar.gz
R_overlay-3f7c507a97b62ef814517adf3e9fae935db4ad04.tar.bz2
R_overlay-3f7c507a97b62ef814517adf3e9fae935db4ad04.zip
Use regex in dep string matches.
Ignore rules should come later than positive rules. Closes: https://bugs.gentoo.org/653694
Diffstat (limited to 'roverlay')
-rw-r--r--roverlay/depres/simpledeprule/abstractrules.py10
-rw-r--r--roverlay/depres/simpledeprule/rules.py6
2 files changed, 10 insertions, 6 deletions
diff --git a/roverlay/depres/simpledeprule/abstractrules.py b/roverlay/depres/simpledeprule/abstractrules.py
index d31ffbe..a1d8522 100644
--- a/roverlay/depres/simpledeprule/abstractrules.py
+++ b/roverlay/depres/simpledeprule/abstractrules.py
@@ -8,7 +8,7 @@
__all__ = [ 'FuzzySimpleRule', 'SimpleRule', ]
-import logging
+import logging, re
from roverlay import config
from roverlay.depres import deprule
@@ -21,7 +21,7 @@ class SimpleRule ( deprule.DependencyRule ):
INDENT = 3 * ' '
def __init__ ( self,
- dep_str=None, priority=50, resolving_package=None,
+ dep_str=None, priority=80, resolving_package=None,
is_selfdep=0, logger_name='simple_rule',
selfdep_package_names=None, finalize=False,
):
@@ -67,6 +67,10 @@ class SimpleRule ( deprule.DependencyRule ):
self.dep_alias = frozenset ( self.dep_alias )
if self.prepare_lowercase_alias:
self.dep_alias_low = frozenset ( x.lower() for x in self.dep_alias )
+ temp_set = self.dep_alias_low
+ if self.is_selfdep:
+ temp_set = ("^{}$".format(x) for x in self.dep_alias_low)
+ self.dep_regex = re.compile('|'.join(x for x in temp_set))
def add_resolved ( self, dep_str ):
"""Adds an dependency string that should be matched by this rule.
@@ -80,7 +84,7 @@ class SimpleRule ( deprule.DependencyRule ):
def _find ( self, dep_str, lowercase ):
if lowercase:
if hasattr ( self, 'dep_alias_low' ):
- if dep_str in self.dep_alias_low:
+ if self.dep_regex.search(dep_str):
return True
elif dep_str in ( alias.lower() for alias in self.dep_alias ):
diff --git a/roverlay/depres/simpledeprule/rules.py b/roverlay/depres/simpledeprule/rules.py
index 869c5aa..12c6520 100644
--- a/roverlay/depres/simpledeprule/rules.py
+++ b/roverlay/depres/simpledeprule/rules.py
@@ -151,11 +151,11 @@ class SimpleIgnoreDependencyRule ( SimpleRule ):
RULE_PREFIX = '!'
- def __init__ ( self, priority=50, resolving_package=None, **kw ):
+ def __init__ ( self, priority=80, resolving_package=None, **kw ):
super ( SimpleIgnoreDependencyRule, self ) . __init__ (
logger_name = 'IGNORE_DEPS',
resolving_package=None,
- priority=50,
+ priority=80,
**kw
)
# --- end of SimpleIgnoreDependencyRule ---
@@ -187,7 +187,7 @@ class SimpleFuzzyIgnoreDependencyRule ( FuzzySimpleRule ):
RULE_PREFIX = '%'
- def __init__ ( self, priority=51, resolving_package=None, **kw ):
+ def __init__ ( self, priority=81, resolving_package=None, **kw ):
super ( SimpleFuzzyIgnoreDependencyRule, self ) . __init__ (
priority=priority,
resolving_package=resolving_package,