New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python3 import style causes doxygen to ignore some inheritances (Origin: bugzilla #726219) #5436

doxygen opened this Issue Jul 2, 2018 · 0 comments


None yet
1 participant

doxygen commented Jul 2, 2018

status RESOLVED severity normal in component general for ---
Reported in version 1.8.6 on platform Other
Assigned to: Dimitri van Heesch

Original attachment names and IDs:

On 2014-03-13 06:44:43 +0000, qz wrote:

Created attachment 271685
config file + two very short .py files that reproduce the bug

An old python2's style of import statement was: "from foo import *"

In python3, it becomes "from .foo import *"
and also such statements do appear: "from . import something"

This small dot prevents doxygen from linking the classes correctly. The diagrams appear to be scattered in different sections instead of having only one diagram containing all classes.

In the attached example, run "doxygen Doxyfile" will create the wrong doc. (Also already included). Open html/index.html and check Classes > Root: the classes B1 and C1 are missing

If you suppress the dot (in, just change the line "from .root_classes import *" to "from root_classes import *"), and then run "doxygen Doxyfile", you'll see that the classes B1 and C1 now show up when checking Classes > Root.

The example I provide does not execute correctly BUT it shows the bug very clearly and the same bug shows up on my project, which DOES execute correctly (but which is too big to provide as example) (plus, the workaround - see below, that's no patch... - that I applied successfully on my project, consists of deleting these dots that seem to cause problem to doxygen).

More details:

  • I have also tested this with doxygen (original install from my distro) but also doxygen-1.6.3/ and with doxygen-1.8.6/ (compiled from source)
  • Kernal info: Linux 3.2.0-35-generic # 55-Ubuntu SMP i686 i386 GNU/Linux
  • I use Python 3.2.3

I make a copy of my project and in the main directory, I change the new statements back to the old ones by executing:
sed -i 's/from . //g' /.py //.py ///.py ////.py
sed -i 's/from ./from /g' /.py //.py ///.py ////.py

For information, the project that executes correctly and where the bug shows up:
Python2 version: (no bug when doxygenning)
Python3 version: (bug shows up)
For now, on the dev branch, the last commit (116adc0) executes fines

On 2014-04-12 14:04:34 +0000, Dimitri van Heesch wrote:

Confirmed. Should be fixed in the next GIT update.

On 2014-04-21 10:09:26 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.7. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant (preferrably in the form of a self-contained example).

On 2016-01-09 18:16:02 +0000, wrote:

It would be easier for me to monitor that code change when you would point to the concrete commit or if you would use the Issue-system of your git-hoster.

It would be easier and more secure than for you, too. Because I am able to test the new code quickly out of git.

On 2016-01-09 18:20:57 +0000, Dimitri van Heesch wrote:

For this just look at the change log and search for this bug number:

I resolve all assigned bugs in one go, so I cannot put different text in each report.

On 2016-01-09 18:21:58 +0000, Dimitri van Heesch wrote:

Sorry link should be

On 2016-01-09 18:43:58 +0000, wrote:

Sorry, this was definitly the wrong bug. :)

@doxygen doxygen closed this Jul 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment