commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8059 - in grc/branches/grc_reloaded/src: grc grc/gui


From: jblum
Subject: [Commit-gnuradio] r8059 - in grc/branches/grc_reloaded/src: grc grc/gui grc_gnuradio grc_gnuradio/blocks/conversions grc_gnuradio/blocks/misc grc_gnuradio/blocks/sinks grc_gnuradio/blocks/sources
Date: Thu, 20 Mar 2008 00:16:52 -0600 (MDT)

Author: jblum
Date: 2008-03-20 00:16:51 -0600 (Thu, 20 Mar 2008)
New Revision: 8059

Modified:
   grc/branches/grc_reloaded/src/grc/ParseXML.py
   grc/branches/grc_reloaded/src/grc/Utils.py
   grc/branches/grc_reloaded/src/grc/gui/MainWindow.py
   grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py
   grc/branches/grc_reloaded/src/grc_gnuradio/Block.py
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_complex_to_float.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_deinterleave.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_float_to_complex.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_interleave.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_streams.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_vector.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_stream.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_vector.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_stream.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_streams.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/misc/gr_throttle.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_file_sink.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_null_sink.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_wavfile_sink.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_file_source.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_null_source.xml
   grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_sig_source_x.xml
   
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_wavfile_source.xml
Log:
added automatic doc extraction

