AFAIKT the "three" are readability, naming conflicts and source location.
On 05/06/2020 01:15, DL Neil via Python-list wrote:
- how do you like to balance these three (and any other criteria)?
Readability is king. Or queen, if you prefer. Anything that damages readability drops dramatically in its desirability. One consequence of that is that I rarely use "import ... as", since as you mentioned, renamed libraries are a rich source of WTF moments. I would use "import numpy as np" (if I ever used numpy) because it seems to be standard, but I wouldn't type "import pygame as pg" despite having used PyGame extensively in the past.
I tend to use "from xxx import yy_yy, zzzz" when I'm not importing many things from a library and their names are sufficiently obvious. The definitions of "not many" and "sufficiently obvious" are pretty flexible. In particular, I'll list more items as the qualified names get longer, as you noted. Source location is a non-issue; it's trivial to jump to the imports at the top of the file, look it up and jump back again. Or have two buffers viewing the same file; that's a technique I use quite a lot anyway. If I need to know the signature, that's what documentation is for.
I would never rename an object I've imported using "as". It's just not worth the inevitable heartache. If that means I have namespace collisions, that's either a vote to use the qualified name or to change the name of whatever I wrote that clashes with it.
- is your preference (or selection) influenced by the facilities offered by your favorite editor/IDE?
Not really. I'm an EMACS user, so any of the "fancy" IDE handiwork is immediately out. The only reason you need an IDE is if your support tools suck (sorry, Windows users).
- does your decision differ according to whether the 'target module' is one of yours, from the PSL, from some third party, corporate, ...?
I'm more likely to change my own module to fit :-)
- do you prefer PSL's importlib over Python's native import-s, for one of these (or any other) reason?
Um, why would I? -- Rhodri James *-* Kynesim Ltd -- https://mail.python.org/mailman/listinfo/python-list