<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/examples/menuconfig.py, branch v2.7.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v2.7.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v2.7.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2018-02-07T02:55:56Z</updated>
<entry>
<title>Allow "n"/"m"/"y" as aliases for 0/1/2 in set_value()</title>
<updated>2018-02-07T02:55:56Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-02-07T01:30:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=f66cd7155158943987570937be37b09d9ca58028'/>
<id>urn:sha1:f66cd7155158943987570937be37b09d9ca58028</id>
<content type='text'>
More experience working with the API convinced me that it's worth it.
Gets rid of ugly conversions in the menuconfig.py and oldconfig.py
examples, and streamlines some things internally as well.

Include two other small fixes as well:

  - Make warnings generated by Choice.set_value() match those generated
    by Symbol.set_value().

  - Get rid of the input stripping in menuconfig.py. It's not like the
    interface is usable as-is anyway, and it just complicates the
    example.
</content>
</entry>
<entry>
<title>menuconfig.py: indent_print() style nit</title>
<updated>2017-11-26T13:43:22Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-26T13:40:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7f85e810c2fd22098049cc490532f8f7c17f8315'/>
<id>urn:sha1:7f85e810c2fd22098049cc490532f8f7c17f8315</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify menuconfig.py's value_str() a bit</title>
<updated>2017-11-20T06:31:35Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-20T06:29:12Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=2e6a274d7ea13e938d42ce8f4a4ec1e5d141f8ec'/>
<id>urn:sha1:2e6a274d7ea13e938d42ce8f4a4ec1e5d141f8ec</id>
<content type='text'>
No need to use a dictionary.
</content>
</entry>
<entry>
<title>Fix a few typos</title>
<updated>2017-11-10T07:46:28Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-10T07:46:28Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=8757ff9ae1d23499ed58ee8ea6f1fb578603d2c7'/>
<id>urn:sha1:8757ff9ae1d23499ed58ee8ea6f1fb578603d2c7</id>
<content type='text'>
Clean up some formatting a bit too.
</content>
</entry>
<entry>
<title>Test for m, y assignability in a more readable way</title>
<updated>2017-11-07T12:06:54Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-07T12:06:54Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=fda4b31b247332f05268fb2a6544f9df36c8e559'/>
<id>urn:sha1:fda4b31b247332f05268fb2a6544f9df36c8e559</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify redundant 'is (not) None' tests in examples</title>
<updated>2017-11-05T06:02:54Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-05T06:01:53Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=087bc506d25b20b759a092a7490942e9cb212720'/>
<id>urn:sha1:087bc506d25b20b759a092a7490942e9cb212720</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix some menuconfig.py typos</title>
<updated>2017-11-04T22:40:47Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-04T22:40:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=54143e4d6a4ac4e7be9d5c9728c5ac606f5d3a2e'/>
<id>urn:sha1:54143e4d6a4ac4e7be9d5c9728c5ac606f5d3a2e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add documentation for menuconfig example</title>
<updated>2017-11-04T22:38:36Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-04T22:38:36Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=3d6df4e3b12e4449cc1500ade49186aea340342d'/>
<id>urn:sha1:3d6df4e3b12e4449cc1500ade49186aea340342d</id>
<content type='text'>
Also avoid printing (None) as the name for unnamed (normal) choices.
</content>
</entry>
<entry>
<title>Add menuconfig example/proof of concept</title>
<updated>2017-11-04T05:43:43Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2017-11-04T05:28:24Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=b3a9656937b18fae57a5ed53c8528bd1339cfd8d'/>
<id>urn:sha1:b3a9656937b18fae57a5ed53c8528bd1339cfd8d</id>
<content type='text'>
Still needs documentation and some cleanup.

Interface deliberately kept super simple/clunky to focus on the
concepts. Not something you'd actually want to use.

Sample session:

  $ python Kconfiglib/examples/menuconfig.py Kconfiglib/examples/Kmenuconfig

  ======== Example Kconfig configuration ========

  [*] Enable loadable module support (MODULES)
      Bool and tristate symbols
          [*] Bool symbol (BOOL)
                  [ ] Dependent bool symbol (BOOL_DEP)
                  &lt; &gt; Dependent tristate symbol (TRI_DEP)
                  [ ] First prompt (TWO_MENU_NODES)
          &lt; &gt; Tristate symbol (TRI)
          [ ] Second prompt (TWO_MENU_NODES)
              *** These are selected by TRI_DEP ***
          &lt; &gt; Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
          &lt; &gt; Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
      String, int, and hex symbols
          (foo) String symbol (STRING)
          (747) Int symbol (INT)
          (0xABC) Hex symbol (HEX)
      Various choices
          -*- Bool choice (BOOL_CHOICE)
                  --&gt; Bool choice sym 1 (BOOL_CHOICE_SYM_1)
                      Bool choice sym 2 (BOOL_CHOICE_SYM_2)
          {M} Tristate choice (TRI_CHOICE)
                  &lt; &gt; Tristate choice sym 1 (TRI_CHOICE_SYM_1)
                  &lt; &gt; Tristate choice sym 2 (TRI_CHOICE_SYM_2)
          [ ] Optional bool choice (OPT_BOOL_CHOICE)

  Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): BOOL
  Value for BOOL (available: n, y): n

  ======== Example Kconfig configuration ========

  [*] Enable loadable module support (MODULES)
      Bool and tristate symbols
          [ ] Bool symbol (BOOL)
          &lt; &gt; Tristate symbol (TRI)
          [ ] Second prompt (TWO_MENU_NODES)
              *** These are selected by TRI_DEP ***
          &lt; &gt; Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
          &lt; &gt; Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
      String, int, and hex symbols
          (foo) String symbol (STRING)
          (747) Int symbol (INT)
          (0xABC) Hex symbol (HEX)
      Various choices
          -*- Bool choice (BOOL_CHOICE)
                  --&gt; Bool choice sym 1 (BOOL_CHOICE_SYM_1)
                      Bool choice sym 2 (BOOL_CHOICE_SYM_2)
          {M} Tristate choice (TRI_CHOICE)
                  &lt; &gt; Tristate choice sym 1 (TRI_CHOICE_SYM_1)
                  &lt; &gt; Tristate choice sym 2 (TRI_CHOICE_SYM_2)
          [ ] Optional bool choice (OPT_BOOL_CHOICE)

  Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): MODULES
  Value for MODULES (available: n, y): n

  ======== Example Kconfig configuration ========

  [ ] Enable loadable module support (MODULES)
      Bool and tristate symbols
          [ ] Bool symbol (BOOL)
          [ ] Tristate symbol (TRI)
          [ ] Second prompt (TWO_MENU_NODES)
              *** These are selected by TRI_DEP ***
          [ ] Tristate selected by TRI_DEP (SELECTED_BY_TRI_DEP)
          [ ] Tristate implied by TRI_DEP (IMPLIED_BY_TRI_DEP)
      String, int, and hex symbols
          (foo) String symbol (STRING)
          (747) Int symbol (INT)
          (0xABC) Hex symbol (HEX)
      Various choices
          -*- Bool choice (BOOL_CHOICE)
                  --&gt; Bool choice sym 1 (BOOL_CHOICE_SYM_1)
                      Bool choice sym 2 (BOOL_CHOICE_SYM_2)
          -*- Tristate choice (TRI_CHOICE)
                  --&gt; Tristate choice sym 1 (TRI_CHOICE_SYM_1)
                      Tristate choice sym 2 (TRI_CHOICE_SYM_2)
          [ ] Optional bool choice (OPT_BOOL_CHOICE)

  Enter a symbol/choice name, "load_config", or "write_config" (or press CTRL+D to exit): ^D

Unsetting modules demonstrates one reason why it makes sense to have
.type be magic and change from TRISTATE to BOOL without modules
(&lt;&gt; = tristate, [] = bool). The C implementation uses the same trick.
(The original type is still available in .orig_type though.)

Piggyback printing of tristates as n, m, y in the warning for invalid
values in set_value().
</content>
</entry>
</feed>
