Skip to content

MeanEstimator circular dependency #1102

@j-c-c

Description

@j-c-c

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)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions