At 10:01 AM 8/2/04 -0400, Jim Fulton wrote: >Phillip J. Eby wrote: >>At 08:28 AM 7/30/04 -0400, Jim Fulton wrote: >> >>>The problem with Python's current package system is that it's not possible, >>>in general, to write packages that can be moved around within the package >>>system, because relative imports aren't reobust or flexible enough. >>>PEP 328 would fix this. PEP 328 would allow creation of packages that >>>worked regardless of where there were places or that worked relative >>>to a containing package regardless of where that was placed. You could >>>then have different module spaces expressed by adding a new layer of >>>top-level >>>modules. You wouldn't need any new machinery beyond PEP 328. >> >>Hm. The concept I'm proposing would allow code to be used in a module >>space without needing to know about module spaces or be written to >>co-operate in such a fashion. If you can make everybody conform to some >>sort of coding standard, you wouldn't even need PEP 328 to accomplish >>your goal. ;) > >No, I don't think this is right. PEP 328 should allow you to create >module spaces using container packages. For your example, we create >two top-level packages, space1 and space 2. You put version x of PIL >in space1. That package's absolute name is space1.PIL. You put version y >of PIL in space2, creating space2.PIL. Now you put the products that >depend on version x of PIL in space1. You put the products that depend >on version y of PIL on space 2. The products mist use relative imports >to import from PIL: > > from ..PIL import somePILmodule > >For this to work, PIL also has to use relative imports to import it's own >modules. As I said, if you get to make PIL and everybody else rewrite their imports, you can do whatever you want to already. :) The point of my proposal is to make it possible *without* rewriting imports, in versions of Python from 2.2 up.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4