ComputationalCryoEM / ASPIRE-Python

Algorithms for Single Particle Reconstruction
http://spr.math.princeton.edu
GNU General Public License v3.0
45 stars 21 forks source link

MeanEstimator circular dependency #1102

Closed j-c-c closed 3 months ago

j-c-c commented 3 months ago

Came across this circular dependency importing MeanEstimator:

>>> from aspire.reconstruction import MeanEstimator
2024-03-07 09:22:11,526 CRITICAL [root] cannot import name 'Estimator' from partially initialized module 'aspire.reconstruction' (most likely due to a circular import) (/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py)
Traceback:
  File "<stdin>", line 1, in <module>
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py", line 1, in <module>
    from .estimator import Estimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/estimator.py", line 5, in <module>
    from aspire.basis import Coef, FFBBasis3D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/__init__.py", line 17, in <module>
    from .fspca import FSPCABasis
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/fspca.py", line 7, in <module>
    from aspire.covariance import BatchedRotCov2D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/__init__.py", line 1, in <module>
    from .covar import CovarianceEstimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/covar.py", line 12, in <module>
    from aspire.reconstruction import Estimator, FourierKernel, MeanEstimator

Error in sys.excepthook:
Traceback (most recent call last):
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/exceptions.py", line 87, in handle_exception
    raise exc_value
  File "<stdin>", line 1, in <module>
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py", line 1, in <module>
    from .estimator import Estimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/estimator.py", line 5, in <module>
    from aspire.basis import Coef, FFBBasis3D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/__init__.py", line 17, in <module>
    from .fspca import FSPCABasis
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/fspca.py", line 7, in <module>
    from aspire.covariance import BatchedRotCov2D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/__init__.py", line 1, in <module>
    from .covar import CovarianceEstimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/covar.py", line 12, in <module>
    from aspire.reconstruction import Estimator, FourierKernel, MeanEstimator
ImportError: cannot import name 'Estimator' from partially initialized module 'aspire.reconstruction' (most likely due to a circular import) (/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py)

Original exception was:
Traceback (most recent call last):
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/exceptions.py", line 87, in handle_exception
    raise exc_value
  File "<stdin>", line 1, in <module>
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py", line 1, in <module>
    from .estimator import Estimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/estimator.py", line 5, in <module>
    from aspire.basis import Coef, FFBBasis3D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/__init__.py", line 17, in <module>
    from .fspca import FSPCABasis
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/basis/fspca.py", line 7, in <module>
    from aspire.covariance import BatchedRotCov2D
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/__init__.py", line 1, in <module>
    from .covar import CovarianceEstimator
  File "/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/covariance/covar.py", line 12, in <module>
    from aspire.reconstruction import Estimator, FourierKernel, MeanEstimator
ImportError: cannot import name 'Estimator' from partially initialized module 'aspire.reconstruction' (most likely due to a circular import) (/Users/carmichael/Work/ASPIRE-python.actions_update/src/aspire/reconstruction/__init__.py)
j-c-c commented 3 months ago

closed by #1103