For Java, packages are a reusable unit.
For Python, modules (as well as packages) are reusable units.
The package must be standalone.
If you put all the data objects in one big package, you don’t have something terribly reusable. You may not need all of these definitions of data transfer objects.
If you combine things "entity" - a model, views, controls, data access, etc. - then you have a reusable module that can be used in other applications.
source share