Whenever I do
from 'x' import 'y' I was wondering which one is considered the 'module' and which is the 'package', and why it isn't the other way around?
A Python module is simply a Python source file, which can expose classes, functions and global variables.
When imported from another Python source file, the file name is treated as a namespace.
A Python package is simply a directory of Python module(s).
For example, imagine the following directory tree in
mypackage/__init__.py <-- this is what tells Python to treat this directory as a package mypackage/mymodule.py
So then you would do:
from mypackage.mymodule import myclass