diff --git a/docs/sphinxext/mantiddoc/directives/sourcelink.py b/docs/sphinxext/mantiddoc/directives/sourcelink.py index 29adcba48b4fb02fae118f1fe96be1c6ff11da84..1fc3002fb9e38400e994029258ab6db865be9edf 100644 --- a/docs/sphinxext/mantiddoc/directives/sourcelink.py +++ b/docs/sphinxext/mantiddoc/directives/sourcelink.py @@ -1,6 +1,6 @@ from base import AlgorithmBaseDirective -from os import path, walk import mantid +import os class SourceLinkError(Exception): def __init__(self, value): @@ -75,8 +75,8 @@ class SourceLinkDirective(AlgorithmBaseDirective): file_paths[extension] = None else: #prepend the base framework directory - file_paths[extension] = path.join(self.get_mantid_directory(),file_paths[extension]) - if not path.exists(file_paths[extension]): + file_paths[extension] = os.path.join(self.get_mantid_directory(),file_paths[extension]) + if not os.path.exists(file_paths[extension]): error_string +="Cannot find " + extension + " file at " + file_paths[extension] + "\n" #throw accumulated errors now if you have any @@ -134,26 +134,20 @@ class SourceLinkDirective(AlgorithmBaseDirective): """ if self.mantid_directory_cache is None: env = self.state.document.settings.env - dir = env.srcdir #= C:\Mantid\Code\Mantid\docs\source - #go up the path until dir point to the "Mantid" directory - (head,tail) = path.split(dir) - while tail != "Mantid": - dir = head - (head,tail) = path.split(head) - if len(tail) <= 0 or len(head) <= 0: - raise IOError ("Could not find the 'Mantid' directory in " + env.srcdir) - - self.mantid_directory_cache = dir + direc = env.srcdir #= C:\Mantid\Code\Mantid\docs\source + direc = os.path.join(direc, "..", "..") # assume root is two levels up + direc = os.path.abspath(direc) + + self.mantid_directory_cache = direc return self.mantid_directory_cache def parse_source_tree(self): """ Fills the file_lookup dictionary after parsing the source code """ - print "parse_source_tree()" - for dirName, subdirList, fileList in walk(self.get_mantid_directory()): + for dirName, subdirList, fileList in os.walk(self.get_mantid_directory()): for fname in fileList: - (baseName, fileExtension) = path.splitext(fname) + (baseName, fileExtension) = os.path.splitext(fname) #strip the dot from the extension fileExtension = fileExtension[1:] #build the data object that is e.g. @@ -163,7 +157,7 @@ class SourceLinkDirective(AlgorithmBaseDirective): self.file_lookup[baseName] = {} if fileExtension not in self.file_lookup[baseName].keys(): self.file_lookup[baseName][fileExtension] = [] - self.file_lookup[baseName][fileExtension].append(path.join(dirName,fname)) + self.file_lookup[baseName][fileExtension].append(os.path.join(dirName,fname)) return def output_to_page(self, file_paths,file_name,sanity_checks): @@ -207,7 +201,7 @@ class SourceLinkDirective(AlgorithmBaseDirective): """ Outputs the source link for a file to the rst page """ - dirName,fName = path.split(filepath) + dirName,fName = os.path.split(filepath) self.add_rst(self.file_types[extension] + ": `" + fName + " <" + self.convert_path_to_github_url(filepath) + ">`_\n\n") return