[svn r38183] Made that py.execnet.Channel (referring to py.__.execnet.channel.Channel) is
picked up by the apigen doc generator, fixed some bugs that made that that didn't work previously. --HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									e89d5e5880
								
							
						
					
					
						commit
						1c1df46a55
					
				|  | @ -29,7 +29,7 @@ def get_documentable_items_pkgdir(pkgdir): | ||||||
| def get_documentable_items(pkgdir): | def get_documentable_items(pkgdir): | ||||||
|     pkgname, pkgdict = get_documentable_items_pkgdir(pkgdir) |     pkgname, pkgdict = get_documentable_items_pkgdir(pkgdir) | ||||||
|     from py.__.execnet.channel import Channel |     from py.__.execnet.channel import Channel | ||||||
|     # pkgdict['execnet.Channel'] = Channel  # XXX doesn't work  |     pkgdict['execnet.Channel'] = Channel | ||||||
|     return pkgname, pkgdict |     return pkgname, pkgdict | ||||||
| 
 | 
 | ||||||
| def build(pkgdir, dsa, capture): | def build(pkgdir, dsa, capture): | ||||||
|  |  | ||||||
|  | @ -136,7 +136,7 @@ def enumerate_and_color(codelines, firstlineno, enc): | ||||||
|             break |             break | ||||||
|     return snippet |     return snippet | ||||||
| 
 | 
 | ||||||
| def get_obj(pkg, dotted_name): | def get_obj(dsa, pkg, dotted_name): | ||||||
|     full_dotted_name = '%s.%s' % (pkg.__name__, dotted_name) |     full_dotted_name = '%s.%s' % (pkg.__name__, dotted_name) | ||||||
|     if dotted_name == '': |     if dotted_name == '': | ||||||
|         return pkg |         return pkg | ||||||
|  | @ -146,8 +146,11 @@ def get_obj(pkg, dotted_name): | ||||||
|         marker = [] |         marker = [] | ||||||
|         ret = getattr(ret, item, marker) |         ret = getattr(ret, item, marker) | ||||||
|         if ret is marker: |         if ret is marker: | ||||||
|             raise NameError('can not access %s in %s' % (item, |             try: | ||||||
|                                                          full_dotted_name)) |                 return dsa.get_obj(dotted_name) | ||||||
|  |             except KeyError: | ||||||
|  |                 raise NameError('can not access %s in %s' % (item, | ||||||
|  |                                  full_dotted_name)) | ||||||
|     return ret |     return ret | ||||||
| 
 | 
 | ||||||
| # the PageBuilder classes take care of producing the docs (using the stuff | # the PageBuilder classes take care of producing the docs (using the stuff | ||||||
|  | @ -314,7 +317,7 @@ class ApiPageBuilder(AbstractPageBuilder): | ||||||
|     def build_callable_view(self, dotted_name): |     def build_callable_view(self, dotted_name): | ||||||
|         """ build the html for a class method """ |         """ build the html for a class method """ | ||||||
|         # XXX we may want to have seperate |         # XXX we may want to have seperate | ||||||
|         func = get_obj(self.pkg, dotted_name) |         func = get_obj(self.dsa, self.pkg, dotted_name) | ||||||
|         docstring = func.__doc__  |         docstring = func.__doc__  | ||||||
|         if docstring: |         if docstring: | ||||||
|             docstring = deindent(docstring) |             docstring = deindent(docstring) | ||||||
|  | @ -348,7 +351,7 @@ class ApiPageBuilder(AbstractPageBuilder): | ||||||
| 
 | 
 | ||||||
|     def build_class_view(self, dotted_name): |     def build_class_view(self, dotted_name): | ||||||
|         """ build the html for a class """ |         """ build the html for a class """ | ||||||
|         cls = get_obj(self.pkg, dotted_name) |         cls = get_obj(self.dsa, self.pkg, dotted_name) | ||||||
|         # XXX is this a safe check? |         # XXX is this a safe check? | ||||||
|         try: |         try: | ||||||
|             sourcefile = inspect.getsourcefile(cls) |             sourcefile = inspect.getsourcefile(cls) | ||||||
|  | @ -419,7 +422,7 @@ class ApiPageBuilder(AbstractPageBuilder): | ||||||
| 
 | 
 | ||||||
|     def build_namespace_view(self, namespace_dotted_name, item_dotted_names): |     def build_namespace_view(self, namespace_dotted_name, item_dotted_names): | ||||||
|         """ build the html for a namespace (module) """ |         """ build the html for a namespace (module) """ | ||||||
|         obj = get_obj(self.pkg, namespace_dotted_name) |         obj = get_obj(self.dsa, self.pkg, namespace_dotted_name) | ||||||
|         docstring = obj.__doc__ |         docstring = obj.__doc__ | ||||||
|         snippet = H.NamespaceDescription( |         snippet = H.NamespaceDescription( | ||||||
|             H.NamespaceDef(namespace_dotted_name), |             H.NamespaceDef(namespace_dotted_name), | ||||||
|  |  | ||||||
|  | @ -110,7 +110,7 @@ def setup_fs_project(name): | ||||||
| 
 | 
 | ||||||
| def test_get_documentable_items(): | def test_get_documentable_items(): | ||||||
|     fs_root, package_name = setup_fs_project('test_get_documentable_items') |     fs_root, package_name = setup_fs_project('test_get_documentable_items') | ||||||
|     pkgname, documentable = apigen.get_documentable_items( |     pkgname, documentable = apigen.get_documentable_items_pkgdir( | ||||||
|                                                fs_root.join(package_name)) |                                                fs_root.join(package_name)) | ||||||
|     assert pkgname == 'pak' |     assert pkgname == 'pak' | ||||||
|     assert sorted(documentable.keys()) ==  [ |     assert sorted(documentable.keys()) ==  [ | ||||||
|  |  | ||||||
|  | @ -35,13 +35,17 @@ def setup_pkg(testname): | ||||||
|         def test_foo(): |         def test_foo(): | ||||||
|             assert foo(1) == 2 |             assert foo(1) == 2 | ||||||
|     """)) |     """)) | ||||||
|     initfile = pkgpath.ensure('__init__.py').write(py.code.Source("""\ |     initfile = pkgpath.ensure('__init__.py').write(py.code.Source(""" | ||||||
|         import py |         import py | ||||||
|         from py.__.initpkg import initpkg |         from py.__.initpkg import initpkg | ||||||
|         initpkg(__name__, exportdefs={ |         initpkg(__name__, exportdefs={ | ||||||
|             'sub.foo': ('./mod.py', 'foo'), |             'sub.foo': ('./mod.py', 'foo'), | ||||||
|         }) |         }) | ||||||
|     """)) |     """)) | ||||||
|  |     initfile = pkgpath.ensure('apigen/apigen.py').write(py.code.Source(""" | ||||||
|  |         from py.__.apigen.apigen import build, \ | ||||||
|  |              get_documentable_items_pkgdir as get_documentable_items | ||||||
|  |     """)) | ||||||
|     return pkgpath |     return pkgpath | ||||||
| 
 | 
 | ||||||
| def test_run_tests(): | def test_run_tests(): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue