3 ms·
I second the Python one. Why the wierd distinction between packages, modules, and things in files? I believe all of these three should give me os.path.isdir:
by captainmuon 13y ago
I second the Python one. Why the wierd distinction between packages, modules, and things in files?
I believe all of these three should give me os.path.isdir:
import os
import os.path
import os.path.isdir
os.path.isdir(...)
And to get isdir() directly, I would use either:
from os.path import isdir
import os.path.isdir as isdir
This should work if path is either a package (a directory), a module (a file), or an object defined in os.py!
Sometimes, for some reason if I only import a module, I can't use submodules. So `import os` wouldn't give `os.path.isdir`. I don't know when that occurs, maybe it was in an ancient version of python. But it leaves me with an uneasy feeling every time I use a submodule. Anyone know when this happens?
Last but not least, it should be easier to import stuff from above the script. If my script lives at ./tools/foobar.py, and I want to import ./helper.py, it should just be something like
# ./tools/foobar.py
from .. import helper
$ python ./tools/foobar.py # simple run-a-script syntax
and not
$ python -m tools/foobar # hideous run-a-module syntax
or what I'm using now
# ./tools/foobar.py
# hideous boilerplate header
import sys, os
SCRIPTDIR = os.path.relpath(os.path.dirname(__file__) or ".")
PARENTDIR = os.path.relpath(os.path.join(SCRIPTDIR, ".."))
sys.path.insert(0, PARENTDIR)
import helper
$ python ./tools/foobar.py # simple run-a-script syntax