diff options
author | Javier Jardón <javier.jardon@codethink.co.uk> | 2015-02-27 15:48:13 +0000 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2015-03-04 19:14:41 +0000 |
commit | 1cf8cfda9e7def942f3fe568373c55b251e7e2f8 (patch) | |
tree | 9d4c952327ebfb872218f202dc6362b2094f3e23 /morphlib | |
parent | 0ad137344b5712a7a42c54dc744f7367c56a3212 (diff) | |
download | morph-1cf8cfda9e7def942f3fe568373c55b251e7e2f8.tar.gz |
morphlib/sourceresolver.py: Add _get_file_contents()
And make _get_morphology() use it
Diffstat (limited to 'morphlib')
-rw-r--r-- | morphlib/sourceresolver.py | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/morphlib/sourceresolver.py b/morphlib/sourceresolver.py index dd020803..cd183ee0 100644 --- a/morphlib/sourceresolver.py +++ b/morphlib/sourceresolver.py @@ -261,18 +261,13 @@ class SourceResolver(object): return morph - def _get_morphology(self, reponame, sha1, filename): - '''Read the morphology at the specified location. + def _get_file_contents(self, reponame, sha1, filename): # pragma: no cover + '''Read the file at the specified location. Returns None if the file does not exist in the specified commit. ''' - key = (reponame, sha1, filename) - if key in self._resolved_morphologies: - return self._resolved_morphologies[key] - - loader = morphlib.morphloader.MorphologyLoader() - morph = None + text = None if reponame == self._definitions_repo and \ sha1 == self._definitions_absref: # pragma: no cover @@ -280,11 +275,27 @@ class SourceResolver(object): # we can quickly read definitions files from. defs_filename = os.path.join(self._definitions_checkout_dir, filename) - morph = self._get_morphology_from_definitions(loader, - defs_filename) + text = self._get_file_contents_from_definitions(defs_filename) else: - morph = self._get_morphology_from_repo(loader, reponame, sha1, - filename) + text = self._get_file_contents_from_repo(reponame, sha1, filename) + + return text + + def _get_morphology(self, reponame, sha1, filename): # pragma: no cover + '''Read the morphology at the specified location. + + Returns None if the file does not exist in the specified commit. + + ''' + key = (reponame, sha1, filename) + if key in self._resolved_morphologies: + return self._resolved_morphologies[key] + + loader = morphlib.morphloader.MorphologyLoader() + morph = None + + text = self._get_file_contents(reponame, sha1, filename) + morph = loader.load_from_string(text) if morph is None: return None |