summaryrefslogtreecommitdiff
path: root/examples/allyesconfig.py
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2017-10-30 00:50:09 +0100
committerUlf Magnusson <ulfalizer@gmail.com>2017-10-30 01:14:20 +0100
commit989e9f77cfe8caabc7ac241572e9b52682901135 (patch)
tree9c70f1d1c08efc19803b4fe741ab1dd2c69b42cd /examples/allyesconfig.py
parent7bbaf7e7cf131d83931bfda2d2e8e5d6ef1b235f (diff)
Consistently use 0/1/2 for tristate values
Easier to work with, allowing e.g. direct comparisons with < and >. Make set_value() take 0, 1, 2 for bool and tristate symbols, and fix other APIs to match. Also: - Add introductions to various concepts in the module docstring. Document some more attributes. Still TODOs. - Rename the Config class to Kconfig. - Escape " and \ in the name of constant symbols when printing them. Also make the (un)escaping 100% consistent with how the C tools do it (\ before non-magic character should be unescaped too). - Clean up the escaping/unescaping code and provide two public escape()/unescape() functions. - Export the original MODULES-independent type in orig_type. It's needed for printing symbols in the reparsable __str__() Kconfig format with just public APIs. - Lots of other minor reorganizing and nits all over.
Diffstat (limited to 'examples/allyesconfig.py')
-rw-r--r--examples/allyesconfig.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/examples/allyesconfig.py b/examples/allyesconfig.py
index f91b6d7..6e2e065 100644
--- a/examples/allyesconfig.py
+++ b/examples/allyesconfig.py
@@ -8,20 +8,20 @@
# allyesconfig is a bit more involved than allnoconfig as we need to handle
# choices in two different modes:
#
-# y: One symbol is "y", the rest are "n"
-# m: Any number of symbols are "m", the rest are "n"
+# y: One symbol is y, the rest are n
+# m: Any number of symbols are m, the rest are n
#
-# Only tristate choices can be in "m" mode. No "m" mode choices seem to appear
-# for allyesconfig on the kernel Kconfigs as of 4.14, but we still handle it.
+# Only tristate choices can be in m mode. No m mode choices seem to appear for
+# allyesconfig on the kernel Kconfigs as of 4.14, but we still handle it.
#
# Usage:
#
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/allyesconfig.py
-from kconfiglib import Config, Choice, STR_TO_TRI
+from kconfiglib import Kconfig, Choice, STR_TO_TRI
import sys
-conf = Config(sys.argv[1])
+conf = Kconfig(sys.argv[1])
# Collect all the choices in the configuration. Demonstrates how the menu node
# tree can be walked iteratively by using the parent pointers.
@@ -70,14 +70,14 @@ while 1:
for sym in non_choice_syms:
# See allnoconfig example. [-1] gives the last (highest) assignable
# value.
- if sym.assignable and sym.tri_value < STR_TO_TRI[sym.assignable[-1]]:
+ if sym.assignable and sym.tri_value < sym.assignable[-1]:
sym.set_value(sym.assignable[-1])
no_changes = False
# Handle choices
for choice in choices:
- # Handle a choice whose visibility allows it to be in "y" mode
+ # Handle a choice whose visibility allows it to be in y mode
if choice.visibility == 2:
selection = choice.default_selection
@@ -88,7 +88,7 @@ while 1:
selection is not choice.user_selection:
# Yup, select it
- selection.set_value("y")
+ selection.set_value(2)
no_changes = False
# Handle a choice whose visibility only allows it to be in "m" mode.
@@ -100,10 +100,10 @@ while 1:
# Does the choice have a symbol that can be "m" that we haven't
# already set to "m"?
- if sym.user_tri_value != 1 and "m" in sym.assignable:
+ if sym.user_tri_value != 1 and 1 in sym.assignable:
# Yup, set it
- sym.set_value("m")
+ sym.set_value(1)
no_changes = False
if no_changes: