def inject_revision(): return dict(revision=version.revision())
def version(request): return {'version':ver.sbb_version,'revision':ver.revision()}
project = u'RTEMS Documentation Project' copyright = u'1988, 2020 RTEMS Project and contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = rtems_version.version() # The full version, including alpha/beta/rc tags. release = rtems_version.string() major = rtems_version.major() minor = rtems_version.minor() revision = rtems_version.revision() # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = []
def to_xml(self, file, pipes=None): """Create a XML document representation of the current data pipe. This method creates the top level XML document including all the information needed about relax, calls the PipeContainer.xml_write() method to fill in the document contents, and writes the XML into the file object. @param file: The open file object. @type file: file @param pipes: The name of the pipe, or list of pipes to place in the XML file. @type pipes: str or list of str """ # The pipes to include in the XML file. all = False if not pipes: all = True pipes = list(self.keys()) elif isinstance(pipes, str): pipes = [pipes] # Sort the pipes. pipes.sort() # Create the XML document object. xmldoc = xml.dom.minidom.Document() # Create the top level element, including the relax URL. top_element = xmldoc.createElementNS('http://www.nmr-relax.com', 'relax') top_element.setAttribute("xmlns", "http://www.nmr-relax.com") # Append the element. xmldoc.appendChild(top_element) # Set the relax version number, and add a creation time. top_element.setAttribute('version', version.version) top_element.setAttribute('time', asctime()) top_element.setAttribute('file_version', "2") rev = version.revision() if rev: top_element.setAttribute('revision', rev) url = version.url() if url: top_element.setAttribute('url', url) # Add all objects in the data store base object to the XML element. if all: blacklist = list(list(self.__class__.__dict__.keys()) + list(dict.__dict__.keys())) for name in dir(self): # Skip blacklisted objects. if name in blacklist: continue # Skip special objects. if search('^_', name): continue # Execute any to_xml() methods, and add that object to the blacklist. obj = getattr(self, name) if hasattr(obj, 'to_xml'): obj.to_xml(xmldoc, top_element) blacklist = blacklist + [name] # Remove the current data pipe from the blacklist! blacklist.remove('current_pipe') # Add all simple python objects within the store. fill_object_contents(xmldoc, top_element, object=self, blacklist=blacklist) # Loop over the pipes. for pipe in pipes: # Create the pipe XML element and add it to the top level XML element. pipe_element = xmldoc.createElement('pipe') top_element.appendChild(pipe_element) # Set the data pipe attributes. pipe_element.setAttribute('desc', 'The contents of a relax data pipe') pipe_element.setAttribute('name', pipe) pipe_element.setAttribute('type', self[pipe].pipe_type) # Fill the data pipe XML element. self[pipe].to_xml(xmldoc, pipe_element) # Write out the XML file. file.write(xmldoc.toprettyxml(indent=' '))