[Python-Dev] Great Renaming - Straw Man 0.2 (original) (raw)

Moshe Zadka Moshe Zadka mzadka@geocities.com
Tue, 28 Mar 2000 19:36:47 +0200 (IST)


On Tue, 28 Mar 2000, Greg Ward wrote:

* "deep hierarchies considered harmful": ie. avoid sub-packages if at all possible

* "everything should have a purpose": every top-level package should be describable with a single, clear sentence of plain language.

Good guidelines, but they aren't enough. And anyway, rules were meant to be broken <0.9 wink>

* "as long as we're renaming...": maybe this would be a good time to standardize naming conventions, eg. "cgi" -> "cgilib" or "{http,ftp,url,...}lib" -> "{http,ftp,url}...", "MimeWriter" -> "mimewriter", etc.

+1

* "shared namespaces vs system namespaces": the Perl model of "nothing belongs to The System; anyone can add a module in Text:: or Net:: or whatever" works there because Perl doesn't have init files or anything to distinguish module namespaces; they just are. Python's import mechanism would have to change to support this, and the fact that init files may contain arbitrary code makes this feel like a very tricky change to make.

Indeed. But I still feel that "few things should belong to the system" is quite a useful rule... (That's what I referred to when I said Perl's module system is more suited to CPAN (now there's a surprise))

Rename? Either cgi -> cgilib or foolib -> foo?

Yes. But I wanted the first proposal to be just about placing stuff, because that airs out more disagreements.

This is one good place for a sub-package. It's a also a good place to rename: the convention for Python module names seems to be all-lowercase; and "Server" is redundant when you're in the net.server package. How about:

net.server.basehttp net.server.cgihttp net.server.simplehttp net.server.socket

Hmmmmm......+0

Underscores negotiable. They don't seem to be popular in module names, although sometimes they would be real life-savers.

Personally, I prefer underscores to CamelCase.

Or maybe not. I'm just trying to come up with an excuse for moving xml to top-level, which I think is where it belongs. Maybe the excuse should just be, "XML is really important and visible, and anyways Paul Prescod will raise a stink if it isn't put at top-level in Python package-space".

I still think "xml" should be a brother to "html" and "sgml". Current political trans not withstanding.

Not sure what to do about these. Someone referred somewhere to a "web" top-level package, which seems to have disappeared. If it reappars, it would be a good place for the HTML modules (not to mention a big chunk of "net") -- this would mainly be for "important and visible" (ie. PR) reasons, rather than sound technical reasons.

I think the "web" package should be reinstated. But you won't like it: I'd put xml in web.

"mail" should either be top-level or under "net". (Yes, I know it's not a wire-level protocol: that's what net.smtplib is for. But last time I checked, email is pretty useless without a network. And vice-versa.)

Ummmm.....I'd disagree, but I lack the strength and the moral conviction. Put it under net and we'll call it a deal

Or maybe these all belong in a top-level "data" package: I'm starting to warm to that.

Ummmm...I don't like the "data" package personally. It seems to disobey your second guideline.

I agree with Jack: image and sound (audio?) should be top-level. I don't think I like the idea of an intervening "mm" or "multimedia" or "media" or what-have-you package, though.

Definitely multimedia. Okay, I'm bought.

Six crypto-related modules seems like enough to justify a top-level "crypt" package, though.

It seemed obvious to me that "crypt" should be under "math". But maybe that's just the mathematician in me speaking.

I like "python" for this one. (But I'm not sure if tabnanny and rlcompleter belong there.)

I agree, and I'm not sure about rlcompleter, but am sure about tabnanny.

What does ihooks have to do with security?

Well, it was more or less written to support rexec. A weak argument, admittedly

No problem until these last two -- 'commands' is a Unix-specific thing that has very little to do with the filesystem per se

Hmmmmm...it is on the same level with popen. Why not move popen too?

, and 'dl' is (as I understand it) deep ju-ju with sharp edges that should probably be hidden away

Ummmmmm.....not in the "python" package: it doesn't have anything to do with the interpreter.

Should this be "sgi" or "irix"? Ditto for "sun" vs "solaris" if there are a significant number of Sun/Solaris modules. Note that the respective trademark holders might get very antsy about who gets to put names in those namespaces -- that's exactly what happened with Sun, Solaris 8, and Perl. I believe the compromise they arrived at was that the "Solaris::" namespace remains open, but Sun gets the "Sun::" namespace.

Ummmmm.....I don't see how they have any legal standing. I for one refuse to care about what Sun Microsystem thinks about names for Python packages.

There should probably be a win32 package, for core registry access stuff if nothing else.

And for all the other extensions in win32all Yep! (Just goes to show what happens when you decide to package based on a UNIX system)

All of those argue over "irix" and "solaris" instead of "sgi" and "sun".

Fine with me -- just wanted to move them out of my face

Moshe Zadka <mzadka@geocities.com>. http://www.oreilly.com/news/prescod_0300.html http://www.linux.org.il -- we put the penguin in .com