summaryrefslogtreecommitdiff
path: root/morphlib/definitions_repo.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/definitions_repo.py')
-rw-r--r--morphlib/definitions_repo.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/morphlib/definitions_repo.py b/morphlib/definitions_repo.py
index a30c5a7c..2228efe8 100644
--- a/morphlib/definitions_repo.py
+++ b/morphlib/definitions_repo.py
@@ -253,16 +253,26 @@ class DefinitionsRepo(gitdir.GitDirectory):
return loader
+
+ def load_morphology_file(self, filename, loader=None, mf=None):
+ loader = loader or self.get_morphology_loader()
+ mf = mf or morphlib.morphologyfinder.MorphologyFinder(self)
+
+ text = mf.read_file(filename)
+ m = loader.load_from_string(text, filename=filename)
+ m.repo_url = self.remote_url
+ m.ref = self.HEAD
+
+ return m
+
+
def load_all_morphologies(self, loader=None):
loader = loader or self.get_morphology_loader()
mf = morphlib.morphologyfinder.MorphologyFinder(self)
for filename in (f for f in mf.list_morphologies()
if not self.is_symlink(f)):
- text = mf.read_file(filename)
- m = loader.load_from_string(text, filename=filename)
- m.repo_url = self.remote_url
- m.ref = self.HEAD
+ m = self.load_morphology_file(filename, loader, mf)
yield m
def relative_path(self, path, cwd='.'):