diff options
Diffstat (limited to 'morphlib/morph2.py')
-rw-r--r-- | morphlib/morph2.py | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/morphlib/morph2.py b/morphlib/morph2.py index b1c027b9..ad9e1d89 100644 --- a/morphlib/morph2.py +++ b/morphlib/morph2.py @@ -1,14 +1,14 @@ # Copyright (C) 2012 Codethink Limited -# +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. @@ -20,12 +20,12 @@ import json class Morphology(object): '''An in-memory representation of a morphology. - + This is a parsed version of the morphology, with rules for default values applied. No other processing. - + ''' - + static_defaults = [ ('configure-commands', None), ('build-commands', None), @@ -41,20 +41,20 @@ class Morphology(object): ('arch', None), ('system-kind', None), ] - + def __init__(self, text): self._dict = json.loads(text) self._set_defaults() - + def __getitem__(self, key): return self._dict[key] - + def __contains__(self, key): return key in self._dict def keys(self): return self._dict.keys() - + def _set_defaults(self): if 'max-jobs' in self: self._dict['max-jobs'] = int(self['max-jobs']) @@ -63,22 +63,22 @@ class Morphology(object): size = self['disk-size'] size = size.lower() if size.endswith('g'): - size = int(size[:-1]) * 1024**3 - elif size.endswith('m'): # pragma: no cover - size = int(size[:-1]) * 1024**2 - elif size.endswith('k'): # pragma: no cover + size = int(size[:-1]) * 1024 ** 3 + elif size.endswith('m'): # pragma: no cover + size = int(size[:-1]) * 1024 ** 2 + elif size.endswith('k'): # pragma: no cover size = int(size[:-1]) * 1024 - else: # pragma: no cover + else: # pragma: no cover size = int(size) self._dict['disk-size'] = size - + for name, value in self.static_defaults: if name not in self._dict: self._dict[name] = value if self['kind'] == 'stratum': self._set_stratum_defaults() - + def _set_stratum_defaults(self): for source in self['sources']: if 'repo' not in source: @@ -87,4 +87,3 @@ class Morphology(object): source['morph'] = source['name'] if 'build-depends' not in source: source['build-depends'] = None - |