class BlockDocumenter(FunctionDocumenter): """ Specialized Documenter subclass for new style gnuradio blocks. It merges together the documentation for the generator function (e.g. wavelet.squash_ff) with the wrapped sptr (e.g. wavelet.squash_ff_sptr) to keep the documentation tidier. """ objtype = 'block' directivetype = 'function' # Don't want to use this for generic functions for give low priority. priority = -10 def __init__(self, *args, **kwargs): super(BlockDocumenter, self).__init__(*args, **kwargs) # Get class name sptr_name = self.name + '_sptr' # Create a Class Documenter to create documentation for the classes members. self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent) self.classdoccer.doc_as_attr = False self.classdoccer.real_modname = self.classdoccer.get_real_modname() self.classdoccer.options.members = ALL self.classdoccer.options.exclude_members = common_block_members self.classdoccer.parse_name() self.classdoccer.import_object() def document_members(self, *args, **kwargs): return self.classdoccer.document_members(*args, **kwargs)
class OldBlockDocumenter(FunctionDocumenter): """ Specialized Documenter subclass for gnuradio blocks. It merges together the documentation for the generator function (e.g. gr.head) with the wrapped sptr (e.g. gr.gr_head_sptr) to keep the documentation tidier. """ objtype = 'oldblock' directivetype = 'function' # Don't want to use this for generic functions for give low priority. priority = -10 def __init__(self, *args, **kwargs): super(OldBlockDocumenter, self).__init__(*args, **kwargs) # Get class name bits = self.name.split('.') if len(bits) != 3 or bits[0] != 'gnuradio': raise ValueError("expected name to be of form gnuradio.x.y but it is {0}".format(self.name)) sptr_name = 'gnuradio.{0}.{0}_{1}_sptr'.format(bits[1], bits[2]) # Create a Class Documenter to create documentation for the classes members. self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent) self.classdoccer.doc_as_attr = False self.classdoccer.real_modname = self.classdoccer.get_real_modname() self.classdoccer.options.members = ALL self.classdoccer.options.exclude_members = common_block_members self.classdoccer.parse_name() self.classdoccer.import_object() def document_members(self, *args, **kwargs): return self.classdoccer.document_members(*args, **kwargs)
class OldBlockDocumenter(FunctionDocumenter): """ Specialized Documenter subclass for gnuradio blocks. It merges together the documentation for the generator function (e.g. gr.head) with the wrapped sptr (e.g. gr.gr_head_sptr) to keep the documentation tidier. """ objtype = 'oldblock' directivetype = 'function' # Don't want to use this for generic functions for give low priority. priority = -10 def __init__(self, *args, **kwargs): super(OldBlockDocumenter, self).__init__(*args, **kwargs) # Get class name bits = self.name.split('.') if len(bits) != 3 or bits[0] != 'gnuradio': raise ValueError( "expected name to be of form gnuradio.x.y but it is {0}". format(self.name)) sptr_name = 'gnuradio.{0}.{0}_{1}_sptr'.format(bits[1], bits[2]) # Create a Class Documenter to create documentation for the classes members. self.classdoccer = ClassDocumenter(self.directive, sptr_name, indent=self.content_indent) self.classdoccer.doc_as_attr = False self.classdoccer.real_modname = self.classdoccer.get_real_modname() self.classdoccer.options.members = ALL self.classdoccer.options.exclude_members = common_block_members self.classdoccer.parse_name() self.classdoccer.import_object() def document_members(self, *args, **kwargs): return self.classdoccer.document_members(*args, **kwargs)
def test_can_document_member(self): # Regression test for enthought/traits#1238 with self.create_directive() as directive: class_documenter = ClassDocumenter( directive, __name__ + ".FindTheTraits" ) class_documenter.parse_name() class_documenter.import_object() self.assertTrue( TraitDocumenter.can_document_member( INSTANCEATTR, "an_int", True, class_documenter, ) ) self.assertTrue( TraitDocumenter.can_document_member( INSTANCEATTR, "another_int", True, class_documenter, ) ) self.assertFalse( TraitDocumenter.can_document_member( INSTANCEATTR, "magic_number", True, class_documenter, ) ) self.assertFalse( TraitDocumenter.can_document_member( INSTANCEATTR, "not_a_trait", True, class_documenter, ) )
def import_object(self): reload(import_module(self.modname)) return ClassDocumenter.import_object(self)