-
Notifications
You must be signed in to change notification settings - Fork 24
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
Update correct module dependecies #60
Comments
Great work, very interesting. What do you exactly call a "correct dependency", i.e. how did you build this oriented graph ? Indeed, according to the definition, one can consider that Standard depends upon TCollection and TCollection depends on Standard as well, which is not the case in your document, and which create circular dependencies between python modules. |
These are the minimum requirements how to make handles work correctly. I figured it out as written in some of the other issues. In practice, I simply added dependencies until I could compile everything. So, if there occurs a Handle(geom...), the geom model is obviously required. I did not look for circular dependencies though. Also did not try get to load modules. These are the minimum requirements to make everything compile. |
So... There are definitely some circular dependencies making problems. The question is, how to untie them. |
The smallest cycles are (In opencascade, they all belong to the same toolkit/dll):
and
|
Yesterday, I tried something : removing all imports from Graphic3d (at the end of the interface file, all the import Something.i). Of course it works and break the circular references between all these packages. I will try your suggestion. If it's ok, then let's go that way. On the midterm, if circular references become a stronger issue, it may become necessary to create a single GraphicStuff.i interface file including all of the Graphic3d, PrsMgr, Select3d etc. definitions. |
@rainman110 btw, what's the code to draw the graph ? I guess you've been using networkx but I didn't practice this package for a while |
@tpaviot No, used used the dot tool. It's standard on linux/maxOS. You can directly throw in the dependencies.txt into the tool. |
If we remove the class |
Tested with Graphic3d. I pushed a change to the generator and updated interfaces files as well see |
Fixed |
I used the whole day to figure out the correct dependencies. Please find attached the following file.
dependencies.txt
The text was updated successfully, but these errors were encountered: