# New splat import proposal

**URL:** <https://discuss.python.org/t/new-splat-import-proposal/108506>\
**Category:** Ideas\
**Created:** [August 10, 2026, 8:52pm UTC](https://discuss.python.org/t/new-splat-import-proposal/108506 "2026-08-10T20:52:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nosam1998](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/nosam1998/32/36955_2.png) [@nosam1998](https://discuss.python.org/u/nosam1998)\
**Post date:** [August 10, 2026, 8:52pm UTC](https://discuss.python.org/t/new-splat-import-proposal/108506/1 "2026-08-10T20:52:31Z")

</div>

### Proposal:

```python
# main.py
from utils.* import ClassFromA, ClassFromB, func_from_moreutils

```

Given the following directory/file structure:

- utils/
  - A.py
  - B.py
  - moreutils.py

- main.py

Assuming A, B, and moreutils all have multiple functions/classes in them, I want to be able to do `from utils.* import ClassFromA, ClassFromB, func_from_moreutils`.

Normally this would look like `from utils.A import ClassFromA` then `from utils.B import ClassFromB` finally `from utils.moreutils import func_from_moreutils`.

### Has this already been discussed elsewhere?

No response given

### Links to previous discussion of this feature:

_No response_

Copied from: [New splat import proposal · Issue #155186 · python/cpython · GitHub](https://github.com/python/cpython/issues/155186)

---

<div class="post-metadata">

**Author:** ![bwoodsend](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/bwoodsend/32/4027_2.png) [@bwoodsend](https://discuss.python.org/u/bwoodsend)\
**Post date:** [August 10, 2026, 9:19pm UTC](https://discuss.python.org/t/new-splat-import-proposal/108506/2 "2026-08-10T21:19:21Z")

</div>

That’s what the ` __init__.py` is for. It lets you keep your internals structured without forcing that same, overly nested structure of imports on the user side.

```python
# utils/ __init__.py
from .A import ClassFromA
from .B import ClassFromB
from .moreutils import func_from_moreutils

```

Then just `import utils; utils.ClassFromA(); utils.ClassFromB()` or `from utils import ClassFromA, ClassFromB, func_from_moreutils`.

---

<div class="post-metadata">

**Author:** ![jonathandung](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/jonathandung/32/35459_2.png) [@jonathandung](https://discuss.python.org/u/jonathandung)\
**Post date:** [August 10, 2026, 11:18pm UTC](https://discuss.python.org/t/new-splat-import-proposal/108506/3 "2026-08-10T23:18:44Z")

</div>

Though this will make for more idiomatic and shorter code in a subset of cases, that subset is too small. No symbols may collide (no two submodules have the same attribute) and the order of fetching the symbols cannot matter (since attribute access can be overridden to have dynamic behaviour that changes the state of the program).
