gmcm at hypernet.com
Thu Jun 17 21:36:49 CEST 1999
David forwards from Starship Crew list:
> Not all that revolutionary, but an interesting migration path.
> FWIW, I think the underlying issue is a real one. We're starting to
> have more and more conflicts, even among package names. (Of course
> the symlink solution doesn't work on Win32, but that's a detail =).
> ---------- Forwarded message ----------
> Date: Thu, 17 Jun 1999 13:44:33 -0400 (EDT)
> From: Andy Dustman <adustman at comstar.net>
> To: Gordon McMillan <gmcm at hypernet.com>
> Cc: M.-A. Lemburg <mal at lemburg.com>, Crew List
> <crew at server.python.net> Subject: Re: [Crew] Wizards' Resolution to
> Zope/PIL/mxDateTime conflict?
> On Thu, 17 Jun 1999, Gordon McMillan wrote:
> > M.A.L. wrote:
> > > Or maybe we should start the com.domain.mypackage thing ASAP.
> > I know many are against this proposal (makes Python look Feudal?
> > Reminds people of the J language?), but I think it's the only thing
> > that makes sense. It does mean you have to do some ugly things to get
> > Pickle working properly.
> Actually, it can be done very easily. I just tried this, in fact:
> cd /usr/lib/python1.5
> mkdir -p org/python
> (cd org/python; ln -s ../.. core)
> touch __init__.py org/__init__.py org/python/__init__.py
> >>> from org.python.core import rfc822
> >>> import profile
> So this seems to make things nice and backwards compatible. My only
> concern was having __init__.py in /usr/lib/python1.5, but this
> doesn't seem to break anything. Of course, if you are using some
> trendy new atrocity like Windoze, this might not work.
In vanilla cases it's backwards compatible. I try packag-izing almost
everything I install. Sometimes it works, sometimes it doesn't.
In your example, rfc822 uses only builtins at the top level. It's
main will import os. Would that work if os lived in org.python.core?
Though I really don't think we need to packagize the std distr, (if
that happens, I would think it would be for a different reason).
The 2 main problems I run across in packagizing things are
intra-package imports (where M.A.L's proposal for relative names in
dotted imports might ease the pain) and Pickle / cPickle (where the
ugliness of the workarounds has often made me drop back to marshal).
More information about the Python-Dev