1 |
commit: 768b134a4a388bc11175c5ff8975369fe01317fe |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Tue Jul 29 17:39:14 2014 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Tue Jul 29 17:39:14 2014 +0000 |
6 |
URL: http://sources.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=768b134a |
7 |
|
8 |
roverlay/depres, rule constructor: accept bool value |
9 |
|
10 |
The wide_match option accepts a boolean value now: |
11 |
wide_match[=[1|y|yes|0|n|no|...]] |
12 |
|
13 |
--- |
14 |
roverlay/depres/simpledeprule/rules.py | 10 +++++++--- |
15 |
roverlay/strutil.py | 17 +++++++++++++++++ |
16 |
2 files changed, 24 insertions(+), 3 deletions(-) |
17 |
|
18 |
diff --git a/roverlay/depres/simpledeprule/rules.py b/roverlay/depres/simpledeprule/rules.py |
19 |
index df767ba..797ba98 100644 |
20 |
--- a/roverlay/depres/simpledeprule/rules.py |
21 |
+++ b/roverlay/depres/simpledeprule/rules.py |
22 |
@@ -21,14 +21,16 @@ __all__ = ( |
23 |
) |
24 |
|
25 |
|
26 |
+import roverlay.strutil |
27 |
+import roverlay.depres.depenv |
28 |
+ |
29 |
+ |
30 |
from roverlay.depres.simpledeprule.util import \ |
31 |
RuleFileSyntaxError, get_slot_restrict, get_slot_parser |
32 |
|
33 |
from roverlay.depres.simpledeprule.abstractrules import \ |
34 |
SimpleRule, FuzzySimpleRule |
35 |
|
36 |
-import roverlay.depres.depenv |
37 |
- |
38 |
|
39 |
|
40 |
|
41 |
@@ -106,7 +108,9 @@ class RuleConstructor ( object ): |
42 |
if not has_value: |
43 |
kwargs ['allow_wide_match'] = True |
44 |
else: |
45 |
- raise NotImplementedError("wide_match value") |
46 |
+ kwargs ['allow_wide_match'] = bool ( |
47 |
+ roverlay.strutil.str_to_bool ( value ) |
48 |
+ ) |
49 |
|
50 |
elif opt == '*': |
51 |
kwargs ['slot_operator'] = '*' |
52 |
|
53 |
diff --git a/roverlay/strutil.py b/roverlay/strutil.py |
54 |
index 9799477..76949fc 100644 |
55 |
--- a/roverlay/strutil.py |
56 |
+++ b/roverlay/strutil.py |
57 |
@@ -8,6 +8,7 @@ |
58 |
|
59 |
__all__ = [ 'ascii_filter', 'bytes_try_decode', 'fix_ebuild_name', |
60 |
'pipe_lines', 'shorten_str', 'unquote', 'foreach_str', |
61 |
+ 'str_to_bool', |
62 |
] |
63 |
|
64 |
import re |
65 |
@@ -158,3 +159,19 @@ def foreach_str ( func, _str ): |
66 |
else: |
67 |
return [ func(str(s)) for s in _str ] |
68 |
# --- end of foreach_str (...) --- |
69 |
+ |
70 |
+def str_to_bool ( s, empty_return=None, nofail=False ): |
71 |
+ if not s: |
72 |
+ return empty_return |
73 |
+ |
74 |
+ slow = s.lower() |
75 |
+ |
76 |
+ if slow in { 'y', 'yes', '1', 'true', 'enabled', 'on' }: |
77 |
+ return True |
78 |
+ elif slow in { 'n', 'no', '0', 'false', 'disabled', 'off' }: |
79 |
+ return False |
80 |
+ elif nofail: |
81 |
+ return None |
82 |
+ else: |
83 |
+ raise ValueError(s) |
84 |
+# --- end of str_to_bool (...) --- |