Complexity control is the central problem of writing software in the real world.Eric S. Raymond
Hello dear readers! first i hope everyone is safe. Secondly, it is the mondy-iest WEDNESDAY ever! Ergo its time for a Snake_Byte!
Grabbing a tome off the bookshelf we randomly open and it and the subject matter today is Module Packages. So there will not be much if any code but more discussion as it were on the explanations thereof.
imports are the mainstay of the snake language.
Python module is a file that has a
.py extension, and a Python
package is any folder that has modules inside it (or if your still in Python 2, a folder that contains an
What happens when you have code in one module that needs to access code in another module or package? You
In python a directory is said to be a package thus imports are known as
package imports. What happens in
import is that the code is turned into a directory from a local (your come-pooter) or that cloud thing everyone talks about these days.
It turns out that hierarchy simplifies the search path complexities with organizing files and trends toward simplifying search path settings.
Absolute imports are preferred because they are direct. It is easy to tell exactly where the imported resource is located and what it is just by looking at the statement. Additionally,
absolute imports remain valid even if the current location of the import statement changes. In addition, PEP 8 explicitly recommends absolute imports. However, sometimes they get so complicated you want to use
So how do
import dir1.dir2.mod from dir1.dir2.mod import x
Note the “dotted path” in these statements is assumed to correspond to the path through the directory on the machine you are developing on. In this case it leads to
mod.py So in this case directory
dir1 which is subdirectory
dir2 and contains the module
mod.py. Historically the dot path syntax was created for platform neutrality and from a technical standpoint paths in
import statements become object paths.
In general the leftmost module in the search path unless it is a home directory top level file is exactly where the file presides.
In Python 3.x packages changed slightly and only applies to imports within files located in package directories. The changes include:
- Modifies the module import search path semantic to skip the package’s own directory by default. These checks are essentially absolute imports
- Extension of the syntax f from statements to allow them to explicitly request that imports search the packages directories only, This is the relative import mentioned above.
so for instance:
from.import spam #relative to this package
Instructs Python to
import a module named
spam located in the same package directory as the file in which this statement appears.
from.spam import name
states from a module named
spam located in the same package as the file that contains this statement
import the variable
Something to remember is that an import without a leading dot always causes Python to skip the relative components of the module import search path and looks instead in absolute directories that
sys.path contains. You can only force the dot nomenclature with relative imports with the
Packages are standard now in Python 3.x. It is now very common to see very large third-party extensions deployed as part of a set of package directories rather than flat list modules. Also, caveat emptor using the relative import function can save memory. Read the documentation. Many times importing AllTheThings results in major memory usage an issue when you are going to production with highly optimized python.
There is much more to this
import stuff. Transitive Module Reloads, Managing other programs with Modules (meta-programming), Data Hiding etc. i urge you to go into the LazyWebTM and poke around.
in addition a very timely post:
PyPl is running a survey on packages:
Take the survey here -> PyPl Survey on Packages
Here some great comments and suggestions via Y-Combinator News:
That is all for now. i think next time we are going to delve into some more scientific or mathematical snake language bytes.
#iwishyouwater <- Wedge top 50 wipeouts. Smoookifications!
MUZAK TO BLOG BY: NIN – “The Downward Spiral (Deluxe Edition)”. A truly phenomenal piece of work. NIN second album, trent reznor told jimmy iovine upon delivering the concept album “Im’ Sorry I had to…”. In 1992, Reznor moved to 10050 Cielo Drive in Benedict Canyon, Los Angeles, where actress Sharon Tate formally lived and where he made the record. i believe it changed the entire concept of music and created a new genre. From an engineering point of view, Digidesign‘s TurboSynth and Pro Tools were used extensively.