Modified: grc/branches/grc_reloaded/src/grc/ParseXML.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/ParseXML.py       2008-03-19 23:48:19 UTC 
(rev 8058)
+++ grc/branches/grc_reloaded/src/grc/ParseXML.py       2008-03-20 06:16:51 UTC 
(rev 8059)
@@ -57,7 +57,10 @@
        ('"', '"'),
        ("'", '''),
 )
-               
+
+def getChildrenByTagName(doc, tag_name):
+       return filter(lambda cn: str(cn.localName) == str(tag_name), 
doc.childNodes)
+       
 def xml_encode(string):
        """!
        Encode a string into an xml safe string by replacing special characters.
@@ -102,7 +105,7 @@
        @return the nested data
        """
        tag_name = str(doc.localName)
-       if len(doc.childNodes) == 0: 
+       if not doc.hasChildNodes(): 
                return odict({tag_name: ''})
        elif len(doc.childNodes) == 1 and doc.firstChild.nodeValue:
                return odict({tag_name: xml_decode(doc.firstChild.nodeValue)})  

Modified: grc/branches/grc_reloaded/src/grc/Utils.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/Utils.py  2008-03-19 23:48:19 UTC (rev 
8058)
+++ grc/branches/grc_reloaded/src/grc/Utils.py  2008-03-20 06:16:51 UTC (rev 
8059)
@@ -55,6 +55,6 @@
 
 def listify(d, key):
        obj = exists_or_else(d, key, [])
-       if type(obj) == type(list()): return obj
+       if isinstance(obj, list): return obj
        return [obj]
        

Modified: grc/branches/grc_reloaded/src/grc/gui/MainWindow.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/MainWindow.py 2008-03-19 23:48:19 UTC 
(rev 8058)
+++ grc/branches/grc_reloaded/src/grc/gui/MainWindow.py 2008-03-20 06:16:51 UTC 
(rev 8059)
@@ -246,7 +246,7 @@
                gtk.Window.set_title(self, title)       
                #set tab titles
                for page in self._get_pages():
-                       title = 
os.path.basename(page.get_file_path()).replace(FLOW_GRAPH_FILE_EXTENSION, '') 
or ' '#dont allow blank
+                       title = 
os.path.basename(page.get_file_path()).replace(FLOW_GRAPH_FILE_EXTENSION, '')
                        page.set_text(''.join((
                                                (title or NEW_FLOGRAPH_TITLE),
                                                (page.get_saved() and ' ' or 
'*'), #blank must be non empty

Modified: grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py    
2008-03-19 23:48:19 UTC (rev 8058)
+++ grc/branches/grc_reloaded/src/grc/gui/SignalBlockParamsDialog.py    
2008-03-20 06:16:51 UTC (rev 8059)
@@ -75,7 +75,7 @@
                        vbox.pack_start(gtk.Label(''), False, False, 7) #spacing
                        vbox.pack_start(get_title_label('Documentation'), False)
                        #Create the text box to display notes about the block
-                       
vbox.pack_start(TextDisplay(self.block.get_doc().strip('\n')), False)
+                       vbox.pack_start(TextDisplay(self.block.get_doc()), 
False)
                self.connect('key_press_event', self._handle_key_press)
                self.show_all()
                self._update_error_messages()

Modified: grc/branches/grc_reloaded/src/grc_gnuradio/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc_gnuradio/Block.py 2008-03-19 23:48:19 UTC 
(rev 8058)
+++ grc/branches/grc_reloaded/src/grc_gnuradio/Block.py 2008-03-20 06:16:51 UTC 
(rev 8059)
@@ -23,6 +23,47 @@
 from grc.elements.Block import Block as _Block
 from grc import Utils
 
+DOCS_DIR = '/usr/local/share/doc/grc_gnuradio_docs/'
+from grc import ParseXML
+import os
+
+def extract_txt(doc):
+       """!
+       Recursivly pull the text out of an xml document.
+       @param doc the xml document
+       @return a string
+       """
+       if len(doc.childNodes) == 0: return str(doc.nodeValue)
+       return ''.join(map(extract_txt, doc.childNodes))
+       
+def extract_docs(key):
+       """!
+       Extract the documentation from the doxygen generated xml files.
+       If multiple files match, combine the docs.
+       @param key the block key
+       @return a string with documentation
+       """
+       key = key.strip('x_') #strip x and _ to match an xml file
+       key = key.replace('_', '__') #doxygen xml files have 2 underscores
+       #get potential xml file matches for the key
+       if os.path.exists(DOCS_DIR) and os.path.isdir(DOCS_DIR):
+               matches = filter(lambda d: key in d, os.listdir(DOCS_DIR))
+       else: matches = list()
+       #combine all matches
+       doc_strs = list()
+       for match in matches:
+               doc = ParseXML.from_file(DOCS_DIR + '/' + match)
+               doc = ParseXML.getChildrenByTagName(doc, 'doxygen')[0]
+               doc = ParseXML.getChildrenByTagName(doc, 'compounddef')[0]
+               #extract descriptions
+               comp_name = extract_txt(ParseXML.getChildrenByTagName(doc, 
'compoundname')[0]).strip('\n')
+               comp_name = '   ---   ' + comp_name + '   ---   '
+               brief_desc = extract_txt(ParseXML.getChildrenByTagName(doc, 
'briefdescription')[0]).strip('\n')
+               detailed_desc = extract_txt(ParseXML.getChildrenByTagName(doc, 
'detaileddescription')[0]).strip('\n')
+               #combine
+               doc_strs.append('\n'.join([comp_name, brief_desc, 
detailed_desc]).strip('\n'))  
+       return '\n\n'.join(doc_strs)
+       
 class Block(_Block):
        
        ##for make source to keep track of indexes
@@ -89,7 +130,8 @@
                                        ports[key] = port
                                continue
                
-       def get_doc(self): return self._doc
+       def get_doc(self): 
+               return '\n'.join([self._doc.strip('\n'), 
extract_docs(self.get_key())]).strip('\n')
        
        def get_imports(self): return self._imports
        

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_complex_to_float.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_complex_to_float.xml
       2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_complex_to_float.xml
       2008-03-20 06:16:51 UTC (rev 8059)
@@ -33,9 +33,5 @@
                <type>float</type>
                <vlen>$vlen</vlen>
                <optional>1</optional>
-       </source>
-       <doc>
-Convert a stream of complex into 1 or 2 streams of float.
-The second stream of float is optional.
-       </doc>  
+       </source>       
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_deinterleave.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_deinterleave.xml
   2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_deinterleave.xml
   2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <vlen>$vlen</vlen>
                <nports>$num_streams</nports>
        </source>
-       <doc>
-deinterleave a single input into N outputs
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_float_to_complex.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_float_to_complex.xml
       2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_float_to_complex.xml
       2008-03-20 06:16:51 UTC (rev 8059)
@@ -24,8 +24,4 @@
                <name>out</name>
                <type>complex</type>
        </source>
-       <doc>
-Convert 1 or 2 streams of float into a stream of complex.
-The second stream of float is optional.
-       </doc>  
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_interleave.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_interleave.xml 
    2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_interleave.xml 
    2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-interleave N inputs to a single output
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_streams.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_streams.xml
      2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_streams.xml
      2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <vlen>$vlen</vlen>
                <nports>$num_streams</nports>
        </source>
-       <doc>
-convert a stream of items into a N streams of items
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_vector.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_vector.xml
       2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_stream_to_vector.xml
       2008-03-20 06:16:51 UTC (rev 8059)
@@ -64,7 +64,4 @@
                <type>$type</type>
                <vlen>$vlen*$num_items</vlen>
        </source>
-       <doc>
-convert a stream of items into a stream of blocks containing nitems_per_block
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_stream.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_stream.xml
      2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_stream.xml
      2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-Convert N streams of 1 item into a 1 stream of N items
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_vector.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_vector.xml
      2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_streams_to_vector.xml
      2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <type>$type</type>
                <vlen>$vlen*$num_streams</vlen>
        </source>
-       <doc>
-convert N streams of items to 1 stream of vector length N
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_stream.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_stream.xml
       2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_stream.xml
       2008-03-20 06:16:51 UTC (rev 8059)
@@ -64,7 +64,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-convert a stream of blocks of nitems_per_block items into a stream of items
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_streams.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_streams.xml
      2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/conversions/gr_vector_to_streams.xml
      2008-03-20 06:16:51 UTC (rev 8059)
@@ -65,7 +65,4 @@
                <vlen>$vlen</vlen>
                <nports>$num_streams</nports>
        </source>
-       <doc>
-Convert 1 stream of vectors of length N to N streams of items.
-       </doc>
 </block>

Modified: grc/branches/grc_reloaded/src/grc_gnuradio/blocks/misc/gr_throttle.xml
===================================================================
--- grc/branches/grc_reloaded/src/grc_gnuradio/blocks/misc/gr_throttle.xml      
2008-03-19 23:48:19 UTC (rev 8058)
+++ grc/branches/grc_reloaded/src/grc_gnuradio/blocks/misc/gr_throttle.xml      
2008-03-20 06:16:51 UTC (rev 8059)
@@ -63,7 +63,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-Throttle flow of samples such that the average rate does not exceed samples 
per second.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_file_sink.xml
===================================================================
--- grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_file_sink.xml    
2008-03-19 23:48:19 UTC (rev 8058)
+++ grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_file_sink.xml    
2008-03-20 06:16:51 UTC (rev 8059)
@@ -58,7 +58,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </sink>
-       <doc>
-File sink writes a data stream to a binary file.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_null_sink.xml
===================================================================
--- grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_null_sink.xml    
2008-03-19 23:48:19 UTC (rev 8058)
+++ grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_null_sink.xml    
2008-03-20 06:16:51 UTC (rev 8059)
@@ -52,7 +52,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </sink>
-       <doc>
-The null sink consumes a stream and does nothing.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_wavfile_sink.xml
===================================================================
--- grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_wavfile_sink.xml 
2008-03-19 23:48:19 UTC (rev 8058)
+++ grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sinks/gr_wavfile_sink.xml 
2008-03-20 06:16:51 UTC (rev 8059)
@@ -40,7 +40,4 @@
                <type>float</type>
                <nports>$nchan</nports>
        </sink>
-       <doc>
-Write N data streams to the .wav file.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_file_source.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_file_source.xml    
    2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_file_source.xml    
    2008-03-20 06:16:51 UTC (rev 8059)
@@ -72,8 +72,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-File source reads a binary file to a data stream.
-Repeat specifies if the file should be re-read when the end is reached.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_null_source.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_null_source.xml    
    2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_null_source.xml    
    2008-03-20 06:16:51 UTC (rev 8059)
@@ -52,7 +52,4 @@
                <type>$type</type>
                <vlen>$vlen</vlen>
        </source>
-       <doc>
-The null source outputs a stream of all zeros.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_sig_source_x.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_sig_source_x.xml   
    2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_sig_source_x.xml   
    2008-03-20 06:16:51 UTC (rev 8059)
@@ -97,8 +97,4 @@
                <name>out</name>
                <type>$type</type>
        </source>
-       <doc>
-Signal source creates a sinusoid, square, triangle, sawtooth or constant 
(dc-level) waveform. \
-In the case of complex output, the output is 2 waveforms (I and Q), 90 degrees 
out of phase.
-       </doc>
 </block>

Modified: 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_wavfile_source.xml
===================================================================
--- 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_wavfile_source.xml 
    2008-03-19 23:48:19 UTC (rev 8058)
+++ 
grc/branches/grc_reloaded/src/grc_gnuradio/blocks/sources/gr_wavfile_source.xml 
    2008-03-20 06:16:51 UTC (rev 8059)
@@ -42,8 +42,4 @@
                <type>float</type>
                <nports>$nchan</nports>
        </source>
-       <doc>
-Read N streams from a .wav file.
-Repeat specifies if the file should be re-read when the end is reached.
-       </doc>
 </block>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]