ML4GW / aframev2

Detecting binary black hole mergers in LIGO with neural networks
MIT License
6 stars 14 forks source link

Circular imports in `projects/train/train/data` #142

Closed wbenoit26 closed 4 months ago

wbenoit26 commented 4 months ago

The __init__.py in projects/train/train/data has from .supervised import *. In supervised, the __init__.py has

from .supervised import SupervisedAframeDataset
from .time_domain import TimeDomainSupervisedAframeDataset

And in time_domain.py, we have from train.data.supervised import SupervisedAframeDataset. This all works because SupervisedAframeDataset is imported before TimeDomainSupervisedAframeDataset. However, pre-commit puts from.frequency_domain import FrequencyDomainSupervisedAframeDataset before the SupervisedAframeDataset import. This leads to a circular import.

I think the options are to either add another directory level, or tell pre-commit to skip that line. Am I missing a nicer option?

EthanMarx commented 4 months ago

I think we just get rid of the from .supervised import * in train.train.data.__init__. This would only get triggered if we do something like

from train.data import SupervisedAframeDataset instead of the more explicit from train.data.supervised import SupervisedAframeDataset

wbenoit26 commented 4 months ago

Oh true, I assumed something like that was happening, but if not we can just remove it.