diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2015-06-08 21:34:21 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2015-06-08 22:53:57 +0200 |
| commit | e645142fb95a4ca8c0c21186152fa487b1001a47 (patch) | |
| tree | 834def1122775d9ec08ac41af8811823d61bb016 /kconfiglib.py | |
| parent | 9b20903173f4aef0d80b117e0e5df59f94c5a491 (diff) | |
Add Python 3 support.
Only incompatibilities left were itervalues() vs. values() and 'print'
expressions.
Diffstat (limited to 'kconfiglib.py')
| -rw-r--r-- | kconfiglib.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/kconfiglib.py b/kconfiglib.py index b97e1e9..5378822 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -133,6 +133,12 @@ class Config(object): # The set of all symbols, indexed by name (a string) self.syms = {} + # Python 2/3 compatibility hack. This is the only one needed. + if sys.version_info[0] >= 3: + self.syms_iter = self.syms.values + else: + self.syms_iter = self.syms.itervalues + # The set of all defined symbols in the configuration in the order they # appear in the Kconfig files. This excludes the special symbols n, m, # and y as well as symbols that are referenced but never defined. @@ -356,7 +362,7 @@ class Config(object): # already_written is set when _make_conf() is called on a symbol, so # that symbols defined in multiple locations only get one entry in the # .config. We need to reset it prior to writing out a new .config. - for sym in self.syms.itervalues(): + for sym in self.syms_iter(): sym.already_written = False with open(filename, "w") as f: @@ -572,7 +578,7 @@ class Config(object): def unset_user_values(self): """Resets the values of all symbols, as if Config.load_config() or Symbol.set_user_value() had never been called.""" - for sym in self.syms.itervalues(): + for sym in self.syms_iter(): sym._unset_user_value_no_recursive_invalidate() def __str__(self): @@ -599,7 +605,7 @@ class Config(object): # def _invalidate_all(self): - for sym in self.syms.itervalues(): + for sym in self.syms_iter(): sym._invalidate() def _tokenize(self, s, for_eval = False, filename = None, linenr = None): @@ -1520,7 +1526,7 @@ class Config(object): # (these won't be included in 'dep' as that makes the dependency # graph unwieldy, but Symbol._get_dependent() will include them) # - Any symbols in a choice statement that depends on the symbol - for sym in self.syms.itervalues(): + for sym in self.syms_iter(): for _, e in sym.prompts: add_expr_deps(e, sym) |
