[Top][All Lists]
[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>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [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,
jblum <=