I have a package called "library". The directory structure looks like this:
-library
+src
*pkg1.py
*pkg2.py
-pyproject.toml
-__init__.py
Currently, the import looks like:
import library.src.pkg1 as pkg1
The pyproject.toml contains:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "library"
version = "0.0.1"
dependencies = []
How do I make it so that the import is shorter? Ideally:
import library.pkg1
In the library/init.py file, you can import the modules from the src subpackage and expose them at the package level. This way, when users import library.pkg1, it will internally reference library.src.pkg1.
Update library/init.py like this:
from .src.pkg1 import *
from .src.pkg2 import *
This makes all the contents of pkg1.py and pkg2.py available directly under library.
Usage:
Now, you can import the modules like this:
import library.pkg1
import library.pkg2
or directly import specific items from those modules:
from library.pkg1 import SomeClassOrFunction
from library.pkg2 import AnotherClassOrFunction