Hello everyone,

I hope that E-Mail reaches someone. Since its the first time I am using
a thing like a mailing list, I am saying sorry in advance for any
inconvience caused ;-)


However, I am writing you because of a small idea / feature request for
the python import mechanism, which caused me some (in my opinion
unnecessary) trouble yesterday:
I noticed that when using an import statement, the following seems to be
true:

Current state:

 * Python will search for the first TOP-LEVEL hit when resolving an
   import statement and search inside there for the remainder part of
   the import. If it cannot find the symbols it will fail. (Tested on
   Python 3.8)

Proposed Change:

 * If the import fails at some point after finding the first level
   match: The path is evaluated further until it eventually may be able
   to resolve the statement completely-
     o --> Fail later


My use case scenario:

 * I have a bunch of different projects built using Python
 * I want to use parts of it within a new project
 * I place them withina sub-folder (for example libs) within the new
   project using git submodule or just copy / link them there, whatever
 * I append the libs to path (sys.path.append)
 * Python WILL find the packages and basically import everything right
 * Problem:
     o if themain package does actually contain a toplevel folder that
       is named the same like one within the other modules (for example
       a "ui" submodule) python will search withon one and only one of
       these ui modules within exactly one project
     o Name clashes can only be avoided by renaming

I know that this is propably not the suggested and best way to reuse
existing code. But its the most straight-forward and keeps the fastest
development cycle, which is I think is a reason Python grew so fast. At
the time of writing I cannot think of any place where this change would
destroy or change any already working code and I don't see a reason why
the import would completely fail under this circumstances showing a
different behaviour for top level fails and nth-level fails.

What do you think about that hopefully very small change of the import
behaviour?


Thanks for your time reading and Best wishes,
Richard

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/CRR2UNY4XFWSU7PY5X2TL64QIVH4LMJH/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to