This is the quest for a easier to follow portage code.
Created attachment 195438 [details, diff] Part 1 - the easy stuff This patch moves out all classes that need no modification (except imports) and do not create circular dependencies between the modules.
(In reply to comment #1) > Created an attachment (id=195438) [edit] > Part 1 - the easy stuff Thanks, this is in svn r13663.
Created attachment 195483 [details, diff] simple stuff, had to move the getloadavg function into a module
(In reply to comment #3) > Created an attachment (id=195483) [edit] > simple stuff, had to move the getloadavg function into a module Thanks, this is in svn r13667.
Created attachment 195492 [details, diff] part 3 - easy stuff, some test are going to be broken
(In reply to comment #5) > Created an attachment (id=195492) [edit] > part 3 - easy stuff, some test are going to be broken Thanks, this is in svn r13668.
Created attachment 195498 [details, diff] part 4 - had to move some functions into their own files. one more patch and all the classes are in their own file.
(In reply to comment #7) > Created an attachment (id=195498) [edit] > part 4 - had to move some functions into their own files. one more patch and > all the classes are in their own file. Thanks, this is in svn r13669.
Created attachment 195530 [details, diff] part 5 - depgraph + Scheduler, all classes are moved out now. Had to use lazy imports to circumvent the circular dependency between these two classes.
Created attachment 195537 [details, diff] part 6 - move the action_* functions (and related) into actions.py
Created attachment 195538 [details, diff] actions.py
If you agree, I'd say this is done.
(In reply to comment #9) > Created an attachment (id=195530) [edit] > part 5 - depgraph + Scheduler, all classes are moved out now. Had to use lazy > imports to circumvent the circular dependency between these two classes. > There is only one reference to Scheduler in depgrapg: self._opts_no_restart = Scheduler._opts_no_restart I think it should get this info from somewhere else.
(In reply to comment #9) > Created an attachment (id=195530) [edit] > part 5 - depgraph + Scheduler, all classes are moved out now. Had to use lazy > imports to circumvent the circular dependency between these two classes. Thanks, this is in svn r13672. (In reply to comment #10) > Created an attachment (id=195537) [edit] > part 6 - move the action_* functions (and related) into actions.py Thanks, this is in svn r13672. (In reply to comment #13) > There is only one reference to Scheduler in depgrapg: > self._opts_no_restart = Scheduler._opts_no_restart > > I think it should get this info from somewhere else. Yeah, we can just hardcode it if it simplifies things.
This is fixed in 2.2_rc34.