Ticket #973 defect closed fixed

Opened 9 years ago

Last modified 9 years ago

epyrun dies with an internal error

Reported by: Ycros Owned by:
Priority: highest Milestone:
Component: Keywords: documentation
Cc: radix, spiv, itamarst, jknight, Ycros Branch:
Author: Launchpad Bug:

Description


Change History

1

Changed 9 years ago by Ycros

When running admin/epyrun, it fails with the message:   
"INTERNAL ERROR: Cannot create a UID for a str without a base UID."  
  
Traceback when run with --debug:  
 Traceback (most recent call last): 
  File "admin/epyrun", line 401, in ? 
    cli() 
  File "/usr/lib64/python2.4/site-packages/epydoc/cli.py", line 110, in cli 
    docmap = _make_docmap(modules, options) 
  File "/usr/lib64/python2.4/site-packages/epydoc/cli.py", line 483, in 
_make_docmap 
    try: d.add(module) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2954, in add 
    self._add(objID) 
  File "admin/epyrun", line 223, in _add 
    return orig_add(self, objID) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2968, in 
_add 
    self._add(link.target()) 
  File "admin/epyrun", line 223, in _add 
    return orig_add(self, objID) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2971, in 
_add 
    self._add(link.target()) 
  File "admin/epyrun", line 223, in _add 
    return orig_add(self, objID) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2990, in 
_add 
    self._add(objID.cls()) 
  File "admin/epyrun", line 223, in _add 
    return orig_add(self, objID) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2976, in 
_add 
    self.add_one(link.target()) 
  File "/usr/lib64/python2.4/site-packages/epydoc/objdoc.py", line 2924, in 
add_one 
    clsdoc = self.data[objID.parent()] 
KeyError: <UID: zope.interface.interface.Specification>

2

Changed 9 years ago by itamarst

I don't have this problem, I suspect because I don't have the zope.interface C
extension loaded. If we got epyrun to make sure this module is not loaded (and
it's only used for optimization) we should be able to generate API docs for 2.0.
Something like:

  sys.modules["zope.interface._zope_interface_coptimizations"] = None

should do it.

3

Changed 9 years ago by spiv

Itamar's hack doesn't make epyrun succeed for me.  It dies at:

  [ 98%] ......................................
INTERNAL ERROR: string index out of range

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! An internal error occured.  To see the exception that caused the !!
!! error, use the '--debug' option.                                 !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

By that point it has generated 2644 HTML files out of 2678, though...

4

Changed 9 years ago by spiv

I get better results with CVS epydoc, though.  It manages to write out 11815
HTML files (presumably the standard 2678 files + all the extras my hack to
epyrun makes it write).  It still give the "An internal error occured" message
(and fails to run at all under --debug), but a quite poke at the HTML in my web
browser looks good.

radix, do you want me to send you a tarball of the result so you can put it on
the website?

5

Changed 9 years ago by spiv

So, foom has fixed epyrun to work with epydoc 2.1 as well as current CVS. 
epyrun also seems to depend on a newish zope.interface.  Otherwise, it generates
HTML just fine rather than dying.

Therefore I'm resolving this issue.

6

Changed 3 years ago by <automation>

  • owner spiv deleted
Note: See TracTickets for help on using tickets.