aimclub / aimclub/FEDOT

Disentangle modules to reduce (avoid) import cycles

未關閉
#961 1 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
architecture refactoring
主要語言
Python
星號
712
分支
96
平均合併
3 天 1 小時
30 天內合併 PR
10

描述

Import cycles are somewhat frequent in framework. This points to the problem of suffering separation between modules. And everybody knows, that the lesser the modularity and the more entangled the code --- the more difficult to extend and change it.

For example, one of the known cycles is: `serializer` imports a lot of other modules, but at the same time some modules have imports from `serializer`. That's a cycle on the level of modules.

[Some discussion](https://github.com/nccr-itmo/FEDOT/pull/957#discussion_r1006956974) pertinent to the issue.

Solution of this issue is some rearrangement of modules/files/classes. It can be break some things that depend on the framework, and break backward compatibility with anything that depends on specific classpaths (e.g. old saved OptHistory). But it should be done at some point.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。