In C# code can be organized into multiple projects. Say I have two projects ProjectA and ProjectB. I can setup ProjectB to reference ProjectA. Once I do that the classes in ProjectB can use the classes defined in ProjectA. But classes in ProjectA cannot use the classes defined in ProjectB, and ProjectA cannot also be made to reference ProjectB.
Is there any equivalent to this in python? I think a package in python is a close equivalent to a project in C#. Nothing seems to prevent circular dependencies between packages in python though. I can have modules in PackageB reference modules in PackageA, and at the same time modules in PackageA reference modules in PakcageB. This can quickly devolve into a messy web of dependencies between packages.
Are there constructs or tools in python to prevent circular dependencies the way that projects do in c#?