Bug: Subpackage circular imports not detected
- Dominant language
- Python
- Stars
- 363
- Forks
- 24
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
My example is the following package structure where `package.subpackage.module` imports from `package.module` and visa-versa.
```
.
├── package
│ ├── __init__.py
│ ├── module.py
│ └── subpackage
│ ├── __init__.py
│ └── module.py
└── run.py
```
#### run.py
```python
from package.module import Anything
```
#### package/subpackage/module.py
```python
from package.module import Anything
class Thing:
pass
```
#### package/module.py
```python
from package.subpackage.module import Thing
class Anything:
pass
```
## Expected behaviour
I consider this a circular import but pycycle detects no errors.
Executing `run.py` results in a circular import error:
```
Traceback (most recent call last):
File "run.py", line 1, in
from package.module import Anything
File "/home/dom/Code/package/package/module.py", line 1, in
from package.subpackage.module import Thing
File "/home/dom/Code/package/package/subpackage/module.py", line 1, in
from package.module import Anything
ImportError: cannot import name 'Anything' from 'package.module' (/home/dom/Code/package/package/module.py)
```
An archive containing the package structure and code.
[package.tar.gz](https://github.com/bndr/pycycle/files/4422375/package.tar.gz)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.